diff --git a/maintainers/scripts/all-tarballs.nix b/maintainers/scripts/all-tarballs.nix index d981a1fa7db..6a4de8a4b95 100644 --- a/maintainers/scripts/all-tarballs.nix +++ b/maintainers/scripts/all-tarballs.nix @@ -6,13 +6,11 @@ $ copy-tarballs.pl --expr 'import ' */ -removeAttrs (import ../../pkgs/top-level/release.nix +import ../../pkgs/top-level/release.nix { # Don't apply ‘hydraJob’ to jobs, because then we can't get to the # dependency graph. scrubJobs = false; # No need to evaluate on i686. supportedSystems = [ "x86_64-linux" ]; - }) - [ # Remove jobs whose evaluation depends on a writable Nix store. - "tarball" "unstable" "darwin-tested" - ] + limitedSupportedSystems = []; + } diff --git a/pkgs/top-level/make-tarball.nix b/pkgs/top-level/make-tarball.nix index ccd7b89fc12..f7f128547ba 100644 --- a/pkgs/top-level/make-tarball.nix +++ b/pkgs/top-level/make-tarball.nix @@ -42,7 +42,7 @@ releaseTools.sourceTarball rec { echo 'abort "Illegal use of in Nixpkgs."' > $TMPDIR/barf.nix - # Make sure that Nixpkgs does not use + # Make sure that Nixpkgs does not use . badFiles=$(find pkgs -type f -name '*.nix' -print | xargs grep -l '^[^#]* to refer to itself." @@ -101,7 +101,7 @@ releaseTools.sourceTarball rec { stopNest header "checking find-tarballs.nix" - nix-instantiate --eval --strict --show-trace --json \ + nix-instantiate --readonly-mode --eval --strict --show-trace --json \ ./maintainers/scripts/find-tarballs.nix \ --arg expr 'import ./maintainers/scripts/all-tarballs.nix' > $TMPDIR/tarballs.json nrUrls=$(jq -r '.[].url' < $TMPDIR/tarballs.json | wc -l) diff --git a/pkgs/top-level/release.nix b/pkgs/top-level/release.nix index ca4c8ce83f3..4b8d10a48eb 100644 --- a/pkgs/top-level/release.nix +++ b/pkgs/top-level/release.nix @@ -29,6 +29,8 @@ let systemsWithAnySupport = supportedSystems ++ limitedSupportedSystems; + supportDarwin = builtins.elem "x86_64-darwin" systemsWithAnySupport; + jobs = { tarball = import ./make-tarball.nix { inherit pkgs nixpkgs officialRelease; }; @@ -37,7 +39,7 @@ let manual = import ../../doc; lib-tests = import ../../lib/tests/release.nix { inherit pkgs; }; - darwin-tested = pkgs.releaseTools.aggregate + darwin-tested = if supportDarwin then pkgs.releaseTools.aggregate { name = "nixpkgs-darwin-${jobs.tarball.version}"; meta.description = "Release-critical builds for the Nixpkgs darwin channel"; constituents = @@ -70,7 +72,7 @@ let jobs.tests.stdenv-inputs.x86_64-darwin jobs.tests.macOSSierraShared.x86_64-darwin ]; - }; + } else null; unstable = pkgs.releaseTools.aggregate { name = "nixpkgs-${jobs.tarball.version}"; @@ -81,65 +83,66 @@ let jobs.manual jobs.lib-tests jobs.stdenv.x86_64-linux - jobs.stdenv.x86_64-darwin jobs.linux.x86_64-linux jobs.python.x86_64-linux - jobs.python.x86_64-darwin jobs.python3.x86_64-linux - jobs.python3.x86_64-darwin # Needed by travis-ci to test PRs jobs.nox.x86_64-linux - jobs.nox.x86_64-darwin # Needed for support jobs.nix-info.x86_64-linux - jobs.nix-info.x86_64-darwin jobs.nix-info-tested.x86_64-linux - jobs.nix-info-tested.x86_64-darwin # Ensure that X11/GTK+ are in order. jobs.thunderbird.x86_64-linux - # Ensure that basic stuff works on darwin - jobs.git.x86_64-darwin - jobs.mariadb.x86_64-darwin - jobs.vim.x86_64-darwin - # Ensure that UI stuff works on darwin - jobs.inkscape.x86_64-darwin - jobs.qt5.qtmultimedia.x86_64-darwin jobs.tests.cc-wrapper.x86_64-linux - jobs.tests.cc-wrapper.x86_64-darwin jobs.tests.cc-wrapper-gcc7.x86_64-linux - jobs.tests.cc-wrapper-gcc7.x86_64-darwin jobs.tests.cc-wrapper-gcc8.x86_64-linux # broken see issue #40038 - # jobs.tests.cc-wrapper-gcc8.x86_64-darwin jobs.tests.cc-wrapper-clang.x86_64-linux - jobs.tests.cc-wrapper-clang.x86_64-darwin jobs.tests.cc-wrapper-libcxx.x86_64-linux - jobs.tests.cc-wrapper-libcxx.x86_64-darwin jobs.tests.cc-wrapper-clang-39.x86_64-linux - jobs.tests.cc-wrapper-clang-39.x86_64-darwin jobs.tests.cc-wrapper-libcxx-39.x86_64-linux - jobs.tests.cc-wrapper-libcxx-39.x86_64-darwin jobs.tests.cc-wrapper-clang-4.x86_64-linux - jobs.tests.cc-wrapper-clang-4.x86_64-darwin jobs.tests.cc-wrapper-libcxx-4.x86_64-linux - jobs.tests.cc-wrapper-libcxx-4.x86_64-darwin jobs.tests.cc-wrapper-clang-5.x86_64-linux - jobs.tests.cc-wrapper-clang-5.x86_64-darwin jobs.tests.cc-wrapper-libcxx-5.x86_64-linux - jobs.tests.cc-wrapper-libcxx-6.x86_64-darwin jobs.tests.cc-wrapper-clang-6.x86_64-linux - jobs.tests.cc-wrapper-clang-6.x86_64-darwin jobs.tests.cc-wrapper-libcxx-6.x86_64-linux - jobs.tests.cc-wrapper-libcxx-6.x86_64-darwin jobs.tests.cc-multilib-gcc.x86_64-linux jobs.tests.cc-multilib-clang.x86_64-linux jobs.tests.stdenv-inputs.x86_64-linux + ] + ++ lib.collect lib.isDerivation jobs.stdenvBootstrapTools + ++ lib.optionals supportDarwin [ + jobs.stdenv.x86_64-darwin + jobs.python.x86_64-darwin + jobs.python3.x86_64-darwin + jobs.nox.x86_64-darwin + jobs.nix-info.x86_64-darwin + jobs.nix-info-tested.x86_64-darwin + jobs.git.x86_64-darwin + jobs.mariadb.x86_64-darwin + jobs.vim.x86_64-darwin + jobs.inkscape.x86_64-darwin + jobs.qt5.qtmultimedia.x86_64-darwin + jobs.tests.cc-wrapper.x86_64-darwin + jobs.tests.cc-wrapper-gcc7.x86_64-darwin + # jobs.tests.cc-wrapper-gcc8.x86_64-darwin + jobs.tests.cc-wrapper-clang.x86_64-darwin + jobs.tests.cc-wrapper-libcxx.x86_64-darwin + jobs.tests.cc-wrapper-clang-39.x86_64-darwin + jobs.tests.cc-wrapper-libcxx-39.x86_64-darwin + jobs.tests.cc-wrapper-clang-4.x86_64-darwin + jobs.tests.cc-wrapper-libcxx-4.x86_64-darwin + jobs.tests.cc-wrapper-clang-5.x86_64-darwin + jobs.tests.cc-wrapper-libcxx-6.x86_64-darwin + jobs.tests.cc-wrapper-clang-6.x86_64-darwin + jobs.tests.cc-wrapper-libcxx-6.x86_64-darwin jobs.tests.stdenv-inputs.x86_64-darwin jobs.tests.macOSSierraShared.x86_64-darwin - ] ++ lib.collect lib.isDerivation jobs.stdenvBootstrapTools; + ]; }; stdenvBootstrapTools = with lib; @@ -152,7 +155,7 @@ let dist test; }) # darwin is special in this - // optionalAttrs (builtins.elem "x86_64-darwin" systemsWithAnySupport) { + // optionalAttrs supportDarwin { x86_64-darwin = let bootstrap = import ../stdenv/darwin/make-bootstrap-tools.nix { system = "x86_64-darwin"; };