Skip to content

Commit 5b4ac0f

Browse files
scipoptsuite: init at 9.2.1 (NixOS#374527)
2 parents b09232d + b014873 commit 5b4ac0f

File tree

7 files changed

+359
-0
lines changed

7 files changed

+359
-0
lines changed

maintainers/maintainer-list.nix

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7851,6 +7851,12 @@
78517851
githubId = 11705326;
78527852
name = "Max Kochurov";
78537853
};
7854+
fettgoenner = {
7855+
email = "[email protected]";
7856+
github = "fettgoenner";
7857+
githubId = 92429150;
7858+
name = "Paul Meinhold";
7859+
};
78547860
ffinkdevs = {
78557861
email = "[email protected]";
78567862
github = "ffinkdevs";
Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
{
2+
lib,
3+
pkgs,
4+
stdenv,
5+
fetchFromGitHub,
6+
cmake,
7+
scipopt-scip,
8+
cliquer,
9+
gsl,
10+
gmp,
11+
bliss,
12+
nauty,
13+
}:
14+
15+
stdenv.mkDerivation rec {
16+
pname = "scipopt-gcg";
17+
version = "371";
18+
19+
# To correlate scipVersion and version, check: https://scipopt.org/#news
20+
scipVersion = "9.2.1";
21+
22+
src = fetchFromGitHub {
23+
owner = "scipopt";
24+
repo = "gcg";
25+
tag = "v${version}";
26+
hash = "sha256-+rD8tGE49Irg9xZTD3Ay87ISSeRI4kbBpCj5ppyENbo=";
27+
};
28+
29+
nativeBuildInputs = [
30+
cmake
31+
];
32+
33+
buildInputs = [
34+
scipopt-scip
35+
cliquer
36+
gsl
37+
gmp
38+
bliss
39+
nauty
40+
];
41+
42+
# Fixing the error
43+
# > CMake Error at CMakeLists.txt:236 (find_package):
44+
# > By not providing "FindNAUTY.cmake" in CMAKE_MODULE_PATH this project has
45+
# > asked CMake to find a package configuration file provided by "NAUTY", but
46+
# > CMake did not find one.
47+
# with this weird workaround of setting SCIPOptSuite_SOURCE_DIR to include the scipopt-scip source
48+
# files via symlinks, so the specific nauty files are found:
49+
preConfigure = ''
50+
mkdir -pv $out/scip
51+
ln -sv ${scipopt-scip.src}/src/ $out/scip/src
52+
cmakeFlagsArray+=(
53+
"-DSCIPOptSuite_SOURCE_DIR=$out"
54+
)
55+
'';
56+
doCheck = true;
57+
meta = {
58+
maintainers = with lib.maintainers; [ fettgoenner ];
59+
changelog = "https://scipopt.org/doc-${scipVersion}/html/RN${lib.versions.major scipVersion}.php";
60+
description = "Branch-and-Price & Column Generation for Everyone";
61+
license = lib.licenses.lgpl3Plus;
62+
homepage = "https://gcg.zib.de";
63+
mainProgram = "gcg";
64+
};
65+
}
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
{
2+
lib,
3+
stdenv,
4+
cmake,
5+
fetchFromGitHub,
6+
boost,
7+
blas,
8+
gmp,
9+
tbb_2021_11,
10+
gfortran,
11+
}:
12+
13+
stdenv.mkDerivation rec {
14+
pname = "scipopt-papilo";
15+
version = "2.4.1";
16+
17+
# To correlate scipVersion and version, check: https://scipopt.org/#news
18+
scipVersion = "9.2.1";
19+
20+
src = fetchFromGitHub {
21+
owner = "scipopt";
22+
repo = "papilo";
23+
tag = "v${version}";
24+
hash = "sha256-oQ9iq5UkFK0ghUx6uxdJIOo5niQjniHegSZptqi2fgE=";
25+
};
26+
27+
nativeBuildInputs = [ cmake ];
28+
29+
buildInputs = [
30+
blas
31+
gmp
32+
gfortran
33+
boost
34+
tbb_2021_11
35+
];
36+
37+
cmakeFlags = [
38+
# Disable automatic download of TBB.
39+
(lib.cmakeBool "TBB_DOWNLOAD" false)
40+
41+
# Explicitly disable SoPlex as a built-in back-end solver to avoid this error:
42+
# > include/boost/multiprecision/mpfr.hpp:22: fatal error: mpfr.h: No such file or directory
43+
# > compilation terminated.
44+
(lib.cmakeBool "SOPLEX" false)
45+
46+
# (lib.cmakeBool "GMP" true)
47+
# (lib.cmakeBool "QUADMATH" true)
48+
# (lib.cmakeBool "TBB" true)
49+
];
50+
doCheck = true;
51+
meta = {
52+
maintainers = with lib.maintainers; [ fettgoenner ];
53+
changelog = "https://scipopt.org/doc-${scipVersion}/html/RN${lib.versions.major scipVersion}.php";
54+
description = "Parallel Presolve for Integer and Linear Optimization";
55+
license = lib.licenses.lgpl3Plus;
56+
homepage = "https://github.com/scipopt/papilo";
57+
mainProgram = "papilo";
58+
};
59+
}
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
{
2+
lib,
3+
stdenv,
4+
fetchzip,
5+
fetchFromGitHub,
6+
cmake,
7+
zlib,
8+
readline,
9+
gmp,
10+
scipopt-soplex,
11+
scipopt-papilo,
12+
scipopt-zimpl,
13+
ipopt,
14+
tbb_2021_11,
15+
boost,
16+
gfortran,
17+
criterion,
18+
mpfr,
19+
}:
20+
21+
stdenv.mkDerivation rec {
22+
pname = "scipopt-scip";
23+
version = "9.2.1";
24+
25+
src = fetchFromGitHub {
26+
owner = "scipopt";
27+
repo = "scip";
28+
tag = "v${lib.replaceStrings [ "." ] [ "" ] version}";
29+
hash = "sha256-xYxbMZYYqFNInlct8Ju0SrksfJlwV9Q+AHjxq7xhfAs=";
30+
};
31+
32+
nativeBuildInputs = [ cmake ];
33+
34+
buildInputs = [
35+
scipopt-soplex
36+
scipopt-papilo
37+
scipopt-zimpl
38+
ipopt
39+
gmp
40+
readline
41+
zlib
42+
tbb_2021_11
43+
boost
44+
gfortran
45+
criterion
46+
mpfr # if not included, throws fatal error: mpfr.h not found
47+
];
48+
49+
cmakeFlags = [ ];
50+
51+
doCheck = true;
52+
53+
meta = {
54+
maintainers = with lib.maintainers; [ fettgoenner ];
55+
changelog = "https://scipopt.org/doc-${version}/html/RN${lib.versions.major version}.php";
56+
description = "Solving Constraint Integer Programs";
57+
license = lib.licenses.asl20;
58+
homepage = "https://github.com/scipopt/scip";
59+
mainProgram = "scip";
60+
};
61+
}
Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
{
2+
lib,
3+
stdenv,
4+
cmake,
5+
gmp,
6+
mpfr,
7+
zlib,
8+
boost,
9+
fetchFromGitHub,
10+
}:
11+
12+
stdenv.mkDerivation (finalAttrs: {
13+
pname = "scipopt-soplex";
14+
version = "713";
15+
16+
# To correlate scipVersion and version, check: https://scipopt.org/#news
17+
scipVersion = "9.2.1";
18+
19+
src = fetchFromGitHub {
20+
owner = "scipopt";
21+
repo = "soplex";
22+
rev = "release-${builtins.replaceStrings [ "." ] [ "" ] finalAttrs.version}";
23+
hash = "sha256-qI7VGPAm3ALzeiD/OgvlZ1w2GzHRYdBajTW5XdIN9pU=";
24+
};
25+
26+
nativeBuildInputs = [ cmake ];
27+
28+
buildInputs = [
29+
boost
30+
gmp
31+
mpfr
32+
zlib
33+
];
34+
35+
strictDeps = true;
36+
37+
doCheck = true;
38+
39+
meta = {
40+
homepage = "https://soplex.zib.de/";
41+
description = "Sequential object-oriented simPlex";
42+
license = with lib.licenses; [ asl20 ];
43+
mainProgram = "soplex";
44+
maintainers = with lib.maintainers; [ david-r-cox ];
45+
changelog = "https://scipopt.org/doc-${finalAttrs.scipVersion}/html/RN${lib.versions.major finalAttrs.scipVersion}.php";
46+
platforms = lib.platforms.unix;
47+
};
48+
})
Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
{
2+
lib,
3+
stdenv,
4+
fetchzip,
5+
cmake,
6+
scipopt-scip,
7+
zlib,
8+
mpi,
9+
}:
10+
11+
stdenv.mkDerivation rec {
12+
pname = "scipopt-ug";
13+
version = "1.0.0-beta6";
14+
15+
# To correlate scipVersion and version, check: https://scipopt.org/#news
16+
scipVersion = "9.2.1";
17+
18+
# Take the SCIPOptSuite source since no other source exists publicly.
19+
src = fetchzip {
20+
url = "https://github.com/scipopt/scip/releases/download/v${
21+
lib.replaceStrings [ "." ] [ "" ] scipVersion
22+
}/scipoptsuite-${scipVersion}.tgz";
23+
sha256 = "sha256-Hi6oDPtJZODTBIuRYE62sUMTJqfmF0flY3cGoWh2IZE=";
24+
};
25+
26+
sourceRoot = "${src.name}/ug";
27+
28+
nativeBuildInputs = [
29+
cmake
30+
];
31+
32+
buildInputs = [
33+
scipopt-scip
34+
mpi
35+
zlib
36+
];
37+
38+
meta = {
39+
maintainers = with lib.maintainers; [ fettgoenner ];
40+
changelog = "https://scipopt.org/doc-${scipVersion}/html/RN${lib.versions.major scipVersion}.php";
41+
description = "Ubiquity Generator framework to parallelize branch-and-bound based solvers";
42+
license = lib.licenses.lgpl3Plus;
43+
homepage = "https://ug.zib.de";
44+
};
45+
}
Lines changed: 75 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,75 @@
1+
{
2+
lib,
3+
stdenv,
4+
fetchFromGitHub,
5+
cmake,
6+
bison,
7+
flex,
8+
gmp,
9+
zlib,
10+
}:
11+
12+
stdenv.mkDerivation rec {
13+
pname = "scipopt-zimpl";
14+
version = "362";
15+
16+
# To correlate scipVersion and version, check: https://scipopt.org/#news
17+
scipVersion = "9.2.1";
18+
19+
src = fetchFromGitHub {
20+
owner = "scipopt";
21+
repo = "zimpl";
22+
tag = "v${version}";
23+
sha256 = "juqAwzqBArsFXmz7L7RQaE78EhQdP5P51wQFlCoo7/o=";
24+
};
25+
26+
postPatch = ''
27+
chmod +x check/check.sh
28+
'';
29+
30+
nativeBuildInputs = [
31+
cmake
32+
bison
33+
flex
34+
];
35+
36+
buildInputs = [
37+
gmp
38+
zlib
39+
];
40+
doCheck = true;
41+
42+
checkPhase = ''
43+
runHook preCheck
44+
pushd ../check
45+
./check.sh ../build/bin/zimpl
46+
popd
47+
runHook postCheck
48+
'';
49+
meta = {
50+
maintainers = with lib.maintainers; [ fettgoenner ];
51+
changelog = "https://scipopt.org/doc-${scipVersion}/html/RN${lib.versions.major scipVersion}.php";
52+
description = "Zuse Institut Mathematical Programming Language";
53+
longDescription = ''
54+
ZIMPL is a little language to translate the mathematical model of a
55+
problem into a linear or (mixed-)integer mathematical program
56+
expressed in .lp or .mps file format which can be read by a LP or MIP
57+
solver.
58+
59+
If you use Zimpl for research and publish results, the best way
60+
to refer to Zimpl is to cite my Ph.d. thesis:
61+
62+
@PHDTHESIS{Koch2004,
63+
author = "Thorsten Koch",
64+
title = "Rapid Mathematical Programming",
65+
year = "2004",
66+
school = "Technische {Universit\"at} Berlin",
67+
url = "http://www.zib.de/Publications/abstracts/ZR-04-58/",
68+
note = "ZIB-Report 04-58",
69+
}
70+
'';
71+
license = lib.licenses.lgpl3Plus;
72+
homepage = "https://zimpl.zib.de";
73+
mainProgram = "zimpl";
74+
};
75+
}

0 commit comments

Comments
 (0)