[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Please unblock fuse 2.7.4-1



Hello,

Please find attached the whole diff between fuse 2.7.3-5.1 and the current unstable package.

All hunks from kernel/* can be ignored because we don't use fuse kernel source in Debian.

In fact the only interresting changes ares theses one:

Upstream fix:
diff -Nur fuse-2.7.3/lib/fuse.c fuse-2.7.4/lib/fuse.c
--- fuse-2.7.3/lib/fuse.c       2008-02-19 20:51:25.000000000 +0100
+++ fuse-2.7.4/lib/fuse.c       2008-07-25 20:17:21.000000000 +0200
@@ -2097,6 +2097,7 @@
               }
       } else {
               reply_err(req, err);
+               pthread_mutex_destroy(&dh->lock);
               free(dh);
       }
       free(path);


Packaging fix (/dev/fuse doens't belong to group fuse on the first install if fuse kernel module is not loaded already): diff -Nur fuse-2.7.3/debian/fuse-utils.fuse.init fuse-2.7.4/debian/fuse-utils.fuse.init --- fuse-2.7.3/debian/fuse-utils.fuse.init 2008-09-16 09:43:35.000000000 +0200 +++ fuse-2.7.4/debian/fuse-utils.fuse.init 2008-09-16 09:54:00.043882531 +0200
@@ -34,6 +34,14 @@
       #   2 if fusectl filesystem mount failed
        if ! grep -qw fuse /proc/filesystems; then
                modprobe fuse >/dev/null 2>&1 || return 1
+               # Dirty fix for #473545
+               #
+               # In fact the postinst script will fail at the first
+               # install if you don't have fuse kernel module loaded.
+               # (module not loaded -> no /dev/fuse -> postinst noop)
+               # Let's fix it their for now, if someone has a better idea
+               # please re-open #473545.
+               test -e /dev/fuse && chgrp fuse /dev/fuse
        fi
        if grep -qw fusectl /proc/filesystems && \
           ! grep -qw $MOUNTPOINT /proc/mounts; then
diff -Nur fuse-2.7.3/debian/fuse-utils.postinst fuse-2.7.4/debian/fuse-utils.postinst --- fuse-2.7.3/debian/fuse-utils.postinst 2008-09-16 09:43:35.000000000 +0200 +++ fuse-2.7.4/debian/fuse-utils.postinst 2008-09-16 09:57:57.319890306 +0200
@@ -31,6 +31,12 @@
# Once fuse-utils is installed the group exists and udev will set proper # group. The bug may come from udev, or base system, which use a group
       # that doens't exist. For now, let's workaround this issue here.
+       # Follow-up for #473545
+ # A hack has been added to initscript for the first time installation
+       # if tyou don't have fuse kernel module already loaded
+       # Moreover we need to reload udev before chgrp, otherwise fuse group
+       # is not known
+       invoke-rc.d udev reload
       test -e /dev/fuse && chgrp fuse /dev/fuse
  fi


Thanks in advance,

Best regards, Adam.
diff -Nur fuse-2.7.3/ChangeLog fuse-2.7.4/ChangeLog
--- fuse-2.7.3/ChangeLog	2008-02-19 20:51:21.000000000 +0100
+++ fuse-2.7.4/ChangeLog	2008-07-25 20:17:20.000000000 +0200
@@ -1,3 +1,16 @@
+2008-07-25  Miklos Szeredi <miklos@szeredi.hu>
+
+	* Released 2.7.4
+
+2008-07-25  Miklos Szeredi <miklos@szeredi.hu>
+
+	* Update kernel module to compile with 2.6.26
+
+2008-03-19  Miklos Szeredi <miklos@szeredi.hu>
+
+	* Fix missing pthread_mutex_destroy in error path of
+	fuse_lib_opendir().  Patch by Szabolcs Szakacsits
+
 2008-02-19  Miklos Szeredi <miklos@szeredi.hu>
 
 	* Released 2.7.3
diff -Nur fuse-2.7.3/configure fuse-2.7.4/configure
--- fuse-2.7.3/configure	2008-02-19 21:00:42.000000000 +0100
+++ fuse-2.7.4/configure	2008-07-25 20:19:05.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61 for fuse 2.7.3.
+# Generated by GNU Autoconf 2.61 for fuse 2.7.4.
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
 # 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
@@ -721,8 +721,8 @@
 # Identity of this package.
 PACKAGE_NAME='fuse'
 PACKAGE_TARNAME='fuse'
-PACKAGE_VERSION='2.7.3'
-PACKAGE_STRING='fuse 2.7.3'
+PACKAGE_VERSION='2.7.4'
+PACKAGE_STRING='fuse 2.7.4'
 PACKAGE_BUGREPORT=''
 
 # Factoring default headers for most tests.
@@ -1390,7 +1390,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures fuse 2.7.3 to adapt to many kinds of systems.
+\`configure' configures fuse 2.7.4 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1461,7 +1461,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of fuse 2.7.3:";;
+     short | recursive ) echo "Configuration of fuse 2.7.4:";;
    esac
   cat <<\_ACEOF
 
@@ -1567,7 +1567,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-fuse configure 2.7.3
+fuse configure 2.7.4
 generated by GNU Autoconf 2.61
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1581,7 +1581,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by fuse $as_me 2.7.3, which was
+It was created by fuse $as_me 2.7.4, which was
 generated by GNU Autoconf 2.61.  Invocation command line was
 
   $ $0 $@
@@ -2377,7 +2377,7 @@
 
 # Define the identity of the package.
  PACKAGE='fuse'
- VERSION='2.7.3'
+ VERSION='2.7.4'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -12778,7 +12778,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by fuse $as_me 2.7.3, which was
+This file was extended by fuse $as_me 2.7.4, which was
 generated by GNU Autoconf 2.61.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -12831,7 +12831,7 @@
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
-fuse config.status 2.7.3
+fuse config.status 2.7.4
 configured by $0, generated by GNU Autoconf 2.61,
   with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
diff -Nur fuse-2.7.3/configure.in fuse-2.7.4/configure.in
--- fuse-2.7.3/configure.in	2008-02-19 20:51:21.000000000 +0100
+++ fuse-2.7.4/configure.in	2008-07-25 20:17:20.000000000 +0200
@@ -1,4 +1,4 @@
-AC_INIT(fuse, 2.7.3)
+AC_INIT(fuse, 2.7.4)
 AC_CANONICAL_TARGET
 AM_INIT_AUTOMAKE
 AM_CONFIG_HEADER(include/config.h)
diff -Nur fuse-2.7.3/debian/changelog fuse-2.7.4/debian/changelog
--- fuse-2.7.3/debian/changelog	2008-09-16 09:43:35.000000000 +0200
+++ fuse-2.7.4/debian/changelog	2008-09-16 10:01:05.255881683 +0200
@@ -1,3 +1,11 @@
+fuse (2.7.4-1) unstable; urgency=low
+
+  * Ack NMU from Thomas Viehmann, thanks.
+  * New upstream release.
+  * Really fix /dev/fuse to use fuse group (Closes: #473545).
+
+ -- Adam Cécile (Le_Vert) <gandalf@le-vert.net>  Tue, 16 Sep 2008 09:43:52 +0200
+
 fuse (2.7.3-5.1) unstable; urgency=low
 
   * Non-maintainer upload coordinated with Bartosz..
diff -Nur fuse-2.7.3/debian/fuse-utils.fuse.init fuse-2.7.4/debian/fuse-utils.fuse.init
--- fuse-2.7.3/debian/fuse-utils.fuse.init	2008-09-16 09:43:35.000000000 +0200
+++ fuse-2.7.4/debian/fuse-utils.fuse.init	2008-09-16 09:54:00.043882531 +0200
@@ -34,6 +34,14 @@
 	#   2 if fusectl filesystem mount failed
         if ! grep -qw fuse /proc/filesystems; then
                 modprobe fuse >/dev/null 2>&1 || return 1
+		# Dirty fix for #473545
+		#
+		# In fact the postinst script will fail at the first
+		# install if you don't have fuse kernel module loaded.
+		# (module not loaded -> no /dev/fuse -> postinst noop)
+		# Let's fix it their for now, if someone has a better idea
+		# please re-open #473545.
+		test -e /dev/fuse && chgrp fuse /dev/fuse
         fi
         if grep -qw fusectl /proc/filesystems && \
            ! grep -qw $MOUNTPOINT /proc/mounts; then
diff -Nur fuse-2.7.3/debian/fuse-utils.postinst fuse-2.7.4/debian/fuse-utils.postinst
--- fuse-2.7.3/debian/fuse-utils.postinst	2008-09-16 09:43:35.000000000 +0200
+++ fuse-2.7.4/debian/fuse-utils.postinst	2008-09-16 09:57:57.319890306 +0200
@@ -31,6 +31,12 @@
 	# Once fuse-utils is installed the group exists and udev will set proper
 	# group. The bug may come from udev, or base system, which use a group
 	# that doens't exist. For now, let's workaround this issue here.
+	# Follow-up for #473545
+	# A hack has been added to initscript for the first time installation
+	# if tyou don't have fuse kernel module already loaded
+	# Moreover we need to reload udev before chgrp, otherwise fuse group
+	# is not known
+	invoke-rc.d udev reload
 	test -e /dev/fuse && chgrp fuse /dev/fuse
   fi
 
diff -Nur fuse-2.7.3/kernel/configure fuse-2.7.4/kernel/configure
--- fuse-2.7.3/kernel/configure	2008-02-19 21:00:19.000000000 +0100
+++ fuse-2.7.4/kernel/configure	2008-07-25 20:18:29.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.61 for fuse-kernel 2.7.3.
+# Generated by GNU Autoconf 2.61 for fuse-kernel 2.7.4.
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
 # 2002, 2003, 2004, 2005, 2006 Free Software Foundation, Inc.
@@ -572,8 +572,8 @@
 # Identity of this package.
 PACKAGE_NAME='fuse-kernel'
 PACKAGE_TARNAME='fuse-kernel'
-PACKAGE_VERSION='2.7.3'
-PACKAGE_STRING='fuse-kernel 2.7.3'
+PACKAGE_VERSION='2.7.4'
+PACKAGE_STRING='fuse-kernel 2.7.4'
 PACKAGE_BUGREPORT=''
 
 ac_subst_vars='SHELL
@@ -1130,7 +1130,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures fuse-kernel 2.7.3 to adapt to many kinds of systems.
+\`configure' configures fuse-kernel 2.7.4 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1191,7 +1191,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of fuse-kernel 2.7.3:";;
+     short | recursive ) echo "Configuration of fuse-kernel 2.7.4:";;
    esac
   cat <<\_ACEOF
 
@@ -1266,7 +1266,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-fuse-kernel configure 2.7.3
+fuse-kernel configure 2.7.4
 generated by GNU Autoconf 2.61
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1280,7 +1280,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by fuse-kernel $as_me 2.7.3, which was
+It was created by fuse-kernel $as_me 2.7.4, which was
 generated by GNU Autoconf 2.61.  Invocation command line was
 
   $ $0 $@
@@ -2487,7 +2487,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by fuse-kernel $as_me 2.7.3, which was
+This file was extended by fuse-kernel $as_me 2.7.4, which was
 generated by GNU Autoconf 2.61.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -2536,7 +2536,7 @@
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF
 ac_cs_version="\\
-fuse-kernel config.status 2.7.3
+fuse-kernel config.status 2.7.4
 configured by $0, generated by GNU Autoconf 2.61,
   with options \\"`echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
diff -Nur fuse-2.7.3/kernel/configure.ac fuse-2.7.4/kernel/configure.ac
--- fuse-2.7.3/kernel/configure.ac	2008-02-19 20:51:24.000000000 +0100
+++ fuse-2.7.4/kernel/configure.ac	2008-07-25 20:17:20.000000000 +0200
@@ -1,4 +1,4 @@
-AC_INIT(fuse-kernel, 2.7.3)
+AC_INIT(fuse-kernel, 2.7.4)
 AC_CONFIG_HEADERS([config.h])
 
 AC_PROG_INSTALL
diff -Nur fuse-2.7.3/kernel/fuse_i.h fuse-2.7.4/kernel/fuse_i.h
--- fuse-2.7.3/kernel/fuse_i.h	2008-02-19 20:51:24.000000000 +0100
+++ fuse-2.7.4/kernel/fuse_i.h	2008-07-25 20:17:21.000000000 +0200
@@ -51,6 +51,9 @@
 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,24)
 #  define KERNEL_2_6_24_PLUS
 #endif
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,25)
+#  define KERNEL_2_6_25_PLUS
+#endif
 
 #if defined(__arm__) && LINUX_VERSION_CODE < KERNEL_VERSION(2,6,20)
 #define DCACHE_BUG
diff -Nur fuse-2.7.3/kernel/inode.c fuse-2.7.4/kernel/inode.c
--- fuse-2.7.3/kernel/inode.c	2008-02-19 20:51:24.000000000 +0100
+++ fuse-2.7.4/kernel/inode.c	2008-07-25 20:17:21.000000000 +0200
@@ -85,10 +85,12 @@
 	kmem_cache_free(fuse_inode_cachep, inode);
 }
 
+#ifndef KERNEL_2_6_25_PLUS
 static void fuse_read_inode(struct inode *inode)
 {
 	/* No op */
 }
+#endif
 
 void fuse_send_forget(struct fuse_conn *fc, struct fuse_req *req,
 		      unsigned long nodeid, u64 nlookup)
@@ -690,7 +692,9 @@
 static struct super_operations fuse_super_operations = {
 	.alloc_inode    = fuse_alloc_inode,
 	.destroy_inode  = fuse_destroy_inode,
+#ifndef KERNEL_2_6_25_PLUS
 	.read_inode	= fuse_read_inode,
+#endif
 	.clear_inode	= fuse_clear_inode,
 	.drop_inode	= generic_delete_inode,
 	.remount_fs	= fuse_remount_fs,
@@ -944,11 +948,16 @@
 }
 #endif
 
+#ifdef KERNEL_2_6_25_PLUS
+static struct kobject *fuse_kobj;
+static struct kobject *connections_kobj;
+#else
 #ifndef HAVE_FS_SUBSYS
 static decl_subsys(fs, NULL, NULL);
 #endif
 static decl_subsys(fuse, NULL, NULL);
 static decl_subsys(connections, NULL, NULL);
+#endif
 
 #ifdef KERNEL_2_6_24_PLUS
 static void fuse_inode_init_once(struct kmem_cache *cachep, void *foo)
@@ -1015,6 +1024,25 @@
 {
 	int err;
 
+#ifdef KERNEL_2_6_25_PLUS
+	fuse_kobj = kobject_create_and_add("fuse", fs_kobj);
+	if (!fuse_kobj) {
+		err = -ENOMEM;
+		goto out_err;
+	}
+
+	connections_kobj = kobject_create_and_add("connections", fuse_kobj);
+	if (!connections_kobj) {
+		err = -ENOMEM;
+		goto out_fuse_unregister;
+	}
+
+	return 0;
+
+ out_fuse_unregister:
+	kobject_put(fuse_kobj);
+ out_err:
+#else
 #ifndef HAVE_FS_SUBSYS
 	err = subsystem_register(&fs_subsys);
 	if (err)
@@ -1046,16 +1074,22 @@
 #ifndef HAVE_FS_SUBSYS
 	subsystem_unregister(&fs_subsys);
 #endif
+#endif
 	return err;
 }
 
 static void fuse_sysfs_cleanup(void)
 {
+#ifdef KERNEL_2_6_25_PLUS
+	kobject_put(connections_kobj);
+	kobject_put(fuse_kobj);
+#else
 	subsystem_unregister(&connections_subsys);
 	subsystem_unregister(&fuse_subsys);
 #ifndef HAVE_FS_SUBSYS
 	subsystem_unregister(&fs_subsys);
 #endif
+#endif
 }
 
 static int __init fuse_init(void)
diff -Nur fuse-2.7.3/lib/fuse.c fuse-2.7.4/lib/fuse.c
--- fuse-2.7.3/lib/fuse.c	2008-02-19 20:51:25.000000000 +0100
+++ fuse-2.7.4/lib/fuse.c	2008-07-25 20:17:21.000000000 +0200
@@ -2097,6 +2097,7 @@
 		}
 	} else {
 		reply_err(req, err);
+		pthread_mutex_destroy(&dh->lock);
 		free(dh);
 	}
 	free(path);
diff -Nur fuse-2.7.3/lib/Makefile.am fuse-2.7.4/lib/Makefile.am
--- fuse-2.7.3/lib/Makefile.am	2008-02-19 20:51:24.000000000 +0100
+++ fuse-2.7.4/lib/Makefile.am	2008-07-25 20:17:21.000000000 +0200
@@ -34,7 +34,7 @@
 	$(iconv_source)		\
 	$(mount_source)
 
-libfuse_la_LDFLAGS = @libfuse_libs@ -version-number 2:7:3 \
+libfuse_la_LDFLAGS = @libfuse_libs@ -version-number 2:7:4 \
 	-Wl,--version-script,$(srcdir)/fuse_versionscript
 
 libulockmgr_la_SOURCES = ulockmgr.c
diff -Nur fuse-2.7.3/lib/Makefile.in fuse-2.7.4/lib/Makefile.in
--- fuse-2.7.3/lib/Makefile.in	2008-02-19 21:00:54.000000000 +0100
+++ fuse-2.7.4/lib/Makefile.in	2008-07-25 20:19:22.000000000 +0200
@@ -230,7 +230,7 @@
 	$(iconv_source)		\
 	$(mount_source)
 
-libfuse_la_LDFLAGS = @libfuse_libs@ -version-number 2:7:3 \
+libfuse_la_LDFLAGS = @libfuse_libs@ -version-number 2:7:4 \
 	-Wl,--version-script,$(srcdir)/fuse_versionscript
 
 libulockmgr_la_SOURCES = ulockmgr.c

Reply to: