summary refs log tree commit diff
path: root/pkgs/os-specific/linux/module-init-tools
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2008-05-08 15:36:19 +0000
committerEelco Dolstra <eelco.dolstra@logicblox.com>2008-05-08 15:36:19 +0000
commitfb790c15e9ceacbbd1cbbbfd78ea4588b55a55a0 (patch)
tree9793d2de859b63c9e4057e08c7428af791daf3b6 /pkgs/os-specific/linux/module-init-tools
parente6028ae5f43066e5490a7a7359ff9740d0ba7598 (diff)
downloadnixpkgs-fb790c15e9ceacbbd1cbbbfd78ea4588b55a55a0.tar
nixpkgs-fb790c15e9ceacbbd1cbbbfd78ea4588b55a55a0.tar.gz
nixpkgs-fb790c15e9ceacbbd1cbbbfd78ea4588b55a55a0.tar.bz2
nixpkgs-fb790c15e9ceacbbd1cbbbfd78ea4588b55a55a0.tar.lz
nixpkgs-fb790c15e9ceacbbd1cbbbfd78ea4588b55a55a0.tar.xz
nixpkgs-fb790c15e9ceacbbd1cbbbfd78ea4588b55a55a0.tar.zst
nixpkgs-fb790c15e9ceacbbd1cbbbfd78ea4588b55a55a0.zip
* Check against accidentally mixing kernel versions (e.g. Linux 2.6.25
  with AUFS built against Linux 2.6.23).

svn path=/nixpkgs/trunk/; revision=11784
Diffstat (limited to 'pkgs/os-specific/linux/module-init-tools')
-rw-r--r--pkgs/os-specific/linux/module-init-tools/aggregator.nix63
1 files changed, 26 insertions, 37 deletions
diff --git a/pkgs/os-specific/linux/module-init-tools/aggregator.nix b/pkgs/os-specific/linux/module-init-tools/aggregator.nix
index 9779efe3305..f11642b9a68 100644
--- a/pkgs/os-specific/linux/module-init-tools/aggregator.nix
+++ b/pkgs/os-specific/linux/module-init-tools/aggregator.nix
@@ -1,39 +1,28 @@
-args : with args;
-	let localDefs = builderDefs {
-		addSbinPath = true;
-		src = "";
-		buildInputs = [module_init_tools];
-		configureFlags = [];
-	} null; /* null is a terminator for sumArgs */
-	in with localDefs;
-let 
+{stdenv, module_init_tools, modules}:
 
-doCollect = FullDepEntry (''
-ensureDir $out/lib/modules
-cd $out/
-for i in $moduleSources; do 
-	cp -rfs $i/* .
-	chmod -R u+w .
-done
-rm -rf nix-support
-cd lib/modules/
-rm */modules.*
-#  linux-* will pass the new kernel version to depmod to take rather than `uname -r` (see man page)
-MODULE_DIR=$PWD/ depmod -a $(basename lib/modules/2.*)
-cd $out/
-'') [minInit addInputs defEnsureDir];
-in
-stdenv.mkDerivation rec {
-	name = "kernel-modules";
-	inherit moduleSources;
-	builder = writeScript (name + "-builder")
-		(textClosure localDefs [doCollect doForceShare doPropagate]);
-	meta = {
-		description = "
-		A directory to hold all  the modules, including those 
-		built separately from kernel. Later mentioned directories in 
-		moduleSources have higher priority.
-";
-		inherit src;
-	};
+stdenv.mkDerivation {
+  name = "kernel-modules";
+
+  buildCommand = ''
+    ensureDir $out/lib/modules
+    cd $out/
+    modules="${toString modules}"
+    for i in $modules; do 
+        cp -rfs $i/* .
+        chmod -R u+w .
+        v=$(cd $i/lib/modules && ls -d *)
+        if test -n "$version" -a "$v" != "$version"; then
+            echo "kernel version mismatch: $version versus $v (in the module paths $modules)";
+            exit 1
+        fi
+        version=$v
+    done
+    echo "kernel version is $version"
+    rm -rf nix-support
+    cd lib/modules/
+    rm */modules.*
+    #  linux-* will pass the new kernel version to depmod to take rather than `uname -r` (see man page)
+    MODULE_DIR=$PWD/ ${module_init_tools}/sbin/depmod -a $(basename lib/modules/2.*)
+    cd $out/
+  '';
 }