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
Member

danieldk commented May 14, 2020

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.
@ofborg ofborg bot requested a review from bhipple May 14, 2020
@danieldk danieldk force-pushed the danieldk:mkl-pkgconfig branch from 2b16ac4 to cdbeb9d May 14, 2020
@@ -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.

This comment has been minimized.

Copy link
@bhipple

bhipple May 14, 2020

Contributor

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!

This comment has been minimized.

Copy link
@danieldk

danieldk May 14, 2020

Author Member

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.

This comment has been minimized.

Copy link
@bhipple

bhipple May 14, 2020

Contributor

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?

This comment has been minimized.

Copy link
@danieldk

danieldk May 14, 2020

Author Member

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.
@danieldk danieldk force-pushed the danieldk:mkl-pkgconfig branch from cdbeb9d to e88673a May 14, 2020
@ofborg ofborg bot requested a review from bhipple May 14, 2020
@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
16 checks passed
16 checks passed
mkl, mkl.passthru.tests on aarch64-linux No attempt
Details
mkl, mkl.passthru.tests on x86_64-linux No attempt
Details
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="e88673a"; rev="e88673aa27dea719295bcb6ec1ae6a67eca3d683"; } ./pkgs/t
Details
grahamcofborg-eval-lib-tests nix-build --arg pkgs import ./. {} ./lib/tests/release.nix
Details
grahamcofborg-eval-nixos nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="e88673a"; rev="e88673aa27dea719295bcb6ec1ae6a67eca3d683"; } ./nixos/
Details
grahamcofborg-eval-nixos-manual nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="e88673a"; rev="e88673aa27dea719295bcb6ec1ae6a67eca3d683"; } ./nixos/
Details
grahamcofborg-eval-nixos-options nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="e88673a"; rev="e88673aa27dea719295bcb6ec1ae6a67eca3d683"; } ./nixos/
Details
grahamcofborg-eval-nixpkgs-manual nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="e88673a"; rev="e88673aa27dea719295bcb6ec1ae6a67eca3d683"; } ./pkgs/t
Details
grahamcofborg-eval-nixpkgs-tarball nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="e88673a"; rev="e88673aa27dea719295bcb6ec1ae6a67eca3d683"; } ./pkgs/t
Details
grahamcofborg-eval-nixpkgs-unstable-jobset nix-instantiate --arg nixpkgs { outPath=./.; revCount=999999; shortRev="e88673a"; rev="e88673aa27dea719295bcb6ec1ae6a67eca3d683"; } ./pkgs/t
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
danieldk added a commit to danieldk/nixpkgs that referenced this pull request May 15, 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 added a commit to danieldk/nixpkgs that referenced this pull request May 15, 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 added a commit to danieldk/nixpkgs that referenced this pull request May 15, 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 mentioned this pull request May 15, 2020
3 of 10 tasks complete
danieldk added a commit to danieldk/nixpkgs that referenced this pull request May 15, 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 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.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Linked issues

Successfully merging this pull request may close these issues.

None yet

2 participants
You can’t perform that action at this time.