GNU: Avoid `__overrides' altogether, by using a non-recursive attrset.

Thanks to Eelco for the suggestion.

svn path=/nixpkgs/trunk/; revision=33587
This commit is contained in:
Ludovic Courtès 2012-04-04 20:25:51 +00:00
parent 1663ca3344
commit 3226d8b91d
2 changed files with 93 additions and 88 deletions

View File

@ -3,18 +3,19 @@
args@{ fetchgit, stdenv, autoconf, automake, automake111x, libtool args@{ fetchgit, stdenv, autoconf, automake, automake111x, libtool
, texinfo, glibcCross, hurdPartedCross, libuuid, samba_light , texinfo, glibcCross, hurdPartedCross, libuuid, samba_light
, gccCrossStageStatic, gccCrossStageFinal , gccCrossStageStatic, gccCrossStageFinal
, forceBuildDrv, forceSystem, callPackage, platform, config, crossSystem , forceBuildDrv, forceSystem, newScope, platform, config, crossSystem
, overrides ? {} }: , overrides ? {} }:
with args; with args;
rec { let
# Allow callers to override elements of this attribute set. callPackage = newScope gnu;
__overrides = overrides;
gnu = {
hurdCross = forceBuildDrv(import ./hurd { hurdCross = forceBuildDrv(import ./hurd {
inherit fetchgit stdenv autoconf libtool texinfo machHeaders inherit fetchgit stdenv autoconf libtool texinfo
mig glibcCross hurdPartedCross; glibcCross hurdPartedCross;
inherit (gnu) machHeaders mig;
libuuid = libuuid.hostDrv; libuuid = libuuid.hostDrv;
automake = automake111x; automake = automake111x;
headersOnly = false; headersOnly = false;
@ -23,8 +24,8 @@ rec {
}); });
hurdCrossIntermediate = forceBuildDrv(import ./hurd { hurdCrossIntermediate = forceBuildDrv(import ./hurd {
inherit fetchgit stdenv autoconf libtool texinfo machHeaders inherit fetchgit stdenv autoconf libtool texinfo glibcCross;
mig glibcCross; inherit (gnu) machHeaders mig;
automake = automake111x; automake = automake111x;
headersOnly = false; headersOnly = false;
cross = assert crossSystem != null; crossSystem; cross = assert crossSystem != null; crossSystem;
@ -56,9 +57,9 @@ rec {
}; };
libpthreadCross = forceBuildDrv(import ./libpthread { libpthreadCross = forceBuildDrv(import ./libpthread {
inherit fetchgit stdenv autoconf automake libtool inherit fetchgit stdenv autoconf automake libtool glibcCross;
machHeaders hurdHeaders glibcCross; inherit (gnu) machHeaders hurdHeaders;
hurd = hurdCrossIntermediate; hurd = gnu.hurdCrossIntermediate;
gccCross = gccCrossStageStatic; gccCross = gccCrossStageStatic;
cross = assert crossSystem != null; crossSystem; cross = assert crossSystem != null; crossSystem;
}); });
@ -95,4 +96,9 @@ rec {
unionfs = callPackage ./unionfs { unionfs = callPackage ./unionfs {
hurd = hurdCross; hurd = hurdCross;
}; };
} }
# Allow callers to override elements of this attribute set.
// overrides;
in gnu # we trust!

View File

@ -5447,7 +5447,6 @@ let
# GNU/Hurd core packages. # GNU/Hurd core packages.
gnu = recurseIntoAttrs (callPackage ../os-specific/gnu { gnu = recurseIntoAttrs (callPackage ../os-specific/gnu {
callPackage = newScope pkgs.gnu;
inherit platform crossSystem; inherit platform crossSystem;
}); });