summary refs log tree commit diff
path: root/pkgs/tools/system
diff options
context:
space:
mode:
authorVladimír Čunát <vcunat@gmail.com>2016-11-24 16:45:15 +0100
committerVladimír Čunát <vcunat@gmail.com>2016-11-24 16:46:28 +0100
commit286c836b3f1421553c103758537929e596256e65 (patch)
tree4adc19af88977647a58e01b1f84be0a4aee55de9 /pkgs/tools/system
parent528d353b654e66f310f7544cf7a1bff913cf3c0d (diff)
downloadnixlib-286c836b3f1421553c103758537929e596256e65.tar
nixlib-286c836b3f1421553c103758537929e596256e65.tar.gz
nixlib-286c836b3f1421553c103758537929e596256e65.tar.bz2
nixlib-286c836b3f1421553c103758537929e596256e65.tar.lz
nixlib-286c836b3f1421553c103758537929e596256e65.tar.xz
nixlib-286c836b3f1421553c103758537929e596256e65.tar.zst
nixlib-286c836b3f1421553c103758537929e596256e65.zip
pciutils: fixup finding modules to libkmod's way
Fixes #20683.
Diffstat (limited to 'pkgs/tools/system')
-rw-r--r--pkgs/tools/system/pciutils/default.nix2
-rw-r--r--pkgs/tools/system/pciutils/module-dir.diff23
2 files changed, 25 insertions, 0 deletions
diff --git a/pkgs/tools/system/pciutils/default.nix b/pkgs/tools/system/pciutils/default.nix
index 622f5fc6ceae..6530abd23626 100644
--- a/pkgs/tools/system/pciutils/default.nix
+++ b/pkgs/tools/system/pciutils/default.nix
@@ -8,6 +8,8 @@ stdenv.mkDerivation rec {
     sha256 = "0byl2f897w5lhs4bvr6p7qwcz9bllj2zyfv7nywbcbsnb9ha9wrb";
   };
 
+  patches = [ ./module-dir.diff ];
+
   buildInputs = [ pkgconfig zlib kmod which ];
 
   makeFlags = "SHARED=yes PREFIX=\${out}";
diff --git a/pkgs/tools/system/pciutils/module-dir.diff b/pkgs/tools/system/pciutils/module-dir.diff
new file mode 100644
index 000000000000..ea38b115b248
--- /dev/null
+++ b/pkgs/tools/system/pciutils/module-dir.diff
@@ -0,0 +1,23 @@
+Don't override libkmod's way of finding modules.
+
+(We override that behavior in nixpkgs to fit nixos.)
+
+diff --git a/ls-kernel.c b/ls-kernel.c
+index 78b70f1..ecacd0e 100644
+--- a/ls-kernel.c
++++ b/ls-kernel.c
+@@ -29,13 +29,7 @@ show_kernel_init(void)
+   if (show_kernel_inited >= 0)
+     return show_kernel_inited;
+ 
+-  struct utsname uts;
+-  if (uname(&uts) < 0)
+-    die("uname() failed: %m");
+-  char *name = alloca(64 + strlen(uts.release));
+-  sprintf(name, "/lib/modules/%s", uts.release);
+-
+-  kmod_ctx = kmod_new(name, NULL);
++  kmod_ctx = kmod_new(NULL, NULL);
+   if (!kmod_ctx)
+     {
+       fprintf(stderr, "lspci: Unable to initialize libkmod context\n");