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;
003c60b'>system-tests.scm
Age | Commit message (Expand) | Author |
2022-08-09 | build-system: Add 'channel-build-system'....* gnu/ci.scm (channel-build-system, channel-source->package): Remove.
* gnu/packages/package-management.scm (channel-source->package): New
procedure, moved from (gnu ci).
* guix/build-system/channel.scm: New file, with code moved from (gnu ci).
* doc/guix.texi (Build Systems): Document it.
| Ludovic Courtès |
2022-07-10 | monads: Add 'mparameterize'....* etc/system-tests.scm (mparameterize): Move to...
* guix/monads.scm (mparameterize): ... here.
* tests/monads.scm ("mparameterize"): New test.
* .dir-locals.el (c-mode): Add it.
| Ludovic Courtès |
2022-04-11 | tests: System tests really parameterize 'current-guix-package'....Until now, 'current-guix-package' was parameterized in the wrong
context. Thus, 'current-guix' would end up building a variant of the
'guix' package instead of the package returned by
'channel-source->package', which is much less expensive to build.
* etc/system-tests.scm (mparameterize): New macro.
(tests-for-current-guix): Change the 'value' field of each <system-test>
record to parameterize 'current-guix-package' for good.
| Ludovic Courtès |
2020-03-23 | tests: Use the same source as ci.guix.gnu.org....* etc/system-tests.scm (system-test-manifest): In 'local-file' call, use
a name that is a function of COMMIT to match what Cuirass does.
| Ludovic Courtès |
2020-03-05 | tests: Add a manifest for system tests....The manifest can be passed to 'guix build -m', 'guix weather -m', and so
on. It can also be passed to an installed 'guix' (without
./pre-inst-env), with the exception so far of installation tests.
* build-aux/run-system-tests.scm: Remove. Move interesting bits move
to...
* etc/system-tests.scm: ... here. New file.
* Makefile.am (EXTRA_DIST): Remove 'build-aux/run-system-tests.scm' and
add 'etc/system-tests.scm'.
(check-system): Rewrite to run 'guix build -m etc/system-tests.scm'.
| Ludovic Courtès |