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

51 lines
1.9 KiB
Text
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}
, stdenvNativePkgs = allPackages {system = system, stdenv = stdenvNative}
# The Nix build environment.
, stdenvNix = (import ../stdenv/nix)
{ bootStdenv = stdenvNative
, pkgs = stdenvNativePkgs
}
, stdenvNixPkgs = allPackages {system = system, stdenv = stdenvNix}
# The Linux build environment consists of the Nix build environment
# built against the GNU C Library.
, stdenvLinuxGlibc = stdenvNativePkgs.glibc
, stdenvLinuxBoot = (import ../stdenv/nix-linux/boot.fix)
{ system = system
, glibc = stdenvLinuxGlibc
}
, stdenvLinuxBootPkgs = allPackages {system = system, stdenv = stdenvLinuxBoot}
, stdenvLinux = (import ../stdenv/nix-linux)
{ bootStdenv = stdenvLinuxBoot
, pkgs = stdenvLinuxBootPkgs
, glibc = stdenvLinuxGlibc
}
, stdenvLinuxPkgs = allPackages {system = system, stdenv = stdenvLinux}
# Select the right instantiation.
, body =
if system == "i686-suse-linux"
then stdenvLinuxPkgs
else stdenvNixPkgs
}