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 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 +++ kmod-7/libkmod/libkmod.c 2012-04-04 15:21:29.532074313 -0400 @@ -200,7 +200,7 @@ static char *get_kernel_release(const char *dirname) { struct utsname u; - char *p; + char *p, *dirname_prefix; if (dirname != NULL) return path_make_absolute_cwd(dirname); @@ -208,7 +208,10 @@ if (uname(&u) < 0) return NULL; - if (asprintf(&p, "%s/%s", dirname_default_prefix, u.release) < 0) + if ((dirname_prefix = getenv("LINUX_MODULE_DIRECTORY")) == NULL) + dirname_prefix = dirname_default_prefix; + + if (asprintf(&p, "%s/%s", dirname_prefix, u.release) < 0) 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; d=e1383bfa6a3ab69edaa3e05e7302b73e8d3c5aa5&showmsg=1'>Expand)Author 2020-10-23doc: Fix typo in HACKING....* HACKING (Contributing): s/informations/information/. Maxim Cournoyer 2020-01-09doc: Move "Commit Access" section from 'HACKING' to the manual....* HACKING (Commit Access): Remove. (Contributing): Update URL of the manual. * doc/contributing.texi (Commit Access): New section. (Submitting Patches): Add cross reference. Ludovic Courtès 2020-01-09doc: Add "Tracking Bugs and Patches" section....* doc/contributing.texi (Tracking Bugs and Patches): New section. (Submitting Patches): Refer to it. * doc/guix.texi: Update copyright line. * HACKING (Using emacs-debbugs): Remove. Ludovic Courtès 2019-07-13doc: Update keyserver URL....* HACKING (Commit Access): Change keyserver URL to 'keys.openpgp.org'. Leo Famulari gnu/services/spice.scm (spice-vdagent-activation): Update runtime directory from /var/run/spice-vdagentd to /run/spice-vdagentd. (spice-vdagent-service-type): Specify a default value and fix indentation. Maxim Cournoyer 2020-04-21services: Don't use the deprecated 'make-forkexec-constructor' call....Passing 'make-forkexec-constructor' a string or several string arguments has been deprecated since dmd 0.1. * gnu/services/base.scm (rngd-service-type): In 'start' method, pass a list as the first argument to 'make-forkexec-constructor'. * gnu/services/desktop.scm (bluetooth-shepherd-service): Likewise. * gnu/services/spice.scm (spice-vdagent-shepherd-service): Likewise. Ludovic Courtès 2020-01-26services: Fix typo in spice-vdagent-service....* gnu/services/spice.scm (spice-vdagent-service): Fix typo. Signed-off-by: Danny Milosavljevic <dannym@scratchpost.org> Damien Cassou