Merge remote-tracking branch 'origin/master' into gcc-6

This commit is contained in:
Eelco Dolstra 2016-11-08 20:38:08 +01:00
commit 09f6fea799
24 changed files with 174 additions and 206 deletions

View File

@ -655,9 +655,8 @@ when you try to install a second environment.
Create a file, e.g. `build.nix`, with the following expression Create a file, e.g. `build.nix`, with the following expression
```nix ```nix
with import <nixpkgs> {}; with import <nixpkgs> {};
with python35Packages;
python.withPackages (ps: with ps; [ numpy ipython ]) pkgs.python35.withPackages (ps: with ps; [ numpy ipython ])
``` ```
and install it in your profile with and install it in your profile with
``` ```
@ -669,14 +668,15 @@ Now you can use the Python interpreter, as well as the extra packages that you a
If you prefer to, you could also add the environment as a package override to the Nixpkgs set. If you prefer to, you could also add the environment as a package override to the Nixpkgs set.
``` ```
packageOverrides = pkgs: with pkgs; with python35Packages; { packageOverrides = pkgs: with pkgs; {
myEnv = python.withPackages (ps: with ps; [ numpy ipython ]); myEnv = python35.withPackages (ps: with ps; [ numpy ipython ]);
}; };
``` ```
and install it in your profile with and install it in your profile with
``` ```
nix-env -iA nixos.blogEnv nix-env -iA nixpkgs.myEnv
``` ```
We're installing using the attribute path and assume the channels is named `nixpkgs`.
Note that I'm using the attribute path here. Note that I'm using the attribute path here.
#### Environment defined in `/etc/nixos/configuration.nix` #### Environment defined in `/etc/nixos/configuration.nix`
@ -685,7 +685,7 @@ For the sake of completeness, here's another example how to install the environm
```nix ```nix
environment.systemPackages = with pkgs; [ environment.systemPackages = with pkgs; [
(python35Packages.python.withPackages (ps: callPackage ../packages/common-python-packages.nix { pythonPackages = ps; })) (python35.withPackages(ps: with ps; [ numpy ipython ]))
]; ];
``` ```

View File

@ -8,7 +8,7 @@ let
name = "errbot-plugins"; name = "errbot-plugins";
paths = plugins; paths = plugins;
}; };
mkConfigFile = instanceCfg: dataDir: pkgs.writeText "errbot-config.py" '' mkConfigDir = instanceCfg: dataDir: pkgs.writeTextDir "config.py" ''
import logging import logging
BACKEND = '${instanceCfg.backend}' BACKEND = '${instanceCfg.backend}'
BOT_DATA_DIR = '${dataDir}' BOT_DATA_DIR = '${dataDir}'
@ -93,7 +93,7 @@ in {
serviceConfig = { serviceConfig = {
User = "errbot"; User = "errbot";
Restart = "on-failure"; Restart = "on-failure";
ExecStart = "${pkgs.errbot}/bin/errbot -c ${mkConfigFile instanceCfg dataDir}"; ExecStart = "${pkgs.errbot}/bin/errbot -c ${mkConfigDir instanceCfg dataDir}/config.py";
PermissionsStartOnly = true; PermissionsStartOnly = true;
}; };
})) cfg.instances; })) cfg.instances;

View File

@ -116,7 +116,7 @@ in {
" -conf ${pkgs.writeText "hound.json" cfg.config}"; " -conf ${pkgs.writeText "hound.json" cfg.config}";
}; };
path = [ pkgs.git ]; path = [ pkgs.git pkgs.mercurial pkgs.openssh ];
}; };
}; };

View File

@ -138,7 +138,7 @@ let
server_name ${serverName} ${concatStringsSep " " vhost.serverAliases}; server_name ${serverName} ${concatStringsSep " " vhost.serverAliases};
${acmeLocation} ${acmeLocation}
location / { location / {
return 301 https://$host${optionalString (port != 443) ":${port}"}$request_uri; return 301 https://$host${optionalString (port != 443) ":${toString port}"}$request_uri;
} }
} }
''} ''}

View File

@ -221,7 +221,7 @@ in rec {
tests.boot-stage1 = callTest tests/boot-stage1.nix {}; tests.boot-stage1 = callTest tests/boot-stage1.nix {};
tests.cadvisor = hydraJob (import tests/cadvisor.nix { system = "x86_64-linux"; }); tests.cadvisor = hydraJob (import tests/cadvisor.nix { system = "x86_64-linux"; });
tests.chromium = (callSubTests tests/chromium.nix { system = "x86_64-linux"; }).stable; tests.chromium = (callSubTests tests/chromium.nix { system = "x86_64-linux"; }).stable;
tests.cjdns = callTest tests/cjdns.nix {}; #tests.cjdns = callTest tests/cjdns.nix {};
tests.containers-ipv4 = callTest tests/containers-ipv4.nix {}; tests.containers-ipv4 = callTest tests/containers-ipv4.nix {};
tests.containers-ipv6 = callTest tests/containers-ipv6.nix {}; tests.containers-ipv6 = callTest tests/containers-ipv6.nix {};
tests.containers-bridge = callTest tests/containers-bridge.nix {}; tests.containers-bridge = callTest tests/containers-bridge.nix {};

View File

@ -11,12 +11,12 @@
assert stdenv ? glibc; assert stdenv ? glibc;
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
version = "2.0.6"; version = "2.0.7";
name = "darktable-${version}"; name = "darktable-${version}";
src = fetchurl { src = fetchurl {
url = "https://github.com/darktable-org/darktable/releases/download/release-${version}/darktable-${version}.tar.xz"; url = "https://github.com/darktable-org/darktable/releases/download/release-${version}/darktable-${version}.tar.xz";
sha256 = "1h9qwxyvcv0fc6y5b6l2x4jd5mmw026blhjkcihj00r1aa3c2s13"; sha256 = "1aqxiaw89xdx0s0h3gb9nvdzw4690y3kp7h794sihf2581bn28m9";
}; };
buildInputs = buildInputs =

View File

@ -4,7 +4,7 @@
let let
# Always get the information from # Always get the information from
# https://github.com/coreos/rkt/blob/v${VERSION}/stage1/usr_from_coreos/coreos-common.mk # https://github.com/coreos/rkt/blob/v${VERSION}/stage1/usr_from_coreos/coreos-common.mk
coreosImageRelease = "1151.0.0"; coreosImageRelease = "1192.0.0";
coreosImageSystemdVersion = "231"; coreosImageSystemdVersion = "231";
# TODO: track https://github.com/coreos/rkt/issues/1758 to allow "host" flavor. # TODO: track https://github.com/coreos/rkt/issues/1758 to allow "host" flavor.
@ -12,7 +12,7 @@ let
stage1Dir = "lib/rkt/stage1-images"; stage1Dir = "lib/rkt/stage1-images";
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
version = "1.17.0"; version = "1.18.0";
name = "rkt-${version}"; name = "rkt-${version}";
BUILDDIR="build-${name}"; BUILDDIR="build-${name}";
@ -20,7 +20,7 @@ in stdenv.mkDerivation rec {
owner = "coreos"; owner = "coreos";
repo = "rkt"; repo = "rkt";
rev = "v${version}"; rev = "v${version}";
sha256 = "1jbdnbd2h58zd5irllim6cfa9bf0fdk5nr8qxpjnsgd1fsyhkpld"; sha256 = "0vvkwdpl9y0g5m00m1h7q8f95hj5qxigpxrb5zwfqrcv3clzn5a6";
}; };
stage1BaseImage = fetchurl { stage1BaseImage = fetchurl {

View File

@ -2,11 +2,11 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "man-pages-${version}"; name = "man-pages-${version}";
version = "4.07"; version = "4.08";
src = fetchurl { src = fetchurl {
url = "mirror://kernel/linux/docs/man-pages/${name}.tar.xz"; url = "mirror://kernel/linux/docs/man-pages/${name}.tar.xz";
sha256 = "1vimj3va16plxmv46rw6nzw4m9l11hb7r1d217y1bjpd5q8nw8qz"; sha256 = "1d32ki8nkwd2xiln619jihqn7s15ydrg7386n4hxq530sys7svic";
}; };
makeFlags = [ "MANDIR=$(out)/share/man" ]; makeFlags = [ "MANDIR=$(out)/share/man" ];

View File

@ -6,14 +6,14 @@ let
inherit (bootPkgs) ghc; inherit (bootPkgs) ghc;
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {
version = "8.1.20160930"; version = "8.1.20161108";
name = "ghc-${version}"; name = "ghc-${version}";
rev = "9e862765ffe161da8a4fd9cd67b0a600874feaa9"; rev = "2e8463b232054b788b73e6551947a9434aa76009";
src = fetchgit { src = fetchgit {
url = "git://git.haskell.org/ghc.git"; url = "git://git.haskell.org/ghc.git";
inherit rev; inherit rev;
sha256 = "01fmp5yrh3is8vzv2vabkzlvm1ry1zcq99m078plx9wgy20giq59"; sha256 = "1x1vnb2zr2qrak72bdqh65d00q351yhn8xvv5i4i359cf2xjmgfd";
}; };
patches = [ patches = [

View File

@ -1,16 +1,15 @@
{ stdenv, fetchurl, pkgconfig, python, glib, zlib, libpng, gnumake3 }: { stdenv, fetchurl, pkgconfig, python, glib, zlib, libpng, gnumake3, cmake }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "lensfun-0.2.8"; version = "0.3.2";
name = "lensfun-${version}";
src = fetchurl { src = fetchurl {
url = "mirror://sourceforge/lensfun/${name}.tar.bz2"; url = "mirror://sourceforge/lensfun/${version}/${name}.tar.gz";
sha256 = "0j0smagnksdm9gjnk13w200hjxshmxf2kvyxxnra4nc2qzxrg3zq"; sha256 = "0cfk8jjhs9nbfjfdy98plrj9ayi59aph0nx6ppslgjhlcvacm2xf";
}; };
patchPhase = "sed -e 's@/usr/bin/python@${python}/bin/python@' -i configure"; buildInputs = [ pkgconfig glib zlib libpng cmake gnumake3 ];
buildInputs = [ pkgconfig glib zlib libpng gnumake3 ];
configureFlags = "-v"; configureFlags = "-v";

View File

@ -1,21 +1,24 @@
{ stdenv, fetchurl, pkgconfig, libusb1, libtool, libexif, libjpeg, gettext }: { stdenv, fetchpatch, fetchFromGitHub, pkgconfig, libusb1, libtool, libexif, libjpeg, gettext, autoreconfHook }:
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
name = "libgphoto2-${meta.version}"; name = "libgphoto2-${meta.version}";
src = fetchurl { src = fetchFromGitHub {
url = "mirror://sourceforge/gphoto/${name}.tar.bz2"; owner = "gphoto";
sha256 = "1wjf79ipqwb5phfjjwf15rwgigakylnfqaj4crs5qnds6ba6i1ld"; repo = "libgphoto2";
rev = "${meta.tag}";
sha256 = "17k3jxib2jcr2wk83p34h3lvvjbs2gqhqfcngm8zmlrwb385yalh";
}; };
patches = [(fetchurl { patches = [(fetchpatch {
name = "libjpeg_turbo_1.5.0_fix.patch";
url = "https://anonscm.debian.org/cgit/pkg-phototools/libgphoto2.git/plain" url = "https://anonscm.debian.org/cgit/pkg-phototools/libgphoto2.git/plain"
+ "/debian/patches/libjpeg_turbo_1.5.0_fix.patch?id=8ce79a2a02d"; + "/debian/patches/libjpeg_turbo_1.5.0_fix.patch?id=8ce79a2a02d";
sha256 = "114iyhk6idxz2jhnzpf1glqm6d0x0y8cqfpqxz9i96q9j7x3wwin"; sha256 = "1zclgg20nv4krj8gigq3ylirxqiv1v8p59cfji041m156hy80gy2";
})]; })];
nativeBuildInputs = [ pkgconfig gettext ]; nativeBuildInputs = [ pkgconfig gettext autoreconfHook ];
buildInputs = [ libtool libjpeg libusb1 ]; buildInputs = [ libtool libjpeg libusb1 ];
# These are mentioned in the Requires line of libgphoto's pkg-config file. # These are mentioned in the Requires line of libgphoto's pkg-config file.
propagatedBuildInputs = [ libexif ]; propagatedBuildInputs = [ libexif ];
@ -31,6 +34,7 @@ stdenv.mkDerivation rec {
from digital cameras. from digital cameras.
''; '';
version = "2.5.10"; version = "2.5.10";
tag = "libgphoto2-2_5_10-release";
# XXX: the homepage claims LGPL, but several src files are lgpl21Plus # XXX: the homepage claims LGPL, but several src files are lgpl21Plus
license = stdenv.lib.licenses.lgpl21Plus; license = stdenv.lib.licenses.lgpl21Plus;
platforms = with stdenv.lib.platforms; unix; platforms = with stdenv.lib.platforms; unix;

View File

@ -0,0 +1,32 @@
{stdenv, fetchFromGitHub, buildOcaml, ocaml, opam,
cppo, ppx_tools, ounit, ppx_deriving}:
buildOcaml rec {
name = "ppx_import";
version = "1.1";
minimumSupportedOcamlVersion = "4.02";
src = fetchFromGitHub {
owner = "whitequark";
repo = "ppx_import";
rev = "v${version}";
sha256 = "1hfvbc81dg58q7kkpn808b3j0xazrqfrr4v71sd1yvmnk71wak6k";
};
buildInputs = [ cppo ounit ppx_deriving opam ];
doCheck = true;
checkTarget = "test";
installPhase = ''
opam-installer --script --prefix=$out ppx_import.install | sh
ln -s $out/lib/ppx_import $out/lib/ocaml/${ocaml.version}/site-lib
'';
meta = with stdenv.lib; {
description = "A syntax extension that allows to pull in types or signatures from other compiled interface files";
license = licenses.mit;
};
}

View File

@ -89,6 +89,10 @@ in
msgpack = attrs: { msgpack = attrs: {
buildInputs = [ libmsgpack ]; buildInputs = [ libmsgpack ];
}; };
mysql = attrs: {
buildInputs = [ mysql.lib zlib openssl ];
};
mysql2 = attrs: { mysql2 = attrs: {
buildInputs = [ mysql.lib zlib openssl ]; buildInputs = [ mysql.lib zlib openssl ];

View File

@ -1,62 +0,0 @@
{ stdenv, lib, fetchgit, fetchurl, ocaml, unzip, ncurses, curl }:
assert lib.versionAtLeast ocaml.version "3.12.1";
let
srcs = {
cudf = fetchurl {
url = "https://gforge.inria.fr/frs/download.php/31910/cudf-0.6.3.tar.gz";
sha256 = "6e9f1bafe859df85c854679e2904a8172945d2bf2d676c8ae3ecb72fe6de0665";
};
extlib = fetchurl {
url = "http://ocaml-extlib.googlecode.com/files/extlib-1.5.3.tar.gz";
sha256 = "c095eef4202a8614ff1474d4c08c50c32d6ca82d1015387785cf03d5913ec021";
};
ocaml_re = fetchurl {
url = "https://github.com/ocaml/ocaml-re/archive/ocaml-re-1.2.0.tar.gz";
sha256 = "a34dd9d6136731436a963bbab5c4bbb16e5d4e21b3b851d34887a3dec451999f";
};
ocamlgraph = fetchurl {
url = "http://ocamlgraph.lri.fr/download/ocamlgraph-1.8.1.tar.gz";
sha256 = "ba6388ffc2c15139b0f26330ef6dd922f0ff0f364eee99a3202bf1cd93512b43";
};
dose3 = fetchurl {
url = "https://gforge.inria.fr/frs/download.php/31595/dose3-3.1.2.tar.gz";
sha256 = "3a07a08345be157c98cb26021d7329c72c2b95c99cfdff79887690656ec9f1a3";
};
cmdliner = fetchurl {
url = "http://erratique.ch/software/cmdliner/releases/cmdliner-0.9.3.tbz";
sha256 = "5421559aa12b4debffef947f7e1039c22e9dffd87a4aa68445a687a20764ae81";
};
opam = fetchurl {
url = "https://github.com/OCamlPro/opam/archive/1.0.0.zip";
sha256 = "f8d94a91c2b8d110fa5e3b0a87c512a860acbae110654498a164c5c888c40bda";
};
};
in
stdenv.mkDerivation rec {
name = "opam-1.0.0";
buildInputs = [unzip curl ncurses ocaml];
src = srcs.opam;
postUnpack = ''
ln -sv ${srcs.cudf} $sourceRoot/src_ext/${srcs.cudf.name}
ln -sv ${srcs.extlib} $sourceRoot/src_ext/${srcs.extlib.name}
ln -sv ${srcs.ocaml_re} $sourceRoot/src_ext/${srcs.ocaml_re.name}
ln -sv ${srcs.ocamlgraph} $sourceRoot/src_ext/${srcs.ocamlgraph.name}
ln -sv ${srcs.dose3} $sourceRoot/src_ext/${srcs.dose3.name}
ln -sv ${srcs.cmdliner} $sourceRoot/src_ext/${srcs.cmdliner.name}
'';
makeFlags = ["HOME=$(TMPDIR)"];
doCheck = false;
meta = {
maintainers = [ stdenv.lib.maintainers.orbitz ];
description = "A package manager for OCaml";
platforms = stdenv.lib.platforms.all;
};
}

View File

@ -1,64 +0,0 @@
{ stdenv, lib, fetchgit, fetchurl, ocaml, unzip, ncurses, curl }:
# Opam 1.1 only works with ocaml >= 3.12.1 according to ./configure
assert lib.versionAtLeast ocaml.version "3.12.1";
let
srcs = {
cudf = fetchurl {
url = "https://gforge.inria.fr/frs/download.php/31910/cudf-0.6.3.tar.gz";
sha256 = "6e9f1bafe859df85c854679e2904a8172945d2bf2d676c8ae3ecb72fe6de0665";
};
extlib = fetchurl {
url = "http://ocaml-extlib.googlecode.com/files/extlib-1.5.3.tar.gz";
sha256 = "c095eef4202a8614ff1474d4c08c50c32d6ca82d1015387785cf03d5913ec021";
};
ocaml_re = fetchurl {
url = "https://github.com/ocaml/ocaml-re/archive/ocaml-re-1.2.0.tar.gz";
sha256 = "a34dd9d6136731436a963bbab5c4bbb16e5d4e21b3b851d34887a3dec451999f";
};
ocamlgraph = fetchurl {
url = "http://ocamlgraph.lri.fr/download/ocamlgraph-1.8.1.tar.gz";
sha256 = "ba6388ffc2c15139b0f26330ef6dd922f0ff0f364eee99a3202bf1cd93512b43";
};
dose3 = fetchurl {
url = "https://gforge.inria.fr/frs/download.php/31595/dose3-3.1.2.tar.gz";
sha256 = "3a07a08345be157c98cb26021d7329c72c2b95c99cfdff79887690656ec9f1a3";
};
cmdliner = fetchurl {
url = "http://erratique.ch/software/cmdliner/releases/cmdliner-0.9.3.tbz";
sha256 = "5421559aa12b4debffef947f7e1039c22e9dffd87a4aa68445a687a20764ae81";
};
opam = fetchurl {
url = "https://github.com/ocaml/opam/archive/1.1.1.zip";
sha256 = "9c69eeb448af5a38950b2664446401ce240b9f028e0b4d26b6ac1a96938a5f03";
};
};
in
stdenv.mkDerivation rec {
name = "opam-1.1.1";
buildInputs = [unzip curl ncurses ocaml];
src = srcs.opam;
postUnpack = ''
ln -sv ${srcs.cudf} $sourceRoot/src_ext/${srcs.cudf.name}
ln -sv ${srcs.extlib} $sourceRoot/src_ext/${srcs.extlib.name}
ln -sv ${srcs.ocaml_re} $sourceRoot/src_ext/${srcs.ocaml_re.name}
ln -sv ${srcs.ocamlgraph} $sourceRoot/src_ext/${srcs.ocamlgraph.name}
ln -sv ${srcs.dose3} $sourceRoot/src_ext/${srcs.dose3.name}
ln -sv ${srcs.cmdliner} $sourceRoot/src_ext/${srcs.cmdliner.name}
'';
# Dirty, but apparently ocp-build requires a TERM
makeFlags = ["TERM=screen"];
doCheck = false;
meta = {
maintainers = [stdenv.lib.maintainers.orbitz];
description = "A package manager for OCaml";
platforms = stdenv.lib.platforms.all;
};
}

View File

@ -9,11 +9,19 @@
let let
commonTargetPkgs = pkgs: with pkgs; commonTargetPkgs = pkgs: with pkgs;
let primus2 = let
if newStdcpp then primus else primus.override { primus2 = if newStdcpp then primus else primus.override {
stdenv = overrideInStdenv stdenv [ useOldCXXAbi ]; stdenv = overrideInStdenv stdenv [ useOldCXXAbi ];
stdenv_i686 = overrideInStdenv pkgsi686Linux.stdenv [ useOldCXXAbi ]; stdenv_i686 = overrideInStdenv pkgsi686Linux.stdenv [ useOldCXXAbi ];
}; };
tzdir = "${pkgs.tzdata}/share/zoneinfo";
# I'm not sure if this is the best way to add things like this
# to an FHSUserEnv
etc-zoneinfo = pkgs.runCommand "zoneinfo" {} ''
mkdir -p $out/etc
ln -s ${tzdir} $out/etc/zoneinfo
ln -s ${tzdir}/UTC $out/etc/localtime
'';
in [ in [
steamPackages.steam-fonts steamPackages.steam-fonts
# Errors in output without those # Errors in output without those
@ -26,6 +34,8 @@ let
perl perl
# Open URLs # Open URLs
xdg_utils xdg_utils
# Zoneinfo
etc-zoneinfo
] ++ lib.optional withJava jdk ] ++ lib.optional withJava jdk
++ lib.optional withPrimus primus2; ++ lib.optional withPrimus primus2;
@ -76,6 +86,7 @@ in buildFHSUserEnv rec {
profile = '' profile = ''
export STEAM_RUNTIME=/steamrt export STEAM_RUNTIME=/steamrt
export TZDIR=/etc/zoneinfo
''; '';
runScript = "steam"; runScript = "steam";

View File

@ -0,0 +1,31 @@
{ system, allPackages, platform, crossSystem, config, ... } @ args:
rec {
argClobber = {
crossSystem = null;
# Ignore custom stdenvs when cross compiling for compatability
config = builtins.removeAttrs config [ "replaceStdenv" ];
};
vanillaStdenv = (import ../. (args // argClobber // {
allPackages = args: allPackages (argClobber // args);
})).stdenv;
# Yeah this isn't so cleanly just build-time packages yet. Notice the
# buildPackages <-> stdenvCross cycle. Yup, it's very weird.
#
# This works because the derivation used to build `stdenvCross` are in
# fact using `forceNativeDrv` to use the `nativeDrv` attribute of the resulting
# derivation built with `vanillaStdenv` (second argument of `makeStdenvCross`).
#
# Eventually, `forceNativeDrv` should be removed and the cycle broken.
buildPackages = allPackages {
# It's OK to change the built-time dependencies
allowCustomOverrides = true;
bootStdenv = stdenvCross;
inherit system platform crossSystem config;
};
stdenvCross = buildPackages.makeStdenvCross
vanillaStdenv crossSystem
buildPackages.binutilsCross buildPackages.gccCrossStageFinal;
}

View File

@ -0,0 +1,17 @@
{ system, allPackages, platform, crossSystem, config, ... } @ args:
rec {
vanillaStdenv = (import ../. (args // {
# Remove config.replaceStdenv to ensure termination.
config = builtins.removeAttrs config [ "replaceStdenv" ];
})).stdenv;
buildPackages = allPackages {
# It's OK to change the built-time dependencies
allowCustomOverrides = true;
bootStdenv = vanillaStdenv;
inherit system platform crossSystem config;
};
stdenvCustom = config.replaceStdenv { pkgs = buildPackages; };
}

View File

@ -5,7 +5,7 @@
# Posix utilities, the GNU C compiler, and so on. On other systems, # Posix utilities, the GNU C compiler, and so on. On other systems,
# we use the native C library. # we use the native C library.
{ system, allPackages ? import ../.., platform, config, lib }: { system, allPackages ? import ../.., platform, config, crossSystem, lib }:
rec { rec {
@ -36,10 +36,16 @@ rec {
# Linux standard environment. # Linux standard environment.
inherit (import ./linux { inherit system allPackages platform config lib; }) stdenvLinux; inherit (import ./linux { inherit system allPackages platform config lib; }) stdenvLinux;
inherit (import ./darwin { inherit system allPackages platform config;}) stdenvDarwin; inherit (import ./darwin { inherit system allPackages platform config; }) stdenvDarwin;
inherit (import ./cross { inherit system allPackages platform crossSystem config lib; }) stdenvCross;
inherit (import ./custom { inherit system allPackages platform crossSystem config lib; }) stdenvCustom;
# Select the appropriate stdenv for the platform `system'. # Select the appropriate stdenv for the platform `system'.
stdenv = stdenv =
if crossSystem != null then stdenvCross else
if config ? replaceStdenv then stdenvCustom else
if system == "i686-linux" then stdenvLinux else if system == "i686-linux" then stdenvLinux else
if system == "x86_64-linux" then stdenvLinux else if system == "x86_64-linux" then stdenvLinux else
if system == "armv5tel-linux" then stdenvLinux else if system == "armv5tel-linux" then stdenvLinux else

View File

@ -5,9 +5,9 @@
* to merges. Please use the full-text search of your editor. ;) * to merges. Please use the full-text search of your editor. ;)
* Hint: ### starts category names. * Hint: ### starts category names.
*/ */
{ system, bootStdenv, noSysDirs, config, crossSystem, platform, lib { system, noSysDirs, config, crossSystem, platform, lib
, nixpkgsFun , nixpkgsFun
, ... }: }:
self: pkgs: self: pkgs:
with pkgs; with pkgs;
@ -3022,7 +3022,7 @@ in
openssh = openssh =
callPackage ../tools/networking/openssh { callPackage ../tools/networking/openssh {
hpnSupport = false; hpnSupport = false;
withKerberos = false; withKerberos = stdenv.isDarwin;
etcDir = "/etc/ssh"; etcDir = "/etc/ssh";
pam = if stdenv.isLinux then pam else null; pam = if stdenv.isLinux then pam else null;
}; };
@ -5125,9 +5125,7 @@ in
nodejs = nodejs-4_x; nodejs = nodejs-4_x;
}; };
inherit (ocaml-ng.ocamlPackages_4_01_0) opam_1_0_0; opam = callPackage ../development/tools/ocaml/opam { };
inherit (ocaml-ng.ocamlPackages_4_01_0) opam_1_1;
inherit (ocamlPackages) opam;
picat = callPackage ../development/compilers/picat { picat = callPackage ../development/compilers/picat {
stdenv = overrideCC stdenv gcc49; stdenv = overrideCC stdenv gcc49;

View File

@ -12,6 +12,11 @@
# null, the default standard environment is used. # null, the default standard environment is used.
bootStdenv ? null bootStdenv ? null
, # This is used because stdenv replacement and the stdenvCross do benefit from
# the overridden configuration provided by the user, as opposed to the normal
# bootstrapping stdenvs.
allowCustomOverrides ? (bootStdenv == null)
, # Non-GNU/Linux OSes are currently "impure" platforms, with their libc , # Non-GNU/Linux OSes are currently "impure" platforms, with their libc
# outside of the store. Thus, GCC, GFortran, & co. must always look for # outside of the store. Thus, GCC, GFortran, & co. must always look for
# files in standard system directories (/usr/include, etc.) # files in standard system directories (/usr/include, etc.)
@ -56,10 +61,6 @@ let
platform = if platform_ != null then platform_ platform = if platform_ != null then platform_
else config.platform or platformAuto; else config.platform or platformAuto;
topLevelArguments = {
inherit system bootStdenv noSysDirs config crossSystem platform lib nixpkgsFun;
};
# A few packages make a new package set to draw their dependencies from. # A few packages make a new package set to draw their dependencies from.
# (Currently to get a cross tool chain, or forced-i686 package.) Rather than # (Currently to get a cross tool chain, or forced-i686 package.) Rather than
# give `all-packages.nix` all the arguments to this function, even ones that # give `all-packages.nix` all the arguments to this function, even ones that
@ -77,14 +78,19 @@ let
}; };
trivialBuilders = self: super: trivialBuilders = self: super:
(import ../build-support/trivial-builders.nix { import ../build-support/trivial-builders.nix {
inherit lib; inherit (self) stdenv stdenvNoCC; inherit (self.xorg) lndir; inherit lib; inherit (self) stdenv stdenvNoCC; inherit (self.xorg) lndir;
}); };
stdenvDefault = self: super: (import ./stdenv.nix topLevelArguments) pkgs; stdenvDefault = self: super:
import ./stdenv.nix {
inherit system bootStdenv crossSystem config platform lib nixpkgsFun;
};
allPackages = self: super: allPackages = self: super:
let res = import ./all-packages.nix topLevelArguments res self; let res = import ./all-packages.nix
{ inherit system noSysDirs config crossSystem platform lib nixpkgsFun; }
res self;
in res; in res;
aliases = self: super: import ./aliases.nix super; aliases = self: super: import ./aliases.nix super;
@ -108,7 +114,7 @@ let
# attributes to refer to the original attributes (e.g. "foo = # attributes to refer to the original attributes (e.g. "foo =
# ... pkgs.foo ..."). # ... pkgs.foo ...").
configOverrides = self: super: configOverrides = self: super:
lib.optionalAttrs (bootStdenv == null) lib.optionalAttrs allowCustomOverrides
((config.packageOverrides or (super: {})) super); ((config.packageOverrides or (super: {})) super);
# The complete chain of package set builders, applied from top to bottom # The complete chain of package set builders, applied from top to bottom

View File

@ -416,6 +416,8 @@ let
then callPackage ../development/ocaml-modules/ppx_deriving {} then callPackage ../development/ocaml-modules/ppx_deriving {}
else null; else null;
ppx_import = callPackage ../development/ocaml-modules/ppx_import {};
ppx_tools = ppx_tools =
if lib.versionAtLeast ocaml.version "4.02" if lib.versionAtLeast ocaml.version "4.02"
then callPackage ../development/ocaml-modules/ppx_tools {} then callPackage ../development/ocaml-modules/ppx_tools {}
@ -625,10 +627,6 @@ let
ocaml-top = callPackage ../development/tools/ocaml/ocaml-top { }; ocaml-top = callPackage ../development/tools/ocaml/ocaml-top { };
opam_1_0_0 = callPackage ../development/tools/ocaml/opam/1.0.0.nix { };
opam_1_1 = callPackage ../development/tools/ocaml/opam/1.1.nix { };
opam = callPackage ../development/tools/ocaml/opam { };
ocamlnat = callPackage ../development/ocaml-modules/ocamlnat { }; ocamlnat = callPackage ../development/ocaml-modules/ocamlnat { };
trv = callPackage ../development/tools/misc/trv { }; trv = callPackage ../development/tools/misc/trv { };

View File

@ -12343,6 +12343,9 @@ in {
buildInputs = with self; [ flake8 pytest flaky ]; buildInputs = with self; [ flake8 pytest flaky ];
propagatedBuildInputs = with self; ([ uncompyle6 ] ++ optionals isPy27 [ enum34 ]); propagatedBuildInputs = with self; ([ uncompyle6 ] ++ optionals isPy27 [ enum34 ]);
# Fails randomly in tests/cover/test_conjecture_engine.py::test_interleaving_engines.
doCheck = false;
# https://github.com/DRMacIver/hypothesis/issues/300 # https://github.com/DRMacIver/hypothesis/issues/300
checkPhase = '' checkPhase = ''
${python.interpreter} -m pytest tests/cover ${python.interpreter} -m pytest tests/cover

View File

@ -1,30 +1,15 @@
{ system, bootStdenv, crossSystem, config, platform, lib, nixpkgsFun, ... }: { system, bootStdenv, crossSystem, config, platform, lib, nixpkgsFun }:
pkgs:
rec { rec {
allStdenvs = import ../stdenv { allStdenvs = import ../stdenv {
inherit system platform config lib; inherit system platform config crossSystem lib;
# TODO(@Ericson2314): hack for cross-compiling until I clean that in follow-up PR allPackages = nixpkgsFun;
allPackages = args: nixpkgsFun (args // { crossSystem = null; });
}; };
defaultStdenv = allStdenvs.stdenv // { inherit platform; }; defaultStdenv = allStdenvs.stdenv // { inherit platform; };
stdenv = stdenv =
if bootStdenv != null then (bootStdenv // {inherit platform;}) else if bootStdenv != null
if crossSystem != null then then (bootStdenv // { inherit platform; })
pkgs.stdenvCross else defaultStdenv;
else
let
changer = config.replaceStdenv or null;
in if changer != null then
changer {
# We import again all-packages to avoid recursivities.
pkgs = nixpkgsFun {
# We remove packageOverrides to avoid recursivities
config = removeAttrs config [ "replaceStdenv" ];
};
}
else
defaultStdenv;
} }