2016-12-16 13:22:02 +00:00
|
|
|
{ lib
|
2018-12-05 03:06:46 +00:00
|
|
|
, localSystem, crossSystem, config, overlays, crossOverlays ? []
|
2020-01-13 16:56:02 +00:00
|
|
|
# The version of darwin.apple_sdk used for sources provided by apple.
|
|
|
|
, appleSdkVersion ? "10.12"
|
|
|
|
# Minimum required macOS version, used both for compatibility as well as reproducability.
|
|
|
|
, macosVersionMin ? "10.12"
|
2016-01-04 02:47:09 +00:00
|
|
|
# Allow passing in bootstrap files directly so we can test the stdenv bootstrap process when changing the bootstrap tools
|
|
|
|
, bootstrapFiles ? let
|
|
|
|
fetch = { file, sha256, executable ? true }: import <nix/fetchurl.nix> {
|
2020-10-15 22:42:09 +01:00
|
|
|
url = "http://tarballs.nixos.org/stdenv-darwin/x86_64/5ab5783e4f46c373c6de84deac9ad59b608bb2e6/${file}";
|
2016-12-24 18:55:11 +00:00
|
|
|
inherit (localSystem) system;
|
|
|
|
inherit sha256 executable;
|
2016-01-04 02:47:09 +00:00
|
|
|
}; in {
|
2020-10-15 22:42:09 +01:00
|
|
|
sh = fetch { file = "sh"; sha256 = "sha256-nbb4XEk3go7ttiWrQyKQMLzPr+qUnwnHkWMtVCZsMCs="; };
|
|
|
|
bzip2 = fetch { file = "bzip2"; sha256 = "sha256-ybnA+JWrKhXSfn20+GVKXkHFTp2Zt79hat8hAVmsUOc="; };
|
|
|
|
mkdir = fetch { file = "mkdir"; sha256 = "sha256-nmvMxmfcY41/60Z/E8L9u0vgePW5l30Dqw1z+Nr02Hk="; };
|
|
|
|
cpio = fetch { file = "cpio"; sha256 = "sha256-cB36rN3NLj19Tk37Kc5bodMFMO+mCpEQkKKo0AEMkaU="; };
|
|
|
|
tarball = fetch { file = "bootstrap-tools.cpio.bz2"; sha256 = "sha256-kh2vKmjCr/HvR06czZbxUxV5KDRxSF27M6nN3cyofRI="; executable = false; };
|
2016-01-04 02:47:09 +00:00
|
|
|
}
|
2015-06-18 18:03:32 +01:00
|
|
|
}:
|
|
|
|
|
2018-12-05 03:06:46 +00:00
|
|
|
assert crossSystem == localSystem;
|
2016-11-30 23:51:13 +00:00
|
|
|
|
2015-06-18 18:03:32 +01:00
|
|
|
let
|
2016-12-24 18:55:11 +00:00
|
|
|
inherit (localSystem) system platform;
|
|
|
|
|
2020-07-31 15:03:51 +01:00
|
|
|
bootstrapClangVersion = "7.1.0";
|
|
|
|
|
2017-11-14 15:36:04 +00:00
|
|
|
commonImpureHostDeps = [
|
|
|
|
"/bin/sh"
|
|
|
|
"/usr/lib/libSystem.B.dylib"
|
2017-11-14 20:13:31 +00:00
|
|
|
"/usr/lib/system/libunc.dylib" # This dependency is "hidden", so our scanning code doesn't pick it up
|
2017-11-14 15:36:04 +00:00
|
|
|
];
|
2015-06-18 18:03:32 +01:00
|
|
|
in rec {
|
|
|
|
commonPreHook = ''
|
2020-01-13 16:46:11 +00:00
|
|
|
export NIX_ENFORCE_NO_NATIVE=''${NIX_ENFORCE_NO_NATIVE-1}
|
|
|
|
export NIX_ENFORCE_PURITY=''${NIX_ENFORCE_PURITY-1}
|
2015-06-18 18:03:32 +01:00
|
|
|
export NIX_IGNORE_LD_THROUGH_GCC=1
|
2020-09-03 08:13:19 +01:00
|
|
|
unset SDKROOT
|
2020-01-13 16:46:11 +00:00
|
|
|
|
2020-01-13 16:56:02 +00:00
|
|
|
export MACOSX_DEPLOYMENT_TARGET=${macosVersionMin}
|
2020-01-13 16:46:11 +00:00
|
|
|
|
2015-10-06 08:11:00 +01:00
|
|
|
# Workaround for https://openradar.appspot.com/22671534 on 10.11.
|
|
|
|
export gl_cv_func_getcwd_abort_bug=no
|
2020-01-13 16:46:11 +00:00
|
|
|
|
|
|
|
stripAllFlags=" " # the Darwin "strip" command doesn't know "-s"
|
2015-06-18 18:03:32 +01:00
|
|
|
'';
|
|
|
|
|
2019-08-13 22:52:01 +01:00
|
|
|
bootstrapTools = derivation {
|
2016-01-04 02:47:09 +00:00
|
|
|
inherit system;
|
2015-06-18 18:03:32 +01:00
|
|
|
|
|
|
|
name = "bootstrap-tools";
|
|
|
|
builder = bootstrapFiles.sh; # Not a filename! Attribute 'sh' on bootstrapFiles
|
|
|
|
args = [ ./unpack-bootstrap-tools.sh ];
|
|
|
|
|
2016-01-04 02:47:09 +00:00
|
|
|
inherit (bootstrapFiles) mkdir bzip2 cpio tarball;
|
2017-07-25 19:25:37 +01:00
|
|
|
reexportedLibrariesFile =
|
|
|
|
../../os-specific/darwin/apple-source-releases/Libsystem/reexported_libraries;
|
2015-06-18 18:03:32 +01:00
|
|
|
|
2017-11-14 15:36:04 +00:00
|
|
|
__impureHostDeps = commonImpureHostDeps;
|
2015-06-18 18:03:32 +01:00
|
|
|
};
|
|
|
|
|
2017-07-01 01:27:48 +01:00
|
|
|
stageFun = step: last: {shell ? "${bootstrapTools}/bin/bash",
|
2016-12-19 16:10:47 +00:00
|
|
|
overrides ? (self: super: {}),
|
2015-06-18 18:03:32 +01:00
|
|
|
extraPreHook ? "",
|
2017-08-15 16:30:45 +01:00
|
|
|
extraNativeBuildInputs,
|
2016-03-23 17:11:42 +00:00
|
|
|
extraBuildInputs,
|
2017-12-25 03:00:58 +00:00
|
|
|
libcxx,
|
2015-06-18 18:03:32 +01:00
|
|
|
allowedRequisites ? null}:
|
|
|
|
let
|
2018-02-25 22:03:40 +00:00
|
|
|
name = "bootstrap-stage${toString step}";
|
|
|
|
|
2017-08-26 16:43:30 +01:00
|
|
|
buildPackages = lib.optionalAttrs (last ? stdenv) {
|
|
|
|
inherit (last) stdenv;
|
|
|
|
};
|
|
|
|
|
2020-07-31 15:03:51 +01:00
|
|
|
mkExtraBuildCommands = cc: ''
|
|
|
|
rsrc="$out/resource-root"
|
|
|
|
mkdir "$rsrc"
|
|
|
|
ln -s "${cc}/lib/clang/${cc.version}/include" "$rsrc"
|
|
|
|
ln -s "${last.pkgs.llvmPackages_7.compiler-rt.out}/lib" "$rsrc/lib"
|
|
|
|
echo "-resource-dir=$rsrc" >> $out/nix-support/cc-cflags
|
|
|
|
'';
|
|
|
|
|
|
|
|
mkCC = overrides: import ../../build-support/cc-wrapper (
|
|
|
|
let args = {
|
|
|
|
inherit shell;
|
|
|
|
inherit (last) stdenvNoCC;
|
|
|
|
|
|
|
|
nativeTools = false;
|
|
|
|
nativeLibc = false;
|
|
|
|
inherit buildPackages libcxx;
|
|
|
|
inherit (last.pkgs) coreutils gnugrep;
|
|
|
|
bintools = last.pkgs.darwin.binutils;
|
|
|
|
libc = last.pkgs.darwin.Libsystem;
|
|
|
|
isClang = true;
|
|
|
|
cc = last.pkgs.llvmPackages_7.clang-unwrapped;
|
|
|
|
}; in args // (overrides args));
|
|
|
|
|
|
|
|
cc = if last == null then "/dev/null" else mkCC ({ cc, ... }: {
|
2020-07-31 15:03:51 +01:00
|
|
|
extraPackages = [
|
2020-07-31 15:03:51 +01:00
|
|
|
last.pkgs.llvmPackages_7.libcxxabi
|
2020-07-31 15:03:51 +01:00
|
|
|
last.pkgs.llvmPackages_7.compiler-rt
|
|
|
|
];
|
2020-07-31 15:03:51 +01:00
|
|
|
extraBuildCommands = mkExtraBuildCommands cc;
|
|
|
|
});
|
2020-07-31 15:03:51 +01:00
|
|
|
|
2020-07-31 15:03:51 +01:00
|
|
|
ccNoLibcxx = if last == null then "/dev/null" else mkCC ({ cc, ... }: {
|
|
|
|
libcxx = null;
|
|
|
|
extraPackages = [
|
|
|
|
last.pkgs.llvmPackages_7.compiler-rt
|
|
|
|
];
|
2020-07-31 15:03:51 +01:00
|
|
|
extraBuildCommands = ''
|
2020-07-31 15:03:51 +01:00
|
|
|
echo "-rtlib=compiler-rt" >> $out/nix-support/cc-cflags
|
|
|
|
echo "-B${last.pkgs.llvmPackages_7.compiler-rt}/lib" >> $out/nix-support/cc-cflags
|
|
|
|
echo "-nostdlib++" >> $out/nix-support/cc-cflags
|
|
|
|
'' + mkExtraBuildCommands cc;
|
|
|
|
});
|
2017-08-26 16:43:30 +01:00
|
|
|
|
2015-06-18 18:03:32 +01:00
|
|
|
thisStdenv = import ../generic {
|
2018-02-25 22:03:40 +00:00
|
|
|
name = "${name}-stdenv-darwin";
|
|
|
|
|
2017-08-15 16:30:45 +01:00
|
|
|
inherit config shell extraNativeBuildInputs extraBuildInputs;
|
2017-06-29 17:06:55 +01:00
|
|
|
allowedRequisites = if allowedRequisites == null then null else allowedRequisites ++ [
|
2017-08-26 16:43:30 +01:00
|
|
|
cc.expand-response-params cc.bintools
|
2017-06-29 17:06:55 +01:00
|
|
|
];
|
2015-06-18 18:03:32 +01:00
|
|
|
|
2017-07-06 02:47:48 +01:00
|
|
|
buildPlatform = localSystem;
|
|
|
|
hostPlatform = localSystem;
|
|
|
|
targetPlatform = localSystem;
|
|
|
|
|
2017-08-26 16:43:30 +01:00
|
|
|
inherit cc;
|
2015-06-18 18:03:32 +01:00
|
|
|
|
2017-08-26 16:43:30 +01:00
|
|
|
preHook = lib.optionalString (shell == "${bootstrapTools}/bin/bash") ''
|
2015-06-18 18:03:32 +01:00
|
|
|
# Don't patch #!/interpreter because it leads to retained
|
|
|
|
# dependencies on the bootstrapTools in the final stdenv.
|
|
|
|
dontPatchShebangs=1
|
|
|
|
'' + ''
|
|
|
|
${commonPreHook}
|
|
|
|
${extraPreHook}
|
|
|
|
'';
|
2016-03-23 17:11:42 +00:00
|
|
|
initialPath = [ bootstrapTools ];
|
2017-05-22 02:37:16 +01:00
|
|
|
|
2015-06-18 18:03:32 +01:00
|
|
|
fetchurlBoot = import ../../build-support/fetchurl {
|
2018-02-17 18:44:43 +00:00
|
|
|
inherit lib;
|
2018-01-09 23:38:19 +00:00
|
|
|
stdenvNoCC = stage0.stdenv;
|
|
|
|
curl = bootstrapTools;
|
2015-06-18 18:03:32 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
# The stdenvs themselves don't use mkDerivation, so I need to specify this here
|
2017-11-14 15:36:04 +00:00
|
|
|
__stdenvImpureHostDeps = commonImpureHostDeps;
|
|
|
|
__extraImpureHostDeps = commonImpureHostDeps;
|
2015-06-18 18:03:32 +01:00
|
|
|
|
2017-07-12 02:54:13 +01:00
|
|
|
extraAttrs = {
|
2020-01-13 16:56:02 +00:00
|
|
|
inherit macosVersionMin appleSdkVersion platform;
|
2017-07-12 02:54:13 +01:00
|
|
|
};
|
2020-07-31 15:03:51 +01:00
|
|
|
overrides = self: super: (overrides self super) // {
|
|
|
|
inherit ccNoLibcxx;
|
|
|
|
fetchurl = thisStdenv.fetchurlBoot;
|
|
|
|
};
|
2015-06-18 18:03:32 +01:00
|
|
|
};
|
|
|
|
|
2016-12-16 13:22:02 +00:00
|
|
|
in {
|
2016-12-24 18:55:11 +00:00
|
|
|
inherit config overlays;
|
2016-12-16 13:22:02 +00:00
|
|
|
stdenv = thisStdenv;
|
|
|
|
};
|
2015-06-18 18:03:32 +01:00
|
|
|
|
|
|
|
stage0 = stageFun 0 null {
|
2019-08-13 22:52:01 +01:00
|
|
|
overrides = self: super: with stage0; {
|
2020-07-31 15:03:51 +01:00
|
|
|
coreutils = { name = "bootstrap-stage0-coreutils"; outPath = bootstrapTools; };
|
|
|
|
gnugrep = { name = "bootstrap-stage0-gnugrep"; outPath = bootstrapTools; };
|
|
|
|
|
2016-12-19 16:10:47 +00:00
|
|
|
darwin = super.darwin // {
|
2015-06-18 18:03:32 +01:00
|
|
|
Libsystem = stdenv.mkDerivation {
|
2018-02-25 22:03:40 +00:00
|
|
|
name = "bootstrap-stage0-Libsystem";
|
2015-06-18 18:03:32 +01:00
|
|
|
buildCommand = ''
|
|
|
|
mkdir -p $out
|
|
|
|
ln -s ${bootstrapTools}/lib $out/lib
|
|
|
|
ln -s ${bootstrapTools}/include-Libsystem $out/include
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
dyld = bootstrapTools;
|
2020-07-31 15:03:51 +01:00
|
|
|
|
|
|
|
binutils = lib.makeOverridable (import ../../build-support/bintools-wrapper) {
|
|
|
|
shell = "${bootstrapTools}/bin/bash";
|
|
|
|
inherit (self) stdenvNoCC;
|
|
|
|
|
|
|
|
nativeTools = false;
|
|
|
|
nativeLibc = false;
|
|
|
|
inherit (self) buildPackages coreutils gnugrep;
|
|
|
|
libc = self.pkgs.darwin.Libsystem;
|
|
|
|
bintools = { name = "bootstrap-stage0-binutils"; outPath = bootstrapTools; };
|
|
|
|
};
|
2015-06-18 18:03:32 +01:00
|
|
|
};
|
|
|
|
|
2019-02-07 01:27:25 +00:00
|
|
|
llvmPackages_7 = {
|
2020-07-31 15:03:51 +01:00
|
|
|
clang-unwrapped = {
|
|
|
|
name = "bootstrap-stage0-clang";
|
|
|
|
outPath = bootstrapTools;
|
|
|
|
version = bootstrapClangVersion;
|
|
|
|
};
|
|
|
|
|
2018-06-14 15:22:33 +01:00
|
|
|
libcxx = stdenv.mkDerivation {
|
|
|
|
name = "bootstrap-stage0-libcxx";
|
|
|
|
phases = [ "installPhase" "fixupPhase" ];
|
|
|
|
installPhase = ''
|
|
|
|
mkdir -p $out/lib $out/include
|
|
|
|
ln -s ${bootstrapTools}/lib/libc++.dylib $out/lib/libc++.dylib
|
|
|
|
ln -s ${bootstrapTools}/include/c++ $out/include/c++
|
|
|
|
'';
|
2020-04-14 01:44:43 +01:00
|
|
|
passthru = {
|
|
|
|
isLLVM = true;
|
|
|
|
};
|
2018-06-14 15:22:33 +01:00
|
|
|
};
|
2015-06-18 18:03:32 +01:00
|
|
|
|
2018-06-14 15:22:33 +01:00
|
|
|
libcxxabi = stdenv.mkDerivation {
|
|
|
|
name = "bootstrap-stage0-libcxxabi";
|
|
|
|
buildCommand = ''
|
|
|
|
mkdir -p $out/lib
|
|
|
|
ln -s ${bootstrapTools}/lib/libc++abi.dylib $out/lib/libc++abi.dylib
|
|
|
|
'';
|
|
|
|
};
|
2020-07-31 15:03:51 +01:00
|
|
|
|
|
|
|
compiler-rt = stdenv.mkDerivation {
|
|
|
|
name = "bootstrap-stage0-compiler-rt";
|
|
|
|
buildCommand = ''
|
|
|
|
mkdir -p $out/lib
|
|
|
|
ln -s ${bootstrapTools}/lib/libclang_rt* $out/lib
|
|
|
|
ln -s ${bootstrapTools}/lib/darwin $out/lib/darwin
|
|
|
|
'';
|
|
|
|
};
|
2015-06-18 18:03:32 +01:00
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2017-08-15 16:30:45 +01:00
|
|
|
extraNativeBuildInputs = [];
|
2015-06-18 18:03:32 +01:00
|
|
|
extraBuildInputs = [];
|
2017-12-25 03:00:58 +00:00
|
|
|
libcxx = null;
|
2015-06-18 18:03:32 +01:00
|
|
|
};
|
|
|
|
|
2017-08-16 21:36:21 +01:00
|
|
|
stage1 = prevStage: let
|
Merge staging-next into master (#44009)
* substitute(): --subst-var was silently coercing to "" if the variable does not exist.
* libffi: simplify using `checkInputs`
* pythonPackges.hypothesis, pythonPackages.pytest: simpify dependency cycle fix
* utillinux: 2.32 -> 2.32.1
https://lkml.org/lkml/2018/7/16/532
* busybox: 1.29.0 -> 1.29.1
* bind: 9.12.1-P2 -> 9.12.2
https://ftp.isc.org/isc/bind9/9.12.2/RELEASE-NOTES-bind-9.12.2.html
* curl: 7.60.0 -> 7.61.0
* gvfs: make tests run, but disable
* ilmbase: disable tests on i686. Spooky!
* mdds: fix tests
* git: disable checks as tests are run in installcheck
* ruby: disable tests
* libcommuni: disable checks as tests are run in installcheck
* librdf: make tests run, but disable
* neon, neon_0_29: make tests run, but disable
* pciutils: 3.6.0 -> 3.6.1
Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/pciutils/versions.
* mesa: more include fixes
mostly from void-linux (thanks!)
* npth: 1.5 -> 1.6
minor bump
* boost167: Add lockfree next_prior patch
* stdenv: cleanup darwin bootstrapping
Also gets rid of the full python and some of it's dependencies in the
stdenv build closure.
* Revert "pciutils: use standardized equivalent for canonicalize_file_name"
This reverts commit f8db20fb3ae382eba1ba2b160fe24739f43c0bd7.
Patching should no longer be needed with 3.6.1.
* binutils-wrapper: Try to avoid adding unnecessary -L flags
(cherry picked from commit f3758258b8895508475caf83e92bfb236a27ceb9)
Signed-off-by: Domen Kožar <domen@dev.si>
* libffi: don't check on darwin
libffi usages in stdenv broken darwin. We need to disable doCheck for that case.
* "rm $out/share/icons/hicolor/icon-theme.cache" -> hicolor-icon-theme setup-hook
* python.pkgs.pytest: setupHook to prevent creation of .pytest-cache folder, fixes #40273
When `py.test` was run with a folder as argument, it would not only
search for tests in that folder, but also create a .pytest-cache folder.
Not only is this state we don't want, but it was also causing
collisions.
* parity-ui: fix after merge
* python.pkgs.pytest-flake8: disable test, fix build
* Revert "meson: 0.46.1 -> 0.47.0"
With meson 0.47.0 (or 0.47.1, or git)
things are very wrong re:rpath handling
resulting in at best missing libs but
even corrupt binaries :(.
When we run patchelf it masks the problem
by removing obviously busted paths.
Which is probably why this wasn't noticed immediately.
Unfortunately the binary already
has a long series of paths scribbled
in a space intended for a much smaller string;
in my testing it was something like
lengths were 67 with 300+ written to it.
I think we've reported the relevant issues upstream,
but unfortunately it appears our patches
are what introduces the overwrite/corruption
(by no longer being correct in what they assume)
This doesn't look so bad to fix but it's
not something I can spend more time on
at the moment.
--
Interestingly the overwritten string data
(because it is scribbled past the bounds)
remains in the binary and is why we're suddenly
seeing unexpected references in various builds
-- notably this is is the reason we're
seeing the "extra-utils" breakage
that entirely crippled NixOS on master
(and probably on staging before?).
Fixes #43650.
This reverts commit 305ac4dade5758c58e8ab1666ad0197fd305828d.
(cherry picked from commit 273d68eff8f7b6cd4ebed3718e5078a0f43cb55d)
Signed-off-by: Domen Kožar <domen@dev.si>
2018-07-24 15:04:48 +01:00
|
|
|
persistent = self: super: with prevStage; {
|
2020-10-26 07:17:14 +00:00
|
|
|
cmake = super.cmakeMinimal;
|
Merge staging-next into master (#44009)
* substitute(): --subst-var was silently coercing to "" if the variable does not exist.
* libffi: simplify using `checkInputs`
* pythonPackges.hypothesis, pythonPackages.pytest: simpify dependency cycle fix
* utillinux: 2.32 -> 2.32.1
https://lkml.org/lkml/2018/7/16/532
* busybox: 1.29.0 -> 1.29.1
* bind: 9.12.1-P2 -> 9.12.2
https://ftp.isc.org/isc/bind9/9.12.2/RELEASE-NOTES-bind-9.12.2.html
* curl: 7.60.0 -> 7.61.0
* gvfs: make tests run, but disable
* ilmbase: disable tests on i686. Spooky!
* mdds: fix tests
* git: disable checks as tests are run in installcheck
* ruby: disable tests
* libcommuni: disable checks as tests are run in installcheck
* librdf: make tests run, but disable
* neon, neon_0_29: make tests run, but disable
* pciutils: 3.6.0 -> 3.6.1
Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/pciutils/versions.
* mesa: more include fixes
mostly from void-linux (thanks!)
* npth: 1.5 -> 1.6
minor bump
* boost167: Add lockfree next_prior patch
* stdenv: cleanup darwin bootstrapping
Also gets rid of the full python and some of it's dependencies in the
stdenv build closure.
* Revert "pciutils: use standardized equivalent for canonicalize_file_name"
This reverts commit f8db20fb3ae382eba1ba2b160fe24739f43c0bd7.
Patching should no longer be needed with 3.6.1.
* binutils-wrapper: Try to avoid adding unnecessary -L flags
(cherry picked from commit f3758258b8895508475caf83e92bfb236a27ceb9)
Signed-off-by: Domen Kožar <domen@dev.si>
* libffi: don't check on darwin
libffi usages in stdenv broken darwin. We need to disable doCheck for that case.
* "rm $out/share/icons/hicolor/icon-theme.cache" -> hicolor-icon-theme setup-hook
* python.pkgs.pytest: setupHook to prevent creation of .pytest-cache folder, fixes #40273
When `py.test` was run with a folder as argument, it would not only
search for tests in that folder, but also create a .pytest-cache folder.
Not only is this state we don't want, but it was also causing
collisions.
* parity-ui: fix after merge
* python.pkgs.pytest-flake8: disable test, fix build
* Revert "meson: 0.46.1 -> 0.47.0"
With meson 0.47.0 (or 0.47.1, or git)
things are very wrong re:rpath handling
resulting in at best missing libs but
even corrupt binaries :(.
When we run patchelf it masks the problem
by removing obviously busted paths.
Which is probably why this wasn't noticed immediately.
Unfortunately the binary already
has a long series of paths scribbled
in a space intended for a much smaller string;
in my testing it was something like
lengths were 67 with 300+ written to it.
I think we've reported the relevant issues upstream,
but unfortunately it appears our patches
are what introduces the overwrite/corruption
(by no longer being correct in what they assume)
This doesn't look so bad to fix but it's
not something I can spend more time on
at the moment.
--
Interestingly the overwritten string data
(because it is scribbled past the bounds)
remains in the binary and is why we're suddenly
seeing unexpected references in various builds
-- notably this is is the reason we're
seeing the "extra-utils" breakage
that entirely crippled NixOS on master
(and probably on staging before?).
Fixes #43650.
This reverts commit 305ac4dade5758c58e8ab1666ad0197fd305828d.
(cherry picked from commit 273d68eff8f7b6cd4ebed3718e5078a0f43cb55d)
Signed-off-by: Domen Kožar <domen@dev.si>
2018-07-24 15:04:48 +01:00
|
|
|
|
2020-01-12 20:29:45 +00:00
|
|
|
python3 = super.python3Minimal;
|
2018-09-09 18:36:05 +01:00
|
|
|
|
|
|
|
ninja = super.ninja.override { buildDocs = false; };
|
2020-07-31 15:03:51 +01:00
|
|
|
|
|
|
|
llvmPackages_7 = super.llvmPackages_7 // (let
|
2020-07-31 15:03:51 +01:00
|
|
|
tools = super.llvmPackages_7.tools.extend (_: _: {
|
|
|
|
inherit (llvmPackages_7) clang-unwrapped;
|
|
|
|
});
|
2020-07-31 15:03:51 +01:00
|
|
|
libraries = super.llvmPackages_7.libraries.extend (_: _: {
|
2020-07-31 15:03:51 +01:00
|
|
|
inherit (llvmPackages_7) compiler-rt libcxx libcxxabi;
|
2020-07-31 15:03:51 +01:00
|
|
|
});
|
2020-07-31 15:03:51 +01:00
|
|
|
in { inherit tools libraries; } // tools // libraries);
|
|
|
|
|
|
|
|
darwin = super.darwin // {
|
|
|
|
binutils = darwin.binutils.override {
|
|
|
|
libc = self.darwin.Libsystem;
|
|
|
|
};
|
|
|
|
};
|
Merge staging-next into master (#44009)
* substitute(): --subst-var was silently coercing to "" if the variable does not exist.
* libffi: simplify using `checkInputs`
* pythonPackges.hypothesis, pythonPackages.pytest: simpify dependency cycle fix
* utillinux: 2.32 -> 2.32.1
https://lkml.org/lkml/2018/7/16/532
* busybox: 1.29.0 -> 1.29.1
* bind: 9.12.1-P2 -> 9.12.2
https://ftp.isc.org/isc/bind9/9.12.2/RELEASE-NOTES-bind-9.12.2.html
* curl: 7.60.0 -> 7.61.0
* gvfs: make tests run, but disable
* ilmbase: disable tests on i686. Spooky!
* mdds: fix tests
* git: disable checks as tests are run in installcheck
* ruby: disable tests
* libcommuni: disable checks as tests are run in installcheck
* librdf: make tests run, but disable
* neon, neon_0_29: make tests run, but disable
* pciutils: 3.6.0 -> 3.6.1
Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/pciutils/versions.
* mesa: more include fixes
mostly from void-linux (thanks!)
* npth: 1.5 -> 1.6
minor bump
* boost167: Add lockfree next_prior patch
* stdenv: cleanup darwin bootstrapping
Also gets rid of the full python and some of it's dependencies in the
stdenv build closure.
* Revert "pciutils: use standardized equivalent for canonicalize_file_name"
This reverts commit f8db20fb3ae382eba1ba2b160fe24739f43c0bd7.
Patching should no longer be needed with 3.6.1.
* binutils-wrapper: Try to avoid adding unnecessary -L flags
(cherry picked from commit f3758258b8895508475caf83e92bfb236a27ceb9)
Signed-off-by: Domen Kožar <domen@dev.si>
* libffi: don't check on darwin
libffi usages in stdenv broken darwin. We need to disable doCheck for that case.
* "rm $out/share/icons/hicolor/icon-theme.cache" -> hicolor-icon-theme setup-hook
* python.pkgs.pytest: setupHook to prevent creation of .pytest-cache folder, fixes #40273
When `py.test` was run with a folder as argument, it would not only
search for tests in that folder, but also create a .pytest-cache folder.
Not only is this state we don't want, but it was also causing
collisions.
* parity-ui: fix after merge
* python.pkgs.pytest-flake8: disable test, fix build
* Revert "meson: 0.46.1 -> 0.47.0"
With meson 0.47.0 (or 0.47.1, or git)
things are very wrong re:rpath handling
resulting in at best missing libs but
even corrupt binaries :(.
When we run patchelf it masks the problem
by removing obviously busted paths.
Which is probably why this wasn't noticed immediately.
Unfortunately the binary already
has a long series of paths scribbled
in a space intended for a much smaller string;
in my testing it was something like
lengths were 67 with 300+ written to it.
I think we've reported the relevant issues upstream,
but unfortunately it appears our patches
are what introduces the overwrite/corruption
(by no longer being correct in what they assume)
This doesn't look so bad to fix but it's
not something I can spend more time on
at the moment.
--
Interestingly the overwritten string data
(because it is scribbled past the bounds)
remains in the binary and is why we're suddenly
seeing unexpected references in various builds
-- notably this is is the reason we're
seeing the "extra-utils" breakage
that entirely crippled NixOS on master
(and probably on staging before?).
Fixes #43650.
This reverts commit 305ac4dade5758c58e8ab1666ad0197fd305828d.
(cherry picked from commit 273d68eff8f7b6cd4ebed3718e5078a0f43cb55d)
Signed-off-by: Domen Kožar <domen@dev.si>
2018-07-24 15:04:48 +01:00
|
|
|
};
|
2017-08-16 21:36:21 +01:00
|
|
|
in with prevStage; stageFun 1 prevStage {
|
2015-06-18 18:03:32 +01:00
|
|
|
extraPreHook = "export NIX_CFLAGS_COMPILE+=\" -F${bootstrapTools}/Library/Frameworks\"";
|
2017-08-15 16:30:45 +01:00
|
|
|
extraNativeBuildInputs = [];
|
2017-12-25 03:00:58 +00:00
|
|
|
extraBuildInputs = [ ];
|
|
|
|
libcxx = pkgs.libcxx;
|
2015-06-18 18:03:32 +01:00
|
|
|
|
|
|
|
allowedRequisites =
|
2020-07-31 15:03:51 +01:00
|
|
|
[ bootstrapTools ] ++
|
|
|
|
(with pkgs; [ libcxx libcxxabi llvmPackages_7.compiler-rt ]) ++
|
|
|
|
(with pkgs.darwin; [ Libsystem ]);
|
2015-06-18 18:03:32 +01:00
|
|
|
|
2017-08-16 21:36:21 +01:00
|
|
|
overrides = persistent;
|
2015-06-18 18:03:32 +01:00
|
|
|
};
|
|
|
|
|
2017-08-16 21:36:21 +01:00
|
|
|
stage2 = prevStage: let
|
|
|
|
persistent = self: super: with prevStage; {
|
|
|
|
inherit
|
2020-01-12 20:29:45 +00:00
|
|
|
zlib patchutils m4 scons flex perl bison unifdef unzip openssl python3
|
2017-08-16 21:36:21 +01:00
|
|
|
libxml2 gettext sharutils gmp libarchive ncurses pkg-config libedit groff
|
|
|
|
openssh sqlite sed serf openldap db cyrus-sasl expat apr-util subversion xz
|
2018-09-09 18:36:05 +01:00
|
|
|
findfreetype libssh curl cmake autoconf automake libtool ed cpio coreutils
|
2020-01-12 20:29:45 +00:00
|
|
|
libssh2 nghttp2 libkrb5 ninja;
|
2015-06-18 18:03:32 +01:00
|
|
|
|
2020-07-31 15:03:51 +01:00
|
|
|
llvmPackages_7 = super.llvmPackages_7 // (let
|
2020-07-31 15:03:51 +01:00
|
|
|
tools = super.llvmPackages_7.tools.extend (_: _: {
|
|
|
|
inherit (llvmPackages_7) clang-unwrapped;
|
|
|
|
});
|
|
|
|
libraries = super.llvmPackages_7.libraries.extend (_: libSuper: {
|
2020-07-31 15:03:51 +01:00
|
|
|
inherit (llvmPackages_7) compiler-rt;
|
2020-07-31 15:03:51 +01:00
|
|
|
libcxx = libSuper.libcxx.override {
|
|
|
|
stdenv = overrideCC self.stdenv self.ccNoLibcxx;
|
|
|
|
};
|
|
|
|
libcxxabi = libSuper.libcxxabi.override {
|
|
|
|
stdenv = overrideCC self.stdenv self.ccNoLibcxx;
|
|
|
|
standalone = true;
|
|
|
|
};
|
2020-07-31 15:03:51 +01:00
|
|
|
});
|
2020-07-31 15:03:51 +01:00
|
|
|
in { inherit tools libraries; } // tools // libraries);
|
2020-07-31 15:03:51 +01:00
|
|
|
|
2017-08-16 21:36:21 +01:00
|
|
|
darwin = super.darwin // {
|
|
|
|
inherit (darwin)
|
2020-09-10 11:06:20 +01:00
|
|
|
binutils dyld Libsystem xnu configd ICU libdispatch libclosure
|
|
|
|
launchd CF darwin-stubs;
|
2017-08-16 21:36:21 +01:00
|
|
|
};
|
2015-06-18 18:03:32 +01:00
|
|
|
};
|
2017-08-16 21:36:21 +01:00
|
|
|
in with prevStage; stageFun 2 prevStage {
|
2015-11-07 01:44:02 +00:00
|
|
|
extraPreHook = ''
|
|
|
|
export PATH_LOCALE=${pkgs.darwin.locale}/share/locale
|
|
|
|
'';
|
|
|
|
|
2017-08-15 16:30:45 +01:00
|
|
|
extraNativeBuildInputs = [ pkgs.xz ];
|
2017-12-25 03:00:58 +00:00
|
|
|
extraBuildInputs = [ pkgs.darwin.CF ];
|
|
|
|
libcxx = pkgs.libcxx;
|
2016-03-23 17:11:42 +00:00
|
|
|
|
2015-06-18 18:03:32 +01:00
|
|
|
allowedRequisites =
|
|
|
|
[ bootstrapTools ] ++
|
2018-09-09 18:36:05 +01:00
|
|
|
(with pkgs; [
|
2020-07-31 15:03:51 +01:00
|
|
|
xz.bin xz.out libcxx libcxxabi llvmPackages_7.compiler-rt
|
|
|
|
zlib libxml2.out curl.out openssl.out libssh2.out
|
|
|
|
nghttp2.lib libkrb5 coreutils gnugrep pcre.out gmp libiconv
|
2018-09-09 18:36:05 +01:00
|
|
|
]) ++
|
2017-05-24 00:36:50 +01:00
|
|
|
(with pkgs.darwin; [ dyld Libsystem CF ICU locale ]);
|
2015-06-18 18:03:32 +01:00
|
|
|
|
2017-08-16 21:36:21 +01:00
|
|
|
overrides = persistent;
|
2015-06-18 18:03:32 +01:00
|
|
|
};
|
|
|
|
|
2017-08-16 21:36:21 +01:00
|
|
|
stage3 = prevStage: let
|
|
|
|
persistent = self: super: with prevStage; {
|
|
|
|
inherit
|
2020-01-12 20:29:45 +00:00
|
|
|
patchutils m4 scons flex perl bison unifdef unzip openssl python3
|
2017-08-16 21:36:21 +01:00
|
|
|
gettext sharutils libarchive pkg-config groff bash subversion
|
|
|
|
openssh sqlite sed serf openldap db cyrus-sasl expat apr-util
|
2018-09-09 18:36:05 +01:00
|
|
|
findfreetype libssh curl cmake autoconf automake libtool cpio
|
2020-01-12 20:29:45 +00:00
|
|
|
libssh2 nghttp2 libkrb5 ninja;
|
2018-06-14 15:22:33 +01:00
|
|
|
|
2018-09-09 18:36:05 +01:00
|
|
|
# Avoid pulling in a full python and its extra dependencies for the llvm/clang builds.
|
Merge staging-next into master (#44009)
* substitute(): --subst-var was silently coercing to "" if the variable does not exist.
* libffi: simplify using `checkInputs`
* pythonPackges.hypothesis, pythonPackages.pytest: simpify dependency cycle fix
* utillinux: 2.32 -> 2.32.1
https://lkml.org/lkml/2018/7/16/532
* busybox: 1.29.0 -> 1.29.1
* bind: 9.12.1-P2 -> 9.12.2
https://ftp.isc.org/isc/bind9/9.12.2/RELEASE-NOTES-bind-9.12.2.html
* curl: 7.60.0 -> 7.61.0
* gvfs: make tests run, but disable
* ilmbase: disable tests on i686. Spooky!
* mdds: fix tests
* git: disable checks as tests are run in installcheck
* ruby: disable tests
* libcommuni: disable checks as tests are run in installcheck
* librdf: make tests run, but disable
* neon, neon_0_29: make tests run, but disable
* pciutils: 3.6.0 -> 3.6.1
Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/pciutils/versions.
* mesa: more include fixes
mostly from void-linux (thanks!)
* npth: 1.5 -> 1.6
minor bump
* boost167: Add lockfree next_prior patch
* stdenv: cleanup darwin bootstrapping
Also gets rid of the full python and some of it's dependencies in the
stdenv build closure.
* Revert "pciutils: use standardized equivalent for canonicalize_file_name"
This reverts commit f8db20fb3ae382eba1ba2b160fe24739f43c0bd7.
Patching should no longer be needed with 3.6.1.
* binutils-wrapper: Try to avoid adding unnecessary -L flags
(cherry picked from commit f3758258b8895508475caf83e92bfb236a27ceb9)
Signed-off-by: Domen Kožar <domen@dev.si>
* libffi: don't check on darwin
libffi usages in stdenv broken darwin. We need to disable doCheck for that case.
* "rm $out/share/icons/hicolor/icon-theme.cache" -> hicolor-icon-theme setup-hook
* python.pkgs.pytest: setupHook to prevent creation of .pytest-cache folder, fixes #40273
When `py.test` was run with a folder as argument, it would not only
search for tests in that folder, but also create a .pytest-cache folder.
Not only is this state we don't want, but it was also causing
collisions.
* parity-ui: fix after merge
* python.pkgs.pytest-flake8: disable test, fix build
* Revert "meson: 0.46.1 -> 0.47.0"
With meson 0.47.0 (or 0.47.1, or git)
things are very wrong re:rpath handling
resulting in at best missing libs but
even corrupt binaries :(.
When we run patchelf it masks the problem
by removing obviously busted paths.
Which is probably why this wasn't noticed immediately.
Unfortunately the binary already
has a long series of paths scribbled
in a space intended for a much smaller string;
in my testing it was something like
lengths were 67 with 300+ written to it.
I think we've reported the relevant issues upstream,
but unfortunately it appears our patches
are what introduces the overwrite/corruption
(by no longer being correct in what they assume)
This doesn't look so bad to fix but it's
not something I can spend more time on
at the moment.
--
Interestingly the overwritten string data
(because it is scribbled past the bounds)
remains in the binary and is why we're suddenly
seeing unexpected references in various builds
-- notably this is is the reason we're
seeing the "extra-utils" breakage
that entirely crippled NixOS on master
(and probably on staging before?).
Fixes #43650.
This reverts commit 305ac4dade5758c58e8ab1666ad0197fd305828d.
(cherry picked from commit 273d68eff8f7b6cd4ebed3718e5078a0f43cb55d)
Signed-off-by: Domen Kožar <domen@dev.si>
2018-07-24 15:04:48 +01:00
|
|
|
libxml2 = super.libxml2.override { pythonSupport = false; };
|
|
|
|
|
2019-02-07 01:27:25 +00:00
|
|
|
llvmPackages_7 = super.llvmPackages_7 // (let
|
|
|
|
libraries = super.llvmPackages_7.libraries.extend (_: _: {
|
|
|
|
inherit (llvmPackages_7) libcxx libcxxabi;
|
2018-06-14 15:22:33 +01:00
|
|
|
});
|
|
|
|
in { inherit libraries; } // libraries);
|
2015-06-18 18:03:32 +01:00
|
|
|
|
2017-08-16 21:36:21 +01:00
|
|
|
darwin = super.darwin // {
|
|
|
|
inherit (darwin)
|
2020-09-10 11:06:20 +01:00
|
|
|
dyld Libsystem xnu configd libdispatch libclosure launchd libiconv
|
|
|
|
locale darwin-stubs;
|
2017-08-16 21:36:21 +01:00
|
|
|
};
|
|
|
|
};
|
|
|
|
in with prevStage; stageFun 3 prevStage {
|
2015-06-18 18:03:32 +01:00
|
|
|
shell = "${pkgs.bash}/bin/bash";
|
|
|
|
|
|
|
|
# We have a valid shell here (this one has no bootstrap-tools runtime deps) so stageFun
|
|
|
|
# enables patchShebangs above. Unfortunately, patchShebangs ignores our $SHELL setting
|
|
|
|
# and instead goes by $PATH, which happens to contain bootstrapTools. So it goes and
|
|
|
|
# patches our shebangs back to point at bootstrapTools. This makes sure bash comes first.
|
2019-03-03 01:06:09 +00:00
|
|
|
extraNativeBuildInputs = with pkgs; [ xz ];
|
|
|
|
extraBuildInputs = [ pkgs.darwin.CF pkgs.bash ];
|
2017-12-25 03:00:58 +00:00
|
|
|
libcxx = pkgs.libcxx;
|
2015-06-18 18:03:32 +01:00
|
|
|
|
2015-11-07 01:44:02 +00:00
|
|
|
extraPreHook = ''
|
2016-03-23 17:11:42 +00:00
|
|
|
export PATH=${pkgs.bash}/bin:$PATH
|
2015-11-07 01:44:02 +00:00
|
|
|
export PATH_LOCALE=${pkgs.darwin.locale}/share/locale
|
|
|
|
'';
|
|
|
|
|
2015-06-18 18:03:32 +01:00
|
|
|
allowedRequisites =
|
|
|
|
[ bootstrapTools ] ++
|
2018-09-09 18:36:05 +01:00
|
|
|
(with pkgs; [
|
2020-07-31 15:03:51 +01:00
|
|
|
xz.bin xz.out bash libcxx libcxxabi llvmPackages_7.compiler-rt
|
|
|
|
zlib libxml2.out curl.out openssl.out libssh2.out
|
|
|
|
nghttp2.lib libkrb5 coreutils gnugrep pcre.out gmp libiconv
|
2018-09-09 18:36:05 +01:00
|
|
|
]) ++
|
2017-05-24 00:36:50 +01:00
|
|
|
(with pkgs.darwin; [ dyld ICU Libsystem locale ]);
|
2015-06-18 18:03:32 +01:00
|
|
|
|
2017-08-16 21:36:21 +01:00
|
|
|
overrides = persistent;
|
2015-06-18 18:03:32 +01:00
|
|
|
};
|
|
|
|
|
2017-08-16 21:36:21 +01:00
|
|
|
stage4 = prevStage: let
|
|
|
|
persistent = self: super: with prevStage; {
|
|
|
|
inherit
|
2020-01-12 20:29:45 +00:00
|
|
|
gnumake gzip gnused bzip2 gawk ed xz patch bash python3
|
2020-07-25 07:26:54 +01:00
|
|
|
ncurses libffi zlib gmp pcre gnugrep cmake
|
2020-05-11 08:12:05 +01:00
|
|
|
coreutils findutils diffutils patchutils ninja libxml2;
|
2015-06-18 18:03:32 +01:00
|
|
|
|
Merge staging-next into master (#44009)
* substitute(): --subst-var was silently coercing to "" if the variable does not exist.
* libffi: simplify using `checkInputs`
* pythonPackges.hypothesis, pythonPackages.pytest: simpify dependency cycle fix
* utillinux: 2.32 -> 2.32.1
https://lkml.org/lkml/2018/7/16/532
* busybox: 1.29.0 -> 1.29.1
* bind: 9.12.1-P2 -> 9.12.2
https://ftp.isc.org/isc/bind9/9.12.2/RELEASE-NOTES-bind-9.12.2.html
* curl: 7.60.0 -> 7.61.0
* gvfs: make tests run, but disable
* ilmbase: disable tests on i686. Spooky!
* mdds: fix tests
* git: disable checks as tests are run in installcheck
* ruby: disable tests
* libcommuni: disable checks as tests are run in installcheck
* librdf: make tests run, but disable
* neon, neon_0_29: make tests run, but disable
* pciutils: 3.6.0 -> 3.6.1
Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/pciutils/versions.
* mesa: more include fixes
mostly from void-linux (thanks!)
* npth: 1.5 -> 1.6
minor bump
* boost167: Add lockfree next_prior patch
* stdenv: cleanup darwin bootstrapping
Also gets rid of the full python and some of it's dependencies in the
stdenv build closure.
* Revert "pciutils: use standardized equivalent for canonicalize_file_name"
This reverts commit f8db20fb3ae382eba1ba2b160fe24739f43c0bd7.
Patching should no longer be needed with 3.6.1.
* binutils-wrapper: Try to avoid adding unnecessary -L flags
(cherry picked from commit f3758258b8895508475caf83e92bfb236a27ceb9)
Signed-off-by: Domen Kožar <domen@dev.si>
* libffi: don't check on darwin
libffi usages in stdenv broken darwin. We need to disable doCheck for that case.
* "rm $out/share/icons/hicolor/icon-theme.cache" -> hicolor-icon-theme setup-hook
* python.pkgs.pytest: setupHook to prevent creation of .pytest-cache folder, fixes #40273
When `py.test` was run with a folder as argument, it would not only
search for tests in that folder, but also create a .pytest-cache folder.
Not only is this state we don't want, but it was also causing
collisions.
* parity-ui: fix after merge
* python.pkgs.pytest-flake8: disable test, fix build
* Revert "meson: 0.46.1 -> 0.47.0"
With meson 0.47.0 (or 0.47.1, or git)
things are very wrong re:rpath handling
resulting in at best missing libs but
even corrupt binaries :(.
When we run patchelf it masks the problem
by removing obviously busted paths.
Which is probably why this wasn't noticed immediately.
Unfortunately the binary already
has a long series of paths scribbled
in a space intended for a much smaller string;
in my testing it was something like
lengths were 67 with 300+ written to it.
I think we've reported the relevant issues upstream,
but unfortunately it appears our patches
are what introduces the overwrite/corruption
(by no longer being correct in what they assume)
This doesn't look so bad to fix but it's
not something I can spend more time on
at the moment.
--
Interestingly the overwritten string data
(because it is scribbled past the bounds)
remains in the binary and is why we're suddenly
seeing unexpected references in various builds
-- notably this is is the reason we're
seeing the "extra-utils" breakage
that entirely crippled NixOS on master
(and probably on staging before?).
Fixes #43650.
This reverts commit 305ac4dade5758c58e8ab1666ad0197fd305828d.
(cherry picked from commit 273d68eff8f7b6cd4ebed3718e5078a0f43cb55d)
Signed-off-by: Domen Kožar <domen@dev.si>
2018-07-24 15:04:48 +01:00
|
|
|
# Hack to make sure we don't link ncurses in bootstrap tools. The proper
|
|
|
|
# solution is to avoid passing -L/nix-store/...-bootstrap-tools/lib,
|
|
|
|
# quite a sledgehammer just to get the C runtime.
|
|
|
|
gettext = super.gettext.overrideAttrs (drv: {
|
|
|
|
configureFlags = drv.configureFlags ++ [
|
|
|
|
"--disable-curses"
|
|
|
|
];
|
|
|
|
});
|
|
|
|
|
2019-02-07 01:27:25 +00:00
|
|
|
llvmPackages_7 = super.llvmPackages_7 // (let
|
|
|
|
tools = super.llvmPackages_7.tools.extend (llvmSelf: _: {
|
2019-03-03 18:31:24 +00:00
|
|
|
clang-unwrapped = llvmPackages_7.clang-unwrapped.override { llvm = llvmSelf.llvm; };
|
2020-05-11 08:12:05 +01:00
|
|
|
llvm = llvmPackages_7.llvm.override { inherit libxml2; };
|
2018-06-14 15:22:33 +01:00
|
|
|
});
|
2019-02-07 01:27:25 +00:00
|
|
|
libraries = super.llvmPackages_7.libraries.extend (llvmSelf: _: {
|
|
|
|
inherit (llvmPackages_7) libcxx libcxxabi compiler-rt;
|
2018-06-14 15:22:33 +01:00
|
|
|
});
|
|
|
|
in { inherit tools libraries; } // tools // libraries);
|
2015-06-18 18:03:32 +01:00
|
|
|
|
2018-09-09 18:36:05 +01:00
|
|
|
darwin = super.darwin // rec {
|
2020-09-10 11:06:20 +01:00
|
|
|
inherit (darwin) dyld Libsystem libiconv locale darwin-stubs;
|
2018-09-09 18:36:05 +01:00
|
|
|
|
|
|
|
CF = super.darwin.CF.override {
|
2020-05-11 08:12:05 +01:00
|
|
|
inherit libxml2;
|
2020-01-12 20:29:45 +00:00
|
|
|
python3 = prevStage.python3;
|
2018-09-09 18:36:05 +01:00
|
|
|
};
|
2017-08-16 21:36:21 +01:00
|
|
|
};
|
2015-06-18 18:03:32 +01:00
|
|
|
};
|
2017-08-16 21:36:21 +01:00
|
|
|
in with prevStage; stageFun 4 prevStage {
|
2015-06-18 18:03:32 +01:00
|
|
|
shell = "${pkgs.bash}/bin/bash";
|
2019-03-03 01:06:09 +00:00
|
|
|
extraNativeBuildInputs = with pkgs; [ xz ];
|
|
|
|
extraBuildInputs = [ pkgs.darwin.CF pkgs.bash ];
|
2017-12-25 03:00:58 +00:00
|
|
|
libcxx = pkgs.libcxx;
|
|
|
|
|
2015-11-07 01:44:02 +00:00
|
|
|
extraPreHook = ''
|
|
|
|
export PATH_LOCALE=${pkgs.darwin.locale}/share/locale
|
|
|
|
'';
|
Merge staging-next into master (#44009)
* substitute(): --subst-var was silently coercing to "" if the variable does not exist.
* libffi: simplify using `checkInputs`
* pythonPackges.hypothesis, pythonPackages.pytest: simpify dependency cycle fix
* utillinux: 2.32 -> 2.32.1
https://lkml.org/lkml/2018/7/16/532
* busybox: 1.29.0 -> 1.29.1
* bind: 9.12.1-P2 -> 9.12.2
https://ftp.isc.org/isc/bind9/9.12.2/RELEASE-NOTES-bind-9.12.2.html
* curl: 7.60.0 -> 7.61.0
* gvfs: make tests run, but disable
* ilmbase: disable tests on i686. Spooky!
* mdds: fix tests
* git: disable checks as tests are run in installcheck
* ruby: disable tests
* libcommuni: disable checks as tests are run in installcheck
* librdf: make tests run, but disable
* neon, neon_0_29: make tests run, but disable
* pciutils: 3.6.0 -> 3.6.1
Semi-automatic update generated by https://github.com/ryantm/nixpkgs-update tools. This update was made based on information from https://repology.org/metapackage/pciutils/versions.
* mesa: more include fixes
mostly from void-linux (thanks!)
* npth: 1.5 -> 1.6
minor bump
* boost167: Add lockfree next_prior patch
* stdenv: cleanup darwin bootstrapping
Also gets rid of the full python and some of it's dependencies in the
stdenv build closure.
* Revert "pciutils: use standardized equivalent for canonicalize_file_name"
This reverts commit f8db20fb3ae382eba1ba2b160fe24739f43c0bd7.
Patching should no longer be needed with 3.6.1.
* binutils-wrapper: Try to avoid adding unnecessary -L flags
(cherry picked from commit f3758258b8895508475caf83e92bfb236a27ceb9)
Signed-off-by: Domen Kožar <domen@dev.si>
* libffi: don't check on darwin
libffi usages in stdenv broken darwin. We need to disable doCheck for that case.
* "rm $out/share/icons/hicolor/icon-theme.cache" -> hicolor-icon-theme setup-hook
* python.pkgs.pytest: setupHook to prevent creation of .pytest-cache folder, fixes #40273
When `py.test` was run with a folder as argument, it would not only
search for tests in that folder, but also create a .pytest-cache folder.
Not only is this state we don't want, but it was also causing
collisions.
* parity-ui: fix after merge
* python.pkgs.pytest-flake8: disable test, fix build
* Revert "meson: 0.46.1 -> 0.47.0"
With meson 0.47.0 (or 0.47.1, or git)
things are very wrong re:rpath handling
resulting in at best missing libs but
even corrupt binaries :(.
When we run patchelf it masks the problem
by removing obviously busted paths.
Which is probably why this wasn't noticed immediately.
Unfortunately the binary already
has a long series of paths scribbled
in a space intended for a much smaller string;
in my testing it was something like
lengths were 67 with 300+ written to it.
I think we've reported the relevant issues upstream,
but unfortunately it appears our patches
are what introduces the overwrite/corruption
(by no longer being correct in what they assume)
This doesn't look so bad to fix but it's
not something I can spend more time on
at the moment.
--
Interestingly the overwritten string data
(because it is scribbled past the bounds)
remains in the binary and is why we're suddenly
seeing unexpected references in various builds
-- notably this is is the reason we're
seeing the "extra-utils" breakage
that entirely crippled NixOS on master
(and probably on staging before?).
Fixes #43650.
This reverts commit 305ac4dade5758c58e8ab1666ad0197fd305828d.
(cherry picked from commit 273d68eff8f7b6cd4ebed3718e5078a0f43cb55d)
Signed-off-by: Domen Kožar <domen@dev.si>
2018-07-24 15:04:48 +01:00
|
|
|
overrides = persistent;
|
2015-06-18 18:03:32 +01:00
|
|
|
};
|
|
|
|
|
2017-08-16 21:36:21 +01:00
|
|
|
stdenvDarwin = prevStage: let
|
|
|
|
pkgs = prevStage;
|
|
|
|
persistent = self: super: with prevStage; {
|
|
|
|
inherit
|
|
|
|
gnumake gzip gnused bzip2 gawk ed xz patch bash
|
2018-06-14 15:22:33 +01:00
|
|
|
ncurses libffi zlib llvm gmp pcre gnugrep
|
2017-08-16 21:36:21 +01:00
|
|
|
coreutils findutils diffutils patchutils;
|
2015-06-18 18:03:32 +01:00
|
|
|
|
2019-02-07 01:27:25 +00:00
|
|
|
llvmPackages_7 = super.llvmPackages_7 // (let
|
|
|
|
tools = super.llvmPackages_7.tools.extend (_: super: {
|
|
|
|
inherit (llvmPackages_7) llvm clang-unwrapped;
|
2018-06-14 15:22:33 +01:00
|
|
|
});
|
2019-02-07 01:27:25 +00:00
|
|
|
libraries = super.llvmPackages_7.libraries.extend (_: _: {
|
|
|
|
inherit (llvmPackages_7) compiler-rt libcxx libcxxabi;
|
2018-06-14 15:22:33 +01:00
|
|
|
});
|
|
|
|
in { inherit tools libraries; } // tools // libraries);
|
2015-06-18 18:03:32 +01:00
|
|
|
|
2017-08-16 21:36:21 +01:00
|
|
|
darwin = super.darwin // {
|
2017-06-15 19:37:35 +01:00
|
|
|
inherit (darwin) dyld ICU Libsystem libiconv;
|
2018-08-20 19:43:41 +01:00
|
|
|
} // lib.optionalAttrs (super.stdenv.targetPlatform == localSystem) {
|
2018-05-23 06:24:16 +01:00
|
|
|
inherit (darwin) binutils binutils-unwrapped cctools;
|
2017-08-16 21:36:21 +01:00
|
|
|
};
|
2018-08-20 19:43:41 +01:00
|
|
|
} // lib.optionalAttrs (super.stdenv.targetPlatform == localSystem) {
|
2017-08-16 21:36:21 +01:00
|
|
|
# Need to get rid of these when cross-compiling.
|
2018-04-03 17:50:25 +01:00
|
|
|
inherit binutils binutils-unwrapped;
|
2015-06-18 18:03:32 +01:00
|
|
|
};
|
2017-08-16 21:36:21 +01:00
|
|
|
in import ../generic rec {
|
2018-02-25 22:03:40 +00:00
|
|
|
name = "stdenv-darwin";
|
|
|
|
|
2017-05-22 02:37:16 +01:00
|
|
|
inherit config;
|
2016-12-16 13:22:02 +00:00
|
|
|
inherit (pkgs.stdenv) fetchurlBoot;
|
2015-06-18 18:03:32 +01:00
|
|
|
|
2017-07-06 02:47:48 +01:00
|
|
|
buildPlatform = localSystem;
|
|
|
|
hostPlatform = localSystem;
|
|
|
|
targetPlatform = localSystem;
|
|
|
|
|
2015-11-13 02:59:17 +00:00
|
|
|
preHook = commonPreHook + ''
|
2017-07-21 19:29:18 +01:00
|
|
|
export NIX_COREFOUNDATION_RPATH=${pkgs.darwin.CF}/Library/Frameworks
|
2015-11-13 02:59:17 +00:00
|
|
|
export PATH_LOCALE=${pkgs.darwin.locale}/share/locale
|
|
|
|
'';
|
2015-06-18 18:03:32 +01:00
|
|
|
|
2017-11-14 15:36:04 +00:00
|
|
|
__stdenvImpureHostDeps = commonImpureHostDeps;
|
|
|
|
__extraImpureHostDeps = commonImpureHostDeps;
|
2015-06-18 18:03:32 +01:00
|
|
|
|
|
|
|
initialPath = import ../common-path.nix { inherit pkgs; };
|
|
|
|
shell = "${pkgs.bash}/bin/bash";
|
|
|
|
|
2018-06-18 20:30:39 +01:00
|
|
|
cc = pkgs.llvmPackages.libcxxClang.override {
|
2018-07-27 20:52:50 +01:00
|
|
|
cc = pkgs.llvmPackages.clang-unwrapped;
|
2015-06-18 18:03:32 +01:00
|
|
|
};
|
|
|
|
|
2017-08-15 16:30:45 +01:00
|
|
|
extraNativeBuildInputs = [];
|
2017-12-25 03:00:58 +00:00
|
|
|
extraBuildInputs = [ pkgs.darwin.CF ];
|
2015-06-18 18:03:32 +01:00
|
|
|
|
|
|
|
extraAttrs = {
|
2020-01-13 16:56:02 +00:00
|
|
|
libc = pkgs.darwin.Libsystem;
|
2015-06-18 18:03:32 +01:00
|
|
|
shellPackage = pkgs.bash;
|
2020-01-13 16:56:02 +00:00
|
|
|
inherit macosVersionMin appleSdkVersion platform bootstrapTools;
|
2015-06-18 18:03:32 +01:00
|
|
|
};
|
|
|
|
|
|
|
|
allowedRequisites = (with pkgs; [
|
2017-05-24 00:36:50 +01:00
|
|
|
xz.out xz.bin libcxx libcxxabi gmp.out gnumake findutils bzip2.out
|
2018-06-14 15:22:33 +01:00
|
|
|
bzip2.bin llvmPackages.llvm llvmPackages.llvm.lib llvmPackages.compiler-rt llvmPackages.compiler-rt.dev
|
|
|
|
zlib.out zlib.dev libffi.out coreutils ed diffutils gnutar
|
2016-02-01 17:16:50 +00:00
|
|
|
gzip ncurses.out ncurses.dev ncurses.man gnused bash gawk
|
2018-01-01 23:52:22 +00:00
|
|
|
gnugrep llvmPackages.clang-unwrapped llvmPackages.clang-unwrapped.lib patch pcre.out gettext
|
2018-04-03 17:50:25 +01:00
|
|
|
binutils.bintools darwin.binutils darwin.binutils.bintools
|
2018-09-09 18:36:05 +01:00
|
|
|
curl.out openssl.out libssh2.out nghttp2.lib libkrb5
|
2020-05-11 08:12:05 +01:00
|
|
|
cc.expand-response-params libxml2.out
|
2015-06-18 18:03:32 +01:00
|
|
|
]) ++ (with pkgs.darwin; [
|
2020-07-25 07:26:54 +01:00
|
|
|
dyld Libsystem CF cctools ICU libiconv locale libtapi
|
2015-06-18 18:03:32 +01:00
|
|
|
]);
|
|
|
|
|
2018-05-23 07:06:18 +01:00
|
|
|
overrides = lib.composeExtensions persistent (self: super: {
|
|
|
|
clang = cc;
|
|
|
|
llvmPackages = super.llvmPackages // { clang = cc; };
|
|
|
|
inherit cc;
|
2017-11-14 15:36:04 +00:00
|
|
|
|
2018-05-23 07:06:18 +01:00
|
|
|
darwin = super.darwin // {
|
2020-09-10 11:06:20 +01:00
|
|
|
inherit (prevStage.darwin) CF darwin-stubs;
|
2020-01-12 20:29:45 +00:00
|
|
|
xnu = super.darwin.xnu.override { inherit (prevStage) python3; };
|
2017-03-18 20:48:27 +00:00
|
|
|
};
|
2018-05-23 07:06:18 +01:00
|
|
|
});
|
2015-06-18 18:03:32 +01:00
|
|
|
};
|
2016-01-04 02:47:09 +00:00
|
|
|
|
2016-12-16 13:22:02 +00:00
|
|
|
stagesDarwin = [
|
|
|
|
({}: stage0)
|
|
|
|
stage1
|
|
|
|
stage2
|
|
|
|
stage3
|
|
|
|
stage4
|
|
|
|
(prevStage: {
|
2016-12-24 18:55:11 +00:00
|
|
|
inherit config overlays;
|
2016-12-16 13:22:02 +00:00
|
|
|
stdenv = stdenvDarwin prevStage;
|
|
|
|
})
|
|
|
|
];
|
2015-06-18 18:03:32 +01:00
|
|
|
}
|