[arch-commits] CVS update of arch/build/base/util-linux (PKGBUILD uuid-segfault.patch)

Tobias Powalowski tpowa at archlinux.org
Sun May 20 15:50:43 UTC 2007


    Date: Sunday, May 20, 2007 @ 11:50:43
  Author: tpowa
    Path: /home/cvs-arch/arch/build/base/util-linux

   Added: uuid-segfault.patch (1.1)
Modified: PKGBUILD (1.31 -> 1.32)

'upgpkg: fixed uuid segfault'


---------------------+
 PKGBUILD            |   30 ++++++++++++++++---------
 uuid-segfault.patch |   60 ++++++++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 80 insertions(+), 10 deletions(-)


Index: arch/build/base/util-linux/PKGBUILD
diff -u arch/build/base/util-linux/PKGBUILD:1.31 arch/build/base/util-linux/PKGBUILD:1.32
--- arch/build/base/util-linux/PKGBUILD:1.31	Fri Feb  2 04:21:30 2007
+++ arch/build/base/util-linux/PKGBUILD	Sun May 20 11:50:43 2007
@@ -1,14 +1,15 @@
-# $Id: PKGBUILD,v 1.31 2007/02/02 09:21:30 jgc Exp $
+# $Id: PKGBUILD,v 1.32 2007/05/20 15:50:43 tpowa Exp $
 # Maintainer: judd <jvinet at zeroflux.org>
 pkgname=util-linux
 pkgver=2.12
-pkgrel=10
+pkgrel=12
 # util-linux has a really poor version scheme  :(
 # I'll try to handle this better when 2.13 comes around 
 _realver=2.12r
 pkgdesc="Miscellaneous system utilities for Linux"
 arch=(i686 x86_64)
 depends=('bash' 'ncurses' 'zlib' 'e2fsprogs')
+license=('GPL')
 source=(ftp://ftp.kernel.org/pub/linux/utils/util-linux/util-linux-${_realver}.tar.bz2
 	cramfs.patch cryptoloop-support.patch
 	mount-proto.patch
@@ -17,13 +18,20 @@
 	nfsmount-rollback.patch nfsv4.patch
 	util-linux-2.12r-missing_header-1.patch
 	util-linux-2.12r-missing_lseek-1.patch
-	util-linux-2.12r-syscall_fixes-1.patch)
-md5sums=('af9d9e03038481fbf79ea3ac33f116f9' '9dd90e15c2eeefb40c265fe07f580f52'\
-         'afc01fd63a4d2995c1bb79e7573a24aa' 'b1b46004424f3a218625068cd49de536'\
-         'aae81015c1eec9a947b2f370512c407e' '1bc8dff5e2a9fbf1fbd73dd595f94965'\
-         'd87e5934cd5982ce307ffb350b2a2b37' '358baa44ce7e9bf527a7d1d3fb9fe85c'\
-         '33ccc15d2e92caa6189b044f573fdcda' '5d6c86321c1ea74d7ed7cf57861da423'\
-         'e1c86c9859c242b300599cef277f03e1')
+	util-linux-2.12r-syscall_fixes-1.patch
+	uuid-segfault.patch)
+md5sums=('af9d9e03038481fbf79ea3ac33f116f9'
+         '9dd90e15c2eeefb40c265fe07f580f52'
+         'afc01fd63a4d2995c1bb79e7573a24aa'
+         'b1b46004424f3a218625068cd49de536'
+         'aae81015c1eec9a947b2f370512c407e'
+         '1bc8dff5e2a9fbf1fbd73dd595f94965'
+         'd87e5934cd5982ce307ffb350b2a2b37'
+         '358baa44ce7e9bf527a7d1d3fb9fe85c'
+         '33ccc15d2e92caa6189b044f573fdcda'
+         '5d6c86321c1ea74d7ed7cf57861da423'
+         'e1c86c9859c242b300599cef277f03e1'
+         '48bd8d99c1a0e64262d05f1198b2b056')
 
 # The cryptoloop-support.patch comes from the boys at Rock Linux
 #   (http://www.rocklinux.net/packages/util-linux.html)
@@ -46,7 +54,8 @@
   patch -Np1 -i ${startdir}/src/util-linux-2.12r-missing_header-1.patch || return 1
   patch -Np1 -i ${startdir}/src/util-linux-2.12r-missing_lseek-1.patch || return 1
   patch -Np1 -i ${startdir}/src/util-linux-2.12r-syscall_fixes-1.patch || return 1
-
+  # fix uuid segfault
+  patch -Np1 -i ${startdir}/src/uuid-segfault.patch || return 1
   sed -e 's%etc/adjtime%var/lib/hwclock/adjtime%' -i hwclock/hwclock.c 
   mkdir -p ${startdir}/pkg/var/lib/hwclock
   ./configure
@@ -54,4 +63,5 @@
   make HAVE_SLN=yes ADD_RAW=yes DESTDIR=${startdir}/pkg install
   rm -f ${startdir}/pkg/bin/kill
   rm -f ${startdir}/pkg/usr/share/man/man1/kill.1
+  rm -f ${startdir}/pkg/usr/share/man/man5/nfs.5
 }
Index: arch/build/base/util-linux/uuid-segfault.patch
diff -u /dev/null arch/build/base/util-linux/uuid-segfault.patch:1.1
--- /dev/null	Sun May 20 11:50:43 2007
+++ arch/build/base/util-linux/uuid-segfault.patch	Sun May 20 11:50:43 2007
@@ -0,0 +1,60 @@
+
+ The UUID code in the mount command is broken -- en example UUID= in the fstab
+ file is reason for SIGSEG when non-root user tries umount any device.
+ -- 03/30/2006 Karel Zak <kzak at redhat.com> 
+
+--- util-linux-2.13-pre6/mount/mount_blkid.h.uuid	2006-03-29 15:34:24.000000000 +0200
++++ util-linux-2.13-pre6/mount/mount_blkid.h	2006-03-29 15:34:57.000000000 +0200
+@@ -8,5 +8,6 @@
+ extern const char *mount_get_devname_by_uuid(const char *uuid);
+ extern const char *mount_get_devname_by_label(const char *label);
+ extern const char *mount_get_volume_label_by_spec(const char *spec);
++extern const char *mount_get_volume_uuid_by_spec(const char *spec);
+ extern const char *mount_get_devname(const char *spec);
+ extern const char *mount_get_devname_for_mounting(const char *spec);
+--- util-linux-2.13-pre6/mount/mount_blkid.c.uuid	2006-03-29 15:33:44.000000000 +0200
++++ util-linux-2.13-pre6/mount/mount_blkid.c	2006-03-29 15:34:14.000000000 +0200
+@@ -21,6 +21,11 @@
+ }
+ 
+ const char *
++mount_get_volume_uuid_by_spec(const char *spec) {
++	return blkid_get_tag_value(blkid, "UUID", spec);
++}
++
++const char *
+ mount_get_devname(const char *spec) {
+ 	return blkid_get_devname(blkid, spec, 0);
+ }
+--- util-linux-2.13-pre6/mount/fstab.c.uuid	2006-03-29 15:29:28.000000000 +0200
++++ util-linux-2.13-pre6/mount/fstab.c	2006-03-29 15:36:30.000000000 +0200
+@@ -301,23 +301,19 @@
+ static int
+ has_label(const char *device, const char *label) {
+ 	const char *devlabel;
+-	int ret;
+ 
+-	devlabel = mount_get_volume_label_by_spec(device);
+-	ret = !strcmp(label, devlabel);
+-	/* free(devlabel); */
+-	return ret;
++	if (!(devlabel = mount_get_volume_label_by_spec(device)))
++		return 0;
++	return !strcmp(label, devlabel);
+ }
+ 
+ static int
+ has_uuid(const char *device, const char *uuid){
+ 	const char *devuuid;
+-	int ret;
+ 
+-	devuuid = mount_get_devname_by_uuid(device);
+-	ret = !strcmp(uuid, devuuid);
+-	/* free(devuuid); */
+-	return ret;
++	if (!(devuuid = mount_get_volume_uuid_by_spec(device)))
++		return 0;
++	return !strcmp(uuid, devuuid);
+ }
+ 
+ /* Find the entry (SPEC,FILE) in fstab */




More information about the arch-commits mailing list