diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2008-05-08 15:36:19 +0000 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2008-05-08 15:36:19 +0000 |
commit | fb790c15e9ceacbbd1cbbbfd78ea4588b55a55a0 (patch) | |
tree | 9793d2de859b63c9e4057e08c7428af791daf3b6 /pkgs/os-specific/linux/module-init-tools | |
parent | e6028ae5f43066e5490a7a7359ff9740d0ba7598 (diff) | |
download | nixpkgs-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.nix | 63 |
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/ + ''; } |