diff options
author | Lluís Batlle i Rossell <viric@vicerveza.homeunix.net> | 2010-05-25 20:38:18 +0000 |
---|---|---|
committer | Lluís Batlle i Rossell <viric@vicerveza.homeunix.net> | 2010-05-25 20:38:18 +0000 |
commit | fa1a414aeea9926721ed2b87b74e3f3755538e3b (patch) | |
tree | 5e4d6aea8bcd00c53b71a564ce9e0fe001751a84 /pkgs/top-level/release-lib.nix | |
parent | d15811bf78eda2aacfa5274822ba07a911d9bca6 (diff) | |
parent | c5098ff56e44ab8eeae3a067838cf4e139196d52 (diff) | |
download | nixlib-fa1a414aeea9926721ed2b87b74e3f3755538e3b.tar nixlib-fa1a414aeea9926721ed2b87b74e3f3755538e3b.tar.gz nixlib-fa1a414aeea9926721ed2b87b74e3f3755538e3b.tar.bz2 nixlib-fa1a414aeea9926721ed2b87b74e3f3755538e3b.tar.lz nixlib-fa1a414aeea9926721ed2b87b74e3f3755538e3b.tar.xz nixlib-fa1a414aeea9926721ed2b87b74e3f3755538e3b.tar.zst nixlib-fa1a414aeea9926721ed2b87b74e3f3755538e3b.zip |
Merging from trunk - I had to resolve conflicts on coreutils; I hope I resolved that
well svn path=/nixpkgs/branches/stdenv-updates/; revision=21975
Diffstat (limited to 'pkgs/top-level/release-lib.nix')
-rw-r--r-- | pkgs/top-level/release-lib.nix | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/pkgs/top-level/release-lib.nix b/pkgs/top-level/release-lib.nix index 64530930ee50..be60de14ed81 100644 --- a/pkgs/top-level/release-lib.nix +++ b/pkgs/top-level/release-lib.nix @@ -3,7 +3,26 @@ rec { pkgs = allPackages {}; - /* The working or failing letters for cross builds will be sent only to + /* !!! Hack: poor man's memoisation function. Necessary for prevent + Nixpkgs from being evaluated again and again for every + job/platform pair. */ + pkgsFor = system: + if system == "x86_64-linux" then pkgs_x86_64_linux + else if system == "i686-linux" then pkgs_i686_linux + else if system == "x86_64-darwin" then pkgs_x86_64_darwin + else if system == "i686-darwin" then pkgs_i686_darwin + else if system == "i686-freebsd" then pkgs_i686_freebsd + else if system == "i686-cygwin" then pkgs_i686_cygwin + else abort "unsupported system type: ${system}"; + + pkgs_x86_64_linux = allPackages { system = "x86_64-linux"; }; + pkgs_i686_linux = allPackages { system = "i686-linux"; }; + pkgs_x86_64_darwin = allPackages { system = "x86_64-darwin"; }; + pkgs_i686_darwin = allPackages { system = "i686-darwin"; }; + pkgs_i686_freebsd = allPackages { system = "i686-freebsd"; }; + pkgs_i686_cygwin = allPackages { system = "i686-cygwin"; }; + + /* The working or failing mails for cross builds will be sent only to the following maintainers, as most package maintainers will not be interested in the result of cross building a package. */ crossMaintainers = with pkgs.lib.maintainers; [ viric ]; @@ -23,7 +42,7 @@ rec { to build on that platform. `f' is passed the Nixpkgs collection for the platform in question. */ testOn = systems: f: {system ? builtins.currentSystem}: - if pkgs.lib.elem system systems then f (allPackages {inherit system;}) else {}; + if pkgs.lib.elem system systems then f (pkgsFor system) else {}; /* Similar to the testOn function, but with an additional 'crossSystem' * parameter for allPackages, defining the target platform for cross builds */ |