diff options
author | root <root@rshg054.dnsready.net> | 2012-11-18 02:17:27 -0800 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2012-11-18 02:17:27 -0800 |
commit | ab63d8d49f68847a68c2ba0014bf0d3338cb3df6 (patch) | |
tree | 7f0d9cf1b60a9b65a36c3f58ab2164c62cb378f1 /core | |
parent | 071ecd58a9b69020ec170e7f89009a603e885371 (diff) |
Sun Nov 18 02:15:18 PST 2012
Diffstat (limited to 'core')
-rw-r--r-- | core/kmod/0001-depmod-fix-hash-lookup-by-relpath-instead-of-uncrelp.patch | 43 | ||||
-rw-r--r-- | core/kmod/0002-depmod-fix-asserting-mod-kmod-NULL.patch | 31 | ||||
-rw-r--r-- | core/kmod/PKGBUILD | 17 | ||||
-rw-r--r-- | core/util-linux/PKGBUILD | 6 | ||||
-rw-r--r-- | core/util-linux/util-linux.install | 3 |
5 files changed, 92 insertions, 8 deletions
diff --git a/core/kmod/0001-depmod-fix-hash-lookup-by-relpath-instead-of-uncrelp.patch b/core/kmod/0001-depmod-fix-hash-lookup-by-relpath-instead-of-uncrelp.patch new file mode 100644 index 000000000..ae5757016 --- /dev/null +++ b/core/kmod/0001-depmod-fix-hash-lookup-by-relpath-instead-of-uncrelp.patch @@ -0,0 +1,43 @@ +From 06294621a944e4611e15ce8201df80870e052e7d Mon Sep 17 00:00:00 2001 +From: Lucas De Marchi <lucas.demarchi@profusion.mobi> +Date: Fri, 16 Nov 2012 11:35:30 -0200 +Subject: [PATCH 1/2] depmod: fix hash lookup by relpath instead of uncrelpath + +We index modules in depmod by it's uncompressed relative path, not +relative path. We didn't notice this bug before since this function is +only triggered if we release a module to be replaced by one of higher +priority. + +Also fix a leftover log message referring to relpath instead of +uncrelpath. +--- + tools/depmod.c | 6 +++--- + 1 file changed, 3 insertions(+), 3 deletions(-) + +diff --git a/tools/depmod.c b/tools/depmod.c +index cc9346f..aafe66b 100644 +--- a/tools/depmod.c ++++ b/tools/depmod.c +@@ -1114,7 +1114,7 @@ static int depmod_module_add(struct depmod *depmod, struct kmod_module *kmod) + mod->uncrelpath, mod); + if (err < 0) { + ERR("hash_add_unique %s: %s\n", +- mod->relpath, strerror(-err)); ++ mod->uncrelpath, strerror(-err)); + hash_del(depmod->modules_by_name, mod->modname); + goto fail; + } +@@ -1134,8 +1134,8 @@ static int depmod_module_del(struct depmod *depmod, struct mod *mod) + { + DBG("del %p kmod=%p, path=%s\n", mod, mod->kmod, mod->path); + +- if (mod->relpath != NULL) +- hash_del(depmod->modules_by_uncrelpath, mod->relpath); ++ if (mod->uncrelpath != NULL) ++ hash_del(depmod->modules_by_uncrelpath, mod->uncrelpath); + + hash_del(depmod->modules_by_name, mod->modname); + +-- +1.8.0 + diff --git a/core/kmod/0002-depmod-fix-asserting-mod-kmod-NULL.patch b/core/kmod/0002-depmod-fix-asserting-mod-kmod-NULL.patch new file mode 100644 index 000000000..b704083dc --- /dev/null +++ b/core/kmod/0002-depmod-fix-asserting-mod-kmod-NULL.patch @@ -0,0 +1,31 @@ +From 02c64df3c2b33880b18d3f4aba9fa8e48e5ca904 Mon Sep 17 00:00:00 2001 +From: Lucas De Marchi <lucas.demarchi@profusion.mobi> +Date: Fri, 16 Nov 2012 12:05:42 -0200 +Subject: [PATCH 2/2] depmod: fix asserting mod->kmod == NULL + +If we are replacing a lower priority module (due to its location), we +already created a kmod_module, but didn't open the file for reading its +symbols. This means mod->kmod won't be NULL, and this is just ok. Since +all the functions freeing stuff below the previous assert already takes +NULL into consideration, it's safe to just unref mod->kmod and let the +right thing happens. +--- + tools/depmod.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/tools/depmod.c b/tools/depmod.c +index aafe66b..7bbdcd3 100644 +--- a/tools/depmod.c ++++ b/tools/depmod.c +@@ -977,7 +977,7 @@ static void mod_free(struct mod *mod) + { + DBG("free %p kmod=%p, path=%s\n", mod, mod->kmod, mod->path); + array_free_array(&mod->deps); +- assert(mod->kmod == NULL); ++ kmod_module_unref(mod->kmod); + kmod_module_info_free_list(mod->info_list); + kmod_module_dependency_symbols_free_list(mod->dep_sym_list); + free(mod->uncrelpath); +-- +1.8.0 + diff --git a/core/kmod/PKGBUILD b/core/kmod/PKGBUILD index 2b4fcb644..b377d20f4 100644 --- a/core/kmod/PKGBUILD +++ b/core/kmod/PKGBUILD @@ -1,9 +1,9 @@ -# $Id: PKGBUILD 171018 2012-11-15 00:46:13Z dreisner $ +# $Id: PKGBUILD 171489 2012-11-18 03:33:34Z dreisner $ # Maintainer: Dave Reisner <dreisner@archlinux.org> pkgname=kmod pkgver=11 -pkgrel=1 +pkgrel=2 pkgdesc="Linux kernel module handling" arch=('i686' 'x86_64') url='http://git.kernel.org/?p=utils/kernel/kmod/kmod.git;a=summary' @@ -15,13 +15,23 @@ provides=('module-init-tools=3.16') conflicts=('module-init-tools') replaces=('module-init-tools') source=("ftp://ftp.kernel.org/pub/linux/utils/kernel/$pkgname/$pkgname-$pkgver.tar.xz" + "0001-depmod-fix-hash-lookup-by-relpath-instead-of-uncrelp.patch" + "0002-depmod-fix-asserting-mod-kmod-NULL.patch" "depmod-search.conf") md5sums=('607e33b0144625c2e5221e5a7df49c7a' + '239549791aeca08a56428c27c558af7f' + 'f39fc93d4be1e109ea73c6509ab171eb' 'dd62cbf62bd8f212f51ef8c43bec9a77') build() { cd "$pkgname-$pkgver" + # upstream commit 06294621a944e4611e15ce8201df80870e052e7d + patch -Np1 <"$srcdir/0001-depmod-fix-hash-lookup-by-relpath-instead-of-uncrelp.patch" + + # upstream commit 02c64df3c2b33880b18d3f4aba9fa8e48e5ca904 + patch -Np1 <"$srcdir/0002-depmod-fix-asserting-mod-kmod-NULL.patch" + ./configure \ --sysconfdir=/etc \ --enable-gtk-doc \ @@ -31,8 +41,7 @@ build() { } check() { - # testsuite is broken on 32-bit because of an unhandled EEXIST on mkdir_p - make -C "$pkgname-$pkgver" check || : + make -C "$pkgname-$pkgver" check } package() { diff --git a/core/util-linux/PKGBUILD b/core/util-linux/PKGBUILD index 83396dbb3..857bcc495 100644 --- a/core/util-linux/PKGBUILD +++ b/core/util-linux/PKGBUILD @@ -1,16 +1,16 @@ -# $Id: PKGBUILD 169791 2012-10-29 11:02:48Z tomegun $ +# $Id: PKGBUILD 171469 2012-11-17 23:02:13Z allan $ # Maintainer: Tom Gundersen <teg@jklm.no> # Contributor: judd <jvinet@zeroflux.org> pkgname=util-linux pkgver=2.22.1 -pkgrel=2 +pkgrel=3 pkgdesc="Miscellaneous system utilities for Linux" url="http://www.kernel.org/pub/linux/utils/util-linux/" arch=('i686' 'x86_64') groups=('base') depends=('pam' 'shadow' 'coreutils' 'glibc') -# makedepends=('bc') # for check() only, change this to checkdepends for pacman 4.1 +# checkdepends=('bc') conflicts=('util-linux-ng' 'eject') provides=("util-linux-ng=${pkgver}" 'eject') license=('GPL2') diff --git a/core/util-linux/util-linux.install b/core/util-linux/util-linux.install index 969a4aecf..4c0bb107c 100644 --- a/core/util-linux/util-linux.install +++ b/core/util-linux/util-linux.install @@ -2,7 +2,8 @@ post_install() { # we don't want use systemd-tmpfiles here because # the package dependency would create a circular dep. if [ ! -d run/uuidd ]; then - install -o uuidd -g uuidd -dm755 run/uuidd + # refer to uid/gid by number to avoid dependency on filesystem + install -o 68 -g 68 -dm755 run/uuidd fi } |