diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2008-05-22 12:01:24 +0000 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2008-05-22 12:01:24 +0000 |
commit | 0aea0db581e84c11556d0ee5c473848f343cc6bb (patch) | |
tree | 51e5ff877032544013d1aa8634f6d5d80c72f656 /pkgs/os-specific | |
parent | c741baeb4e1743aee549676fd4a357eb33b3737b (diff) | |
download | nixpkgs-0aea0db581e84c11556d0ee5c473848f343cc6bb.tar nixpkgs-0aea0db581e84c11556d0ee5c473848f343cc6bb.tar.gz nixpkgs-0aea0db581e84c11556d0ee5c473848f343cc6bb.tar.bz2 nixpkgs-0aea0db581e84c11556d0ee5c473848f343cc6bb.tar.lz nixpkgs-0aea0db581e84c11556d0ee5c473848f343cc6bb.tar.xz nixpkgs-0aea0db581e84c11556d0ee5c473848f343cc6bb.tar.zst nixpkgs-0aea0db581e84c11556d0ee5c473848f343cc6bb.zip |
* Put all packages that depend on a specific kernel (notably kernel
modules) together in an attribute set returned by the function "kernelPackagesFor" that takes a kernel as argument. For instance, kernelPackages_2_6_23 is the result of calling this function with kernel_2_6_23. This is necessary in NixOS to make it easier to override the kernel: it's not enough to just specify a different kernel (via the boot.kernel option), but you also need matching nvidiaDriver, aufs, iwlwifi, etc. Having a single attribute set that contains all kernel-related packages makes this much easier. * The kernel now has a passthru attribute "features" that allows NixOS expressions to test whether a kernel has certain features. For instance, the externel "iwlwifi" kernel module package should only be built on kernels < 2.6.24, as kernels >= 2.6.24 have iwlwifi support integrated. So the NixOS expressions can do the test "kernel.features ? iwlwifi" to see if the iwlwifi package should be built. Kernel patches can declare additional features. E.g., the fbsplash patch adds a "fbSplash" feature. svn path=/nixpkgs/trunk/; revision=11881
Diffstat (limited to 'pkgs/os-specific')
-rw-r--r-- | pkgs/os-specific/linux/aufs/default.nix | 2 | ||||
-rw-r--r-- | pkgs/os-specific/linux/iwlwifi/default.nix | 6 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/linux-2.6.23.nix | 7 | ||||
-rw-r--r-- | pkgs/os-specific/linux/kernel/linux-2.6.25.nix | 13 | ||||
-rw-r--r-- | pkgs/os-specific/linux/klibc/shrunk.nix | 2 | ||||
-rw-r--r-- | pkgs/os-specific/linux/nvidia/default.nix | 2 | ||||
-rw-r--r-- | pkgs/os-specific/linux/wis-go7007/default.nix | 2 |
7 files changed, 27 insertions, 7 deletions
diff --git a/pkgs/os-specific/linux/aufs/default.nix b/pkgs/os-specific/linux/aufs/default.nix index 1668f300fa8..e8361a7265d 100644 --- a/pkgs/os-specific/linux/aufs/default.nix +++ b/pkgs/os-specific/linux/aufs/default.nix @@ -1,7 +1,7 @@ {stdenv, fetchurl, kernel}: stdenv.mkDerivation { - name = "aufs-20080508"; + name = "aufs-20080508-${kernel.version}"; src = fetchurl { url = http://nixos.org/tarballs/aufs-20080508.tar.bz2; diff --git a/pkgs/os-specific/linux/iwlwifi/default.nix b/pkgs/os-specific/linux/iwlwifi/default.nix index ed551e9bd45..c993886c21d 100644 --- a/pkgs/os-specific/linux/iwlwifi/default.nix +++ b/pkgs/os-specific/linux/iwlwifi/default.nix @@ -1,10 +1,12 @@ {stdenv, fetchurl, kernel}: +let version = "1.2.25"; in + stdenv.mkDerivation rec { - name = "iwlwifi-1.2.25"; + name = "iwlwifi-${version}-${kernel.version}"; src = fetchurl { - url = "http://www.intellinuxwireless.org/iwlwifi/downloads/${name}.tgz"; + url = "http://www.intellinuxwireless.org/iwlwifi/downloads/iwlwifi-${version}.tgz"; sha256 = "09fjy0swcyd77fdp8x2825wj5cd73hwbzl8mz9sy2ha21p1qwq1d"; }; diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.23.nix b/pkgs/os-specific/linux/kernel/linux-2.6.23.nix index b58fb41601e..b6756c113dd 100644 --- a/pkgs/os-specific/linux/kernel/linux-2.6.23.nix +++ b/pkgs/os-specific/linux/kernel/linux-2.6.23.nix @@ -34,6 +34,13 @@ in stdenv.mkDerivation { name = if userModeLinux then "user-mode-linux-${version}" else "linux-${version}"; + + passthru = { + inherit version; + # Combine the `features' attribute sets of all the kernel patches. + features = lib.fold (x: y: (if x ? features then x.features else {}) // y) {} kernelPatches; + }; + builder = ./builder.sh; src = fetchurl { diff --git a/pkgs/os-specific/linux/kernel/linux-2.6.25.nix b/pkgs/os-specific/linux/kernel/linux-2.6.25.nix index ad1b0cc2797..5de1e141901 100644 --- a/pkgs/os-specific/linux/kernel/linux-2.6.25.nix +++ b/pkgs/os-specific/linux/kernel/linux-2.6.25.nix @@ -26,14 +26,25 @@ assert stdenv.system == "i686-linux" || stdenv.system == "x86_64-linux"; let - lib = import ../../../lib; + lib = stdenv.lib; version = "2.6.25.4"; + baseFeatures = { + iwlwifi = true; + }; + in stdenv.mkDerivation { name = if userModeLinux then "user-mode-linux-${version}" else "linux-${version}"; + + passthru = { + inherit version; + # Combine the `features' attribute sets of all the kernel patches. + features = lib.fold (x: y: (if x ? features then x.features else {}) // y) baseFeatures kernelPatches; + }; + builder = ./builder.sh; src = fetchurl { diff --git a/pkgs/os-specific/linux/klibc/shrunk.nix b/pkgs/os-specific/linux/klibc/shrunk.nix index 828e4691623..f45067565ab 100644 --- a/pkgs/os-specific/linux/klibc/shrunk.nix +++ b/pkgs/os-specific/linux/klibc/shrunk.nix @@ -1,7 +1,7 @@ {stdenv, klibc}: stdenv.mkDerivation { - name = "${klibc.name}"; + name = "${klibc.name}-shrunk"; buildCommand = '' ensureDir $out/lib cp -prd ${klibc}/lib/klibc/bin $out/ diff --git a/pkgs/os-specific/linux/nvidia/default.nix b/pkgs/os-specific/linux/nvidia/default.nix index bbd9acb15d2..7b414600ccb 100644 --- a/pkgs/os-specific/linux/nvidia/default.nix +++ b/pkgs/os-specific/linux/nvidia/default.nix @@ -7,7 +7,7 @@ let in stdenv.mkDerivation { - name = "nvidiaDrivers-" + versionNumber; + name = "nvidiaDrivers-${versionNumber}-${kernel.version}"; builder = ./builder.sh; src = fetchurl { diff --git a/pkgs/os-specific/linux/wis-go7007/default.nix b/pkgs/os-specific/linux/wis-go7007/default.nix index 3e35c83488a..0fa939c20c6 100644 --- a/pkgs/os-specific/linux/wis-go7007/default.nix +++ b/pkgs/os-specific/linux/wis-go7007/default.nix @@ -1,7 +1,7 @@ {stdenv, fetchurl, kernel, ncurses, fxload}: stdenv.mkDerivation { - name = "wis-go7007-0.9.8"; + name = "wis-go7007-0.9.8-${kernel.version}"; src = fetchurl { url = http://gentoo.osuosl.org/distfiles/wis-go7007-linux-0.9.8.tar.bz2; |