Fix bug 112902
authorStefan Schweizer <genstef@gentoo.org>
Sat, 19 Nov 2005 23:23:15 +0000 (23:23 +0000)
committerStefan Schweizer <genstef@gentoo.org>
Sat, 19 Nov 2005 23:23:15 +0000 (23:23 +0000)
Package-Manager: portage-2.0.53_rc7

sys-fs/fuse/ChangeLog
sys-fs/fuse/Manifest
sys-fs/fuse/files/digest-fuse-2.4.1-r1 [new file with mode: 0644]
sys-fs/fuse/files/fusermount.patch [new file with mode: 0644]
sys-fs/fuse/fuse-2.4.1-r1.ebuild [new file with mode: 0644]

index 7cc17c6848419ba873e56189b974b2d8e28ebe38..68e387788a924dac31ee6a112e6eb1bd5a8300d2 100644 (file)
@@ -1,6 +1,12 @@
 # ChangeLog for sys-fs/fuse
 # Copyright 1999-2005 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/sys-fs/fuse/ChangeLog,v 1.30 2005/11/19 13:38:05 blubb Exp $
+# $Header: /var/cvsroot/gentoo-x86/sys-fs/fuse/ChangeLog,v 1.31 2005/11/19 23:23:15 genstef Exp $
+
+*fuse-2.4.1-r1 (19 Nov 2005)
+
+  19 Nov 2005; Stefan Schweizer <genstef@gentoo.org>
+  +files/fusermount.patch, +fuse-2.4.1-r1.ebuild:
+  Fix bug 112902
 
   19 Nov 2005; Simon Stelling <blubb@gentoo.org> fuse-2.3.0.ebuild:
   stable on amd64
index 8c7c17aa9bb819a2559da21263ae14ad4e1115fc..c54d60283560a1c68e27be1c0633a63766361526 100644 (file)
@@ -1,9 +1,12 @@
-MD5 68f3f4105febbf0e6ecf6cf7c8991ace ChangeLog 4432
-MD5 6e89ba8198764bfd079a0cfa18dca593 metadata.xml 264
+MD5 d55cae5ae4245051f78e9bd92fd9837c ChangeLog 4585
+MD5 660a7ef5693ad494967fec4297c6dfce files/digest-fuse-2.3.0 62
+MD5 ffd57aad8c33e3452bcb35543a59e75a files/digest-fuse-2.4.0 62
+MD5 ad233d63810d8501e80affb6e4b8f40f files/digest-fuse-2.4.1 62
+MD5 ad233d63810d8501e80affb6e4b8f40f files/digest-fuse-2.4.1-r1 62
+MD5 c1ef6366ba5892111ddef08887328663 files/fuse-fix-lazy-binding.patch 398
+MD5 341eb75e58827ef58b4c5b445c721362 files/fusermount.patch 1300
 MD5 5837867b4d824f957ac809f45e468957 fuse-2.3.0.ebuild 1446
 MD5 fb6a3ca988d45aaf47a66ae5569c5ad4 fuse-2.4.0.ebuild 1451
+MD5 525451b384e32ede507095a018c659da fuse-2.4.1-r1.ebuild 1491
 MD5 7ab7607d812aadafaf30e1a038f16d10 fuse-2.4.1.ebuild 1451
-MD5 ffd57aad8c33e3452bcb35543a59e75a files/digest-fuse-2.4.0 62
-MD5 c1ef6366ba5892111ddef08887328663 files/fuse-fix-lazy-binding.patch 398
-MD5 660a7ef5693ad494967fec4297c6dfce files/digest-fuse-2.3.0 62
-MD5 ad233d63810d8501e80affb6e4b8f40f files/digest-fuse-2.4.1 62
+MD5 6e89ba8198764bfd079a0cfa18dca593 metadata.xml 264
diff --git a/sys-fs/fuse/files/digest-fuse-2.4.1-r1 b/sys-fs/fuse/files/digest-fuse-2.4.1-r1
new file mode 100644 (file)
index 0000000..74dd1a5
--- /dev/null
@@ -0,0 +1 @@
+MD5 553bd9c5a4f3cd27f3e2b93844711e4c fuse-2.4.1.tar.gz 384631
diff --git a/sys-fs/fuse/files/fusermount.patch b/sys-fs/fuse/files/fusermount.patch
new file mode 100644 (file)
index 0000000..7bd930e
--- /dev/null
@@ -0,0 +1,42 @@
+Index: util/fusermount.c
+===================================================================
+RCS file: /cvsroot/fuse/fuse/util/fusermount.c,v
+retrieving revision 1.69
+diff -u -r1.69 fusermount.c
+--- util/fusermount.c  11 Oct 2005 10:12:08 -0000      1.69
++++ util/fusermount.c  18 Nov 2005 20:32:26 -0000
+@@ -120,6 +120,23 @@
+     }
+ }
+ 
++/* Glibc addmntent() doesn't encode '\n', misencodes '\t' as '\n'
++   (version 2.3.2), and encodes '\\' differently as mount(8).  So
++   let's not allow those characters, they are not all that usual in
++   filenames. */
++static int check_name(const char *name)
++{
++    char *s;
++    for (s = "\n\t\\"; *s; s++) {
++        if (strchr(name, *s)) {
++            fprintf(stderr, "%s: illegal character 0x%02x in mount entry\n",
++                    progname, *s);
++            return -1;
++        }
++    }
++    return 0;
++}
++
+ static int add_mount(const char *fsname, const char *mnt, const char *type,
+                      const char *opts)
+ {
+@@ -128,6 +145,10 @@
+     struct mntent ent;
+     FILE *fp;
+ 
++    if (check_name(fsname) == -1 || check_name(mnt) == -1 || 
++        check_name(type) == -1 || check_name(opts) == -1)
++        return -1;
++
+     fp = setmntent(mtab, "a");
+     if (fp == NULL) {
+       fprintf(stderr, "%s: failed to open %s: %s\n", progname, mtab,
diff --git a/sys-fs/fuse/fuse-2.4.1-r1.ebuild b/sys-fs/fuse/fuse-2.4.1-r1.ebuild
new file mode 100644 (file)
index 0000000..663caa8
--- /dev/null
@@ -0,0 +1,52 @@
+# Copyright 1999-2005 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/sys-fs/fuse/fuse-2.4.1-r1.ebuild,v 1.1 2005/11/19 23:23:15 genstef Exp $
+
+inherit linux-mod eutils
+
+MY_P=${P/_/-}
+DESCRIPTION="An interface for filesystems implemented in userspace."
+HOMEPAGE="http://fuse.sourceforge.net"
+SRC_URI="mirror://sourceforge/fuse/${MY_P}.tar.gz"
+LICENSE="GPL-2"
+KEYWORDS="~amd64 ~ppc ~sparc ~x86"
+IUSE=""
+S=${WORKDIR}/${MY_P}
+
+CONFIG_CHECK="@FUSE_FS:fuse"
+MODULE_NAMES="fuse(fs:${S}/kernel)"
+BUILD_PARAMS="majver=${KV_MAJOR}.${KV_MINOR}
+                         fusemoduledir=${ROOT}/lib/modules/${KV_FULL}/fs"
+BUILD_TARGETS="all"
+ECONF_PARAMS="--with-kernel=${KV_OUT_DIR}"
+FUSE_FS_ERROR="We have detected FUSE already built into the kernel.
+We will continue, but we wont build the module this time."
+
+src_unpack() {
+       unpack ${A}
+       cd ${S}
+       epatch ${FILESDIR}/fuse-fix-lazy-binding.patch
+       epatch ${FILESDIR}/fusermount.patch
+}
+
+src_compile() {
+       einfo "Preparing fuse userland"
+       econf --disable-kernel-module --disable-example || \
+               die "econf failed for fuse userland"
+       emake || die "emake failed"
+
+       sed -i 's/.*depmod.*//g' ${S}/kernel/Makefile.in
+       convert_to_m ${S}/kernel/Makefile.in
+       linux-mod_src_compile
+}
+
+src_install() {
+       make DESTDIR="${D}" install || die "make install failed"
+
+       dodoc AUTHORS ChangeLog Filesystems README README-2.4 \
+               README.NFS NEWS doc/how-fuse-works
+       docinto example
+       dodoc example/*
+
+       linux-mod_src_install
+}