[packages/kmod] - implemented TODO: /etc/modprobe.d/`uname -r` support - second TODO item removed as it was purely c

baggins baggins at pld-linux.org
Wed Dec 12 19:57:03 CET 2012


commit 185589bcb6d2fd659fc1dff564ce686ce9c9cef1
Author: Jan Rękorajski <baggins at pld-linux.org>
Date:   Wed Dec 12 19:56:08 2012 +0100

    - implemented TODO: /etc/modprobe.d/`uname -r` support
    - second TODO item removed as it was purely cosmetic
    - rel 2

 kmod-modprobe.d-kver.patch | 32 ++++++++++++++++++++++++++++++++
 kmod.spec                  |  8 +++-----
 2 files changed, 35 insertions(+), 5 deletions(-)
---
diff --git a/kmod.spec b/kmod.spec
index 13f89b3..1d532c3 100644
--- a/kmod.spec
+++ b/kmod.spec
@@ -1,7 +1,3 @@
-# TODO:
-# - implement /etc/modprobe.d/kver/ support (just as in our module-init-tools)
-# - modprobe keeps "-" in module names: sprunge.us/dYCZ (probably irrelevant)
-#
 # Conditional build:
 %bcond_without	tests	# perform "make check" (init_module seems to require root for mkdir)
 #
@@ -9,13 +5,14 @@ Summary:	Linux kernel module handling
 Summary(pl.UTF-8):	Obsługa modułów jądra Linuksa
 Name:		kmod
 Version:	12
-Release:	1
+Release:	2
 License:	GPL v2+
 Group:		Applications/System
 Source0:	ftp://ftp.kernel.org/pub/linux/utils/kernel/kmod/%{name}-%{version}.tar.xz
 # Source0-md5:	3d63b146c8ee5a04dfbef4be97f8226b
 Source1:	%{name}-blacklist
 Source2:	%{name}-usb
+Patch0:		%{name}-modprobe.d-kver.patch
 URL:		http://git.kernel.org/?p=utils/kernel/kmod/kmod.git;a=summary
 BuildRequires:	autoconf >= 2.60
 BuildRequires:	automake >= 1:1.11
@@ -100,6 +97,7 @@ Pliki nagłówkowe biblioteki %{name}.
 
 %prep
 %setup -q
+%patch0 -p1
 
 # requires root to work
 sed -i -e 's# testsuite/test-modprobe # #g' Makefile.am
diff --git a/kmod-modprobe.d-kver.patch b/kmod-modprobe.d-kver.patch
new file mode 100644
index 0000000..16e303b
--- /dev/null
+++ b/kmod-modprobe.d-kver.patch
@@ -0,0 +1,32 @@
+diff -ur kmod-12/libkmod/libkmod.c kmod-12-modprobe.d-kver/libkmod/libkmod.c
+--- kmod-12/libkmod/libkmod.c	2012-11-08 04:59:03.663747793 +0100
++++ kmod-12-modprobe.d-kver/libkmod/libkmod.c	2012-12-12 19:43:19.385242679 +0100
+@@ -58,7 +58,9 @@
+ 	[KMOD_INDEX_MODULES_BUILTIN] = { .fn = "modules.builtin", .prefix = ""},
+ };
+ 
++static char kver_config_path[PATH_MAX] = SYSCONFDIR "/modprobe.d/X.Y.Z";
+ static const char *default_config_paths[] = {
++	kver_config_path,
+ 	SYSCONFDIR "/modprobe.d",
+ 	"/run/modprobe.d",
+ 	"/lib/modprobe.d",
+@@ -258,8 +260,16 @@
+ 	if (env != NULL)
+ 		kmod_set_log_priority(ctx, log_priority(env));
+ 
+-	if (config_paths == NULL)
+-		config_paths = default_config_paths;
++	if (config_paths == NULL) {
++		struct utsname u;
++
++		if (uname(&u) < 0) {
++			config_paths = &default_config_paths[1];
++		} else {
++			snprintf(kver_config_path, PATH_MAX, SYSCONFDIR "/modprobe.d/%s", u.release);
++			config_paths = default_config_paths;
++		}
++	}
+ 	err = kmod_config_new(ctx, &ctx->config, config_paths);
+ 	if (err < 0) {
+ 		ERR(ctx, "could not create config\n");
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/kmod.git/commitdiff/185589bcb6d2fd659fc1dff564ce686ce9c9cef1



More information about the pld-cvs-commit mailing list