diff options
Diffstat (limited to 'pkgs/os-specific/linux')
-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 |
10 files changed, 13 insertions, 233 deletions
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) { |