diff options
author | root <root@rshg054.dnsready.net> | 2013-05-31 01:57:14 -0700 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2013-05-31 01:57:14 -0700 |
commit | 94a3b302f520438e919ef8706ce9cf42ad7c2e11 (patch) | |
tree | 7fa5b120c4fb8ccd67c09d5096bd7e1dc7d35b1c /core/util-linux | |
parent | 76ee9007095484a113d1856786b81e2d2fae8202 (diff) |
Fri May 31 01:56:04 PDT 2013
Diffstat (limited to 'core/util-linux')
4 files changed, 6 insertions, 268 deletions
diff --git a/core/util-linux/0001-lib-loopdev-fix-loopcxt_check_size-to-work-with-blkd.patch b/core/util-linux/0001-lib-loopdev-fix-loopcxt_check_size-to-work-with-blkd.patch deleted file mode 100644 index 26da877ef..000000000 --- a/core/util-linux/0001-lib-loopdev-fix-loopcxt_check_size-to-work-with-blkd.patch +++ /dev/null @@ -1,57 +0,0 @@ -From e3b6cb87e0ba1304fa07ec316784de1c6243b28e Mon Sep 17 00:00:00 2001 -From: Karel Zak <kzak@redhat.com> -Date: Mon, 13 May 2013 10:54:41 +0200 -Subject: [PATCH] lib/loopdev: fix loopcxt_check_size() to work with blkdevs - -The loopcxt_check_size() is workaround for kernels < v3.9, kernel has -been fixed by commit 541c742a7559eb65f0e36d3e2338c2ca532a3e61. - -The function sets loopdev size according to backing file size. The -problem is that the backing file could be a block device where -stat.st_size is zero, so we have to use blkdev_get_size() for block -devices. - -Addresses: https://bugs.archlinux.org/task/35193 -Reported-by: Dave Reisner <d@falconindy.com> -Signed-off-by: Karel Zak <kzak@redhat.com> ---- - lib/loopdev.c | 16 +++++++++++++++- - 1 file changed, 15 insertions(+), 1 deletion(-) - -diff --git a/lib/loopdev.c b/lib/loopdev.c -index c35e306..3b65b5d 100644 ---- a/lib/loopdev.c -+++ b/lib/loopdev.c -@@ -1097,7 +1097,17 @@ static int loopcxt_check_size(struct loopdev_cxt *lc, int file_fd) - if (fstat(file_fd, &st)) - return -errno; - -- expected_size = st.st_size; -+ if (S_ISBLK(st.st_mode)) { -+ if (blkdev_get_size(file_fd, -+ (unsigned long long *) &expected_size)) -+ return -errno; -+ } else -+ expected_size = st.st_size; -+ -+ if (expected_size == 0 || expected_size <= lc->info.lo_offset) { -+ DBG(lc, loopdev_debug("failed to determine expected size")); -+ return 0; /* ignore this error */ -+ } - - if (lc->info.lo_offset > 0) - expected_size -= lc->info.lo_offset; -@@ -1113,6 +1123,10 @@ static int loopcxt_check_size(struct loopdev_cxt *lc, int file_fd) - return -errno; - - if (expected_size != size) { -+ DBG(lc, loopdev_debug("warning: loopdev and expected " -+ "size dismatch (%ju/%ju)", -+ size, expected_size)); -+ - if (loopcxt_set_capacity(lc)) { - /* ioctl not available */ - if (errno == ENOTTY || errno == EINVAL) --- -1.8.2.3 - diff --git a/core/util-linux/0001-libfdisk-do-not-use-va_list-in-the-Ask-API.patch b/core/util-linux/0001-libfdisk-do-not-use-va_list-in-the-Ask-API.patch deleted file mode 100644 index 86bb6e572..000000000 --- a/core/util-linux/0001-libfdisk-do-not-use-va_list-in-the-Ask-API.patch +++ /dev/null @@ -1,163 +0,0 @@ -From 4fb18cde32a6cb672090762c785d89a6ed02ef57 Mon Sep 17 00:00:00 2001 -From: Karel Zak <kzak@redhat.com> -Date: Thu, 9 May 2013 13:06:02 +0200 -Subject: [PATCH] libfdisk: do not use va_list in the Ask API - - # fdisk /dev/sda - Welcome to fdisk (util-linux 2.23). - - [...] - - Command (m for help): a - Segmentation fault (core dumped) - -It's too fragile, the va_list implementation is architecture specific -and it seems we need such thing in libfdisk at all. - -Reported-by: "Gabor Z. Papp" <gzp@papp.hu> -Signed-off-by: Karel Zak <kzak@redhat.com> ---- - fdisks/fdisk-ask.c | 13 +++---------- - libfdisk/src/ask.c | 35 +++++++++-------------------------- - libfdisk/src/fdiskP.h | 2 -- - libfdisk/src/libfdisk.h | 2 -- - 4 files changed, 12 insertions(+), 40 deletions(-) - -diff --git a/fdisks/fdisk-ask.c b/fdisks/fdisk-ask.c -index 7495d85..61dc0c2 100644 ---- a/fdisks/fdisk-ask.c -+++ b/fdisks/fdisk-ask.c -@@ -167,7 +167,6 @@ static int ask_offset(struct fdisk_context *cxt, - int ask_callback(struct fdisk_context *cxt, struct fdisk_ask *ask, - void *data __attribute__((__unused__))) - { -- va_list ap; - int rc = 0; - char buf[BUFSIZ]; - -@@ -180,23 +179,17 @@ int ask_callback(struct fdisk_context *cxt, struct fdisk_ask *ask, - case FDISK_ASKTYPE_OFFSET: - return ask_offset(cxt, ask, buf, sizeof(buf)); - case FDISK_ASKTYPE_INFO: -- fdisk_ask_print_get_va(ask, ap); -- vfprintf(stdout, fdisk_ask_print_get_mesg(ask), ap); -+ fputs(fdisk_ask_print_get_mesg(ask), stdout); - fputc('\n', stdout); -- va_end(ap); - break; - case FDISK_ASKTYPE_WARNX: -- fdisk_ask_print_get_va(ask, ap); -- vfprintf(stderr, fdisk_ask_print_get_mesg(ask), ap); -+ fputs(fdisk_ask_print_get_mesg(ask), stderr); - fputc('\n', stderr); -- va_end(ap); - break; - case FDISK_ASKTYPE_WARN: -- fdisk_ask_print_get_va(ask, ap); -- vfprintf(stderr, fdisk_ask_print_get_mesg(ask), ap); -+ fputs(fdisk_ask_print_get_mesg(ask), stderr); - errno = fdisk_ask_print_get_errno(ask); - fprintf(stderr, ": %m\n"); -- va_end(ap); - break; - case FDISK_ASKTYPE_YESNO: - fputc('\n', stdout); -diff --git a/libfdisk/src/ask.c b/libfdisk/src/ask.c -index d2325d5..cdb4d01 100644 ---- a/libfdisk/src/ask.c -+++ b/libfdisk/src/ask.c -@@ -18,11 +18,6 @@ void fdisk_reset_ask(struct fdisk_ask *ask) - case FDISK_ASKTYPE_NUMBER: - free(ask->data.num.range); - break; -- case FDISK_ASKTYPE_WARNX: -- case FDISK_ASKTYPE_WARN: -- if (ask->data.print.has_va) -- va_end(ask->data.print.va); -- break; - default: - break; - } -@@ -452,44 +447,32 @@ int fdisk_ask_print_set_mesg(struct fdisk_ask *ask, const char *mesg) - return 0; - } - --/* caller has to call va_end(ap) */ --int fdisk_ask_print_get_va(struct fdisk_ask *ask, va_list ap) --{ -- assert(ask); -- assert(is_print_ask(ask)); -- va_copy(ap, ask->data.print.va); -- return 0; --} -- --/* note that fdisk_free_ask() calls va_end() to free the private va list. */ --int fdisk_ask_print_set_va(struct fdisk_ask *ask, va_list ap) --{ -- assert(ask); -- va_copy(ask->data.print.va, ap); -- ask->data.print.has_va = 1; -- return 0; --} -- - static int do_vprint(struct fdisk_context *cxt, int errnum, int type, - const char *fmt, va_list va) - { - struct fdisk_ask *ask; - int rc; -+ char *mesg; - - assert(cxt); - -+ if (vasprintf(&mesg, fmt, va) < 0) -+ return -ENOMEM; -+ - ask = fdisk_new_ask(); -- if (!ask) -+ if (!ask) { -+ free(mesg); - return -ENOMEM; -+ } - - fdisk_ask_set_type(ask, type); -- fdisk_ask_print_set_mesg(ask, fmt); -- fdisk_ask_print_set_va(ask, va); -+ fdisk_ask_print_set_mesg(ask, mesg); - if (errnum >= 0) - fdisk_ask_print_set_errno(ask, errnum); - rc = fdisk_do_ask(cxt, ask); - - fdisk_free_ask(ask); -+ free(mesg); - return rc; - } - -diff --git a/libfdisk/src/fdiskP.h b/libfdisk/src/fdiskP.h -index 570108c..ce42860 100644 ---- a/libfdisk/src/fdiskP.h -+++ b/libfdisk/src/fdiskP.h -@@ -231,8 +231,6 @@ struct fdisk_ask { - /* FDISK_ASKTYPE_{WARN,WARNX,..} */ - struct ask_print { - const char *mesg; -- va_list va; -- unsigned int has_va:1; - int errnum; /* errno */ - } print; - /* FDISK_ASKTYPE_YESNO */ -diff --git a/libfdisk/src/libfdisk.h b/libfdisk/src/libfdisk.h -index 0a23236..8a44067 100644 ---- a/libfdisk/src/libfdisk.h -+++ b/libfdisk/src/libfdisk.h -@@ -182,8 +182,6 @@ extern int fdisk_ask_print_get_errno(struct fdisk_ask *ask); - extern int fdisk_ask_print_set_errno(struct fdisk_ask *ask, int errnum); - extern const char *fdisk_ask_print_get_mesg(struct fdisk_ask *ask); - extern int fdisk_ask_print_set_mesg(struct fdisk_ask *ask, const char *mesg); --extern int fdisk_ask_print_get_va(struct fdisk_ask *ask, va_list ap); --extern int fdisk_ask_print_set_va(struct fdisk_ask *ask, va_list ap); - - #ifdef __cplusplus - } --- -1.8.2.3 - diff --git a/core/util-linux/0001-losetup-use-warn_size-for-regular-files-only.patch b/core/util-linux/0001-losetup-use-warn_size-for-regular-files-only.patch deleted file mode 100644 index afc875719..000000000 --- a/core/util-linux/0001-losetup-use-warn_size-for-regular-files-only.patch +++ /dev/null @@ -1,26 +0,0 @@ -From b048b8af3a5568c90f6e0c2d56f6cb399dedb0d1 Mon Sep 17 00:00:00 2001 -From: Karel Zak <kzak@redhat.com> -Date: Mon, 13 May 2013 11:00:47 +0200 -Subject: [PATCH] losetup: use warn_size() for regular files only - -Signed-off-by: Karel Zak <kzak@redhat.com> ---- - sys-utils/losetup.c | 2 +- - 1 file changed, 1 insertion(+), 1 deletion(-) - -diff --git a/sys-utils/losetup.c b/sys-utils/losetup.c -index ccf120e..b44c9e5 100644 ---- a/sys-utils/losetup.c -+++ b/sys-utils/losetup.c -@@ -380,7 +380,7 @@ static void warn_size(const char *filename, uint64_t size) - struct stat st; - - if (!size) { -- if (stat(filename, &st)) -+ if (stat(filename, &st) || S_ISBLK(st.st_mode)) - return; - size = st.st_size; - } --- -1.8.2.3 - diff --git a/core/util-linux/PKGBUILD b/core/util-linux/PKGBUILD index c5bacea39..78e90224d 100644 --- a/core/util-linux/PKGBUILD +++ b/core/util-linux/PKGBUILD @@ -1,10 +1,10 @@ -# $Id: PKGBUILD 186531 2013-05-28 12:25:50Z dreisner $ +# $Id: PKGBUILD 186677 2013-05-30 12:45:22Z tomegun $ # Maintainer: Tom Gundersen <teg@jklm.no> # Contributor: judd <jvinet@zeroflux.org> pkgname=util-linux -pkgver=2.23 -pkgrel=3 +pkgver=2.23.1 +pkgrel=1 pkgdesc="Miscellaneous system utilities for Linux" url="http://www.kernel.org/pub/linux/utils/util-linux/" arch=('i686' 'x86_64') @@ -17,9 +17,6 @@ provides=("util-linux-ng=$pkgver" 'eject') license=('GPL2') options=('!libtool') source=("ftp://ftp.kernel.org/pub/linux/utils/$pkgname/v2.23/$pkgname-$pkgver.tar.xz" - 0001-lib-loopdev-fix-loopcxt_check_size-to-work-with-blkd.patch - 0001-losetup-use-warn_size-for-regular-files-only.patch - 0001-libfdisk-do-not-use-va_list-in-the-Ask-API.patch uuidd.tmpfiles pam-login pam-common @@ -30,25 +27,14 @@ backup=(etc/pam.d/chfn etc/pam.d/su etc/pam.d/su-l) install=util-linux.install -md5sums=('cf5e9bb402371beaaffc3a5f276d5783' - 'fdb627fbb3d6a42e0b36978649b4c064' - 'de0ba450945a60f27c5df86e64523d57' - 'df949d15dbff01fe9fcda5d999a35b15' +md5sums=('33ba55ce82f8e3b8d7a38fac0f62779a' 'a39554bfd65cccfd8254bb46922f4a67' '4368b3f98abd8a32662e094c54e7f9b1' 'a31374fef2cba0ca34dfc7078e2969e4' 'fa85e5cce5d723275b14365ba71a8aad') -prepare() { - cd "$pkgname-$pkgver" - - patch -Np1 <"$srcdir"/0001-lib-loopdev-fix-loopcxt_check_size-to-work-with-blkd.patch - patch -Np1 <"$srcdir"/0001-losetup-use-warn_size-for-regular-files-only.patch - patch -Np1 <"$srcdir"/0001-libfdisk-do-not-use-va_list-in-the-Ask-API.patch -} - build() { - cd "${pkgname}-${pkgver}" + cd "$pkgname-$pkgver" ./configure --prefix=/usr \ --libdir=/usr/lib \ @@ -75,12 +61,10 @@ build() { #} package() { - cd "${srcdir}/${pkgname}-${pkgver}" + cd "$pkgname-$pkgver" make DESTDIR="${pkgdir}" install - cd "${pkgdir}" - # setuid chfn and chsh chmod 4755 "$pkgdir"/usr/bin/{newgrp,ch{sh,fn}} |