forked from NixOS/nixpkgs
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
This packags the Intel Math Kernel library on x86-64 platforms, which is a dependency for many data science and machine learning packages. Upstream, Intel provides proprietary binary RPMs with a permissive redistribution license. These have been repackaged in both Debian and Anaconda, so we are not the first distribution to redistribute.
- Loading branch information
Showing
3 changed files
with
67 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,55 @@ | ||
{ stdenvNoCC, writeText, fetchurl, rpm, cpio, openmp }: | ||
|
||
stdenvNoCC.mkDerivation rec { | ||
name = "mkl-${version}"; | ||
version = "${date}.${rel}"; | ||
date = "2019.0"; | ||
rel = "117"; | ||
|
||
src = fetchurl { | ||
url = "http://registrationcenter-download.intel.com/akdlm/irc_nas/tec/13575/l_mkl_${version}.tgz"; | ||
sha256 = "1bf7i54iqlf7x7fn8kqwmi06g30sxr6nq3ac0r871i6g0p3y47sf"; | ||
}; | ||
|
||
buildInputs = [ rpm cpio ]; | ||
propagatedBuildInputs = [ openmp ]; | ||
|
||
buildPhase = '' | ||
rpm2cpio rpm/intel-mkl-common-c-${date}-${rel}-${date}-${rel}.noarch.rpm | cpio -idmv | ||
rpm2cpio rpm/intel-mkl-core-rt-${date}-${rel}-${date}-${rel}.x86_64.rpm | cpio -idmv | ||
''; | ||
|
||
installPhase = '' | ||
mkdir -p $out/lib | ||
cp -r opt/intel/compilers_and_libraries_${version}/linux/mkl/include $out/ | ||
cp -r opt/intel/compilers_and_libraries_${version}/linux/mkl/lib/intel64_lin/* $out/lib/ | ||
cp license.txt $out/lib/ | ||
''; | ||
|
||
# Per license agreement, do not modify the binary | ||
dontStrip = true; | ||
dontPatchELF = true; | ||
|
||
# Some mkl calls require openmp, but Intel does not add these to SO_NEEDED and | ||
# instructs users to put openmp on their LD_LIBRARY_PATH. | ||
setupHook = writeText "setup-hook.sh" '' | ||
addOpenmp() { | ||
addToSearchPath LD_LIBRARY_PATH ${openmp}/lib | ||
} | ||
addEnvHooks "$targetOffset" addOpenmp | ||
''; | ||
|
||
meta = with stdenvNoCC.lib; { | ||
description = "Intel Math Kernel Library"; | ||
longDescription = '' | ||
Intel Math Kernel Library (Intel MKL) optimizes code with minimal effort | ||
for future generations of Intel processors. It is compatible with your | ||
choice of compilers, languages, operating systems, and linking and | ||
threading models. | ||
''; | ||
homepage = https://software.intel.com/en-us/mkl; | ||
license = licenses.issl; | ||
platforms = [ "x86_64-linux" ]; | ||
maintainers = [ maintainers.bhipple ]; | ||
}; | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters