summaryrefslogtreecommitdiff
path: root/core
diff options
context:
space:
mode:
Diffstat (limited to 'core')
-rw-r--r--core/kmod/0001-depmod-fix-hash-lookup-by-relpath-instead-of-uncrelp.patch43
-rw-r--r--core/kmod/0002-depmod-fix-asserting-mod-kmod-NULL.patch31
-rw-r--r--core/kmod/PKGBUILD17
-rw-r--r--core/util-linux/PKGBUILD6
-rw-r--r--core/util-linux/util-linux.install3
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
}