From 6c94a68c58c844bc90cf6b4a392fc0604933d7d8 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Wed, 5 Mar 2025 15:35:58 +0100 Subject: [PATCH 1/3] or-tools: move to by-name --- ...1-Do-not-try-to-copy-pybind11_abseil-status-extension-.patch | 0 .../or-tools/default.nix => by-name/or/or-tools/package.nix} | 0 pkgs/top-level/all-packages.nix | 2 +- 3 files changed, 1 insertion(+), 1 deletion(-) rename pkgs/{development/libraries/science/math => by-name/or}/or-tools/0001-Do-not-try-to-copy-pybind11_abseil-status-extension-.patch (100%) rename pkgs/{development/libraries/science/math/or-tools/default.nix => by-name/or/or-tools/package.nix} (100%) diff --git a/pkgs/development/libraries/science/math/or-tools/0001-Do-not-try-to-copy-pybind11_abseil-status-extension-.patch b/pkgs/by-name/or/or-tools/0001-Do-not-try-to-copy-pybind11_abseil-status-extension-.patch similarity index 100% rename from pkgs/development/libraries/science/math/or-tools/0001-Do-not-try-to-copy-pybind11_abseil-status-extension-.patch rename to pkgs/by-name/or/or-tools/0001-Do-not-try-to-copy-pybind11_abseil-status-extension-.patch diff --git a/pkgs/development/libraries/science/math/or-tools/default.nix b/pkgs/by-name/or/or-tools/package.nix similarity index 100% rename from pkgs/development/libraries/science/math/or-tools/default.nix rename to pkgs/by-name/or/or-tools/package.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 99c189b702a0..11f192274081 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -18155,7 +18155,7 @@ with pkgs; nodejs = nodejs_20; }; - or-tools = callPackage ../development/libraries/science/math/or-tools { + or-tools = callPackage ../by-name/or/or-tools/package.nix { inherit (darwin) DarwinTools; python = python3; protobuf = protobuf_29.override { From 68ae051ca534be9b89353f9f0e0b09ac58a30fa6 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Wed, 5 Mar 2025 15:53:28 +0100 Subject: [PATCH 2/3] or-tools: cleanup --- pkgs/by-name/or/or-tools/package.nix | 81 ++++++++++++++-------------- pkgs/top-level/all-packages.nix | 2 - pkgs/top-level/python-packages.nix | 2 +- 3 files changed, 42 insertions(+), 43 deletions(-) diff --git a/pkgs/by-name/or/or-tools/package.nix b/pkgs/by-name/or/or-tools/package.nix index 4457003bbadf..2443016c304c 100644 --- a/pkgs/by-name/or/or-tools/package.nix +++ b/pkgs/by-name/or/or-tools/package.nix @@ -3,7 +3,6 @@ bzip2, cbc, cmake, - DarwinTools, # sw_vers eigen, ensureNewerSourcesForZipFilesHook, fetchFromGitHub, @@ -13,7 +12,7 @@ lib, pkg-config, protobuf, - python, + python3, re2, stdenv, swig, @@ -21,14 +20,14 @@ zlib, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "or-tools"; version = "9.12"; src = fetchFromGitHub { owner = "google"; repo = "or-tools"; - tag = "v${version}"; + tag = "v${finalAttrs.version}"; hash = "sha256-5rFeAK51+BfjIyu/5f5ptaKMD7Hd20yHa2Vj3O3PkLU="; }; @@ -62,18 +61,22 @@ stdenv.mkDerivation rec { sed -i -e "/protobuf/ { s/.*,/'protobuf >= 5.26',/ }" ortools/python/setup.py.in ''; - cmakeFlags = [ - "-DBUILD_DEPS=OFF" - "-DBUILD_PYTHON=ON" - "-DBUILD_pybind11=OFF" - "-DCMAKE_INSTALL_BINDIR=bin" - "-DCMAKE_INSTALL_INCLUDEDIR=include" - "-DCMAKE_INSTALL_LIBDIR=lib" - "-DFETCH_PYTHON_DEPS=OFF" - "-DUSE_GLPK=ON" - "-DUSE_SCIP=OFF" - "-DPython3_EXECUTABLE=${python.pythonOnBuildForHost.interpreter}" - ] ++ lib.optionals stdenv.hostPlatform.isDarwin [ "-DCMAKE_MACOSX_RPATH=OFF" ]; + cmakeFlags = + [ + (lib.cmakeBool "BUILD_DEPS" false) + (lib.cmakeBool "BUILD_PYTHON" true) + (lib.cmakeBool "BUILD_pybind11" false) + (lib.cmakeFeature "CMAKE_INSTALL_BINDIR" "bin") + (lib.cmakeFeature "CMAKE_INSTALL_INCLUDEDIR" "include") + (lib.cmakeFeature "CMAKE_INSTALL_LIBDIR" "lib") + (lib.cmakeBool "FETCH_PYTHON_DEPS" false) + (lib.cmakeBool "USE_GLPK" true) + (lib.cmakeBool "USE_SCIP" false) + (lib.cmakeFeature "Python3_EXECUTABLE" "${python3.pythonOnBuildForHost.interpreter}") + ] + ++ lib.optionals stdenv.hostPlatform.isDarwin [ + (lib.cmakeBool "CMAKE_MACOSX_RPATH" false) + ]; strictDeps = true; @@ -82,14 +85,11 @@ stdenv.mkDerivation rec { cmake ensureNewerSourcesForZipFilesHook pkg-config - python.pythonOnBuildForHost + python3.pythonOnBuildForHost swig unzip ] - ++ lib.optionals stdenv.hostPlatform.isDarwin [ - DarwinTools - ] - ++ (with python.pythonOnBuildForHost.pkgs; [ + ++ (with python3.pythonOnBuildForHost.pkgs; [ pip mypy-protobuf mypy @@ -100,14 +100,15 @@ stdenv.mkDerivation rec { cbc eigen glpk - python.pkgs.absl-py - python.pkgs.pybind11 - python.pkgs.pybind11-abseil - python.pkgs.pybind11-protobuf - python.pkgs.pytest - python.pkgs.scipy - python.pkgs.setuptools - python.pkgs.wheel + highs + python3.pkgs.absl-py + python3.pkgs.pybind11 + python3.pkgs.pybind11-abseil + python3.pkgs.pybind11-protobuf + python3.pkgs.pytest + python3.pkgs.scipy + python3.pkgs.setuptools + python3.pkgs.wheel re2 zlib ]; @@ -115,14 +116,14 @@ stdenv.mkDerivation rec { abseil-cpp highs protobuf - (python.pkgs.protobuf.override { protobuf = protobuf; }) - python.pkgs.numpy - python.pkgs.pandas - python.pkgs.immutabledict + (python3.pkgs.protobuf.override { protobuf = protobuf; }) + python3.pkgs.immutabledict + python3.pkgs.numpy + python3.pkgs.pandas ]; nativeCheckInputs = [ - python.pkgs.matplotlib - python.pkgs.virtualenv + python3.pkgs.matplotlib + python3.pkgs.virtualenv ]; # some tests fail on linux and hang on darwin @@ -147,14 +148,14 @@ stdenv.mkDerivation rec { "python" ]; - meta = with lib; { + meta = { homepage = "https://github.com/google/or-tools"; - license = licenses.asl20; + license = lib.licenses.asl20; description = '' Google's software suite for combinatorial optimization. ''; mainProgram = "fzn-cp-sat"; - maintainers = with maintainers; [ andersk ]; - platforms = with platforms; linux ++ darwin; + maintainers = with lib.maintainers; [ andersk ]; + platforms = with lib.platforms; linux ++ darwin; }; -} +}) diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 11f192274081..600fb95c219e 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -18156,8 +18156,6 @@ with pkgs; }; or-tools = callPackage ../by-name/or/or-tools/package.nix { - inherit (darwin) DarwinTools; - python = python3; protobuf = protobuf_29.override { abseil-cpp = abseil-cpp_202407; }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 9bd03dc24f39..6f373e1d71d5 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -10441,7 +10441,7 @@ self: super: with self; { ormsgpack = callPackage ../development/python-modules/ormsgpack { }; - ortools = (toPythonModule (pkgs.or-tools.override { inherit (self) python; })).python; + ortools = (toPythonModule (pkgs.or-tools.override { python3 = self.python; })).python; orvibo = callPackage ../development/python-modules/orvibo { }; From 05304f5bbb9d629836d284e22ff386438a86970f Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Thu, 10 Apr 2025 13:55:47 +0200 Subject: [PATCH 3/3] or-tools: unpin protobuf and abseil --- pkgs/by-name/or/or-tools/package.nix | 2 +- pkgs/top-level/all-packages.nix | 7 ------- 2 files changed, 1 insertion(+), 8 deletions(-) diff --git a/pkgs/by-name/or/or-tools/package.nix b/pkgs/by-name/or/or-tools/package.nix index 2443016c304c..7e01246887bd 100644 --- a/pkgs/by-name/or/or-tools/package.nix +++ b/pkgs/by-name/or/or-tools/package.nix @@ -116,7 +116,7 @@ stdenv.mkDerivation (finalAttrs: { abseil-cpp highs protobuf - (python3.pkgs.protobuf.override { protobuf = protobuf; }) + python3.pkgs.protobuf python3.pkgs.immutabledict python3.pkgs.numpy python3.pkgs.pandas diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 600fb95c219e..92a60a68aa97 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -18155,13 +18155,6 @@ with pkgs; nodejs = nodejs_20; }; - or-tools = callPackage ../by-name/or/or-tools/package.nix { - protobuf = protobuf_29.override { - abseil-cpp = abseil-cpp_202407; - }; - abseil-cpp = abseil-cpp_202407; - }; - p4est-sc = callPackage ../development/libraries/science/math/p4est-sc { p4est-sc-debugEnable = false; };