-
-
Notifications
You must be signed in to change notification settings - Fork 14.2k
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
Conversation
@@ -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. |
There was a problem hiding this comment.
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!
There was a problem hiding this comment.
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.
There was a problem hiding this comment.
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?
There was a problem hiding this comment.
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.
Result of 5 packages built:- clmagma - mkl - python27Packages.mkl-service - python37Packages.mkl-service - python38Packages.mkl-service |
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.
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
sandbox
innix.conf
on non-NixOS linux)nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
./result/bin/
)nix path-info -S
before and after)