ports/124793: [NEW PORT] sysutils/archivemount

Evgeny Zhirnov jirnov at gmail.com
Fri Jun 20 17:00:12 UTC 2008


>Number:         124793
>Category:       ports
>Synopsis:       [NEW PORT] sysutils/archivemount
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    freebsd-ports-bugs
>State:          open
>Quarter:        
>Keywords:       
>Date-Required:
>Class:          change-request
>Submitter-Id:   current-users
>Arrival-Date:   Fri Jun 20 17:00:11 UTC 2008
>Closed-Date:
>Last-Modified:
>Originator:     Evgeny Zhirnov
>Release:        FreeBSD 7.0
>Organization:
Home
>Environment:
System: FreeBSD root.nill.org.ru 7.0-RELEASE-p1 FreeBSD 7.0-RELEASE-p1 #0: Tue Jan 1 03:20:51 MSK 2002 root at root.nill.org.ru:/usr/obj/usr/src/sys/ATHLON i386
>Description:

>How-To-Repeat:

>Fix:


Patch attached with submission follows:

# This is a shell archive.  Save it in a file, remove anything before
# this line, and then unpack it by entering "sh file".  Note, it may
# create directories; files and directories will be owned by you and
# have default permissions.
#
# This archive contains:
#
#	/usr/ports/sysutils/archivemount/
#	/usr/ports/sysutils/archivemount/Makefile
#	/usr/ports/sysutils/archivemount/distinfo
#	/usr/ports/sysutils/archivemount/files
#	/usr/ports/sysutils/archivemount/files/patch-Makefile
#	/usr/ports/sysutils/archivemount/files/patch-archivemount.c
#	/usr/ports/sysutils/archivemount/pkg-descr
#
echo c - /usr/ports/sysutils/archivemount/
mkdir -p /usr/ports/sysutils/archivemount/ > /dev/null 2>&1
echo x - /usr/ports/sysutils/archivemount/Makefile
sed 's/^X//' >/usr/ports/sysutils/archivemount/Makefile << 'END-of-/usr/ports/sysutils/archivemount/Makefile'
X# New ports collection makefile for: archivemount
X# Date created: 2008-06-20
X# Whom: Evgeny Zhirnov <jirnov at gmail.com>
X#
X# $FreeBSD$
X#
X
XPORTNAME= archivemount
XPORTVERSION= 0.5.3
XPORTREVISION= 1
XCATEGORIES= sysutils
XMASTER_SITES= http://www.cybernoia.de/software/archivemount/
X
XMAINTAINER= jirnov at gmail.com
XCOMMENT= Mount archives with FUSE
X
XBUILD_DEPENDS= ${LOCALBASE}/include/fuse.h:${PORTSDIR}/sysutils/fusefs-libs
XRUN_DEPENDS= ${LOCALBASE}/modules/fuse.ko:${PORTSDIR}/sysutils/fusefs-kmod
X
XPLIST_FILES=    bin/archivemount
X
XNO_INSTALL_MANPAGES= yes
X
XUSE_GMAKE= yes
XUSE_ICONV= yes
X
Xdo-install:
X	${INSTALL_PROGRAM} ${WRKSRC}/archivemount ${PREFIX}/bin
X
X.include <bsd.port.pre.mk>
X
X.if ${OSVERSION} < 600000 # Inherited from fusefs-kmod
XIGNORE= requires FreeBSD 6.x or above
X.endif
X
X.include <bsd.port.post.mk>
END-of-/usr/ports/sysutils/archivemount/Makefile
echo x - /usr/ports/sysutils/archivemount/distinfo
sed 's/^X//' >/usr/ports/sysutils/archivemount/distinfo << 'END-of-/usr/ports/sysutils/archivemount/distinfo'
XMD5 (archivemount-0.5.3.tar.gz) = 1a3b2901388c4854199471e67c303797
XSHA256 (archivemount-0.5.3.tar.gz) = 5bcb193a753395f912bdccff6fd08018ae0fba253a97087bc717ccf87682815a
XSIZE (archivemount-0.5.3.tar.gz) = 20267
END-of-/usr/ports/sysutils/archivemount/distinfo
echo c - /usr/ports/sysutils/archivemount/files
mkdir -p /usr/ports/sysutils/archivemount/files > /dev/null 2>&1
echo x - /usr/ports/sysutils/archivemount/files/patch-Makefile
sed 's/^X//' >/usr/ports/sysutils/archivemount/files/patch-Makefile << 'END-of-/usr/ports/sysutils/archivemount/files/patch-Makefile'
X--- Makefile.orig	2006-12-28 18:32:47.000000000 +0300
X+++ Makefile	2008-06-20 20:04:50.000000000 +0400
X@@ -12,8 +12,8 @@
X CC = gcc
X all: $(EXE)
X 
X-CFLAGS += -D_FILE_OFFSET_BITS=64
X-LDFLAGS = -larchive -lfuse
X+CFLAGS += -D_FILE_OFFSET_BITS=64 -I/usr/local/include/fuse
X+LDFLAGS = -larchive -liconv -lfuse -pthread -lrt  -L/usr/local/lib
X 
X ifeq ($(DEBUG),1)
X 	CFLAGS += -ggdb -O0
END-of-/usr/ports/sysutils/archivemount/files/patch-Makefile
echo x - /usr/ports/sysutils/archivemount/files/patch-archivemount.c
sed 's/^X//' >/usr/ports/sysutils/archivemount/files/patch-archivemount.c << 'END-of-/usr/ports/sysutils/archivemount/files/patch-archivemount.c'
X--- archivemount.c.orig	2006-12-28 18:32:47.000000000 +0300
X+++ archivemount.c	2008-06-20 20:31:46.000000000 +0400
X@@ -19,7 +19,7 @@
X #define _GNU_SOURCE 1
X #endif
X 
X-#define FUSE_USE_VERSION 22
X+#define FUSE_USE_VERSION 25
X #define MAXBUF 4096
X 
X #include <fuse.h>
X@@ -31,7 +31,9 @@
X #include <fcntl.h>
X #include <dirent.h>
X #include <errno.h>
X+#ifdef HAVE_STATFS
X #include <sys/statfs.h>
X+#endif
X #include <sys/types.h>
X #include <sys/stat.h>
X #include <time.h>
X@@ -42,6 +44,7 @@
X #include <wchar.h>
X #include <archive.h>
X #include <archive_entry.h>
X+#include <limits.h>
X 
X   /**********/
X  /* macros */
X@@ -433,9 +436,14 @@
X 			strlen( P_tmpdir ) +
X 			strlen( "_archivemount" ) +
X 			strlen( tmppath ) + 8 );
X-	sprintf( *location, "%s/archivemount%s_XXXXXX", P_tmpdir, tmppath );
X+	sprintf( *location, "/tmp/archivemount%s_XXXXXX", tmppath );
X 	free( tmppath );
X-	if( ( fh = mkstemp( *location ) == -1 ) ) {
X+
X+    char bsdLocation[PATH_MAX];
X+
X+    strcpy(bsdLocation, *location);
X+
X+	if( ( fh = mkstemp(bsdLocation ) == -1 ) ) {
X 		log( "Could not create temp file name %s: %s",
X 				*location, strerror( errno ) );
X 		free( *location );
X@@ -1449,7 +1457,13 @@
X 		return tmp;
X 	}
X 	/* create temp file */
X-	if( mknod( location, mode, rdev ) == -1 ) {
X+    if (S_ISREG( mode )) {
X+        tmp = open( location, O_CREAT | O_EXCL | O_WRONLY, mode );
X+    } else if (S_ISFIFO( mode ))
X+        tmp = mkfifo( location, mode );
X+    else
X+        tmp = mknod( location, mode, rdev );
X+	if( tmp == -1 ) {
X 		log( "Could not create temporary file %s: %s",
X 				location, strerror( errno ) );
X 		free( location );
X@@ -1604,6 +1618,7 @@
X 	return 0;
X }
X 
X+#ifdef HAVE_STATFS
X static int
X ar_statfs( const char *path, struct statfs *stbuf )
X {
X@@ -1613,6 +1628,7 @@
X 
X 	return -ENOSYS;
X }
X+#endif
X 
X static int
X ar_rename( const char *from, const char *to )
X@@ -1753,7 +1769,9 @@
X 	.open		= ar_open,
X 	.read		= ar_read,
X 	.write		= ar_write,
X+#ifdef HAVE_STATFS    
X 	.statfs		= ar_statfs,
X+#endif    
X 	.release	= ar_release,
X 	.fsync		= ar_fsync,
X /*
END-of-/usr/ports/sysutils/archivemount/files/patch-archivemount.c
echo x - /usr/ports/sysutils/archivemount/pkg-descr
sed 's/^X//' >/usr/ports/sysutils/archivemount/pkg-descr << 'END-of-/usr/ports/sysutils/archivemount/pkg-descr'
XArchivemount is a piece of glue code between libarchive
X(http://people.freebsd.org/~kientzle/libarchive/) and FUSE
X(http://fuse.sourceforge.net). It can be used to mount a (possibly compressed)
Xarchive (as in .tar.gz or .tar.bz2) and use it like an ordinary filesystem.
X
XWWW: http://www.cybernoia.de/software/archivemount/
END-of-/usr/ports/sysutils/archivemount/pkg-descr
exit


>Release-Note:
>Audit-Trail:
>Unformatted:



More information about the freebsd-ports-bugs mailing list