Date: Thursday, February 3, 2011 @ 15:52:35
  Author: thomas
Revision: 108823

util-linux-ng 2.18-4: Fix some issues with blkid (FS#22666), clean up PKGBUILD

Added:
  util-linux-ng/trunk/util-linux-ng-blkid.patch
Modified:
  util-linux-ng/trunk/PKGBUILD

---------------------------+
 PKGBUILD                  |   28 ++++++++----
 util-linux-ng-blkid.patch |   96 ++++++++++++++++++++++++++++++++++++++++++++
 2 files changed, 114 insertions(+), 10 deletions(-)

Modified: PKGBUILD
===================================================================
--- PKGBUILD    2011-02-03 20:51:18 UTC (rev 108822)
+++ PKGBUILD    2011-02-03 20:52:35 UTC (rev 108823)
@@ -2,7 +2,7 @@
 # Maintainer: judd <[email protected]>
 pkgname=util-linux-ng
 pkgver=2.18
-pkgrel=3
+pkgrel=4
 pkgdesc="Miscellaneous system utilities for Linux"
 url="http://userweb.kernel.org/~kzak/util-linux-ng/";
 arch=('i686' 'x86_64')
@@ -16,31 +16,39 @@
 
source=(ftp://ftp.kernel.org/pub/linux/utils/${pkgname}/v2.18/${pkgname}-${pkgver}.tar.bz2
         fix-findmnt.patch
         util-linux-ng-nilfs2.patch
-        util-linux-ng-cfdisk.patch)
+        util-linux-ng-cfdisk.patch
+        util-linux-ng-blkid.patch)
 optdepends=('perl: for chkdupexe support')
 install=util-linux-ng.install
 md5sums=('2f5f71e6af969d041d73ab778c141a77'
          '7346673932b165faadde2fa2a9c1cd3a'
          'aa1f210aa22363605363b7b14b8f7a78'
-         'e6d9309d44c258b25a7fb0b70f94f94e')
+         'e6d9309d44c258b25a7fb0b70f94f94e'
+         '0e7f8aa87e227fd176cb54435a94c8c5')
 
 build() {
   cd "${srcdir}/${pkgname}-${pkgver}"
   # hardware clock
-  sed -e 's%etc/adjtime%var/lib/hwclock/adjtime%' -i hwclock/hwclock.c || 
return 1
-  mkdir -p "${pkgdir}/var/lib/hwclock" || return 1
+  sed -e 's%etc/adjtime%var/lib/hwclock/adjtime%' -i hwclock/hwclock.c
   # fix findmnt
   patch -p1 -i "${srcdir}/fix-findmnt.patch"
   # add nilfs2 support, included in next upstream release
   patch -Np1 -i "${srcdir}/util-linux-ng-nilfs2.patch"
   # fix cfdisk partition changing, included in next upstream release
   patch -Np1 -i "${srcdir}/util-linux-ng-cfdisk.patch"
+  # fix some issues with blkid low-level probing that affect current 
initscripts
+  patch -Np1 -i "${srcdir}/util-linux-ng-blkid.patch"
 
-  autoreconf || return 1
-  automake || return 1
-  ./configure --enable-arch --enable-write --enable-raw --disable-wall 
--enable-rdev --enable-partx || return 1
-  make HAVE_SLN=yes ADD_RAW=yes || return 1
-  make HAVE_SLN=yes ADD_RAW=yes DESTDIR="${pkgdir}" install || return 1
+  autoreconf
+  automake
+  ./configure --enable-arch --enable-write --enable-raw --disable-wall 
--enable-rdev --enable-partx
+  make HAVE_SLN=yes ADD_RAW=yes
+}
+
+package() {
+  cd "${srcdir}/${pkgname}-${pkgver}"
+  mkdir -p "${pkgdir}/var/lib/hwclock"
+  make HAVE_SLN=yes ADD_RAW=yes DESTDIR="${pkgdir}" install
   # remove files
   rm -f "${pkgdir}/bin/kill"
   rm -f "${pkgdir}/usr/share/man/man1/kill.1"

Added: util-linux-ng-blkid.patch
===================================================================
--- util-linux-ng-blkid.patch                           (rev 0)
+++ util-linux-ng-blkid.patch   2011-02-03 20:52:35 UTC (rev 108823)
@@ -0,0 +1,96 @@
+diff --git a/misc-utils/blkid.8 b/misc-utils/blkid.8
+index 8968bb2..b2c43a6 100644
+--- a/misc-utils/blkid.8
++++ b/misc-utils/blkid.8
+@@ -160,7 +160,12 @@ print the device name only, this output format is always 
enabled for \fB-L\fR
+ and \fB-U\fR options
+ .TP
+ .B udev
+-print key="value" pairs for easy import into the udev environment
++print key="value" pairs for easy import into the udev environment. The keys 
are
++prefixed by ID_FS_ or ID_PART_ prefixes.
++
++The udev output returns ID_FS_AMBIVALENT tag if more superblocks are detected,
++and ID_PART_ENTRY_* tags are always returned for all partitions including 
empty
++partitions.
+ .TP
+ .B export
+ print key=value pairs for easy import into the environment.  This output 
format
+@@ -173,6 +178,9 @@ used together with \fB-i\fR option.
+ .TP
+ .BI \-p
+ Switch to low-level superblock probing mode (bypass cache).
++
++Note that low-level probing also returns information about partition table 
type
++(PTTYPE tag) and partitions (PART_ENTRY_* tags).
+ .TP
+ .BI \-s " tag"
+ For each (specified) device, show only the tags that match
+@@ -245,9 +253,15 @@ appear in
+ are shown, if they are recognized.
+ .SH "RETURN CODE"
+ If the specified token was found, or if any tags were shown from (specified)
+-devices, 0 is returned.  If the specified token was not found, or no
+-(specified) devices could be identified, an exit code of 2 is returned.
++devices, 0 is returned.
++
++If the specified token was not found, or no (specified) devices could be
++identified an exit code of 2 is returned.
++
+ For usage or other errors, an exit code of 4 is returned.
++
++If the ambivalent low-level probing result was detected an exit code of 8 is
++returned.
+ .SH AUTHOR
+ .B blkid
+ was written by Andreas Dilger for libblkid and improved by Theodore Ts'o
+diff --git a/misc-utils/blkid.c b/misc-utils/blkid.c
+index f94df06..343d05d 100644
+--- a/misc-utils/blkid.c
++++ b/misc-utils/blkid.c
+@@ -513,13 +513,28 @@ static int lowprobe_device(blkid_probe pr, const char 
*devname,
+       if (rc < 0)
+               goto done;
+ 
+-      nvals = blkid_probe_numof_values(pr);
++      if (!rc)
++              nvals = blkid_probe_numof_values(pr);
++
++      if (nvals &&
++          !(output & OUTPUT_UDEV_LIST) &&
++          !blkid_probe_has_value(pr, "TYPE") &&
++          !blkid_probe_has_value(pr, "PTTYPE"))
++              /*
++               * Ignore probing result if there is not any filesystem or
++               * partition table on the device and udev output is not
++               * requested.
++               *
++               * The udev db stores information about partitions, so
++               * PART_ENTRY_* values are alway important.
++               */
++              nvals = 0;
+ 
+       if (nvals && !first && output & (OUTPUT_UDEV_LIST | OUTPUT_EXPORT_LIST))
+               /* add extra line between output from devices */
+               fputc('\n', stdout);
+ 
+-      if (output & OUTPUT_DEVICE_ONLY) {
++      if (nvals && (output & OUTPUT_DEVICE_ONLY)) {
+               printf("%s\n", devname);
+               goto done;
+       }
+@@ -550,7 +565,13 @@ done:
+                               devname);
+       }
+       close(fd);
+-      return !nvals ? 2 : 0;
++
++      if (rc == -2)
++              return 8;       /* ambivalent probing result */
++      if (!nvals)
++              return 2;       /* nothing detected */
++
++      return 0;               /* sucess */
+ }
+ 
+ /* converts comma separated list to BLKID_USAGE_* mask */

Reply via email to