2013-03-26 10:02:29 +00:00
|
|
|
/* This file defines the builds that constitute the Nixpkgs.
|
|
|
|
Everything defined here ends up in the Nixpkgs channel. Individual
|
|
|
|
jobs can be tested by running:
|
|
|
|
|
|
|
|
$ nix-build pkgs/top-level/release.nix -A <jobname>.<system>
|
|
|
|
|
|
|
|
e.g.
|
|
|
|
|
|
|
|
$ nix-build pkgs/top-level/release.nix -A coreutils.x86_64-linux
|
2010-04-19 14:21:52 +00:00
|
|
|
*/
|
2020-03-29 18:57:50 +00:00
|
|
|
{ nixpkgs ? { outPath = (import ../../lib).cleanSource ../..; revCount = 1234; shortRev = "abcdef"; revision = "0000000000000000000000000000000000000000"; }
|
2024-06-07 02:34:06 +00:00
|
|
|
, system ? builtins.currentSystem
|
2013-03-26 10:57:44 +00:00
|
|
|
, officialRelease ? false
|
release.nix: namespace bootstrap tools with triples
This will allow buliding bootstrap tools for platforms with
non-default libcs, like *-unknown-linux-musl.
This gets rid of limitedSupportSystems/systemsWithAnySupport. There
was no need to use systemsWithAnySupport for supportDarwin, because it
was always equivalent to supportedSystems for that purpose, and the
only other way it was used was for determining which platforms to
build the bootstrap tools for, so we might as well use a more explicit
parameter for that, and then we can change how it works without
affecting the rest of the Hydra jobs.
Not affecting the rest of the Hydra jobs is important, because if we
changed all jobs to use config triples, we'd end up renaming every
Hydra job. That might still be worth thinking about at some point,
but it's unnecessary at this point (and would be a lot of work).
I've checked by running
nix-eval-jobs --force-recurse pkgs/top-level/release.nix
that the actual bootstrap tools derivations are unaffected by this
change, and that the only other jobs that change are ones that depend
on the hash of all of Nixpkgs. Of the other jobset entrypoints that
end up importing pkgs/top-level/release.nix, none used the
limitedSupportedSystems parameter, so they should all be unaffected as
well.
2023-10-07 15:48:15 +00:00
|
|
|
# The platform doubles for which we build Nixpkgs.
|
2023-01-01 19:24:02 +00:00
|
|
|
, supportedSystems ? [ "x86_64-linux" "x86_64-darwin" "aarch64-linux" "aarch64-darwin" ]
|
release.nix: namespace bootstrap tools with triples
This will allow buliding bootstrap tools for platforms with
non-default libcs, like *-unknown-linux-musl.
This gets rid of limitedSupportSystems/systemsWithAnySupport. There
was no need to use systemsWithAnySupport for supportDarwin, because it
was always equivalent to supportedSystems for that purpose, and the
only other way it was used was for determining which platforms to
build the bootstrap tools for, so we might as well use a more explicit
parameter for that, and then we can change how it works without
affecting the rest of the Hydra jobs.
Not affecting the rest of the Hydra jobs is important, because if we
changed all jobs to use config triples, we'd end up renaming every
Hydra job. That might still be worth thinking about at some point,
but it's unnecessary at this point (and would be a lot of work).
I've checked by running
nix-eval-jobs --force-recurse pkgs/top-level/release.nix
that the actual bootstrap tools derivations are unaffected by this
change, and that the only other jobs that change are ones that depend
on the hash of all of Nixpkgs. Of the other jobset entrypoints that
end up importing pkgs/top-level/release.nix, none used the
limitedSupportedSystems parameter, so they should all be unaffected as
well.
2023-10-07 15:48:15 +00:00
|
|
|
# The platform triples for which we build bootstrap tools.
|
|
|
|
, bootstrapConfigs ? [
|
|
|
|
"aarch64-apple-darwin"
|
|
|
|
"aarch64-unknown-linux-gnu"
|
2023-10-02 10:45:25 +00:00
|
|
|
"aarch64-unknown-linux-musl"
|
release.nix: namespace bootstrap tools with triples
This will allow buliding bootstrap tools for platforms with
non-default libcs, like *-unknown-linux-musl.
This gets rid of limitedSupportSystems/systemsWithAnySupport. There
was no need to use systemsWithAnySupport for supportDarwin, because it
was always equivalent to supportedSystems for that purpose, and the
only other way it was used was for determining which platforms to
build the bootstrap tools for, so we might as well use a more explicit
parameter for that, and then we can change how it works without
affecting the rest of the Hydra jobs.
Not affecting the rest of the Hydra jobs is important, because if we
changed all jobs to use config triples, we'd end up renaming every
Hydra job. That might still be worth thinking about at some point,
but it's unnecessary at this point (and would be a lot of work).
I've checked by running
nix-eval-jobs --force-recurse pkgs/top-level/release.nix
that the actual bootstrap tools derivations are unaffected by this
change, and that the only other jobs that change are ones that depend
on the hash of all of Nixpkgs. Of the other jobset entrypoints that
end up importing pkgs/top-level/release.nix, none used the
limitedSupportedSystems parameter, so they should all be unaffected as
well.
2023-10-07 15:48:15 +00:00
|
|
|
"i686-unknown-linux-gnu"
|
|
|
|
"x86_64-apple-darwin"
|
|
|
|
"x86_64-unknown-linux-gnu"
|
2023-10-02 10:45:25 +00:00
|
|
|
"x86_64-unknown-linux-musl"
|
2024-07-25 18:51:08 +00:00
|
|
|
# we can uncomment that once our bootstrap tarballs are fixed
|
|
|
|
#"x86_64-unknown-freebsd"
|
release.nix: namespace bootstrap tools with triples
This will allow buliding bootstrap tools for platforms with
non-default libcs, like *-unknown-linux-musl.
This gets rid of limitedSupportSystems/systemsWithAnySupport. There
was no need to use systemsWithAnySupport for supportDarwin, because it
was always equivalent to supportedSystems for that purpose, and the
only other way it was used was for determining which platforms to
build the bootstrap tools for, so we might as well use a more explicit
parameter for that, and then we can change how it works without
affecting the rest of the Hydra jobs.
Not affecting the rest of the Hydra jobs is important, because if we
changed all jobs to use config triples, we'd end up renaming every
Hydra job. That might still be worth thinking about at some point,
but it's unnecessary at this point (and would be a lot of work).
I've checked by running
nix-eval-jobs --force-recurse pkgs/top-level/release.nix
that the actual bootstrap tools derivations are unaffected by this
change, and that the only other jobs that change are ones that depend
on the hash of all of Nixpkgs. Of the other jobset entrypoints that
end up importing pkgs/top-level/release.nix, none used the
limitedSupportedSystems parameter, so they should all be unaffected as
well.
2023-10-07 15:48:15 +00:00
|
|
|
]
|
2017-08-03 12:09:30 +00:00
|
|
|
# Strip most of attributes when evaluating to spare memory usage
|
2020-02-10 15:25:33 +00:00
|
|
|
, scrubJobs ? true
|
2017-08-03 12:09:30 +00:00
|
|
|
# Attributes passed to nixpkgs. Don't build packages marked as unfree.
|
2023-05-20 13:47:48 +00:00
|
|
|
, nixpkgsArgs ? { config = {
|
|
|
|
allowUnfree = false;
|
|
|
|
inHydra = true;
|
|
|
|
}; }
|
2023-11-23 01:10:45 +00:00
|
|
|
|
|
|
|
# This flag, if set to true, will inhibit the use of `mapTestOn`
|
|
|
|
# and `release-lib.packagePlatforms`. Generally, it causes the
|
|
|
|
# resulting tree of attributes to *not* have a ".${system}"
|
|
|
|
# suffixed upon every job name like Hydra expects.
|
|
|
|
#
|
|
|
|
# This flag exists mainly for use by
|
|
|
|
# pkgs/top-level/release-attrnames-superset.nix; see that file for
|
|
|
|
# full details. The exact behavior of this flag may change; it
|
|
|
|
# should be considered an internal implementation detail of
|
|
|
|
# pkgs/top-level/.
|
|
|
|
#
|
|
|
|
, attrNamesOnly ? false
|
2013-03-26 10:57:44 +00:00
|
|
|
}:
|
|
|
|
|
|
|
|
let
|
2024-03-06 19:38:26 +00:00
|
|
|
release-lib = import ./release-lib.nix {
|
2024-06-07 02:34:06 +00:00
|
|
|
inherit supportedSystems scrubJobs nixpkgsArgs system;
|
2024-03-06 19:38:26 +00:00
|
|
|
};
|
|
|
|
|
|
|
|
inherit (release-lib) mapTestOn pkgs;
|
|
|
|
|
|
|
|
inherit (release-lib.lib)
|
|
|
|
collect
|
|
|
|
elem
|
|
|
|
genAttrs
|
|
|
|
hasInfix
|
|
|
|
hasSuffix
|
|
|
|
id
|
|
|
|
isDerivation
|
|
|
|
optionals
|
|
|
|
;
|
|
|
|
|
|
|
|
inherit (release-lib.lib.attrsets) unionOfDisjoint;
|
2017-08-03 12:09:30 +00:00
|
|
|
|
2024-03-06 19:38:26 +00:00
|
|
|
supportDarwin = genAttrs [
|
2022-01-11 10:31:58 +00:00
|
|
|
"x86_64"
|
|
|
|
"aarch64"
|
2024-03-06 19:38:26 +00:00
|
|
|
] (arch: elem "${arch}-darwin" supportedSystems);
|
2018-07-04 15:21:33 +00:00
|
|
|
|
2022-07-26 21:22:27 +00:00
|
|
|
nonPackageJobs =
|
2024-04-22 19:43:53 +00:00
|
|
|
{ tarball = import ./make-tarball.nix { inherit pkgs nixpkgs officialRelease; };
|
2013-03-26 10:57:44 +00:00
|
|
|
|
2024-04-17 06:53:10 +00:00
|
|
|
release-checks = import ./nixpkgs-basic-release-checks.nix { inherit pkgs nixpkgs supportedSystems; };
|
|
|
|
|
2024-07-26 18:45:25 +00:00
|
|
|
manual = pkgs.nixpkgs-manual.override { inherit nixpkgs; };
|
2020-11-04 12:53:25 +00:00
|
|
|
metrics = import ./metrics.nix { inherit pkgs nixpkgs; };
|
2017-04-25 00:12:43 +00:00
|
|
|
lib-tests = import ../../lib/tests/release.nix { inherit pkgs; };
|
2020-03-26 01:54:23 +00:00
|
|
|
pkgs-lib-tests = import ../pkgs-lib/tests { inherit pkgs; };
|
2014-08-24 09:02:23 +00:00
|
|
|
|
2022-01-11 10:31:58 +00:00
|
|
|
darwin-tested = if supportDarwin.x86_64 then pkgs.releaseTools.aggregate
|
2017-04-10 16:29:11 +00:00
|
|
|
{ name = "nixpkgs-darwin-${jobs.tarball.version}";
|
|
|
|
meta.description = "Release-critical builds for the Nixpkgs darwin channel";
|
|
|
|
constituents =
|
|
|
|
[ jobs.tarball
|
2024-04-17 06:53:10 +00:00
|
|
|
jobs.release-checks
|
2017-04-10 16:29:11 +00:00
|
|
|
jobs.cabal2nix.x86_64-darwin
|
2017-09-18 17:48:16 +00:00
|
|
|
jobs.ghc.x86_64-darwin
|
|
|
|
jobs.git.x86_64-darwin
|
|
|
|
jobs.go.x86_64-darwin
|
2018-05-01 15:36:29 +00:00
|
|
|
jobs.mariadb.x86_64-darwin
|
2017-09-18 17:48:16 +00:00
|
|
|
jobs.nix.x86_64-darwin
|
2020-01-08 14:47:09 +00:00
|
|
|
jobs.nixpkgs-review.x86_64-darwin
|
2017-10-13 22:50:50 +00:00
|
|
|
jobs.nix-info.x86_64-darwin
|
2017-10-17 13:51:51 +00:00
|
|
|
jobs.nix-info-tested.x86_64-darwin
|
2017-09-18 17:48:16 +00:00
|
|
|
jobs.openssh.x86_64-darwin
|
|
|
|
jobs.openssl.x86_64-darwin
|
2018-12-30 22:50:49 +00:00
|
|
|
jobs.pandoc.x86_64-darwin
|
2017-09-18 17:48:16 +00:00
|
|
|
jobs.postgresql.x86_64-darwin
|
|
|
|
jobs.python3.x86_64-darwin
|
|
|
|
jobs.ruby.x86_64-darwin
|
2017-04-10 16:29:11 +00:00
|
|
|
jobs.rustc.x86_64-darwin
|
2020-02-29 00:02:19 +00:00
|
|
|
# blocking ofBorg CI 2020-02-28
|
|
|
|
# jobs.stack.x86_64-darwin
|
2017-09-18 17:48:16 +00:00
|
|
|
jobs.stdenv.x86_64-darwin
|
|
|
|
jobs.vim.x86_64-darwin
|
2020-01-08 12:17:54 +00:00
|
|
|
jobs.cachix.x86_64-darwin
|
2023-10-01 13:48:20 +00:00
|
|
|
jobs.darwin.linux-builder.x86_64-darwin
|
2017-09-18 17:48:16 +00:00
|
|
|
|
2018-07-11 20:48:47 +00:00
|
|
|
# UI apps
|
2019-03-09 01:06:22 +00:00
|
|
|
# jobs.firefox-unwrapped.x86_64-darwin
|
2018-07-11 20:48:47 +00:00
|
|
|
jobs.qt5.qtmultimedia.x86_64-darwin
|
|
|
|
jobs.inkscape.x86_64-darwin
|
2018-12-30 22:50:49 +00:00
|
|
|
jobs.gimp.x86_64-darwin
|
2018-07-11 20:48:47 +00:00
|
|
|
jobs.emacs.x86_64-darwin
|
2018-11-07 18:59:30 +00:00
|
|
|
jobs.wireshark.x86_64-darwin
|
2024-06-10 07:54:49 +00:00
|
|
|
jobs.transmission_3-gtk.x86_64-darwin
|
|
|
|
jobs.transmission_4-gtk.x86_64-darwin
|
2018-07-11 20:48:47 +00:00
|
|
|
|
|
|
|
# Tests
|
2019-04-29 08:07:20 +00:00
|
|
|
/*
|
2023-09-07 01:01:04 +00:00
|
|
|
jobs.tests.cc-wrapper.default.x86_64-darwin
|
|
|
|
jobs.tests.cc-wrapper.llvmPackages.clang.x86_64-darwin
|
|
|
|
jobs.tests.cc-wrapper.llvmPackages.libcxx.x86_64-darwin
|
2017-09-18 17:48:16 +00:00
|
|
|
jobs.tests.stdenv-inputs.x86_64-darwin
|
2017-08-03 22:18:59 +00:00
|
|
|
jobs.tests.macOSSierraShared.x86_64-darwin
|
2023-01-17 02:20:36 +00:00
|
|
|
jobs.tests.stdenv.hooks.patch-shebangs.x86_64-darwin
|
2019-04-29 08:07:20 +00:00
|
|
|
*/
|
2017-04-10 16:29:11 +00:00
|
|
|
];
|
2018-07-04 15:21:33 +00:00
|
|
|
} else null;
|
2017-04-10 16:29:11 +00:00
|
|
|
|
2016-10-12 16:11:13 +00:00
|
|
|
unstable = pkgs.releaseTools.aggregate
|
|
|
|
{ name = "nixpkgs-${jobs.tarball.version}";
|
|
|
|
meta.description = "Release-critical builds for the Nixpkgs unstable channel";
|
|
|
|
constituents =
|
|
|
|
[ jobs.tarball
|
2024-04-17 06:53:10 +00:00
|
|
|
jobs.release-checks
|
2021-09-27 14:33:23 +00:00
|
|
|
jobs.metrics
|
2016-10-12 16:11:13 +00:00
|
|
|
jobs.manual
|
2017-04-25 00:12:43 +00:00
|
|
|
jobs.lib-tests
|
2020-03-26 01:54:23 +00:00
|
|
|
jobs.pkgs-lib-tests
|
2016-10-12 16:11:13 +00:00
|
|
|
jobs.stdenv.x86_64-linux
|
2021-12-12 00:22:17 +00:00
|
|
|
jobs.cargo.x86_64-linux
|
|
|
|
jobs.go.x86_64-linux
|
2016-10-12 16:11:13 +00:00
|
|
|
jobs.linux.x86_64-linux
|
2023-01-03 15:16:01 +00:00
|
|
|
jobs.nix.x86_64-linux
|
2018-12-30 22:50:49 +00:00
|
|
|
jobs.pandoc.x86_64-linux
|
2016-10-12 16:11:13 +00:00
|
|
|
jobs.python3.x86_64-linux
|
2020-01-08 14:47:09 +00:00
|
|
|
# Needed by contributors to test PRs (by inclusion of the PR template)
|
|
|
|
jobs.nixpkgs-review.x86_64-linux
|
2017-10-13 22:50:50 +00:00
|
|
|
# Needed for support
|
|
|
|
jobs.nix-info.x86_64-linux
|
2017-10-17 13:51:51 +00:00
|
|
|
jobs.nix-info-tested.x86_64-linux
|
2019-09-03 22:49:40 +00:00
|
|
|
# Ensure that X11/GTK are in order.
|
2022-05-26 13:45:38 +00:00
|
|
|
jobs.firefox-unwrapped.x86_64-linux
|
2020-01-08 12:17:54 +00:00
|
|
|
jobs.cachix.x86_64-linux
|
2024-04-05 05:08:31 +00:00
|
|
|
jobs.devenv.x86_64-linux
|
2017-09-18 17:48:16 +00:00
|
|
|
|
2019-04-29 08:07:20 +00:00
|
|
|
/*
|
2023-10-11 12:32:18 +00:00
|
|
|
TODO: re-add tests; context: https://github.com/NixOS/nixpkgs/commit/36587a587ab191eddd868179d63c82cdd5dee21b
|
|
|
|
|
2023-09-07 01:01:04 +00:00
|
|
|
jobs.tests.cc-wrapper.default.x86_64-linux
|
|
|
|
jobs.tests.cc-wrapper.gcc7Stdenv.x86_64-linux
|
|
|
|
jobs.tests.cc-wrapper.gcc8Stdenv.x86_64-linux
|
2018-05-11 01:10:06 +00:00
|
|
|
|
|
|
|
# broken see issue #40038
|
|
|
|
|
2023-09-07 01:01:04 +00:00
|
|
|
jobs.tests.cc-wrapper.llvmPackages.clang.x86_64-linux
|
|
|
|
jobs.tests.cc-wrapper.llvmPackages.libcxx.x86_64-linux
|
2017-11-30 19:10:41 +00:00
|
|
|
jobs.tests.cc-multilib-gcc.x86_64-linux
|
|
|
|
jobs.tests.cc-multilib-clang.x86_64-linux
|
2017-09-18 17:48:16 +00:00
|
|
|
jobs.tests.stdenv-inputs.x86_64-linux
|
2023-01-17 02:20:36 +00:00
|
|
|
jobs.tests.stdenv.hooks.patch-shebangs.x86_64-linux
|
2019-04-29 08:07:20 +00:00
|
|
|
*/
|
2018-07-04 15:21:33 +00:00
|
|
|
]
|
2024-03-06 19:38:26 +00:00
|
|
|
++ collect isDerivation jobs.stdenvBootstrapTools
|
|
|
|
++ optionals supportDarwin.x86_64 [
|
2018-07-04 15:21:33 +00:00
|
|
|
jobs.stdenv.x86_64-darwin
|
2021-12-12 00:22:17 +00:00
|
|
|
jobs.cargo.x86_64-darwin
|
2022-02-01 12:06:46 +00:00
|
|
|
jobs.cachix.x86_64-darwin
|
2024-04-05 05:08:31 +00:00
|
|
|
jobs.devenv.x86_64-darwin
|
2021-12-12 00:22:17 +00:00
|
|
|
jobs.go.x86_64-darwin
|
2018-07-04 15:21:33 +00:00
|
|
|
jobs.python3.x86_64-darwin
|
2020-01-08 14:47:09 +00:00
|
|
|
jobs.nixpkgs-review.x86_64-darwin
|
2023-01-03 15:16:01 +00:00
|
|
|
jobs.nix.x86_64-darwin
|
2018-07-04 15:21:33 +00:00
|
|
|
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
|
2023-10-01 13:48:20 +00:00
|
|
|
jobs.darwin.linux-builder.x86_64-darwin
|
2019-04-29 08:07:20 +00:00
|
|
|
/*
|
2023-09-07 01:01:04 +00:00
|
|
|
jobs.tests.cc-wrapper.default.x86_64-darwin
|
|
|
|
jobs.tests.cc-wrapper.gcc7Stdenv.x86_64-darwin
|
|
|
|
jobs.tests.cc-wrapper.gcc8Stdenv.x86_64-darwin
|
|
|
|
jobs.tests.cc-wrapper.llvmPackages.clang.x86_64-darwin
|
|
|
|
jobs.tests.cc-wrapper.llvmPackages.libcxx.x86_64-darwin
|
2017-09-18 17:48:16 +00:00
|
|
|
jobs.tests.stdenv-inputs.x86_64-darwin
|
|
|
|
jobs.tests.macOSSierraShared.x86_64-darwin
|
2023-01-17 02:20:36 +00:00
|
|
|
jobs.tests.stdenv.hooks.patch-shebangs.x86_64-darwin
|
2019-04-29 08:07:20 +00:00
|
|
|
*/
|
2023-01-03 15:16:19 +00:00
|
|
|
]
|
2024-03-06 19:38:26 +00:00
|
|
|
++ optionals supportDarwin.aarch64 [
|
2023-01-03 15:16:19 +00:00
|
|
|
jobs.stdenv.aarch64-darwin
|
|
|
|
jobs.cargo.aarch64-darwin
|
|
|
|
jobs.cachix.aarch64-darwin
|
2024-04-05 05:08:31 +00:00
|
|
|
jobs.devenv.aarch64-darwin
|
2023-01-03 15:16:19 +00:00
|
|
|
jobs.go.aarch64-darwin
|
|
|
|
jobs.python3.aarch64-darwin
|
|
|
|
jobs.nixpkgs-review.aarch64-darwin
|
|
|
|
jobs.nix.aarch64-darwin
|
|
|
|
jobs.nix-info.aarch64-darwin
|
|
|
|
jobs.nix-info-tested.aarch64-darwin
|
|
|
|
jobs.git.aarch64-darwin
|
|
|
|
jobs.mariadb.aarch64-darwin
|
|
|
|
jobs.vim.aarch64-darwin
|
|
|
|
jobs.inkscape.aarch64-darwin
|
|
|
|
jobs.qt5.qtmultimedia.aarch64-darwin
|
2023-10-19 10:33:41 +00:00
|
|
|
jobs.darwin.linux-builder.aarch64-darwin
|
2023-10-11 12:27:59 +00:00
|
|
|
/* consider adding tests, as suggested above for x86_64-darwin */
|
2018-07-04 15:21:33 +00:00
|
|
|
];
|
2016-10-12 16:11:13 +00:00
|
|
|
};
|
2017-08-06 10:35:34 +00:00
|
|
|
|
2024-03-06 19:38:26 +00:00
|
|
|
stdenvBootstrapTools = genAttrs bootstrapConfigs (config:
|
release.nix: namespace bootstrap tools with triples
This will allow buliding bootstrap tools for platforms with
non-default libcs, like *-unknown-linux-musl.
This gets rid of limitedSupportSystems/systemsWithAnySupport. There
was no need to use systemsWithAnySupport for supportDarwin, because it
was always equivalent to supportedSystems for that purpose, and the
only other way it was used was for determining which platforms to
build the bootstrap tools for, so we might as well use a more explicit
parameter for that, and then we can change how it works without
affecting the rest of the Hydra jobs.
Not affecting the rest of the Hydra jobs is important, because if we
changed all jobs to use config triples, we'd end up renaming every
Hydra job. That might still be worth thinking about at some point,
but it's unnecessary at this point (and would be a lot of work).
I've checked by running
nix-eval-jobs --force-recurse pkgs/top-level/release.nix
that the actual bootstrap tools derivations are unaffected by this
change, and that the only other jobs that change are ones that depend
on the hash of all of Nixpkgs. Of the other jobset entrypoints that
end up importing pkgs/top-level/release.nix, none used the
limitedSupportedSystems parameter, so they should all be unaffected as
well.
2023-10-07 15:48:15 +00:00
|
|
|
if hasInfix "-linux-" config then
|
2023-01-01 19:24:02 +00:00
|
|
|
let
|
|
|
|
bootstrap = import ../stdenv/linux/make-bootstrap-tools.nix {
|
2022-07-27 04:04:24 +00:00
|
|
|
pkgs = import ../.. {
|
release.nix: namespace bootstrap tools with triples
This will allow buliding bootstrap tools for platforms with
non-default libcs, like *-unknown-linux-musl.
This gets rid of limitedSupportSystems/systemsWithAnySupport. There
was no need to use systemsWithAnySupport for supportDarwin, because it
was always equivalent to supportedSystems for that purpose, and the
only other way it was used was for determining which platforms to
build the bootstrap tools for, so we might as well use a more explicit
parameter for that, and then we can change how it works without
affecting the rest of the Hydra jobs.
Not affecting the rest of the Hydra jobs is important, because if we
changed all jobs to use config triples, we'd end up renaming every
Hydra job. That might still be worth thinking about at some point,
but it's unnecessary at this point (and would be a lot of work).
I've checked by running
nix-eval-jobs --force-recurse pkgs/top-level/release.nix
that the actual bootstrap tools derivations are unaffected by this
change, and that the only other jobs that change are ones that depend
on the hash of all of Nixpkgs. Of the other jobset entrypoints that
end up importing pkgs/top-level/release.nix, none used the
limitedSupportedSystems parameter, so they should all be unaffected as
well.
2023-10-07 15:48:15 +00:00
|
|
|
localSystem = { inherit config; };
|
2022-07-27 04:04:24 +00:00
|
|
|
};
|
|
|
|
};
|
2017-08-06 10:35:34 +00:00
|
|
|
in {
|
2024-04-04 20:40:08 +00:00
|
|
|
inherit (bootstrap) build test;
|
2023-01-01 19:24:02 +00:00
|
|
|
}
|
release.nix: namespace bootstrap tools with triples
This will allow buliding bootstrap tools for platforms with
non-default libcs, like *-unknown-linux-musl.
This gets rid of limitedSupportSystems/systemsWithAnySupport. There
was no need to use systemsWithAnySupport for supportDarwin, because it
was always equivalent to supportedSystems for that purpose, and the
only other way it was used was for determining which platforms to
build the bootstrap tools for, so we might as well use a more explicit
parameter for that, and then we can change how it works without
affecting the rest of the Hydra jobs.
Not affecting the rest of the Hydra jobs is important, because if we
changed all jobs to use config triples, we'd end up renaming every
Hydra job. That might still be worth thinking about at some point,
but it's unnecessary at this point (and would be a lot of work).
I've checked by running
nix-eval-jobs --force-recurse pkgs/top-level/release.nix
that the actual bootstrap tools derivations are unaffected by this
change, and that the only other jobs that change are ones that depend
on the hash of all of Nixpkgs. Of the other jobset entrypoints that
end up importing pkgs/top-level/release.nix, none used the
limitedSupportedSystems parameter, so they should all be unaffected as
well.
2023-10-07 15:48:15 +00:00
|
|
|
else if hasSuffix "-darwin" config then
|
2021-04-28 08:21:54 +00:00
|
|
|
let
|
2022-07-27 04:04:24 +00:00
|
|
|
bootstrap = import ../stdenv/darwin/make-bootstrap-tools.nix {
|
release.nix: namespace bootstrap tools with triples
This will allow buliding bootstrap tools for platforms with
non-default libcs, like *-unknown-linux-musl.
This gets rid of limitedSupportSystems/systemsWithAnySupport. There
was no need to use systemsWithAnySupport for supportDarwin, because it
was always equivalent to supportedSystems for that purpose, and the
only other way it was used was for determining which platforms to
build the bootstrap tools for, so we might as well use a more explicit
parameter for that, and then we can change how it works without
affecting the rest of the Hydra jobs.
Not affecting the rest of the Hydra jobs is important, because if we
changed all jobs to use config triples, we'd end up renaming every
Hydra job. That might still be worth thinking about at some point,
but it's unnecessary at this point (and would be a lot of work).
I've checked by running
nix-eval-jobs --force-recurse pkgs/top-level/release.nix
that the actual bootstrap tools derivations are unaffected by this
change, and that the only other jobs that change are ones that depend
on the hash of all of Nixpkgs. Of the other jobset entrypoints that
end up importing pkgs/top-level/release.nix, none used the
limitedSupportedSystems parameter, so they should all be unaffected as
well.
2023-10-07 15:48:15 +00:00
|
|
|
localSystem = { inherit config; };
|
2022-07-27 04:04:24 +00:00
|
|
|
};
|
2021-04-28 08:21:54 +00:00
|
|
|
in {
|
2023-01-01 19:24:02 +00:00
|
|
|
# Lightweight distribution and test
|
2024-04-04 20:40:08 +00:00
|
|
|
inherit (bootstrap) build test;
|
2023-01-01 19:24:02 +00:00
|
|
|
# Test a full stdenv bootstrap from the bootstrap tools definition
|
|
|
|
# TODO: Re-enable once the new bootstrap-tools are in place.
|
|
|
|
#inherit (bootstrap.test-pkgs) stdenv;
|
|
|
|
}
|
2024-07-17 09:08:06 +00:00
|
|
|
else if hasSuffix "-freebsd" config then
|
|
|
|
let
|
|
|
|
bootstrap = import ../stdenv/freebsd/make-bootstrap-tools.nix {
|
2024-07-20 05:30:25 +00:00
|
|
|
pkgs = import ../.. {
|
|
|
|
localSystem = { inherit config; };
|
|
|
|
};
|
2024-07-17 09:08:06 +00:00
|
|
|
};
|
|
|
|
in {
|
|
|
|
inherit (bootstrap) build; # test does't exist yet
|
|
|
|
}
|
2023-01-01 19:24:02 +00:00
|
|
|
else
|
release.nix: namespace bootstrap tools with triples
This will allow buliding bootstrap tools for platforms with
non-default libcs, like *-unknown-linux-musl.
This gets rid of limitedSupportSystems/systemsWithAnySupport. There
was no need to use systemsWithAnySupport for supportDarwin, because it
was always equivalent to supportedSystems for that purpose, and the
only other way it was used was for determining which platforms to
build the bootstrap tools for, so we might as well use a more explicit
parameter for that, and then we can change how it works without
affecting the rest of the Hydra jobs.
Not affecting the rest of the Hydra jobs is important, because if we
changed all jobs to use config triples, we'd end up renaming every
Hydra job. That might still be worth thinking about at some point,
but it's unnecessary at this point (and would be a lot of work).
I've checked by running
nix-eval-jobs --force-recurse pkgs/top-level/release.nix
that the actual bootstrap tools derivations are unaffected by this
change, and that the only other jobs that change are ones that depend
on the hash of all of Nixpkgs. Of the other jobset entrypoints that
end up importing pkgs/top-level/release.nix, none used the
limitedSupportedSystems parameter, so they should all be unaffected as
well.
2023-10-07 15:48:15 +00:00
|
|
|
abort "No bootstrap implementation for system: ${config}"
|
2023-01-01 19:24:02 +00:00
|
|
|
);
|
|
|
|
};
|
2022-07-26 21:22:27 +00:00
|
|
|
|
|
|
|
# Do not allow attribute collision between jobs inserted in
|
|
|
|
# 'nonPackageAttrs' and jobs pulled in from 'pkgs'.
|
|
|
|
# Conflicts usually cause silent job drops like in
|
|
|
|
# https://github.com/NixOS/nixpkgs/pull/182058
|
2023-11-23 01:10:45 +00:00
|
|
|
jobs = let
|
2024-03-06 19:38:26 +00:00
|
|
|
packagePlatforms = if attrNamesOnly then id else release-lib.packagePlatforms;
|
2023-11-23 01:10:45 +00:00
|
|
|
packageJobs = {
|
2015-09-15 09:46:20 +00:00
|
|
|
haskell.compiler = packagePlatforms pkgs.haskell.compiler;
|
2015-05-29 09:25:26 +00:00
|
|
|
haskellPackages = packagePlatforms pkgs.haskellPackages;
|
2023-11-16 18:04:33 +00:00
|
|
|
# Build selected packages (HLS) for multiple Haskell compilers to rebuild
|
|
|
|
# the cache after a staging merge
|
2024-03-06 19:38:26 +00:00
|
|
|
haskell.packages = genAttrs [
|
2023-11-16 18:04:33 +00:00
|
|
|
# TODO: share this list between release.nix and release-haskell.nix
|
|
|
|
"ghc90"
|
|
|
|
"ghc92"
|
|
|
|
"ghc94"
|
|
|
|
"ghc96"
|
2024-03-18 12:58:42 +00:00
|
|
|
"ghc98"
|
2023-11-16 18:04:33 +00:00
|
|
|
] (compilerName: {
|
|
|
|
inherit (packagePlatforms pkgs.haskell.packages.${compilerName})
|
|
|
|
haskell-language-server;
|
|
|
|
});
|
2018-07-12 23:07:32 +00:00
|
|
|
idrisPackages = packagePlatforms pkgs.idrisPackages;
|
2019-12-29 12:14:16 +00:00
|
|
|
agdaPackages = packagePlatforms pkgs.agdaPackages;
|
2011-08-06 10:28:24 +00:00
|
|
|
|
2021-08-01 16:19:11 +00:00
|
|
|
pkgsLLVM.stdenv = [ "x86_64-linux" "aarch64-linux" ];
|
2024-07-01 02:01:07 +00:00
|
|
|
pkgsArocc.stdenv = [ "x86_64-linux" "aarch64-linux" ];
|
2024-06-07 14:58:58 +00:00
|
|
|
pkgsZig.stdenv = [ "x86_64-linux" "aarch64-linux" ];
|
2020-06-05 06:04:09 +00:00
|
|
|
pkgsMusl.stdenv = [ "x86_64-linux" "aarch64-linux" ];
|
|
|
|
pkgsStatic.stdenv = [ "x86_64-linux" "aarch64-linux" ];
|
|
|
|
|
2020-01-17 15:48:42 +00:00
|
|
|
tests = packagePlatforms pkgs.tests;
|
|
|
|
|
2016-08-28 16:18:44 +00:00
|
|
|
# Language packages disabled in https://github.com/NixOS/nixpkgs/commit/ccd1029f58a3bb9eca32d81bf3f33cb4be25cc66
|
2015-11-24 09:14:16 +00:00
|
|
|
|
2019-08-07 22:52:22 +00:00
|
|
|
#emacsPackages = packagePlatforms pkgs.emacsPackages;
|
2016-08-28 16:18:44 +00:00
|
|
|
#rPackages = packagePlatforms pkgs.rPackages;
|
2016-02-10 12:50:31 +00:00
|
|
|
ocamlPackages = { };
|
|
|
|
perlPackages = { };
|
2017-05-07 19:35:43 +00:00
|
|
|
|
2017-08-17 21:12:51 +00:00
|
|
|
darwin = packagePlatforms pkgs.darwin // {
|
|
|
|
xcode = {};
|
|
|
|
};
|
2023-11-23 01:10:45 +00:00
|
|
|
};
|
|
|
|
mapTestOn-packages =
|
|
|
|
if attrNamesOnly
|
|
|
|
then pkgs // packageJobs
|
|
|
|
else mapTestOn ((packagePlatforms pkgs) // packageJobs);
|
|
|
|
in
|
2024-03-06 19:38:26 +00:00
|
|
|
unionOfDisjoint nonPackageJobs mapTestOn-packages;
|
2010-08-10 00:09:29 +00:00
|
|
|
|
2013-03-26 10:57:44 +00:00
|
|
|
in jobs
|