Date: Friday, November 16, 2012 @ 21:23:45 Author: dreisner Revision: 171300
archrelease: copy trunk to testing-i686, testing-x86_64 Added: kmod/repos/testing-i686/ kmod/repos/testing-i686/0001-depmod-fix-hash-lookup-by-relpath-instead-of-uncrelp.patch (from rev 171299, kmod/trunk/0001-depmod-fix-hash-lookup-by-relpath-instead-of-uncrelp.patch) kmod/repos/testing-i686/0002-depmod-fix-asserting-mod-kmod-NULL.patch (from rev 171299, kmod/trunk/0002-depmod-fix-asserting-mod-kmod-NULL.patch) kmod/repos/testing-i686/PKGBUILD (from rev 171299, kmod/trunk/PKGBUILD) kmod/repos/testing-i686/depmod-search.conf (from rev 171299, kmod/trunk/depmod-search.conf) kmod/repos/testing-x86_64/ kmod/repos/testing-x86_64/0001-depmod-fix-hash-lookup-by-relpath-instead-of-uncrelp.patch (from rev 171299, kmod/trunk/0001-depmod-fix-hash-lookup-by-relpath-instead-of-uncrelp.patch) kmod/repos/testing-x86_64/0002-depmod-fix-asserting-mod-kmod-NULL.patch (from rev 171299, kmod/trunk/0002-depmod-fix-asserting-mod-kmod-NULL.patch) kmod/repos/testing-x86_64/PKGBUILD (from rev 171299, kmod/trunk/PKGBUILD) kmod/repos/testing-x86_64/depmod-search.conf (from rev 171299, kmod/trunk/depmod-search.conf) --------------------------------------------------------------------------------+ testing-i686/0001-depmod-fix-hash-lookup-by-relpath-instead-of-uncrelp.patch | 43 ++++++ testing-i686/0002-depmod-fix-asserting-mod-kmod-NULL.patch | 31 ++++ testing-i686/PKGBUILD | 65 ++++++++++ testing-i686/depmod-search.conf | 5 testing-x86_64/0001-depmod-fix-hash-lookup-by-relpath-instead-of-uncrelp.patch | 43 ++++++ testing-x86_64/0002-depmod-fix-asserting-mod-kmod-NULL.patch | 31 ++++ testing-x86_64/PKGBUILD | 65 ++++++++++ testing-x86_64/depmod-search.conf | 5 8 files changed, 288 insertions(+) Copied: kmod/repos/testing-i686/0001-depmod-fix-hash-lookup-by-relpath-instead-of-uncrelp.patch (from rev 171299, kmod/trunk/0001-depmod-fix-hash-lookup-by-relpath-instead-of-uncrelp.patch) =================================================================== --- testing-i686/0001-depmod-fix-hash-lookup-by-relpath-instead-of-uncrelp.patch (rev 0) +++ testing-i686/0001-depmod-fix-hash-lookup-by-relpath-instead-of-uncrelp.patch 2012-11-17 02:23:45 UTC (rev 171300) @@ -0,0 +1,43 @@ +From 06294621a944e4611e15ce8201df80870e052e7d Mon Sep 17 00:00:00 2001 +From: Lucas De Marchi <lucas.demar...@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 + Copied: kmod/repos/testing-i686/0002-depmod-fix-asserting-mod-kmod-NULL.patch (from rev 171299, kmod/trunk/0002-depmod-fix-asserting-mod-kmod-NULL.patch) =================================================================== --- testing-i686/0002-depmod-fix-asserting-mod-kmod-NULL.patch (rev 0) +++ testing-i686/0002-depmod-fix-asserting-mod-kmod-NULL.patch 2012-11-17 02:23:45 UTC (rev 171300) @@ -0,0 +1,31 @@ +From 02c64df3c2b33880b18d3f4aba9fa8e48e5ca904 Mon Sep 17 00:00:00 2001 +From: Lucas De Marchi <lucas.demar...@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 + Copied: kmod/repos/testing-i686/PKGBUILD (from rev 171299, kmod/trunk/PKGBUILD) =================================================================== --- testing-i686/PKGBUILD (rev 0) +++ testing-i686/PKGBUILD 2012-11-17 02:23:45 UTC (rev 171300) @@ -0,0 +1,65 @@ +# $Id$ +# Maintainer: Dave Reisner <dreis...@archlinux.org> + +pkgname=kmod +pkgver=11 +pkgrel=2 +pkgdesc="Linux kernel module handling" +arch=('i686' 'x86_64') +url='http://git.kernel.org/?p=utils/kernel/kmod/kmod.git;a=summary' +license=('GPL2') +depends=('glibc' 'zlib') +makedepends=('gtk-doc') +options=('!libtool') +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 \ + --with-zlib + + make +} + +check() { + make -C "$pkgname-$pkgver" check +} + +package() { + make -C "$pkgname-$pkgver" DESTDIR="$pkgdir" install + + # extra directories + install -dm755 "$pkgdir"/{etc,usr/lib}/{depmod,modprobe}.d "$pkgdir/sbin" + + # add symlinks to kmod + ln -s ../usr/bin/kmod "$pkgdir/sbin/modprobe" + ln -s ../usr/bin/kmod "$pkgdir/sbin/depmod" + + for tool in {ins,ls,rm}mod modinfo; do + ln -s kmod "$pkgdir/usr/bin/$tool" + done + + # install depmod.d file for search/ dir + install -Dm644 "$srcdir/depmod-search.conf" "$pkgdir/usr/lib/depmod.d/search.conf" +} + +# vim: ft=sh syn=sh et Copied: kmod/repos/testing-i686/depmod-search.conf (from rev 171299, kmod/trunk/depmod-search.conf) =================================================================== --- testing-i686/depmod-search.conf (rev 0) +++ testing-i686/depmod-search.conf 2012-11-17 02:23:45 UTC (rev 171300) @@ -0,0 +1,5 @@ +# +# /usr/lib/depmod.d/search.conf +# + +search updates extramodules built-in Copied: kmod/repos/testing-x86_64/0001-depmod-fix-hash-lookup-by-relpath-instead-of-uncrelp.patch (from rev 171299, kmod/trunk/0001-depmod-fix-hash-lookup-by-relpath-instead-of-uncrelp.patch) =================================================================== --- testing-x86_64/0001-depmod-fix-hash-lookup-by-relpath-instead-of-uncrelp.patch (rev 0) +++ testing-x86_64/0001-depmod-fix-hash-lookup-by-relpath-instead-of-uncrelp.patch 2012-11-17 02:23:45 UTC (rev 171300) @@ -0,0 +1,43 @@ +From 06294621a944e4611e15ce8201df80870e052e7d Mon Sep 17 00:00:00 2001 +From: Lucas De Marchi <lucas.demar...@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 + Copied: kmod/repos/testing-x86_64/0002-depmod-fix-asserting-mod-kmod-NULL.patch (from rev 171299, kmod/trunk/0002-depmod-fix-asserting-mod-kmod-NULL.patch) =================================================================== --- testing-x86_64/0002-depmod-fix-asserting-mod-kmod-NULL.patch (rev 0) +++ testing-x86_64/0002-depmod-fix-asserting-mod-kmod-NULL.patch 2012-11-17 02:23:45 UTC (rev 171300) @@ -0,0 +1,31 @@ +From 02c64df3c2b33880b18d3f4aba9fa8e48e5ca904 Mon Sep 17 00:00:00 2001 +From: Lucas De Marchi <lucas.demar...@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 + Copied: kmod/repos/testing-x86_64/PKGBUILD (from rev 171299, kmod/trunk/PKGBUILD) =================================================================== --- testing-x86_64/PKGBUILD (rev 0) +++ testing-x86_64/PKGBUILD 2012-11-17 02:23:45 UTC (rev 171300) @@ -0,0 +1,65 @@ +# $Id$ +# Maintainer: Dave Reisner <dreis...@archlinux.org> + +pkgname=kmod +pkgver=11 +pkgrel=2 +pkgdesc="Linux kernel module handling" +arch=('i686' 'x86_64') +url='http://git.kernel.org/?p=utils/kernel/kmod/kmod.git;a=summary' +license=('GPL2') +depends=('glibc' 'zlib') +makedepends=('gtk-doc') +options=('!libtool') +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 \ + --with-zlib + + make +} + +check() { + make -C "$pkgname-$pkgver" check +} + +package() { + make -C "$pkgname-$pkgver" DESTDIR="$pkgdir" install + + # extra directories + install -dm755 "$pkgdir"/{etc,usr/lib}/{depmod,modprobe}.d "$pkgdir/sbin" + + # add symlinks to kmod + ln -s ../usr/bin/kmod "$pkgdir/sbin/modprobe" + ln -s ../usr/bin/kmod "$pkgdir/sbin/depmod" + + for tool in {ins,ls,rm}mod modinfo; do + ln -s kmod "$pkgdir/usr/bin/$tool" + done + + # install depmod.d file for search/ dir + install -Dm644 "$srcdir/depmod-search.conf" "$pkgdir/usr/lib/depmod.d/search.conf" +} + +# vim: ft=sh syn=sh et Copied: kmod/repos/testing-x86_64/depmod-search.conf (from rev 171299, kmod/trunk/depmod-search.conf) =================================================================== --- testing-x86_64/depmod-search.conf (rev 0) +++ testing-x86_64/depmod-search.conf 2012-11-17 02:23:45 UTC (rev 171300) @@ -0,0 +1,5 @@ +# +# /usr/lib/depmod.d/search.conf +# + +search updates extramodules built-in