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