Date: Fri, 20 Jun 2008 16:51:40 GMT From: Evgeny Zhirnov <jirnov@gmail.com> To: freebsd-gnats-submit@FreeBSD.org Subject: ports/124793: [NEW PORT] sysutils/archivemount Message-ID: <200806201651.m5KGpesn035666@www.freebsd.org> Resent-Message-ID: <200806201700.m5KH0C4R095160@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>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@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@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@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:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200806201651.m5KGpesn035666>