diff options
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/applications/virtualization/virtualbox/default.nix | 3 | ||||
-rw-r--r-- | pkgs/applications/virtualization/virtualbox/guest-additions/default.nix | 11 | ||||
-rw-r--r-- | pkgs/build-support/kernel/modules-closure.nix | 10 | ||||
-rw-r--r-- | pkgs/build-support/kernel/modules-closure.sh | 12 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/builder.sh | 8 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/linux-3.0.nix | 4 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/linux-3.1.nix | 4 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/linux-3.2.nix | 4 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/linux-3.3.nix | 4 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kmod/aggregator.nix (renamed from pkgs/os-specific/linux/module-init-tools/aggregator.nix) | 5 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kmod/default.nix | 10 | ||||
-rw-r--r-- | pkgs/os-specific/linux/module-init-tools/default.nix | 34 | ||||
-rw-r--r-- | pkgs/os-specific/linux/module-init-tools/docbook2man.patch | 12 | ||||
-rw-r--r-- | pkgs/os-specific/linux/module-init-tools/module-dir.patch | 161 | ||||
-rw-r--r-- | pkgs/top-level/all-packages.nix | 11 |
15 files changed, 34 insertions, 259 deletions
diff --git a/pkgs/applications/virtualization/virtualbox/default.nix b/pkgs/applications/virtualization/virtualbox/default.nix index 9fa26eba4ab0..d2fc82c38e1e 100644 --- a/pkgs/applications/virtualization/virtualbox/default.nix +++ b/pkgs/applications/virtualization/virtualbox/default.nix @@ -82,8 +82,7 @@ stdenv.mkDerivation { # Install kernel module cd src - kernelVersion=$(cd ${kernel}/lib/modules; ls) - export MODULE_DIR=$out/lib/modules/$kernelVersion/misc + export MODULE_DIR=$out/lib/modules/${kernel.modDirVersion}/misc # Remove root ownership stuff, since this does not work in a chroot environment for i in `find . -name Makefile`; do diff --git a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix index f9adf6132f5d..eb8eddb6a3f1 100644 --- a/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix +++ b/pkgs/applications/virtualization/virtualbox/guest-additions/default.nix @@ -114,12 +114,11 @@ stdenv.mkDerivation { for i in * do cd $i - kernelVersion=$(cd ${kernel}/lib/modules; ls) - export MODULE_DIR=$out/lib/modules/$kernelVersion/misc - find . -type f | xargs sed -i -e "s|-o root||g" \ - -e "s|-g root||g" - make install - cd .. + export MODULE_DIR=$out/lib/modules/${kernel.modDirVersion}/misc + find . -type f | xargs sed -i -e "s|-o root||g" \ + -e "s|-g root||g" + make install + cd .. done ''; diff --git a/pkgs/build-support/kernel/modules-closure.nix b/pkgs/build-support/kernel/modules-closure.nix index cc197edbef19..a91d5a4bfc81 100644 --- a/pkgs/build-support/kernel/modules-closure.nix +++ b/pkgs/build-support/kernel/modules-closure.nix @@ -1,15 +1,15 @@ -# Given a kernel build (with modules in $kernel/lib/modules/VERSION), +# Given a modules tree (with modules in $modulesTree/lib/modules/VERSION), # produce a module tree in $out/lib/modules/VERSION that contains only # the modules identified by `rootModules', plus their dependencies. # Also generate an appropriate modules.dep. -{ stdenv, kernel, nukeReferences, rootModules -, module_init_tools, allowMissing ? false }: +{ stdenv, modulesTree, nukeReferences, rootModules +, kmod, allowMissing ? false }: stdenv.mkDerivation { - name = kernel.name + "-shrunk"; + name = modulesTree.name + "-shrunk"; builder = ./modules-closure.sh; buildInputs = [nukeReferences]; - inherit kernel rootModules module_init_tools allowMissing; + inherit modulesTree rootModules kmod allowMissing; allowedReferences = ["out"]; } diff --git a/pkgs/build-support/kernel/modules-closure.sh b/pkgs/build-support/kernel/modules-closure.sh index aa2615eb578d..9ce8d52ba211 100644 --- a/pkgs/build-support/kernel/modules-closure.sh +++ b/pkgs/build-support/kernel/modules-closure.sh @@ -2,19 +2,17 @@ source $stdenv/setup set -o pipefail -PATH=$module_init_tools/sbin:$PATH - -version=$(cd $kernel/lib/modules && ls -d *) +PATH=$kmod/sbin:$PATH +version=$(cd $modulesTree/lib/modules && ls -d *) echo "kernel version is $version" -export MODULE_DIR=$(readlink -f $kernel/lib/modules/) - +mkdir empty # Determine the dependencies of each root module. closure= for module in $rootModules; do echo "root module: $module" - deps=$(modprobe --config /dev/null --set-version "$version" --show-depends "$module" \ + deps=$(modprobe -S "$version" -d "$modulesTree" --show-depends "$module" \ | sed 's/^insmod //') \ || if test -z "$allowMissing"; then exit 1; fi #for i in $deps; do echo $i; done @@ -41,4 +39,4 @@ for module in $closure; do echo $target >> $out/insmod-list done -MODULE_DIR=$out/lib/modules/ depmod -a $version +depmod -b $out -a $version diff --git a/pkgs/os-specific/linux/kernel/builder.sh b/pkgs/os-specific/linux/kernel/builder.sh index 5d6d48d2fc3d..3baba17ef803 100644 --- a/pkgs/os-specific/linux/kernel/builder.sh +++ b/pkgs/os-specific/linux/kernel/builder.sh @@ -70,14 +70,8 @@ installPhase() { cp vmlinux $out if grep -q "CONFIG_MODULES=y" .config; then - # Install the modules in $out/lib/modules with matching paths - # in modules.dep (i.e., refererring to $out/lib/modules, not - # /lib/modules). The depmod_opts= is to prevent the kernel - # from passing `-b PATH' to depmod. - export MODULE_DIR=$out/lib/modules/ - substituteInPlace Makefile --replace '-b $(INSTALL_MOD_PATH)' '' make modules_install \ - DEPMOD=$module_init_tools/sbin/depmod depmod_opts= \ + DEPMOD=$module_init_tools/sbin/depmod \ $makeFlags "${makeFlagsArray[@]}" \ $installFlags "${installFlagsArray[@]}" diff --git a/pkgs/os-specific/linux/kernel/linux-3.0.nix b/pkgs/os-specific/linux/kernel/linux-3.0.nix index 6624718501c9..2ec8ac89f49e 100644 --- a/pkgs/os-specific/linux/kernel/linux-3.0.nix +++ b/pkgs/os-specific/linux/kernel/linux-3.0.nix @@ -229,10 +229,6 @@ import ./generic.nix ( rec { version = "3.0.24"; - preConfigure = '' - substituteInPlace scripts/depmod.sh --replace '-b "$INSTALL_MOD_PATH"' "" - ''; - src = fetchurl { url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.bz2"; sha256 = "0j783ivlgg66jvasxaapimyzaqyn61jlz4abhkynckr4h5hrpvw4"; diff --git a/pkgs/os-specific/linux/kernel/linux-3.1.nix b/pkgs/os-specific/linux/kernel/linux-3.1.nix index 9321bbdd479b..0f5567ae337a 100644 --- a/pkgs/os-specific/linux/kernel/linux-3.1.nix +++ b/pkgs/os-specific/linux/kernel/linux-3.1.nix @@ -229,10 +229,6 @@ import ./generic.nix ( rec { version = "3.1.10"; - preConfigure = '' - substituteInPlace scripts/depmod.sh --replace '-b "$INSTALL_MOD_PATH"' "" - ''; - src = fetchurl { url = "mirror://kernel/linux/kernel/v3.x/linux-${version}.tar.bz2"; sha256 = "1vcpbh7wnc9smw2l5ci27a5p0rgmc1a5dc6a1aljm6f6wcfic8lz"; diff --git a/pkgs/os-specific/linux/kernel/linux-3.2.nix b/pkgs/os-specific/linux/kernel/linux-3.2.nix index c5d7dedb1118..d8be05627941 100644 --- a/pkgs/os-specific/linux/kernel/linux-3.2.nix +++ b/pkgs/os-specific/linux/kernel/linux-3.2.nix @@ -231,10 +231,6 @@ import ./generic.nix ( modDirVersion = version; - preConfigure = '' - substituteInPlace scripts/depmod.sh --replace '-b "$INSTALL_MOD_PATH"' "" - ''; - src = fetchurl { url = "mirror://kernel/linux/kernel/v3.0/${if testing then "testing/" else ""}linux-${version}.tar.bz2"; sha256 = "1hacfmf08ydzf4xlg6wkkckl5icj7w9h3nh17myz1s67bp7q61qs"; diff --git a/pkgs/os-specific/linux/kernel/linux-3.3.nix b/pkgs/os-specific/linux/kernel/linux-3.3.nix index ecdcfc86a88a..b663f49aa128 100644 --- a/pkgs/os-specific/linux/kernel/linux-3.3.nix +++ b/pkgs/os-specific/linux/kernel/linux-3.3.nix @@ -231,10 +231,6 @@ import ./generic.nix ( modDirVersion = "3.3.0"; - preConfigure = '' - substituteInPlace scripts/depmod.sh --replace '-b "$INSTALL_MOD_PATH"' "" - ''; - src = fetchurl { url = "mirror://kernel/linux/kernel/v3.0/${if testing then "testing/" else ""}linux-${version}.tar.bz2"; sha256 = "0czk8bj46r3r95iz6gi7xkavhjx847s5p9248vabi0c1wjs6kmlg"; diff --git a/pkgs/os-specific/linux/module-init-tools/aggregator.nix b/pkgs/os-specific/linux/kmod/aggregator.nix index cc4e6ab35521..1fb95edd006e 100644 --- a/pkgs/os-specific/linux/module-init-tools/aggregator.nix +++ b/pkgs/os-specific/linux/kmod/aggregator.nix @@ -1,4 +1,4 @@ -{stdenv, module_init_tools, modules, buildEnv}: +{stdenv, kmod, modules, buildEnv}: buildEnv { name = "kernel-modules"; @@ -21,7 +21,8 @@ buildEnv { # kernel version number, otherwise depmod will use `uname -r'. if test -w $out/lib/modules/$kernelVersion; then rm -f $out/lib/modules/$kernelVersion/modules.* - MODULE_DIR=$out/lib/modules/ ${module_init_tools}/sbin/depmod -a $kernelVersion + echo ${kmod}/sbin/depmod -b $out -a $kernelVersion + ${kmod}/sbin/depmod -b $out -a $kernelVersion fi ''; } diff --git a/pkgs/os-specific/linux/kmod/default.nix b/pkgs/os-specific/linux/kmod/default.nix index c75b8bec1466..75654226616e 100644 --- a/pkgs/os-specific/linux/kmod/default.nix +++ b/pkgs/os-specific/linux/kmod/default.nix @@ -8,10 +8,18 @@ stdenv.mkDerivation { sha256 = "1xvsy2zcfdimj4j5b5yyxaqx2byabmwq8qlzjm0hqzpyxxgfw1lq"; }; - buildInputs = [ pkgconfig xz zlib ]; + buildInputs = [ xz zlib ]; + buildNativeInputs = [ pkgconfig ]; configureFlags = [ "--with-xz" "--with-zlib" ]; + postInstall = '' + mkdir -p $out/sbin + for i in depmod insmod lsmod modinfo modprobe rmmod; do + ln -sv ../bin/kmod $out/sbin/$i + done + ''; + meta = { homepage = http://www.kernel.org/pub/linux/utils/kernel/kmod/; description = "Tools for loading and managing Linux kernel modules"; diff --git a/pkgs/os-specific/linux/module-init-tools/default.nix b/pkgs/os-specific/linux/module-init-tools/default.nix deleted file mode 100644 index 077d08f899da..000000000000 --- a/pkgs/os-specific/linux/module-init-tools/default.nix +++ /dev/null @@ -1,34 +0,0 @@ -{ stdenv, fetchurl, docbook2x, docbook_sgml_dtd_41 }: - -stdenv.mkDerivation { - name = "module-init-tools-3.16"; - - src = [ - (fetchurl { - url = mirror://kernel/linux/utils/kernel/module-init-tools/module-init-tools-3.16.tar.bz2; - sha256 = "0jxnz9ahfic79rp93l5wxcbgh4pkv85mwnjlbv1gz3jawv5cvwp1"; - }) - - # Upstream forgot to include the generated manpages. Thankfully - # the Gentoo people fixed this for us :-) - (fetchurl { - url = mirror://gentoo/distfiles/module-init-tools-3.16-man.tar.bz2; - sha256 = "1j1nzi87kgsh4scl645fhwhjvljxj83cmdasa4n4p5krhasgw358"; - }) - ]; - - SGML_CATALOG_FILES = "${docbook_sgml_dtd_41}/sgml/dtd/docbook-4.1/docbook.cat"; - - patches = [ ./module-dir.patch ./docbook2man.patch ]; - - postInstall = "rm $out/sbin/insmod.static"; # don't need it - - # We don't want bash (and therefore glibc) in the closure of the - # output, since we want to put this in a initrd. - dontPatchShebangs = stdenv ? isDietLibC; - - meta = { - homepage = http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/; - description = "Tools for loading and managing Linux kernel modules"; - }; -} diff --git a/pkgs/os-specific/linux/module-init-tools/docbook2man.patch b/pkgs/os-specific/linux/module-init-tools/docbook2man.patch deleted file mode 100644 index 4de07b658a91..000000000000 --- a/pkgs/os-specific/linux/module-init-tools/docbook2man.patch +++ /dev/null @@ -1,12 +0,0 @@ -diff -Naur module-init-tools-3.16-orig/Makefile.in module-init-tools-3.16/Makefile.in ---- module-init-tools-3.16-orig/Makefile.in 2011-06-02 13:56:45.000000000 -0400 -+++ module-init-tools-3.16/Makefile.in 2011-10-01 23:59:30.584443193 -0400 -@@ -174,7 +174,7 @@ - CYGPATH_W = @CYGPATH_W@ - DEFS = @DEFS@ - DEPDIR = @DEPDIR@ --DOCBOOKTOMAN = @DOCBOOKTOMAN@ -+DOCBOOKTOMAN = @DOCBOOKTOMAN@ --sgml - ECHO_C = @ECHO_C@ - ECHO_N = @ECHO_N@ - ECHO_T = @ECHO_T@ diff --git a/pkgs/os-specific/linux/module-init-tools/module-dir.patch b/pkgs/os-specific/linux/module-init-tools/module-dir.patch deleted file mode 100644 index 95c7559604dd..000000000000 --- a/pkgs/os-specific/linux/module-init-tools/module-dir.patch +++ /dev/null @@ -1,161 +0,0 @@ -commit cf2c95edb7918bc658f6cae93793c1949fc9cb6e -Author: David Guibert <david.guibert@gmail.com> -Date: Fri Aug 5 14:20:12 2011 +0200 - - introduce module-dir - -diff --git a/depmod.c b/depmod.c -index a1d2f8c..9362a35 100644 ---- a/depmod.c -+++ b/depmod.c -@@ -48,9 +48,6 @@ - - #include "testing.h" - --#ifndef MODULE_DIR --#define MODULE_DIR "/lib/modules/" --#endif - - #ifndef MODULE_BUILTIN_KEY - #define MODULE_BUILTIN_KEY "built-in" -@@ -1516,6 +1513,7 @@ static int parse_config_file(const char *filename, - char *line; - unsigned int linenum = 0; - FILE *cfile; -+ char *module_dir; - - cfile = fopen(filename, "r"); - if (!cfile) { -@@ -1525,6 +1523,10 @@ static int parse_config_file(const char *filename, - return 0; - } - -+ if((module_dir = getenv("MODULE_DIR")) == NULL) { -+ module_dir = "/lib/modules/"; -+ } -+ - while ((line = getline_wrapped(cfile, &linenum)) != NULL) { - char *ptr = line; - char *cmd, *modname; -@@ -1550,7 +1552,7 @@ static int parse_config_file(const char *filename, - continue; - } - nofail_asprintf(&dirname, "%s%s%s/%s", basedir, -- MODULE_DIR, kernelversion, search_path); -+ module_dir, kernelversion, search_path); - len = strlen(dirname); - *search = add_search(dirname, len, *search); - free(dirname); -@@ -1565,7 +1567,7 @@ static int parse_config_file(const char *filename, - continue; - - nofail_asprintf(&pathname, "%s%s%s/%s/%s.ko", basedir, -- MODULE_DIR, kernelversion, subdir, modname); -+ module_dir, kernelversion, subdir, modname); - - *overrides = add_override(pathname, *overrides); - free(pathname); -@@ -1737,6 +1739,7 @@ int main(int argc, char *argv[]) - char *basedir = "", *dirname, *version; - char *system_map = NULL, *module_symvers = NULL; - int i; -+ char *module_dir; - const char *config = NULL; - - if (native_endianness() == 0) -@@ -1832,7 +1835,11 @@ int main(int argc, char *argv[]) - if (optind == argc) - all = 1; - -- nofail_asprintf(&dirname, "%s%s%s", basedir, MODULE_DIR, version); -+ if((module_dir = getenv("MODULE_DIR")) == NULL) { -+ module_dir = "/lib/modules/"; -+ } -+ -+ nofail_asprintf(&dirname, "%s%s%s", basedir, module_dir, version); - - if (maybe_all) { - if (!doing_stdout && !depfile_out_of_date(dirname)) -@@ -1850,7 +1857,7 @@ int main(int argc, char *argv[]) - size_t len; - - nofail_asprintf(&dirname, "%s%s%s/updates", basedir, -- MODULE_DIR, version); -+ module_dir, version); - len = strlen(dirname); - search = add_search(dirname, len, search); - } -diff --git a/modinfo.c b/modinfo.c -index 1dd8469..67b1041 100644 ---- a/modinfo.c -+++ b/modinfo.c -@@ -19,9 +19,6 @@ - #include "zlibsupport.h" - #include "testing.h" - --#ifndef MODULE_DIR --#define MODULE_DIR "/lib/modules" --#endif - - struct param - { -@@ -193,6 +190,11 @@ static struct elf_file *grab_module(const char *name, - struct utsname buf; - char *depname, *p, *moddir; - struct elf_file *module; -+ char *module_dir; -+ -+ if((module_dir = getenv("MODULE_DIR")) == NULL) { -+ module_dir = "/lib/modules/"; -+ } - - if (strchr(name, '.') || strchr(name, '/')) { - module = grab_elf_file(name); -@@ -207,9 +209,9 @@ static struct elf_file *grab_module(const char *name, - kernel = buf.release; - } - if (strlen(basedir)) -- nofail_asprintf(&moddir, "%s/%s/%s", basedir, MODULE_DIR, kernel); -+ nofail_asprintf(&moddir, "%s/%s/%s", basedir, module_dir, kernel); - else -- nofail_asprintf(&moddir, "%s/%s", MODULE_DIR, kernel); -+ nofail_asprintf(&moddir, "%s/%s", module_dir, kernel); - - /* Search for it in modules.dep. */ - nofail_asprintf(&depname, "%s/%s", moddir, "modules.dep"); -diff --git a/modprobe.c b/modprobe.c -index 5464f45..d9fbf9d 100644 ---- a/modprobe.c -+++ b/modprobe.c -@@ -86,10 +86,6 @@ typedef enum - - } modprobe_flags_t; - --#ifndef MODULE_DIR --#define MODULE_DIR "/lib/modules" --#endif -- - /** - * print_usage - output the prefered program usage - * -@@ -2136,6 +2132,7 @@ int main(int argc, char *argv[]) - struct modprobe_conf conf = {}; - - recursion_depth = 0; -+ char *module_dir = NULL; - - /* Prepend options from environment. */ - argv = merge_args(getenv("MODPROBE_OPTIONS"), argv, &argc); -@@ -2233,7 +2230,11 @@ int main(int argc, char *argv[]) - if (argc < optind + 1 && !dump_config && !list_only) - print_usage(argv[0]); - -- nofail_asprintf(&dirname, "%s%s/%s", basedir, MODULE_DIR, buf.release); -+ if((module_dir = getenv("MODULE_DIR")) == NULL) { -+ module_dir = "/lib/modules"; -+ } -+ -+ nofail_asprintf(&dirname, "%s%s/%s", basedir, module_dir, buf.release); - - /* Old-style -t xxx wildcard? Only with -l. */ - if (list_only) { diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 52b3173fc594..8c70085ff563 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -325,10 +325,9 @@ let makeWrapper = makeSetupHook {} ../build-support/make-wrapper/make-wrapper.sh; - makeModulesClosure = {kernel, rootModules, allowMissing ? false}: + makeModulesClosure = {modulesTree, rootModules, allowMissing ? false}: import ../build-support/kernel/modules-closure.nix { - inherit stdenv module_init_tools kernel nukeReferences - rootModules allowMissing; + inherit stdenv kmod modulesTree nukeReferences rootModules allowMissing; }; pathsFromGraph = ../build-support/kernel/paths-from-graph.pl; @@ -5832,15 +5831,15 @@ let mingetty = callPackage ../os-specific/linux/mingetty { }; - module_init_tools = callPackage ../os-specific/linux/module-init-tools { }; + module_init_tools = pkgs.kmod; mountall = callPackage ../os-specific/linux/mountall { automake = automake111x; }; aggregateModules = modules: - import ../os-specific/linux/module-init-tools/aggregator.nix { - inherit stdenv module_init_tools modules buildEnv; + import ../os-specific/linux/kmod/aggregator.nix { + inherit stdenv kmod modules buildEnv; }; modutils = callPackage ../os-specific/linux/modutils { |