Merge remote-tracking branch 'upstream/master' into staging

This commit is contained in:
John Ericson
2018-09-18 16:55:42 -04:00
850 changed files with 49899 additions and 16989 deletions

View File

@@ -0,0 +1,30 @@
{ stdenv
, fetchurl
}:
stdenv.mkDerivation rec {
version = "5.6.0";
name = "papi-${version}";
src = fetchurl {
url = "https://bitbucket.org/icl/papi/get/papi-5-6-0-t.tar.gz";
sha256 = "13mngf9kl0y2wfxqvkad0smdaag7k8fvw82b4312gx62nwhc1i6r";
};
buildInputs = [ stdenv ];
preConfigure = ''
cd src
'';
doCheck = true;
checkTarget = "test";
meta = with stdenv.lib; {
homepage = https://icl.utk.edu/papi/;
description = "PAPI provides the tool designer and application engineer with a consistent interface and methodology for use of the performance counter hardware found in most major microprocessors";
license = licenses.bsdOriginal;
platforms = platforms.linux;
maintainers = [ maintainers.costrouc ];
};
}

View File

@@ -110,6 +110,7 @@ stdenv.mkDerivation {
homepage = http://math-atlas.sourceforge.net/;
description = "Automatically Tuned Linear Algebra Software (ATLAS)";
license = stdenv.lib.licenses.bsd3;
broken = stdenv.isDarwin; # test when updating to >=3.10.3
platforms = stdenv.lib.platforms.unix;
longDescription = ''

View File

@@ -0,0 +1,33 @@
{ stdenv
, fetchurl
, cmake
, mpi
}:
stdenv.mkDerivation rec {
name = "parmetis-${version}";
version = "4.0.3";
src = fetchurl {
url = "http://glaros.dtc.umn.edu/gkhome/fetch/sw/parmetis/parmetis-${version}.tar.gz";
sha256 = "0pvfpvb36djvqlcc3lq7si0c5xpb2cqndjg8wvzg35ygnwqs5ngj";
};
buildInputs = [ cmake mpi ];
# metis and GKlib are packaged with distribution
# AUR https://aur.archlinux.org/packages/parmetis/ has reported that
# it easier to build with the included packages as opposed to using the metis
# package. Compilation time is short.
configurePhase = ''
make config metis_path=$PWD/metis gklib_path=$PWD/metis/GKlib prefix=$out
'';
meta = with stdenv.lib; {
description = "ParMETIS is an MPI-based parallel library that implements a variety of algorithms for partitioning unstructured graphs, meshes, and for computing fill-reducing orderings of sparse matrices";
homepage = http://glaros.dtc.umn.edu/gkhome/metis/parmetis/overview;
platforms = platforms.all;
license = licenses.unfree;
maintainers = [ maintainers.costrouc ];
};
}

View File

@@ -0,0 +1,29 @@
{ stdenv
, fetchurl
, gfortran
, cmake
, blas
, liblapack
, mpi
}:
stdenv.mkDerivation rec {
name = "scalapack-${version}";
version = "2.0.2";
src = fetchurl {
url = "http://www.netlib.org/scalapack/scalapack-${version}.tgz";
sha256 = "0p1r61ss1fq0bs8ynnx7xq4wwsdvs32ljvwjnx6yxr8gd6pawx0c";
};
buildInputs = [ cmake mpi liblapack blas gfortran ];
meta = with stdenv.lib; {
homepage = http://www.netlib.org/scalapack/;
description = "Library of high-performance linear algebra routines for parallel distributed memory machines";
license = licenses.bsdOriginal;
platforms = platforms.all;
maintainers = [ maintainers.costrouc ];
};
}

View File

@@ -1,4 +1,4 @@
{ stdenv, fetchFromGitHub, blas, liblapack, gfortran }:
{ stdenv, fetchFromGitHub, blas, liblapack, gfortran, fixDarwinDylibNames }:
stdenv.mkDerivation rec {
name = "scs-${version}";
@@ -11,24 +11,30 @@ stdenv.mkDerivation rec {
sha256 = "17lbcmcsniqlyzgbzmjipfd0rrk25a8hzh7l5wl2wp1iwsd8c3a9";
};
buildInputs = [ blas liblapack gfortran.cc.lib ];
# Actually link and add libgfortran to the rpath
patchPhase = ''
sed -i 's/#-lgfortran/-lgfortran/' scs.mk
postPatch = ''
substituteInPlace scs.mk \
--replace "#-lgfortran" "-lgfortran" \
--replace "gcc" "cc"
'';
nativeBuildInputs = stdenv.lib.optional stdenv.isDarwin fixDarwinDylibNames;
buildInputs = [ blas liblapack gfortran.cc.lib ];
doCheck = true;
# Test demo requires passing any int as $1; 42 chosen arbitrarily
checkPhase = ''
./out/demo_socp_indirect 42
# Test demo requires passing data and seed; numbers chosen arbitrarily.
postCheck = ''
./out/demo_socp_indirect 42 0.42 0.42 42
'';
installPhase = ''
runHook preInstall
mkdir -p $out/lib
cp -r include $out/
cp out/*.a out/*.so $out/lib/
cp out/*.a out/*.so out/*.dylib $out/lib/
runHook postInstall
'';
meta = with stdenv.lib; {