summary refs log tree commit diff
diff options
context:
space:
mode:
authorGabriel Ebner <gebner@gebner.org>2021-04-02 22:52:36 +0200
committerGabriel Ebner <gebner@gebner.org>2021-04-02 22:52:36 +0200
commitfcea5552224a7176f310c4a3cfa36bfd1045397b (patch)
tree897a5ed52f9702b94cf95caba9a5c5ac180065f8
parente58bd1763e4cd047371712f2030716440b40cff9 (diff)
downloadnixpkgs-fcea5552224a7176f310c4a3cfa36bfd1045397b.tar
nixpkgs-fcea5552224a7176f310c4a3cfa36bfd1045397b.tar.gz
nixpkgs-fcea5552224a7176f310c4a3cfa36bfd1045397b.tar.bz2
nixpkgs-fcea5552224a7176f310c4a3cfa36bfd1045397b.tar.lz
nixpkgs-fcea5552224a7176f310c4a3cfa36bfd1045397b.tar.xz
nixpkgs-fcea5552224a7176f310c4a3cfa36bfd1045397b.tar.zst
nixpkgs-fcea5552224a7176f310c4a3cfa36bfd1045397b.zip
ddcutil: use nixos paths for kernel modules
-rw-r--r--pkgs/tools/misc/ddcutil/default.nix5
-rw-r--r--pkgs/tools/misc/ddcutil/nixos-paths.diff32
2 files changed, 37 insertions, 0 deletions
diff --git a/pkgs/tools/misc/ddcutil/default.nix b/pkgs/tools/misc/ddcutil/default.nix
index 1e2efc7f9cd..1717b88f194 100644
--- a/pkgs/tools/misc/ddcutil/default.nix
+++ b/pkgs/tools/misc/ddcutil/default.nix
@@ -12,6 +12,11 @@ stdenv.mkDerivation rec {
     sha256 = "sha256-F/tKW81bAyYtwpxhl5XC8YyMB+6S0XmqqigwJY2WFDU=";
   };
 
+  patches = [
+    # Look for kernel modules in /run/booted-system/kernel-modules/lib/modules/*
+    ./nixos-paths.diff
+  ];
+
   nativeBuildInputs = [ autoreconfHook pkg-config ];
   buildInputs = [
     i2c-tools udev libgudev
diff --git a/pkgs/tools/misc/ddcutil/nixos-paths.diff b/pkgs/tools/misc/ddcutil/nixos-paths.diff
new file mode 100644
index 00000000000..e45eb88b519
--- /dev/null
+++ b/pkgs/tools/misc/ddcutil/nixos-paths.diff
@@ -0,0 +1,32 @@
+diff --git a/src/app_sysenv/query_sysenv_modules.c b/src/app_sysenv/query_sysenv_modules.c
+index 59df64f1..fb244dd0 100644
+--- a/src/app_sysenv/query_sysenv_modules.c
++++ b/src/app_sysenv/query_sysenv_modules.c
+@@ -50,7 +50,9 @@ bool is_module_loadable(char * module_name, int depth) {
+    g_snprintf(module_name_ko, 100, "%s.ko", module_name);
+ 
+    char dirname[PATH_MAX];
+-   g_snprintf(dirname, PATH_MAX, "/lib/modules/%s/kernel/drivers/i2c", utsbuf.release);
++   g_snprintf(dirname, PATH_MAX,
++      "/run/booted-system/kernel-modules/lib/modules/%s/kernel/drivers/i2c",
++      utsbuf.release);
+ 
+    struct dirent *dent;
+      DIR           *d;
+diff --git a/src/util/linux_util.c b/src/util/linux_util.c
+index 5eb8491c..3a129ccf 100644
+--- a/src/util/linux_util.c
++++ b/src/util/linux_util.c
+@@ -29,8 +29,10 @@ bool is_module_builtin(char * module_name)
+    int rc = uname(&utsbuf);
+    assert(rc == 0);
+ 
+-   char modules_builtin_fn[100];
+-   snprintf(modules_builtin_fn, 100, "/lib/modules/%s/modules.builtin", utsbuf.release);
++   char modules_builtin_fn[PATH_MAX];
++   snprintf(modules_builtin_fn, PATH_MAX,
++      "/run/booted-system/kernel-modules/lib/modules/%s/modules.builtin",
++      utsbuf.release);
+ 
+    char ko_name[40];
+    snprintf(ko_name, 40, "%s.ko", module_name);