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

mkl: fix expectation of MKLROOT being set in pkg-config files #87789

Merged
merged 1 commit into from
May 14, 2020

Conversation

danieldk
Copy link
Contributor

Motivation for this change

The Intel MKL pkg-config files did not work, because they expect that
the MKLROOT environment variable is set. This change replaces
occurences by the actual path of MKL in the Nix store.

Since the pkg-config files seem to break quite frequently after
upgrades, add a post-install check to validate the pkg-config files.

Things done
  • Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
  • 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 nixpkgs-review --run "nixpkgs-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)
  • Ensured that relevant documentation is up to date
  • Fits CONTRIBUTING.md.

pkgs/development/libraries/science/math/mkl/default.nix Outdated Show resolved Hide resolved
@@ -139,6 +151,11 @@ in stdenvNoCC.mkDerivation {
install_name_tool -change @rpath/libtbbmalloc.dylib $out/lib/libtbbmalloc.dylib $out/lib/libtbbmalloc_proxy.dylib
'';

# Validate pkgconfig files, since they break often on updates.
Copy link
Contributor

Choose a reason for hiding this comment

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

It might be nice to do this as a generic stdenv hook fix (opt-in). pcfiles seem to break often, e.g. just in the last couple weeks:
#85254

That said, this is already a nice improvement!

Copy link
Contributor Author

Choose a reason for hiding this comment

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

That's a great idea! I already looked whether there is such a hook before submitting this PR. I'll give it a try tomorrow or coming weekend.

Copy link
Contributor

Choose a reason for hiding this comment

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

Sounds good; in the meantime this is already a material improvement, so I'm going to merge this and we can do the larger fix in a follow up. Can you send a 20.03 backport PR, too?

Copy link
Contributor Author

@danieldk danieldk May 14, 2020

Choose a reason for hiding this comment

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

Thanks! Will do!

The Intel MKL pkg-config files did not work, because they expect that
the MKLROOT environment variable is set. This change replaces
occurences by the actual path of MKL in the Nix store.

Since the pkg-config files seem to break quite frequently after
upgrades, add a post-install check to validate the pkg-config files.
@bhipple
Copy link
Contributor

bhipple commented May 14, 2020

Result of nixpkgs-review pr 87789 1

5 packages built:
- clmagma
- mkl
- python27Packages.mkl-service
- python37Packages.mkl-service
- python38Packages.mkl-service

@bhipple bhipple merged commit 6a61ce5 into NixOS:master May 14, 2020
@danieldk danieldk mentioned this pull request May 15, 2020
10 tasks
danieldk added a commit to danieldk/nixpkgs that referenced this pull request May 31, 2020
This adds the `validatePkgConfig` hook, which can be used to validate
pkg-config files in the output(s). Currently, this will just run
`pkg-config --validate` on all `.pc` files, capturing errors such as
the issue that was fixed in NixOS#87789.

The hook could be extended in the future with more fine-grained
checks.
@danieldk danieldk deleted the mkl-pkgconfig branch July 6, 2020 17:03
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.

2 participants