nixpkgs/pkgs-ng/system/all-packages.fix

42 lines
1.5 KiB
Plaintext
Raw Normal View History

# 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.
{system}: let
{ allPackages = import ./all-packages-generic.fix
# 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
}
# 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}
}