From d3ecb29a42d2a5e7a2991ede85b64526fc6f1709 Mon Sep 17 00:00:00 2001 From: fettgoenner Date: Thu, 20 Nov 2025 18:36:29 +0100 Subject: [PATCH 01/17] scipopt-soplex: 7.1.5 -> 7.1.6 and fixed changelog --- pkgs/by-name/sc/scipopt-soplex/package.nix | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/sc/scipopt-soplex/package.nix b/pkgs/by-name/sc/scipopt-soplex/package.nix index 3e36f07c2f69..453b77a3d6bd 100644 --- a/pkgs/by-name/sc/scipopt-soplex/package.nix +++ b/pkgs/by-name/sc/scipopt-soplex/package.nix @@ -11,16 +11,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "scipopt-soplex"; - version = "7.1.5"; - - # To correlate scipVersion and version, check: https://scipopt.org/#news - scipVersion = "9.2.4"; + version = "7.1.6"; src = fetchFromGitHub { owner = "scipopt"; repo = "soplex"; rev = "release-${builtins.replaceStrings [ "." ] [ "" ] finalAttrs.version}"; - hash = "sha256-gtz2h5EszE77zYZ8m2UtkYnoquO8GJhAAzsvQW5b+3I="; + hash = "sha256-v2lDtnY3O1nP8RYALqpeO8q4b3bUAKZe4b3QhtnGiGg="; }; nativeBuildInputs = [ cmake ]; @@ -42,7 +39,7 @@ stdenv.mkDerivation (finalAttrs: { license = with lib.licenses; [ asl20 ]; mainProgram = "soplex"; maintainers = with lib.maintainers; [ david-r-cox ]; - changelog = "https://scipopt.org/doc-${finalAttrs.scipVersion}/html/RN${lib.versions.major finalAttrs.scipVersion}.php"; + changelog = "https://soplex.zib.de/doc-${finalAttrs.version}/html/CHANGELOG.php"; platforms = lib.platforms.unix; }; }) From 6a74f07fed0ba9060ad2da4c55f55d987f835f92 Mon Sep 17 00:00:00 2001 From: fettgoenner Date: Fri, 21 Nov 2025 17:39:41 +0100 Subject: [PATCH 02/17] made myself maintainer --- pkgs/by-name/sc/scipopt-soplex/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/sc/scipopt-soplex/package.nix b/pkgs/by-name/sc/scipopt-soplex/package.nix index 453b77a3d6bd..73ec17db904b 100644 --- a/pkgs/by-name/sc/scipopt-soplex/package.nix +++ b/pkgs/by-name/sc/scipopt-soplex/package.nix @@ -38,7 +38,7 @@ stdenv.mkDerivation (finalAttrs: { description = "Sequential object-oriented simPlex"; license = with lib.licenses; [ asl20 ]; mainProgram = "soplex"; - maintainers = with lib.maintainers; [ david-r-cox ]; + maintainers = with lib.maintainers; [ fettgoenner ]; changelog = "https://soplex.zib.de/doc-${finalAttrs.version}/html/CHANGELOG.php"; platforms = lib.platforms.unix; }; From e4b00cffa5cc80249ec00d56375aa5e6e1e8c1b9 Mon Sep 17 00:00:00 2001 From: fettgoenner Date: Fri, 21 Nov 2025 17:58:22 +0100 Subject: [PATCH 03/17] removed scipVersion and changelog --- pkgs/by-name/sc/scipopt-papilo/package.nix | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pkgs/by-name/sc/scipopt-papilo/package.nix b/pkgs/by-name/sc/scipopt-papilo/package.nix index e6e692a1f743..42d7e2948ea1 100644 --- a/pkgs/by-name/sc/scipopt-papilo/package.nix +++ b/pkgs/by-name/sc/scipopt-papilo/package.nix @@ -14,9 +14,6 @@ stdenv.mkDerivation rec { pname = "scipopt-papilo"; version = "2.4.4"; - # To correlate scipVersion and version, check: https://scipopt.org/#news - scipVersion = "9.2.4"; - src = fetchFromGitHub { owner = "scipopt"; repo = "papilo"; @@ -46,7 +43,6 @@ stdenv.mkDerivation rec { doCheck = true; meta = { maintainers = with lib.maintainers; [ fettgoenner ]; - changelog = "https://scipopt.org/doc-${scipVersion}/html/RN${lib.versions.major scipVersion}.php"; description = "Parallel Presolve for Integer and Linear Optimization"; license = lib.licenses.lgpl3Plus; homepage = "https://github.com/scipopt/papilo"; From afddc7266df0ca72211e2296a61a05a72bae8911 Mon Sep 17 00:00:00 2001 From: fettgoenner Date: Fri, 21 Nov 2025 18:01:31 +0100 Subject: [PATCH 04/17] fixed changelog --- pkgs/by-name/sc/scipopt-zimpl/package.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkgs/by-name/sc/scipopt-zimpl/package.nix b/pkgs/by-name/sc/scipopt-zimpl/package.nix index 971dc1b5cf19..cad84ed733e0 100644 --- a/pkgs/by-name/sc/scipopt-zimpl/package.nix +++ b/pkgs/by-name/sc/scipopt-zimpl/package.nix @@ -13,9 +13,6 @@ stdenv.mkDerivation rec { pname = "scipopt-zimpl"; version = "362"; - # To correlate scipVersion and version, check: https://scipopt.org/#news - scipVersion = "9.2.4"; - src = fetchFromGitHub { owner = "scipopt"; repo = "zimpl"; @@ -48,7 +45,7 @@ stdenv.mkDerivation rec { ''; meta = { maintainers = with lib.maintainers; [ fettgoenner ]; - changelog = "https://scipopt.org/doc-${scipVersion}/html/RN${lib.versions.major scipVersion}.php"; + changelog = "https://zimpl.zib.de/download/CHANGELOG.txt"; description = "Zuse Institut Mathematical Programming Language"; longDescription = '' ZIMPL is a little language to translate the mathematical model of a From 19749a305c54cf57a9dafaba7cc9fb33fa30cd30 Mon Sep 17 00:00:00 2001 From: fettgoenner Date: Fri, 21 Nov 2025 18:22:30 +0100 Subject: [PATCH 05/17] fixed changelog --- pkgs/by-name/sc/scipopt-gcg/package.nix | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkgs/by-name/sc/scipopt-gcg/package.nix b/pkgs/by-name/sc/scipopt-gcg/package.nix index 2357476ded2c..faae8574e8a7 100644 --- a/pkgs/by-name/sc/scipopt-gcg/package.nix +++ b/pkgs/by-name/sc/scipopt-gcg/package.nix @@ -15,9 +15,6 @@ stdenv.mkDerivation rec { pname = "scipopt-gcg"; version = "372-unstable-2025-10-11"; - # To correlate scipVersion and version, check: https://scipopt.org/#news - scipVersion = "9.2.4"; - src = fetchFromGitHub { owner = "scipopt"; repo = "gcg"; @@ -61,7 +58,7 @@ stdenv.mkDerivation rec { meta = { maintainers = with lib.maintainers; [ fettgoenner ]; - changelog = "https://scipopt.org/doc-${scipVersion}/html/RN${lib.versions.major scipVersion}.php"; + changelog = "https://gcg.or.rwth-aachen.de/doc-3.5.0/RN${lib.versions.major version}${lib.versions.minor version}.html"; description = "Branch-and-Price & Column Generation for Everyone"; license = lib.licenses.lgpl3Plus; homepage = "https://gcg.zib.de"; From fb45db018795ca4c961eb2caa3ad6181e880b66a Mon Sep 17 00:00:00 2001 From: fettgoenner Date: Wed, 26 Nov 2025 09:50:11 +0100 Subject: [PATCH 06/17] scipopt-zimpl: 362 -> 3.7.0 --- pkgs/by-name/sc/scipopt-zimpl/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/sc/scipopt-zimpl/package.nix b/pkgs/by-name/sc/scipopt-zimpl/package.nix index cad84ed733e0..c6f6d92cb6ca 100644 --- a/pkgs/by-name/sc/scipopt-zimpl/package.nix +++ b/pkgs/by-name/sc/scipopt-zimpl/package.nix @@ -11,13 +11,13 @@ stdenv.mkDerivation rec { pname = "scipopt-zimpl"; - version = "362"; + version = "3.7.0"; src = fetchFromGitHub { owner = "scipopt"; repo = "zimpl"; tag = "v${version}"; - hash = "sha256-juqAwzqBArsFXmz7L7RQaE78EhQdP5P51wQFlCoo7/o="; + hash = "sha256-ataepqBfdA7CgqPhbw+Xy7PC3VZTLcSrF2/xnFyx+YI="; }; postPatch = '' From e51580aed9e85045683844730fb7b5bbbb245fce Mon Sep 17 00:00:00 2001 From: fettgoenner Date: Wed, 26 Nov 2025 10:03:44 +0100 Subject: [PATCH 07/17] scipopt-soplex: 7.1.6 -> 8.0.0 --- pkgs/by-name/sc/scipopt-soplex/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/sc/scipopt-soplex/package.nix b/pkgs/by-name/sc/scipopt-soplex/package.nix index 73ec17db904b..43c949d740bb 100644 --- a/pkgs/by-name/sc/scipopt-soplex/package.nix +++ b/pkgs/by-name/sc/scipopt-soplex/package.nix @@ -11,13 +11,13 @@ stdenv.mkDerivation (finalAttrs: { pname = "scipopt-soplex"; - version = "7.1.6"; + version = "8.0.0"; src = fetchFromGitHub { owner = "scipopt"; repo = "soplex"; - rev = "release-${builtins.replaceStrings [ "." ] [ "" ] finalAttrs.version}"; - hash = "sha256-v2lDtnY3O1nP8RYALqpeO8q4b3bUAKZe4b3QhtnGiGg="; + tag = "v${finalAttrs.version}"; + hash = "sha256-AppJUule+0x23gF/PwjDMsZ194aqK91UTevQgjPZIgc="; }; nativeBuildInputs = [ cmake ]; From bcabab5a610f904eb39e1926304155ecad856044 Mon Sep 17 00:00:00 2001 From: fettgoenner Date: Wed, 26 Nov 2025 10:09:40 +0100 Subject: [PATCH 08/17] scipopt-papilo: 2.4.4 -> 3.0.0 --- pkgs/by-name/sc/scipopt-papilo/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/sc/scipopt-papilo/package.nix b/pkgs/by-name/sc/scipopt-papilo/package.nix index 42d7e2948ea1..e5a9dbc3edd2 100644 --- a/pkgs/by-name/sc/scipopt-papilo/package.nix +++ b/pkgs/by-name/sc/scipopt-papilo/package.nix @@ -12,13 +12,13 @@ stdenv.mkDerivation rec { pname = "scipopt-papilo"; - version = "2.4.4"; + version = "3.0.0"; src = fetchFromGitHub { owner = "scipopt"; repo = "papilo"; tag = "v${version}"; - hash = "sha256-VHOwr3uIhurab1zI9FeecBXZIp1ee2pk8fhVak6H0+A="; + hash = "sha256-oxuXv/xWQiApxrrVdH3aEUOp40Em6kCz/DJXXpCxdzs="; }; nativeBuildInputs = [ cmake ]; From b80f23075dad2c7e90df9716f7ca4c5bc075e255 Mon Sep 17 00:00:00 2001 From: fettgoenner Date: Wed, 26 Nov 2025 10:20:46 +0100 Subject: [PATCH 09/17] scipopt-scip: 9.2.4 -> 10.0.0 --- pkgs/by-name/sc/scipopt-scip/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/sc/scipopt-scip/package.nix b/pkgs/by-name/sc/scipopt-scip/package.nix index 6b07a7fe84b3..5636692d7c82 100644 --- a/pkgs/by-name/sc/scipopt-scip/package.nix +++ b/pkgs/by-name/sc/scipopt-scip/package.nix @@ -19,13 +19,13 @@ stdenv.mkDerivation rec { pname = "scipopt-scip"; - version = "9.2.4"; + version = "10.0.0"; src = fetchFromGitHub { owner = "scipopt"; repo = "scip"; - tag = "v${lib.replaceStrings [ "." ] [ "" ] version}"; - hash = "sha256-nwFRtP63/HPfk9JhcyLKApicgqE9IF+7s5MGGrVJrpM="; + tag = "v${version}"; + hash = "sha256-KW7N2ORspzkaR/gdU//p38BV4GyuhoSIVb6q9RTrCYQ="; }; nativeBuildInputs = [ cmake ]; From 6fe574fcfec78719d6f17f6de81620ff872e7b0b Mon Sep 17 00:00:00 2001 From: fettgoenner Date: Wed, 26 Nov 2025 10:33:13 +0100 Subject: [PATCH 10/17] scipopt-gcg: 372 -> 4.0.0 --- pkgs/by-name/sc/scipopt-gcg/package.nix | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/pkgs/by-name/sc/scipopt-gcg/package.nix b/pkgs/by-name/sc/scipopt-gcg/package.nix index faae8574e8a7..44458717c88a 100644 --- a/pkgs/by-name/sc/scipopt-gcg/package.nix +++ b/pkgs/by-name/sc/scipopt-gcg/package.nix @@ -9,17 +9,18 @@ gmp, bliss, nauty, + mpfr, }: stdenv.mkDerivation rec { pname = "scipopt-gcg"; - version = "372-unstable-2025-10-11"; + version = "4.0.0"; src = fetchFromGitHub { owner = "scipopt"; repo = "gcg"; - rev = "83a2d210a03f920dd941d547da94867deb504882"; - hash = "sha256-wbzknCmwDhJ38gItA3DppJxSJfNK7NeIkxZVRd2kmp0="; + tag = "v${version}"; + hash = "sha256-HMhb35Zkjt3yzYk6X1OfigZjJrLuelrkQyCBs/UpFjc="; }; nativeBuildInputs = [ @@ -33,6 +34,7 @@ stdenv.mkDerivation rec { gmp bliss nauty + mpfr ]; # Fixing the error @@ -51,11 +53,6 @@ stdenv.mkDerivation rec { ''; doCheck = true; - postPatch = '' - substituteInPlace CMakeLists.txt \ - --replace-fail "cmake_minimum_required(VERSION 3.3)" "cmake_minimum_required(VERSION 3.10)" - ''; - meta = { maintainers = with lib.maintainers; [ fettgoenner ]; changelog = "https://gcg.or.rwth-aachen.de/doc-3.5.0/RN${lib.versions.major version}${lib.versions.minor version}.html"; From 043eccbedd904fad6262643d43aa35d452b8f2a0 Mon Sep 17 00:00:00 2001 From: fettgoenner Date: Wed, 26 Nov 2025 10:41:39 +0100 Subject: [PATCH 11/17] scipopt-ug: 1.0.0-beta6 -> 1.0.0 --- pkgs/by-name/sc/scipopt-ug/package.nix | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/pkgs/by-name/sc/scipopt-ug/package.nix b/pkgs/by-name/sc/scipopt-ug/package.nix index 96b9ae0d34de..b1b2cc77fd19 100644 --- a/pkgs/by-name/sc/scipopt-ug/package.nix +++ b/pkgs/by-name/sc/scipopt-ug/package.nix @@ -6,21 +6,21 @@ scipopt-scip, zlib, mpi, + gmp, + mpfr, }: stdenv.mkDerivation rec { pname = "scipopt-ug"; - version = "1.0.0-beta6"; + version = "1.0.0"; # To correlate scipVersion and version, check: https://scipopt.org/#news - scipVersion = "9.2.4"; + scipVersion = "10.0.0"; # Take the SCIPOptSuite source since no other source exists publicly. src = fetchzip { - url = "https://github.com/scipopt/scip/releases/download/v${ - lib.replaceStrings [ "." ] [ "" ] scipVersion - }/scipoptsuite-${scipVersion}.tgz"; - hash = "sha256-ZFgHaC4JL0eFt/do0ucGkarmfL1WdGEecrE1iPBpFh0="; + url = "https://github.com/scipopt/scip/releases/download/v${scipVersion}/scipoptsuite-${scipVersion}.tgz"; + hash = "sha256-Nskb8quLsox7igz1UZCfd+VjR9Q8/oa8dZBYjAdc1EU="; }; sourceRoot = "${src.name}/ug"; @@ -33,6 +33,8 @@ stdenv.mkDerivation rec { scipopt-scip mpi zlib + gmp + mpfr ]; meta = { From 3222db5388459741860b66ae33f8e97d24d7bac0 Mon Sep 17 00:00:00 2001 From: fettgoenner Date: Wed, 26 Nov 2025 11:03:18 +0100 Subject: [PATCH 12/17] scipopt-{scip,gcg,ug}: made mpfr propagated build input for scip --- pkgs/by-name/sc/scipopt-gcg/package.nix | 2 -- pkgs/by-name/sc/scipopt-scip/package.nix | 3 ++- pkgs/by-name/sc/scipopt-ug/package.nix | 2 -- 3 files changed, 2 insertions(+), 5 deletions(-) diff --git a/pkgs/by-name/sc/scipopt-gcg/package.nix b/pkgs/by-name/sc/scipopt-gcg/package.nix index 44458717c88a..f6187a5a5497 100644 --- a/pkgs/by-name/sc/scipopt-gcg/package.nix +++ b/pkgs/by-name/sc/scipopt-gcg/package.nix @@ -9,7 +9,6 @@ gmp, bliss, nauty, - mpfr, }: stdenv.mkDerivation rec { @@ -34,7 +33,6 @@ stdenv.mkDerivation rec { gmp bliss nauty - mpfr ]; # Fixing the error diff --git a/pkgs/by-name/sc/scipopt-scip/package.nix b/pkgs/by-name/sc/scipopt-scip/package.nix index 5636692d7c82..5194305cc1db 100644 --- a/pkgs/by-name/sc/scipopt-scip/package.nix +++ b/pkgs/by-name/sc/scipopt-scip/package.nix @@ -42,9 +42,10 @@ stdenv.mkDerivation rec { boost gfortran criterion - mpfr # if not included, throws fatal error: mpfr.h not found ]; + propagatedBuildInputs = [ mpfr ]; + doCheck = true; meta = { diff --git a/pkgs/by-name/sc/scipopt-ug/package.nix b/pkgs/by-name/sc/scipopt-ug/package.nix index b1b2cc77fd19..61fa4a225bfb 100644 --- a/pkgs/by-name/sc/scipopt-ug/package.nix +++ b/pkgs/by-name/sc/scipopt-ug/package.nix @@ -7,7 +7,6 @@ zlib, mpi, gmp, - mpfr, }: stdenv.mkDerivation rec { @@ -34,7 +33,6 @@ stdenv.mkDerivation rec { mpi zlib gmp - mpfr ]; meta = { From e0c7613a0f8986ca94029a1432eb8a222c140939 Mon Sep 17 00:00:00 2001 From: fettgoenner Date: Fri, 12 Dec 2025 13:18:11 +0100 Subject: [PATCH 13/17] disable scipopt-zimpl on macos by default --- pkgs/by-name/sc/scipopt-scip/package.nix | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/sc/scipopt-scip/package.nix b/pkgs/by-name/sc/scipopt-scip/package.nix index 5194305cc1db..10797f2705d2 100644 --- a/pkgs/by-name/sc/scipopt-scip/package.nix +++ b/pkgs/by-name/sc/scipopt-scip/package.nix @@ -15,6 +15,7 @@ gfortran, criterion, mpfr, + enableZimpl ? (!stdenv.hostPlatform.isDarwin), }: stdenv.mkDerivation rec { @@ -33,7 +34,6 @@ stdenv.mkDerivation rec { buildInputs = [ scipopt-soplex scipopt-papilo - scipopt-zimpl ipopt gmp readline @@ -42,7 +42,9 @@ stdenv.mkDerivation rec { boost gfortran criterion - ]; + ] ++ lib.optional enableZimpl scipopt-zimpl; + + cmakeFlags = lib.optional (!enableZimpl) "-DZIMPL=OFF"; propagatedBuildInputs = [ mpfr ]; From e64706ccb1fc7b299a4a4f9f60f145bc27ce6c1e Mon Sep 17 00:00:00 2001 From: fettgoenner Date: Fri, 12 Dec 2025 14:42:17 +0100 Subject: [PATCH 14/17] treefmt --- pkgs/by-name/sc/scipopt-scip/package.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkgs/by-name/sc/scipopt-scip/package.nix b/pkgs/by-name/sc/scipopt-scip/package.nix index 10797f2705d2..94380ed902da 100644 --- a/pkgs/by-name/sc/scipopt-scip/package.nix +++ b/pkgs/by-name/sc/scipopt-scip/package.nix @@ -42,7 +42,8 @@ stdenv.mkDerivation rec { boost gfortran criterion - ] ++ lib.optional enableZimpl scipopt-zimpl; + ] + ++ lib.optional enableZimpl scipopt-zimpl; cmakeFlags = lib.optional (!enableZimpl) "-DZIMPL=OFF"; From b5a3cc12d8851546a3f84f576cf6a9f782442f6f Mon Sep 17 00:00:00 2001 From: fettgoenner Date: Fri, 12 Dec 2025 18:58:41 +0100 Subject: [PATCH 15/17] mark zimpl as broken for darwin --- pkgs/by-name/sc/scipopt-zimpl/package.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkgs/by-name/sc/scipopt-zimpl/package.nix b/pkgs/by-name/sc/scipopt-zimpl/package.nix index c6f6d92cb6ca..0158254fded4 100644 --- a/pkgs/by-name/sc/scipopt-zimpl/package.nix +++ b/pkgs/by-name/sc/scipopt-zimpl/package.nix @@ -45,6 +45,8 @@ stdenv.mkDerivation rec { ''; meta = { maintainers = with lib.maintainers; [ fettgoenner ]; + platforms = lib.platforms.linux; + broken = stdenv.isDarwin; changelog = "https://zimpl.zib.de/download/CHANGELOG.txt"; description = "Zuse Institut Mathematical Programming Language"; longDescription = '' From f3615ea5db4f0ac1a024479af460b4e223b8a117 Mon Sep 17 00:00:00 2001 From: fettgoenner Date: Mon, 15 Dec 2025 13:06:19 +0100 Subject: [PATCH 16/17] or-tools: fix compatibility with SCIP 10 --- pkgs/by-name/or/or-tools/gscip-scip10.patch | 15 ++++ pkgs/by-name/or/or-tools/package.nix | 15 +++- pkgs/by-name/or/or-tools/scip.patch | 98 +++++++-------------- 3 files changed, 59 insertions(+), 69 deletions(-) create mode 100644 pkgs/by-name/or/or-tools/gscip-scip10.patch diff --git a/pkgs/by-name/or/or-tools/gscip-scip10.patch b/pkgs/by-name/or/or-tools/gscip-scip10.patch new file mode 100644 index 000000000000..529cb39632bb --- /dev/null +++ b/pkgs/by-name/or/or-tools/gscip-scip10.patch @@ -0,0 +1,15 @@ +--- a/ortools/gscip/gscip.cc ++++ b/ortools/gscip/gscip.cc +@@ -48,7 +48,13 @@ + #include "scip/cons_indicator.h" + #include "scip/cons_linear.h" + #include "scip/cons_or.h" ++#if SCIP_VERSION_MAJOR >= 10 ++#include "scip/cons_nonlinear.h" ++#define SCIPcreateConsBasicQuadratic SCIPcreateConsBasicQuadraticNonlinear ++#define SCIPcreateConsQuadratic SCIPcreateConsQuadraticNonlinear ++#else + #include "scip/cons_quadratic.h" ++#endif // SCIP_VERSION_MAJOR >= 10 + #include "scip/cons_sos1.h" + #include "scip/cons_sos2.h" diff --git a/pkgs/by-name/or/or-tools/package.nix b/pkgs/by-name/or/or-tools/package.nix index f5260e0ac88e..e84496913785 100644 --- a/pkgs/by-name/or/or-tools/package.nix +++ b/pkgs/by-name/or/or-tools/package.nix @@ -64,12 +64,13 @@ let scipopt-scip' = scipopt-scip.overrideAttrs (old: { patches = old.patches or [ ] ++ [ # from https://github.com/google/or-tools/commit/77a28070b9c4c83995ac6bbfa9544722ff3342ce#diff-c95174a817e73db366d414af1e329c1856f70e5158ed3994d43da88765ccc98f - ./scip.patch + ./scip.patch # https://github.com/google/or-tools/pull/4932/files#diff-e6b0a69b2e4b97ec922abc459d909483d440a1e0d2868bed263927b106b6efe6 ]; + # message(STATUS "Finding Soplex") # Their patch forgets to find_package() soplex, bring it back. postPatch = (old.postPatch or "") + '' substituteInPlace CMakeLists.txt \ - --replace-fail 'message(STATUS "Finding Soplex...")' 'find_package(SOPLEX CONFIG HINTS ''${SOPLEX_DIR})' + --replace-fail 'message(STATUS "Finding Soplex")' 'find_package(SOPLEX CONFIG HINTS ''${SOPLEX_DIR})' ''; }); @@ -112,6 +113,16 @@ stdenv.mkDerivation (finalAttrs: { includes = [ "ortools/math_opt/solvers/highs_solver_test.cc" ]; hash = "sha256-/dFk/F/3/BwH5IwIwNU4Ua+4sROPXYCjO8R6jpoZpgo="; }) + # Fix compatibility with SCIP 10.0 + # https://github.com/google/or-tools/issues/4912 + (fetchpatch { + url = "https://github.com/google/or-tools/pull/4932.patch"; + includes = [ "ortools/linear_solver/proto_solver/scip_proto_solver.cc" ]; + hash = "sha256-1jw/r3yAjIpq9o8mqAbNorQgmT1E5nt809N+Gb+D9ZI="; + }) + # Compatibility with SCIP 10.0 also needs the following patch adjusted for or-tools 9.14 + # https://github.com/google/or-tools/pull/4932/files#diff-9559febee3c6051bab4def3c102cb78cbf8a57fc2be4058ace32f89436c784a9 + ./gscip-scip10.patch ]; # or-tools normally attempts to build Protobuf for the build platform when diff --git a/pkgs/by-name/or/or-tools/scip.patch b/pkgs/by-name/or/or-tools/scip.patch index 7a92254118b6..dbb153101564 100644 --- a/pkgs/by-name/or/or-tools/scip.patch +++ b/pkgs/by-name/or/or-tools/scip.patch @@ -1,8 +1,8 @@ diff --git a/CMakeLists.txt b/CMakeLists.txt -index 8492dc75..4c12a9bf 100644 +index b3c57799..eeeca4c8 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt -@@ -38,9 +38,11 @@ set(CPACK_PACKAGE_VENDOR "Zuse Institute Berlin") +@@ -52,9 +52,11 @@ set(CPACK_PACKAGE_VENDOR "Zuse Institute Berlin") set(CPACK_PACKAGE_CONTACT "http://scipopt.org") include(CPack) @@ -17,25 +17,12 @@ index 8492dc75..4c12a9bf 100644 if(SCIPOptSuite_BINARY_DIR) set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${SCIPOptSuite_BINARY_DIR}/bin) -@@ -412,22 +414,11 @@ endif() - #search the selected LP solver library +@@ -517,10 +519,10 @@ endif() message(STATUS "Finding Solver \"${LPS}\"") if(LPS STREQUAL "spx") -- message(STATUS "Finding Soplex") -- find_package(SOPLEX CONFIG HINTS ${SOPLEX_DIR}) + message(STATUS "Finding Soplex") +- find_package(SOPLEX REQUIRED CONFIG HINTS ${SOPLEX_DIR}) - if(NOT SOPLEX_FOUND) -- # Utilities to automatically download missing dependencies -- include(cmake/Dependencies.cmake) -- find_or_download_package( -- NAME SOPLEX -- VERSION 7.0.1 -- URL https://github.com/scipopt/soplex/archive/refs/tags/release-701.tar.gz -- URL_HASH SHA256=80cce994dcbe45fd52b60e31a3aeb5d2c60a7ddbaae495e0ce6bf58481675696 -- COMPONENTS soplex) -- find_package(SOPLEX REQUIRED CONFIG HINTS _deps/local) -- endif() -- if(NOT SOPLEX_FOUND) -+ message(STATUS "Finding Soplex...") + if(NOT TARGET libsoplex-pic OR NOT TARGET libsoplex) message(FATAL_ERROR "Requested LP solver SoPlex not found.") endif() @@ -43,64 +30,41 @@ index 8492dc75..4c12a9bf 100644 if (DEFINED SOPLEX_WITH_PAPILO) message(STATUS "SOPLEX links PAPILO") if((NOT SCIP_WITH_PAPILO)) # TODO not sure how to handle AUTOBUILD -@@ -502,9 +493,9 @@ if(SOPLEX_FOUND) +@@ -593,11 +595,11 @@ if(SOPLEX_FOUND) message(STATUS "Finding SOPLEX - found") # SoPlex headers can be directly included include_directories(${SOPLEX_INCLUDE_DIRS}) - set(LPS_LIBRARIES ${SOPLEX_LIBRARIES}) +- set(LPS_PIC_LIBRARIES ${SOPLEX_PIC_LIBRARIES}) + set(LPS_LIBRARIES libsoplex) - if(SHARED) -- set(LPS_PIC_LIBRARIES ${SOPLEX_PIC_LIBRARIES}) -+ set(LPS_PIC_LIBRARIES libsoplex-pic) - else() - set(LPS_PIC_LIBRARIES ${LPS_LIBRARIES}) - endif() -@@ -514,7 +505,7 @@ if(SOPLEX_FOUND) - set(lpi lpi/lpi_spx2.cpp) - endif() ++ set(LPS_PIC_LIBRARIES libsoplex-pic) + set(lpi lpi/lpi_spx.cpp) else() - message(STATUS "Support SOPLEX: OFF") + message(FATAL_ERROR "SOPLEX not found !") endif() if(CLP_FOUND) -diff --git a/scip-config.cmake.in b/scip-config.cmake.in -index 559552f9..682ac40a 100644 ---- a/scip-config.cmake.in -+++ b/scip-config.cmake.in -@@ -1,17 +1,16 @@ - if(NOT TARGET libscip) -- include("${CMAKE_CURRENT_LIST_DIR}/scip-targets.cmake") --endif() -+ include(CMakeFindDependencyMacro) -+ if(@ZIMPL_NEEDED@) -+ find_dependency(ZIMPL REQUIRED NO_MODULE) -+ endif() -+ if(@SOPLEX_NEEDED@) -+ find_dependency(SOPLEX REQUIRED NO_MODULE) -+ endif() - --if(@ZIMPL_NEEDED@) -- set(ZIMPL_DIR "@CONF_ZIMPL_DIR@") -- find_package(ZIMPL QUIET CONFIG) --endif() -- --if(@SOPLEX_NEEDED@) -- set(SOPLEX_DIR "@CONF_SOPLEX_DIR@") -- find_package(SOPLEX QUIET CONFIG) -+ include("${CMAKE_CURRENT_LIST_DIR}/scip-targets.cmake") - endif() - -+# Legacy - set(SCIP_LIBRARIES libscip) - set(SCIP_INCLUDE_DIRS "@CONF_INCLUDE_DIRS@") - set(SCIP_FOUND TRUE) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt -index e6fda2d5..2d04b845 100644 +index c6ce7283..6b6b1fc8 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt -@@ -1149,17 +1149,8 @@ install(TARGETS scip libscip EXPORT scip-targets - INCLUDES DESTINATION ${CMAKE_INSTALL_INCLUDEDIR}) +@@ -1213,6 +1213,13 @@ target_link_libraries(scip + add_dependencies(libscip scip_update_githash) + add_dependencies(scip scip_update_githash) + ++if(APPLE) ++ set_target_properties(libscip PROPERTIES ++ INSTALL_RPATH "@loader_path") ++elseif(UNIX) ++ set_target_properties(libscip PROPERTIES ++ INSTALL_RPATH "$ORIGIN") ++endif() + set_target_properties(libscip PROPERTIES + VERSION ${SCIP_VERSION_MAJOR}.${SCIP_VERSION_MINOR}.${SCIP_VERSION_PATCH} + SOVERSION ${SCIP_VERSION_MAJOR}.${SCIP_VERSION_MINOR} +@@ -1265,17 +1272,8 @@ install(FILES ${PROJECT_SOURCE_DIR}/LICENSE DESTINATION ${CMAKE_INSTALL_DATADIR} + install(FILES ${PROJECT_SOURCE_DIR}/src/tclique/LICENSE DESTINATION ${CMAKE_INSTALL_DATADIR}/licenses/scip/tclique) # Add all targets to the build-tree export set -export(TARGETS scip libscip @@ -117,11 +81,11 @@ index e6fda2d5..2d04b845 100644 +#export(TARGETS scip libscip +# FILE "${PROJECT_BINARY_DIR}/scip-targets.cmake") - # configure the config file for the build tree - set(CONF_INCLUDE_DIRS "${PROJECT_SOURCE_DIR}/src" "${PROJECT_BINARY_DIR}") -@@ -1175,18 +1166,16 @@ ${PROJECT_BINARY_DIR}/scip-config-version.cmake - - #configure the config file for the install + # Configure scip-config.cmake for the build-tree: + # We add the CMake module path from the sources. +@@ -1295,18 +1293,16 @@ ${PROJECT_BINARY_DIR}/scip-config-version.cmake + # We add the current directory of the installed scip-config.cmake as a CMake module path. + set(EXTRA_CMAKE_MODULE_PATH "\${CMAKE_CURRENT_LIST_DIR}") set(CONF_INCLUDE_DIRS "\${CMAKE_CURRENT_LIST_DIR}/../../../include") -if(SOPLEX_NEEDED) - set(CONF_SOPLEX_DIR "\${CMAKE_CURRENT_LIST_DIR}/../soplex") From 565f11e0dbf0b70e237bc8c0e0b00612e4eb0b0e Mon Sep 17 00:00:00 2001 From: fettgoenner Date: Mon, 15 Dec 2025 14:50:08 +0100 Subject: [PATCH 17/17] or-tools: updated comments on patches --- pkgs/by-name/or/or-tools/package.nix | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/or/or-tools/package.nix b/pkgs/by-name/or/or-tools/package.nix index e84496913785..254ea0faadc4 100644 --- a/pkgs/by-name/or/or-tools/package.nix +++ b/pkgs/by-name/or/or-tools/package.nix @@ -64,9 +64,9 @@ let scipopt-scip' = scipopt-scip.overrideAttrs (old: { patches = old.patches or [ ] ++ [ # from https://github.com/google/or-tools/commit/77a28070b9c4c83995ac6bbfa9544722ff3342ce#diff-c95174a817e73db366d414af1e329c1856f70e5158ed3994d43da88765ccc98f - ./scip.patch # https://github.com/google/or-tools/pull/4932/files#diff-e6b0a69b2e4b97ec922abc459d909483d440a1e0d2868bed263927b106b6efe6 + # and updated with https://github.com/google/or-tools/pull/4932/files#diff-e6b0a69b2e4b97ec922abc459d909483d440a1e0d2868bed263927b106b6efe6 + ./scip.patch ]; - # message(STATUS "Finding Soplex") # Their patch forgets to find_package() soplex, bring it back. postPatch = (old.postPatch or "") + '' substituteInPlace CMakeLists.txt \