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

treewide: Remove uses of crossConfig and add strictDeps #40539

Closed

Conversation

Ericson2314
Copy link
Member

@Ericson2314 Ericson2314 commented May 15, 2018

Backport of #40529

I carefully kept the definition of crossConfig in the stdenv adapter, as removing it would be a breaking change.

Motivation for this change

Besides the general idea of back-porting simple cross fixes, strictDeps is needed to make some large Haskell apps build. Yes, this can already be accomplished with crossConfig = true, but that is awful to teach and not really a public interface.

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-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/)
  • Fits CONTRIBUTING.md.

CC @srhb @TravisWhitaker

@Ericson2314 Ericson2314 changed the title treewide: Get rid of all uses of crossConfig treewide: Remove uses of crossConfig and add strictDeps May 15, 2018
@Ericson2314 Ericson2314 requested a review from srhb May 15, 2018 03:11
The hack of using `crossConfig` to enforce stricter handling of
dependencies is replaced with a dedicated `strictDeps` for that purpose.
(Experience has shown that my punning was a terrible idea that made more
difficult and embarrising to teach teach.)

Now that is is clear, a few packages now use `strictDeps`, to fix
various bugs:

 - bintools-wrapper and cc-wrapper
@Ericson2314
Copy link
Member Author

Going to wait for the dust to settle a bit on #40529 first.

@dezgeg
Copy link
Contributor

dezgeg commented May 15, 2018

These sort of hundred line changes are not 18.03 material.

@dezgeg dezgeg closed this May 15, 2018
] ++ (if useSharedLibraries then [ "--no-system-jsoncpp" "--system-libs" ] else [ "--no-system-libs" ]) # FIXME: cleanup
++ optional (useQt4 || withQt5) "--qt-gui"
++ ["--"]
++ optionals (!useNcurses) [ "-DBUILD_CursesDialog=OFF" ];
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This seems to break native building of cmake: https://hydra.nixos.org/build/74265837/nixlog/1 .

Can someone take a look at this? Lots of things dep on cmake! :)

@Ericson2314
Copy link
Member Author

Ericson2314 commented May 16, 2018

@dezgeg So I need to do one of "crossConfig = true;orstrictDeps = true;` to solve issues like #40013, which affect 18.03 too. I rather not tell people to use the thing that will and should be gone in 18.09.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

5 participants