[meego-commits] 5805: Changes to Trunk/fuse

Anas Nashif nashif at linux.intel.com
Fri Jul 16 15:25:28 UTC 2010


Hi,
I have made the following changes to fuse in project Trunk. Please review and accept ASAP.

Thank You,
Anas Nashif

[This message was auto-generated]

---

Request #5805:

  submit:   Trunk:Testing/fuse(r5) -> Trunk/fuse


Message:
    Move to Trunk

State:   new          2010-07-16T03:20:01 nashif
Comment: None



changes files:
--------------
--- fuse.changes
+++ fuse.changes
@@ -0,0 +1,3 @@
+* Thu Jul 15 2010 Anas Nashif <anas.nashif at intel.com> - 2.8.4
+- Install udev rules in /lib/udev (bmc #3424)
+

old:
----
  fuse-2.8.3.tar.gz

new:
----
  fuse-2.8.4.tar.gz

spec files:
-----------
--- fuse.spec
+++ fuse.spec
@@ -1,13 +1,13 @@
 # 
-# Do not Edit! Generated by:
-# spectacle version 0.13~pre
+# Do NOT Edit the Auto-generated Part!
+# Generated by: spectacle version 0.19~pre
 # 
 # >> macros
 # << macros
 
 Name:       fuse
 Summary:    File System in Userspace (FUSE) utilities
-Version:    2.8.3
+Version:    2.8.4
 Release:    1
 Group:      System/Base
 License:    LGPLv2+
@@ -21,7 +21,6 @@
 Patch2:     fuse-chkconfig_support.diff
 Requires:   which
 
-BuildRoot:  %{_tmppath}/%{name}-%{version}-build
 
 %description
 With FUSE it is possible to implement a fully functional filesystem in a
@@ -56,14 +55,19 @@
 
 %prep
 %setup -q -n %{name}-%{version}
+
+# fuse-udev_rules.patch
 %patch0 -p1
+# fuse-openfix.patch
 %patch1 -p1
+# fuse-chkconfig_support.diff
 %patch2 -p1
 # >> setup
 # << setup
 
 %build
 # >> build pre
+export UDEV_RULES_PATH=/lib/udev/rules.d
 # << build pre
 
 %configure --disable-static \
@@ -71,7 +75,6 @@
     --bindir=/bin \
     --exec-prefix=/
 
-# Call make instruction with smp support
 make %{?jobs:-j%jobs}
 
 # >> build post
@@ -81,17 +84,18 @@
 # >> install pre
 # << install pre
 %make_install
-mkdir -p %{buildroot}%{_sysconfdir}/udev/makedev.d
-cp -a %{SOURCE1} %{buildroot}%{_sysconfdir}/udev/makedev.d
-mkdir -p %{buildroot}%{_sysconfdir}/makedev.d
-cp -a %{SOURCE2} %{buildroot}%{_sysconfdir}/makedev.d
+mkdir -p %{buildroot}/lib/udev/makedev.d
+cp -a %{SOURCE1} %{buildroot}/lib/udev/makedev.d
+mkdir -p %{buildroot}/etc/makedev.d
+cp -a %{SOURCE2} %{buildroot}/etc/makedev.d
 
 
 # >> install post
 # << install post
 
-%clean
-rm -rf %{buildroot}
+
+
+
 
 
 
@@ -111,8 +115,8 @@
 /bin/ulockmgr_server
 %{_sysconfdir}/init.d/fuse
 %{_sysconfdir}/makedev.d/z-fuse
-%config %{_sysconfdir}/udev/rules.d/99-fuse.rules
-%config %{_sysconfdir}/udev/makedev.d/99-fuse.nodes
+%config /lib/udev/rules.d/99-fuse.rules
+%config /lib/udev/makedev.d/99-fuse.nodes
 # << files
 
 

other changes:
--------------

++++++ fuse-2.8.3.tar.gz -> fuse-2.8.4.tar.gz
--- ChangeLog
+++ ChangeLog
@@ -1,3 +1,23 @@
+2010-04-26  Miklos Szeredi <miklos at szeredi.hu>
+
+	* Released 2.8.4
+
+2010-04-26  Miklos Szeredi <miklos at szeredi.hu>
+
+	* Fix checking for symlinks in umount from /tmp.  Reported by Al
+	Viro
+
+	* Fix umounting if /tmp is a symlink.  Reported by Franco Broi
+
+2010-02-18  Miklos Szeredi <miklos at szeredi.hu>
+
+	* Fix definition of FUSE_OPT_END for C++.  Reported by Tim
+	Bruylants
+
+2010-02-03  Miklos Szeredi <miklos at szeredi.hu>
+
+	* Fix stack alignment for clone()
+
 2010-02-01  Miklos Szeredi <miklos at szeredi.hu>
 
 	* Released 2.8.3
--- configure
+++ configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.63 for fuse 2.8.3.
+# Generated by GNU Autoconf 2.63 for fuse 2.8.4.
 #
 # Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
 # 2002, 2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
@@ -743,8 +743,8 @@
 # Identity of this package.
 PACKAGE_NAME='fuse'
 PACKAGE_TARNAME='fuse'
-PACKAGE_VERSION='2.8.3'
-PACKAGE_STRING='fuse 2.8.3'
+PACKAGE_VERSION='2.8.4'
+PACKAGE_STRING='fuse 2.8.4'
 PACKAGE_BUGREPORT=''
 
 # Factoring default headers for most tests.
@@ -1488,7 +1488,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.8.3 to adapt to many kinds of systems.
+\`configure' configures fuse 2.8.4 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1559,7 +1559,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of fuse 2.8.3:";;
+     short | recursive ) echo "Configuration of fuse 2.8.4:";;
    esac
   cat <<\_ACEOF
 
@@ -1667,7 +1667,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-fuse configure 2.8.3
+fuse configure 2.8.4
 generated by GNU Autoconf 2.63
 
 Copyright (C) 1992, 1993, 1994, 1995, 1996, 1998, 1999, 2000, 2001,
@@ -1681,7 +1681,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.8.3, which was
+It was created by fuse $as_me 2.8.4, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   $ $0 $@
@@ -2657,7 +2657,7 @@
 
 # Define the identity of the package.
  PACKAGE='fuse'
- VERSION='2.8.3'
+ VERSION='2.8.4'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -14152,7 +14152,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.8.3, which was
+This file was extended by fuse $as_me 2.8.4, which was
 generated by GNU Autoconf 2.63.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -14215,7 +14215,7 @@
 _ACEOF
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_version="\\
-fuse config.status 2.8.3
+fuse config.status 2.8.4
 configured by $0, generated by GNU Autoconf 2.63,
   with options \\"`$as_echo "$ac_configure_args" | sed 's/^ //; s/[\\""\`\$]/\\\\&/g'`\\"
 
--- configure.in
+++ configure.in
@@ -1,4 +1,4 @@
-AC_INIT(fuse, 2.8.3)
+AC_INIT(fuse, 2.8.4)
 AC_CONFIG_MACRO_DIR([m4])
 AC_CANONICAL_TARGET
 AM_INIT_AUTOMAKE
--- include/fuse_lowlevel.h
+++ include/fuse_lowlevel.h
@@ -411,6 +411,7 @@
 	 *
 	 * Valid replies:
 	 *   fuse_reply_buf
+	 *   fuse_reply_iov
 	 *   fuse_reply_err
 	 *
 	 * @param req request handle
--- include/fuse_opt.h
+++ include/fuse_opt.h
@@ -100,7 +100,7 @@
  * Last option.	 An array of 'struct fuse_opt' must end with a NULL
  * template value
  */
-#define FUSE_OPT_END { .templ = NULL }
+#define FUSE_OPT_END { NULL, 0, 0 }
 
 /**
  * Argument list
--- lib/Makefile.am
+++ lib/Makefile.am
@@ -35,7 +35,7 @@
 	$(iconv_source)		\
 	$(mount_source)
 
-libfuse_la_LDFLAGS = @libfuse_libs@ -version-number 2:8:3 \
+libfuse_la_LDFLAGS = @libfuse_libs@ -version-number 2:8:4 \
 	-Wl,--version-script,$(srcdir)/fuse_versionscript
 
 libulockmgr_la_SOURCES = ulockmgr.c
--- lib/Makefile.in
+++ lib/Makefile.in
@@ -261,7 +261,7 @@
 	$(iconv_source)		\
 	$(mount_source)
 
-libfuse_la_LDFLAGS = @libfuse_libs@ -version-number 2:8:3 \
+libfuse_la_LDFLAGS = @libfuse_libs@ -version-number 2:8:4 \
 	-Wl,--version-script,$(srcdir)/fuse_versionscript
 
 libulockmgr_la_SOURCES = ulockmgr.c
--- util/fusermount.c
+++ util/fusermount.c
@@ -41,8 +41,8 @@
 #ifndef MS_REC
 #define MS_REC 16384
 #endif
-#ifndef MS_SLAVE
-#define MS_SLAVE (1<<19)
+#ifndef MS_PRIVATE
+#define MS_PRIVATE (1<<18)
 #endif
 
 static const char *progname;
@@ -200,15 +200,16 @@
  * killed for any reason, mounts are automatically cleaned up.
  *
  * First make sure nothing is propagated back into the parent
- * namespace by marking all mounts "slave".
+ * namespace by marking all mounts "private".
  *
  * Then bind mount parent onto a stable base where the user can't move
- * it around.  Use "/tmp", since it will almost certainly exist, but
- * anything similar would do as well.
+ * it around.
  *
  * Finally check /proc/mounts for an entry matching the requested
  * mountpoint.  If it's found then we are OK, and the user can't move
- * it around within the parent directory as rename() will return EBUSY.
+ * it around within the parent directory as rename() will return
+ * EBUSY.  Be careful to ignore any mounts that existed before the
+ * bind.
  */
 static int check_is_mount_child(void *p)
 {
@@ -220,21 +221,27 @@
 	int found;
 	FILE *fp;
 	struct mntent *entp;
+	int count;
 
-	res = mount("", "/", "", MS_SLAVE | MS_REC, NULL);
+	res = mount("", "/", "", MS_PRIVATE | MS_REC, NULL);
 	if (res == -1) {
-		fprintf(stderr, "%s: failed to mark mounts slave: %s\n",
+		fprintf(stderr, "%s: failed to mark mounts private: %s\n",
 			progname, strerror(errno));
 		return 1;
 	}
 
-	res = mount(".", "/tmp", "", MS_BIND | MS_REC, NULL);
-	if (res == -1) {
-		fprintf(stderr, "%s: failed to bind parent to /tmp: %s\n",
-			progname, strerror(errno));
+	fp = setmntent(procmounts, "r");
+	if (fp == NULL) {
+		fprintf(stderr, "%s: failed to open %s: %s\n", progname,
+			procmounts, strerror(errno));
 		return 1;
 	}
 
+	count = 0;
+	while ((entp = getmntent(fp)) != NULL)
+		count++;
+	endmntent(fp);
+
 	fp = setmntent(procmounts, "r");
 	if (fp == NULL) {
 		fprintf(stderr, "%s: failed to open %s: %s\n", progname,
@@ -242,10 +249,21 @@
 		return 1;
 	}
 
+	res = mount(".", "/", "", MS_BIND | MS_REC, NULL);
+	if (res == -1) {
+		fprintf(stderr, "%s: failed to bind parent to /: %s\n",
+			progname, strerror(errno));
+		return 1;
+	}
+
 	found = 0;
 	while ((entp = getmntent(fp)) != NULL) {
-		if (strncmp(entp->mnt_dir, "/tmp/", 5) == 0 &&
-		    strcmp(entp->mnt_dir + 5, last) == 0) {
+		if (count > 0) {
+			count--;
+			continue;
+		}
+		if (entp->mnt_dir[0] == '/' &&
+		    strcmp(entp->mnt_dir + 1, last) == 0) {
 			found = 1;
 			break;
 		}
@@ -262,9 +280,8 @@
 
 static pid_t clone_newns(void *a)
 {
-	long long buf[16384];
-	size_t stacksize = sizeof(buf) / 2;
-	char *stack = ((char *) buf) + stacksize;
+	char buf[131072];
+	char *stack = buf + (sizeof(buf) / 2 - ((size_t) buf & 15));
 
 #ifdef __ia64__
 	extern int __clone2(int (*fn)(void *),
@@ -272,8 +289,8 @@
 			    int flags, void *arg, pid_t *ptid,
 			    void *tls, pid_t *ctid);
 
-	return __clone2(check_is_mount_child, stack, stacksize, CLONE_NEWNS, a,
-			NULL, NULL, NULL);
+	return __clone2(check_is_mount_child, stack, sizeof(buf) / 2,
+			CLONE_NEWNS, a, NULL, NULL, NULL);
 #else
 	return clone(check_is_mount_child, stack, CLONE_NEWNS, a);
 #endif

++++++ fuse.yaml
--- fuse.yaml
+++ fuse.yaml
@@ -1,6 +1,6 @@
 Name: fuse
 Summary: File System in Userspace (FUSE) utilities
-Version: 2.8.3
+Version: 2.8.4
 Release: 1
 Group: System/Base
 License: LGPLv2+
@@ -8,8 +8,8 @@
 Sources:
     - http://downloads.sourceforge.net/%{name}/%{name}-%{version}.tar.gz
 ExtraSources:
-    - 99-fuse.nodes;%{_sysconfdir}/udev/makedev.d
-    - z-fuse;%{_sysconfdir}/makedev.d
+    - 99-fuse.nodes;/lib/udev/makedev.d
+    - z-fuse;/etc/makedev.d
 Patches:
     - fuse-udev_rules.patch
     - fuse-openfix.patch



More information about the MeeGo-commits mailing list