2003-11-02 17:42:19 +00:00
|
|
|
# This file evaluates to a function that, when supplied with a system
|
|
|
|
# identifier, returns the set of all packages provided by the Nix
|
|
|
|
# Package Collection. It does this by supplying
|
|
|
|
# `all-packages-generic.fix' with a standard build environment.
|
|
|
|
#
|
|
|
|
# On Linux systems, the standard build environment consists of
|
|
|
|
# Nix-built instances glibc and the `standard' Unix tools, i.e., the
|
|
|
|
# Posix utilities, the GNU C compiler, and so on. On other systems,
|
|
|
|
# we use the native C library.
|
2003-10-30 17:01:49 +00:00
|
|
|
|
2003-11-02 17:42:19 +00:00
|
|
|
{system}: let
|
|
|
|
{ allPackages = import ./all-packages-generic.fix
|
2003-10-30 17:01:49 +00:00
|
|
|
|
2003-11-02 17:42:19 +00:00
|
|
|
# The native (i.e., impure) build environment. This one uses the
|
|
|
|
# tools installed on the system outside of the Nix environment,
|
|
|
|
# i.e., the stuff in /bin, /usr/bin, etc. This environment should
|
|
|
|
# be used with care, since many Nix packages will not build properly
|
|
|
|
# with it (e.g., because they require GNU Make).
|
|
|
|
, stdenvNative = (import ../stdenv/native) {system = system}
|
|
|
|
|
|
|
|
# The Nix build environment.
|
|
|
|
, stdenvNixPkgs = allPackages {system = system, stdenv = stdenvNative}
|
|
|
|
, stdenvNix = (import ../stdenv/nix)
|
|
|
|
{ bootStdenv = stdenvNative
|
|
|
|
, pkgs = stdenvNixPkgs
|
2003-10-30 17:01:49 +00:00
|
|
|
}
|
2003-11-02 17:42:19 +00:00
|
|
|
|
|
|
|
# The Linux build environment consists of the Nix build environment
|
|
|
|
# built against the GNU C Library.
|
|
|
|
, stdenvLinux = (import ../stdenv/nix-linux) {baseStdenv = stdenvNix}
|
|
|
|
|
|
|
|
# Select the right one.
|
|
|
|
, stdenv =
|
|
|
|
if system == "i686-suse-linux"
|
|
|
|
then stdenvNix
|
|
|
|
else stdenvNix
|
|
|
|
|
|
|
|
# Instantiate.
|
|
|
|
, body = allPackages {system = system, stdenv = stdenv}
|
|
|
|
|
|
|
|
}
|