aboutsummaryrefslogtreecommitdiff
path: root/gnu
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2014-11-02 22:06:19 +0100
committerLudovic Courtès <ludo@gnu.org>2014-11-02 22:06:27 +0100
commitac67e205824cec15e24f1f4a6895fd5739afd9f6 (patch)
tree2faeea18dfe3c09d4f969431a8985b203f9a5e0f /gnu
parent47e643db107d4c4569fe2195c5369d748169ae47 (diff)
downloadguix-ac67e205824cec15e24f1f4a6895fd5739afd9f6.tar.gz
guix-ac67e205824cec15e24f1f4a6895fd5739afd9f6.zip
gnu: kmod: 'kmod static-nodes' command honors $LINUX_MODULE_DIRECTORY.
* gnu/packages/patches/kmod-module-directory.patch: Add hunk for tools/static-nodes.c. Taken from Nixpkgs, where it was added by Eelco Dolstra <eelco.dolstra@logicblox.com>.
Diffstat (limited to 'gnu')
-rw-r--r--gnu/packages/patches/kmod-module-directory.patch41
1 files changed, 39 insertions, 2 deletions
diff --git a/gnu/packages/patches/kmod-module-directory.patch b/gnu/packages/patches/kmod-module-directory.patch
index b4b1a3b3db..bdfc61bc4c 100644
--- a/gnu/packages/patches/kmod-module-directory.patch
+++ b/gnu/packages/patches/kmod-module-directory.patch
@@ -2,8 +2,9 @@ This patch changes libkmod so it honors the 'LINUX_MODULE_DIRECTORY'
environment variable, rather than looking for modules exclusively in
/lib/modules.
-Patch by Shea Levy, from Nixpkgs; adjusted to use 'LINUX_MODULE_DIRECTORY'
-rather than 'MODULE_DIR' as the variable name.
+Patch by Shea Levy and Eelco Dolstra, from Nixpkgs; adjusted to
+use 'LINUX_MODULE_DIRECTORY' rather than 'MODULE_DIR' as the variable
+name.
--- kmod-7/libkmod/libkmod.c 2012-03-15 08:19:16.750010226 -0400
@@ -29,3 +30,39 @@ rather than 'MODULE_DIR' as the variable name.
return NULL;
return p;
+
+--- kmod-17/tools/static-nodes.c 2013-12-17 22:05:42.159047316 +0100
++++ kmod-17/tools/static-nodes.c 2014-04-17 13:51:17.945974320 +0200
+@@ -159,6 +159,7 @@
+ FILE *in = NULL, *out = NULL;
+ const struct static_nodes_format *format = &static_nodes_format_human;
+ int r, ret = EXIT_SUCCESS;
++ char *dirname_prefix;
+
+ for (;;) {
+ int c, idx = 0, valid;
+@@ -211,16 +212,19 @@
+ goto finish;
+ }
+
+- snprintf(modules, sizeof(modules), "/lib/modules/%s/modules.devname", kernel.release);
++ if ((dirname_prefix = getenv("LINUX_MODULE_DIRECTORY")) == NULL)
++ dirname_prefix = "/lib/modules";
++
++ snprintf(modules, sizeof(modules), "%s/%s/modules.devname", dirname_prefix, kernel.release);
+ in = fopen(modules, "re");
+ if (in == NULL) {
+ if (errno == ENOENT) {
+- fprintf(stderr, "Warning: /lib/modules/%s/modules.devname not found - ignoring\n",
+- kernel.release);
++ fprintf(stderr, "Warning: %s/%s/modules.devname not found - ignoring\n",
++ dirname_prefix, kernel.release);
+ ret = EXIT_SUCCESS;
+ } else {
+- fprintf(stderr, "Error: could not open /lib/modules/%s/modules.devname - %m\n",
+- kernel.release);
++ fprintf(stderr, "Error: could not open %s/%s/modules.devname - %m\n",
++ dirname_prefix, kernel.release);
+ ret = EXIT_FAILURE;
+ }
+ goto finish;