Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update macOS to 10.12 #56744

Merged
merged 70 commits into from Apr 27, 2019

Conversation

@matthewbauer
Copy link
Member

commented Mar 3, 2019

Motivation for this change

This is big enough that it probably needs its own jobset. This bumps the SDKs to 10.12, as well as adds symbols only available in 10.12. As a result, this means that Nixpkgs will only work on systems with macOS 10.12+.

Other things done:

  • In addition, I've brought back the cross patch shebangs work. It needed some tweaking to get things working but the final result doesn't leak bootstrap-tools.
  • Removed some old patches that should not be needed with newer SDKs.
  • Update LLVM to 7 everywhere (/cc @dtzWill). Based off of #56490.
  • Add libtapi support for cctools. This is just a flag to cctools-port that it can use.
Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS)
  • Built on platform(s)
    • NixOS
    • macOS
    • other Linux distributions
  • Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
  • Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
  • Tested execution of all binary files (usually in ./result/bin/)
  • Determined the impact on package closure size (by running nix path-info -S before and after)
  • Assured whether relevant documentation is up to date
  • Fits CONTRIBUTING.md.

@matthewbauer

This comment has been minimized.

Copy link
Member Author

commented Mar 3, 2019

Oh, does cf-private add -framework CoreFoundation? If so we can probably get rid of it in a bunch of other places.

It adds /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation to get the objc runtime. It should only be needed if you get errors like:

_OBJC_CLASS_$_NSArray is undefined

@veprbl veprbl referenced this pull request Mar 3, 2019

Merged

qt5.qtwebengine: fix on darwin (again) #56440

3 of 3 tasks complete

@matthewbauer matthewbauer force-pushed the matthewbauer:macos-10-12 branch from 558f20c to 57aa06f Mar 4, 2019

@matthewbauer

This comment has been minimized.

Copy link
Member Author

commented Mar 4, 2019

If you are just missing _NS* symbols you just need -framework CoreFoundation

@matthewbauer matthewbauer force-pushed the matthewbauer:macos-10-12 branch from 9a0ed89 to c1f1a0e Apr 27, 2019

@matthewbauer matthewbauer merged commit 87944c3 into NixOS:staging Apr 27, 2019

13 checks passed

Evaluation Performance Report Evaluator Performance Report
Details
grahamcofborg-eval ^.^!
Details
grahamcofborg-eval-check-maintainers matching changed paths to changed attrs...
Details
grahamcofborg-eval-check-meta config.nix: checkMeta = true
Details
grahamcofborg-eval-darwin nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="ofborg"; } ./pkgs/top-level/release.nix -A darwin-tested
Details
grahamcofborg-eval-nixos nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="ofborg"; } ./nixos/release-combined.nix -A tested
Details
grahamcofborg-eval-nixos-manual nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="ofborg"; } ./nixos/release.nix -A manual
Details
grahamcofborg-eval-nixos-options nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="ofborg"; } ./nixos/release.nix -A options
Details
grahamcofborg-eval-nixpkgs-manual nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="ofborg"; } ./pkgs/top-level/release.nix -A manual
Details
grahamcofborg-eval-nixpkgs-tarball nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="ofborg"; } ./pkgs/top-level/release.nix -A tarball
Details
grahamcofborg-eval-nixpkgs-unstable-jobset nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="ofborg"; } ./pkgs/top-level/release.nix -A unstable
Details
grahamcofborg-eval-package-list nix-env -qa --json --file .
Details
grahamcofborg-eval-package-list-no-aliases nix-env -qa --json --file . --arg config { allowAliases = false; }
Details
@ThomasMader

This comment has been minimized.

Copy link
Contributor

commented Apr 27, 2019

I recognized that you disabled the entire checkPhase for ldc on Darwin.
The error coming from there seems to me to be very serious. I think ldc might have trouble working correctly making it unusable on Darwin.

For dmd the commented make line in the checkPhase should work now again with your changes about the filesystem stuff in the linker and should fix #57120 .

@matthewbauer

This comment has been minimized.

Copy link
Member Author

commented Apr 28, 2019

I recognized that you disabled the entire checkPhase for ldc on Darwin.
The error coming from there seems to me to be very serious. I think ldc might have trouble working correctly making it unusable on Darwin.

For dmd the commented make line in the checkPhase should work now again with your changes about the filesystem stuff in the linker and should fix #57120 .

I was able to compile and run some simple D code, but I can work on getting the tests passing as well

@dtzWill

This comment has been minimized.

Copy link
Contributor

commented on pkgs/development/libraries/qt-5/modules/qtbase.nix in 0fe315c Apr 29, 2019

I haven't encountered a problem with this yet (not nearly this far in the rebuild ;)) but this appears to drop patchelf from the non-Darwin build and it's unclear that was intended...?

This comment has been minimized.

Copy link
Member Author

replied Apr 29, 2019

@dtzWill

This comment has been minimized.

Copy link
Contributor

commented on pkgs/tools/package-management/nix/default.nix in c72c6a4 Apr 29, 2019

This should probably be limited to darwin or perhaps if using an incompatible clang? Same below.

This comment has been minimized.

Copy link
Contributor

replied Apr 29, 2019

(and FWIW latest nix builds w/clang+libcxx{,abi} 7 and 8, not sure if that's true of versions here. But at least the workaround won't be needed for too long :).

This comment has been minimized.

Copy link
Member Author

replied Apr 29, 2019

Yeah that should be conditional on stdenv.cc.isClang

@dtzWill

This comment has been minimized.

Copy link
Contributor

commented on pkgs/tools/archivers/p7zip/default.nix in 724e833 Apr 29, 2019

cc1: error: -Werror=c++11-narrowing: no option -Wc++11-narrowing

Looks like this is clang-only (hopefully all versions we use?), and possibly breaks builds for gcc in all instances added in this commit (as it does for this one).

This comment has been minimized.

Copy link
Member Author

replied Apr 29, 2019

Thanks, that can be fixed easily

@nixos-discourse

This comment has been minimized.

Copy link

commented May 7, 2019

This pull request has been mentioned on Nix community. There might be relevant details there:

https://discourse.nixos.org/t/darwin-macos-10-12-stdenv-updates/2862/1

@LnL7

This comment has been minimized.

Copy link
Member

commented May 7, 2019

@matthewbauer After reading your post I realised that we didn't update MACOSX_DEPLOYMENT_TARGET, not a big deal but perhaps we should?

@matthewbauer

This comment has been minimized.

Copy link
Member Author

commented May 7, 2019

@matthewbauer After reading your post I realised that we didn't update MACOSX_DEPLOYMENT_TARGET, not a big deal but perhaps we should?

Yeah that would be a good idea! Also removing the gl_cv_func_getcwd_abort_bug thing should be possible

@ThomasMader ThomasMader referenced this pull request May 10, 2019

Merged

tilix: 1.9.0 -> 1.9.3 #61222

1 of 10 tasks complete

@ThomasMader ThomasMader referenced this pull request May 12, 2019

Merged

Fix ldc #61354

4 of 10 tasks complete
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.