From 293b5d5ad6bf78d55258aeb4086b90812f1f4ad5 Mon Sep 17 00:00:00 2001 From: Emily Date: Tue, 16 Sep 2025 04:42:24 +0100 Subject: [PATCH 1/8] coordgenlibs: fix build with CMake 4 Co-authored-by: K900 --- pkgs/by-name/co/coordgenlibs/package.nix | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/co/coordgenlibs/package.nix b/pkgs/by-name/co/coordgenlibs/package.nix index a02ce722480f..da3a3e554856 100644 --- a/pkgs/by-name/co/coordgenlibs/package.nix +++ b/pkgs/by-name/co/coordgenlibs/package.nix @@ -26,9 +26,15 @@ stdenv.mkDerivation (finalAttrs: { maeparser ]; - env = lib.optionalAttrs stdenv.cc.isClang { - NIX_CFLAGS_COMPILE = "-Wno-unused-but-set-variable"; - }; + # Fix the build with CMake 4. + # + # See: + postPatch = '' + substituteInPlace CMakeLists.txt \ + --replace-fail \ + 'cmake_minimum_required(VERSION 3.2)' \ + 'cmake_minimum_required(VERSION 3.5)' + ''; doCheck = true; From bedad1edf43ad10ca159bf78c2e792a80a174bf0 Mon Sep 17 00:00:00 2001 From: Emily Date: Wed, 17 Sep 2025 19:44:49 +0100 Subject: [PATCH 2/8] coordgenlibs: fix build with LLVM 21 --- pkgs/by-name/co/coordgenlibs/package.nix | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/pkgs/by-name/co/coordgenlibs/package.nix b/pkgs/by-name/co/coordgenlibs/package.nix index da3a3e554856..6df3495102ea 100644 --- a/pkgs/by-name/co/coordgenlibs/package.nix +++ b/pkgs/by-name/co/coordgenlibs/package.nix @@ -1,5 +1,6 @@ { fetchFromGitHub, + fetchpatch, lib, stdenv, boost, @@ -19,6 +20,14 @@ stdenv.mkDerivation (finalAttrs: { hash = "sha256-casFPNbPv9mkKpzfBENW7INClypuCO1L7clLGBXvSvI="; }; + patches = [ + (fetchpatch { + name = "coordgenlibs-fix-unused-but-set-variable.patch"; + url = "https://github.com/schrodinger/coordgenlibs/commit/6a1485643feb71c6d609d263f28751004c733cf7.patch"; + hash = "sha256-x34v+XumVip43LYb4bEkdqPFcTRTeC/zsRuQjnrh2zw="; + }) + ]; + nativeBuildInputs = [ cmake ]; buildInputs = [ boost @@ -38,6 +47,9 @@ stdenv.mkDerivation (finalAttrs: { doCheck = true; + # Fix the build with Clang 20. + env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-error=deprecated-literal-operator"; + meta = with lib; { description = "Schrodinger-developed 2D Coordinate Generation"; homepage = "https://github.com/schrodinger/coordgenlibs"; From 451dc1d57198afec1e454485a9f20474cdc4fa24 Mon Sep 17 00:00:00 2001 From: Emily Date: Wed, 17 Sep 2025 19:38:49 +0100 Subject: [PATCH 3/8] openbabel2: drop --- pkgs/development/libraries/openbabel/2.nix | 62 ---------------------- pkgs/top-level/aliases.nix | 1 + pkgs/top-level/all-packages.nix | 2 - 3 files changed, 1 insertion(+), 64 deletions(-) delete mode 100644 pkgs/development/libraries/openbabel/2.nix diff --git a/pkgs/development/libraries/openbabel/2.nix b/pkgs/development/libraries/openbabel/2.nix deleted file mode 100644 index 90b27abf02d6..000000000000 --- a/pkgs/development/libraries/openbabel/2.nix +++ /dev/null @@ -1,62 +0,0 @@ -{ - stdenv, - lib, - fetchFromGitHub, - fetchpatch, - cmake, - zlib, - libxml2, - eigen, - python3, - cairo, - pcre, - pkg-config, -}: - -stdenv.mkDerivation rec { - pname = "openbabel"; - version = "2.4.1"; - - src = fetchFromGitHub { - owner = "openbabel"; - repo = "openbabel"; - rev = "openbabel-${lib.replaceStrings [ "." ] [ "-" ] version}"; - sha256 = "sha256-+pXsWMzex7rB1mm6dnTHzAcyw9jImgx1OZuLeCvbeJ0="; - }; - - patches = [ - # ARM / AArch64 fixes. - (fetchpatch { - url = "https://github.com/openbabel/openbabel/commit/ee11c98a655296550710db1207b294f00e168216.patch"; - sha256 = "0wjqjrkr4pfirzzicdvlyr591vppydk572ix28jd2sagnfnf566g"; - }) - ]; - - postPatch = '' - sed '1i#include ' -i include/openbabel/obutil.h # gcc12 - ''; - - buildInputs = [ - zlib - libxml2 - eigen - python3 - cairo - pcre - ]; - - cmakeFlags = [ "-DCMAKE_CXX_STANDARD=14" ]; - - nativeBuildInputs = [ - cmake - pkg-config - ]; - - meta = with lib; { - description = "Toolbox designed to speak the many languages of chemical data"; - homepage = "http://openbabel.org"; - platforms = platforms.all; - maintainers = with maintainers; [ danielbarter ]; - license = licenses.gpl2Plus; - }; -} diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index 5cbd55605913..e5daae223997 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1859,6 +1859,7 @@ mapAliases { onevpl-intel-gpu = lib.warnOnInstantiate "onevpl-intel-gpu has been renamed to vpl-gpu-rt" vpl-gpu-rt; # Added 2024-06-04 openai-triton-llvm = triton-llvm; # added 2024-07-18 openai-whisper-cpp = whisper-cpp; # Added 2024-12-13 + openbabel2 = throw "openbabel2 has been removed, as it was unused and unmaintained upstream; please use openbabel"; # Added 2025-09-17 opencv2 = throw "opencv2 has been removed as it is obsolete and was not used by any other package; please migrate to OpenCV 4"; # Added 2024-08-20 opencv3 = throw "opencv3 has been removed as it is obsolete and was not used by any other package; please migrate to OpenCV 4"; # Added 2024-08-20 openafs_1_8 = openafs; # Added 2022-08-22 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index cdfb419f5279..8abbf6ead7fd 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8491,8 +8491,6 @@ with pkgs; openbabel = openbabel3; - openbabel2 = callPackage ../development/libraries/openbabel/2.nix { }; - openbabel3 = callPackage ../development/libraries/openbabel { }; opencascade-occt_7_6 = opencascade-occt.overrideAttrs rec { From e82865a812ee589314ee3d4a3be205f16fa9be6b Mon Sep 17 00:00:00 2001 From: Emily Date: Wed, 17 Sep 2025 19:40:05 +0100 Subject: [PATCH 4/8] openbabel3: move to aliases --- pkgs/top-level/aliases.nix | 1 + pkgs/top-level/all-packages.nix | 4 +--- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/pkgs/top-level/aliases.nix b/pkgs/top-level/aliases.nix index e5daae223997..a636dd19c918 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1860,6 +1860,7 @@ mapAliases { openai-triton-llvm = triton-llvm; # added 2024-07-18 openai-whisper-cpp = whisper-cpp; # Added 2024-12-13 openbabel2 = throw "openbabel2 has been removed, as it was unused and unmaintained upstream; please use openbabel"; # Added 2025-09-17 + openbabel3 = openbabel; # Added 2025-09-17 opencv2 = throw "opencv2 has been removed as it is obsolete and was not used by any other package; please migrate to OpenCV 4"; # Added 2024-08-20 opencv3 = throw "opencv3 has been removed as it is obsolete and was not used by any other package; please migrate to OpenCV 4"; # Added 2024-08-20 openafs_1_8 = openafs; # Added 2022-08-22 diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8abbf6ead7fd..aadc120ac4ff 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8489,9 +8489,7 @@ with pkgs; openal = openalSoft; - openbabel = openbabel3; - - openbabel3 = callPackage ../development/libraries/openbabel { }; + openbabel = callPackage ../development/libraries/openbabel { }; opencascade-occt_7_6 = opencascade-occt.overrideAttrs rec { pname = "opencascade-occt"; From add1684d35fe156b69aaf50b3c6a85e6ed3009e8 Mon Sep 17 00:00:00 2001 From: Emily Date: Wed, 17 Sep 2025 19:40:27 +0100 Subject: [PATCH 5/8] openbabel: move to `by-name` --- .../openbabel/default.nix => by-name/op/openbabel/package.nix} | 0 pkgs/top-level/all-packages.nix | 2 -- 2 files changed, 2 deletions(-) rename pkgs/{development/libraries/openbabel/default.nix => by-name/op/openbabel/package.nix} (100%) diff --git a/pkgs/development/libraries/openbabel/default.nix b/pkgs/by-name/op/openbabel/package.nix similarity index 100% rename from pkgs/development/libraries/openbabel/default.nix rename to pkgs/by-name/op/openbabel/package.nix diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index aadc120ac4ff..8da1d3633e10 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8489,8 +8489,6 @@ with pkgs; openal = openalSoft; - openbabel = callPackage ../development/libraries/openbabel { }; - opencascade-occt_7_6 = opencascade-occt.overrideAttrs rec { pname = "opencascade-occt"; version = "7.6.2"; From 47aa468f70d76bf32c5670b8165219458919c8ae Mon Sep 17 00:00:00 2001 From: Emily Date: Wed, 17 Sep 2025 19:41:54 +0100 Subject: [PATCH 6/8] openbabel: unstable-06-12-23 -> 3.1.1-unstable-2024-12-21 Diff: https://github.com/openbabel/openbabel/compare/32cf131444c1555c749b356dab44fb9fe275271f...889c350feb179b43aa43985799910149d4eaa2bc --- pkgs/by-name/op/openbabel/package.nix | 60 +++++++------------ .../chemistry/avogadrolibs/default.nix | 2 +- .../openbabel-bindings/default.nix | 32 ---------- pkgs/top-level/python-aliases.nix | 1 + pkgs/top-level/python-packages.nix | 4 +- 5 files changed, 24 insertions(+), 75 deletions(-) delete mode 100644 pkgs/development/python-modules/openbabel-bindings/default.nix diff --git a/pkgs/by-name/op/openbabel/package.nix b/pkgs/by-name/op/openbabel/package.nix index 8bad13e512a0..0eb3d6771fc5 100644 --- a/pkgs/by-name/op/openbabel/package.nix +++ b/pkgs/by-name/op/openbabel/package.nix @@ -3,6 +3,7 @@ lib, fetchFromGitHub, cmake, + ninja, perl, zlib, libxml2, @@ -17,20 +18,24 @@ coordgenlibs, }: -stdenv.mkDerivation rec { +stdenv.mkDerivation { pname = "openbabel"; - version = "unstable-06-12-23"; + version = "3.1.1-unstable-2024-12-21"; src = fetchFromGitHub { owner = "openbabel"; - repo = pname; - rev = "32cf131444c1555c749b356dab44fb9fe275271f"; - hash = "sha256-V0wrZVrojCZ9Knc5H6cPzPoYWVosRZ6Sn4PX+UFEfHY="; + repo = "openbabel"; + rev = "889c350feb179b43aa43985799910149d4eaa2bc"; + hash = "sha256-pJbvKBjpvXNjTZRxD2AqEarqmq+Pq08uvGvog/k/a7k="; }; - postPatch = '' - sed '1i#include ' -i include/openbabel/obutil.h # gcc12 - ''; + + nativeBuildInputs = [ + cmake + ninja + swig + pkg-config + ]; buildInputs = [ perl @@ -45,40 +50,17 @@ stdenv.mkDerivation rec { coordgenlibs ]; - nativeBuildInputs = [ - cmake - swig - pkg-config + cmakeFlags = [ + (lib.cmakeBool "RUN_SWIG" true) + (lib.cmakeBool "PYTHON_BINDINGS" true) + (lib.cmakeFeature "PYTHON_INSTDIR" "${placeholder "out"}/${python3.sitePackages}") ]; - preConfigure = '' - cmakeFlagsArray+=( - "-DRUN_SWIG=ON" - "-DPYTHON_BINDINGS=ON" - "-DPYTHON_INSTDIR=$out/${python3.sitePackages}" - ) - ''; - - # Setuptools only accepts PEP 440 version strings. The "unstable" identifier - # can not be used. Instead we pretend to be the 3.2 beta release. - postFixup = '' - cat << EOF > $out/${python3.sitePackages}/setup.py - from setuptools import setup - - setup( - name = 'pyopenbabel', - version = '3.2b1', - packages = ['openbabel'], - package_data = {'openbabel' : ['_openbabel.so']} - ) - EOF - ''; - - meta = with lib; { + meta = { description = "Toolbox designed to speak the many languages of chemical data"; homepage = "http://openbabel.org"; - platforms = platforms.all; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ danielbarter ]; + platforms = lib.platforms.all; + license = lib.licenses.gpl2Plus; + maintainers = with lib.maintainers; [ danielbarter ]; }; } diff --git a/pkgs/development/libraries/science/chemistry/avogadrolibs/default.nix b/pkgs/development/libraries/science/chemistry/avogadrolibs/default.nix index 236f7d5594d4..8dfb4aa0cf09 100644 --- a/pkgs/development/libraries/science/chemistry/avogadrolibs/default.nix +++ b/pkgs/development/libraries/science/chemistry/avogadrolibs/default.nix @@ -20,7 +20,7 @@ let pythonWP = python3.withPackages ( p: with p; [ - openbabel-bindings + openbabel numpy ] ); diff --git a/pkgs/development/python-modules/openbabel-bindings/default.nix b/pkgs/development/python-modules/openbabel-bindings/default.nix deleted file mode 100644 index ee256647776e..000000000000 --- a/pkgs/development/python-modules/openbabel-bindings/default.nix +++ /dev/null @@ -1,32 +0,0 @@ -{ - lib, - openbabel, - python, - buildPythonPackage, -}: - -buildPythonPackage { - format = "setuptools"; - inherit (openbabel) pname version; - - src = "${openbabel}/${python.sitePackages}"; - - buildInputs = [ openbabel ]; - - # these env variables are used by the bindings to find libraries - # they need to be included explicitly in your nix-shell for - # some functionality to work (inparticular, pybel). - # see https://openbabel.org/docs/dev/Installation/install.html - BABEL_LIBDIR = "${openbabel}/lib/openbabel/3.1.0"; - LD_LIBRARY_PATH = "${openbabel}/lib"; - - doCheck = false; - pythonImportsCheck = [ "openbabel" ]; - - meta = with lib; { - homepage = "http://openbabel.org/wiki/Main_Page"; - description = "Python bindings for openbabel"; - license = licenses.gpl2Plus; - maintainers = with maintainers; [ danielbarter ]; - }; -} diff --git a/pkgs/top-level/python-aliases.nix b/pkgs/top-level/python-aliases.nix index c67d1f74c929..68c0ebc5d27b 100644 --- a/pkgs/top-level/python-aliases.nix +++ b/pkgs/top-level/python-aliases.nix @@ -494,6 +494,7 @@ mapAliases ({ openai-triton-cuda = triton-cuda; # added 2024-07-18 openai-triton-no-cuda = triton-no-cuda; # added 2024-07-18 openapi-schema-pydantic = throw "openapi-schema-pydantic has been removed, since it is no longer maintained"; # added 2023-10-30 + openbabel-bindings = openbabel; # added 2025-09-17 opencv3 = throw "opencv3 has been removed as it is obsolete"; # added 2023-10-12 openllm = throw "openllm has moved to pkgs.openllm"; # added 2021-12-31 openllm-client = throw "openllm-client has been removed, since it is abandoned due to a change in philosophy"; # added 2024-08-24 diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index b5e865fd7bf7..8cd299ecab21 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -10934,9 +10934,7 @@ self: super: with self; { openapi3 = callPackage ../development/python-modules/openapi3 { }; - openbabel-bindings = callPackage ../development/python-modules/openbabel-bindings { - openbabel = pkgs.openbabel.override { python3 = python; }; - }; + openbabel = toPythonModule (pkgs.openbabel.override { python3 = python; }); opencamlib = callPackage ../development/python-modules/opencamlib { }; From 36c66d6310aac92c4886273f3872098a7e3b6aef Mon Sep 17 00:00:00 2001 From: Emily Date: Wed, 17 Sep 2025 19:41:54 +0100 Subject: [PATCH 7/8] openbabel: fix build with CMake 4 --- pkgs/by-name/op/openbabel/fix-cmake-4.patch | 77 +++++++++++++++++++++ pkgs/by-name/op/openbabel/package.nix | 4 ++ 2 files changed, 81 insertions(+) create mode 100644 pkgs/by-name/op/openbabel/fix-cmake-4.patch diff --git a/pkgs/by-name/op/openbabel/fix-cmake-4.patch b/pkgs/by-name/op/openbabel/fix-cmake-4.patch new file mode 100644 index 000000000000..71c9204081dd --- /dev/null +++ b/pkgs/by-name/op/openbabel/fix-cmake-4.patch @@ -0,0 +1,77 @@ +From fda825d390af8b5eaf79d7b7c39c19ab5ce317ac Mon Sep 17 00:00:00 2001 +From: Nicolas PARLANT +Date: Wed, 26 Mar 2025 10:24:42 +0000 +Subject: [PATCH] cmake4 compat : + +* up cmake_minimum_required to 3.10 +* delete CMP0042 because OLD behavior is removed in cmake-4 and +is no longer used. +* set ENABLE_EXPORTS for test_runner (OLD behavior for CMP0065 is removed +in cmake4) + +Signed-off-by: Nicolas PARLANT +--- + CMakeLists.txt | 7 ++----- + doc/examples/static_executable/CMakeLists.txt | 2 +- + scripts/CMakeLists.txt | 2 +- + test/CMakeLists.txt | 1 + + 4 files changed, 5 insertions(+), 7 deletions(-) + +diff --git a/CMakeLists.txt b/CMakeLists.txt +index 9d2a9f143e..f8440e412e 100644 +--- a/CMakeLists.txt ++++ b/CMakeLists.txt +@@ -1,6 +1,6 @@ +-# Please ensure that any changes remain compliant with 3.1. ++# Please ensure that any changes remain compliant with 3.10. + if(NOT EMBED_OPENBABEL) +- cmake_minimum_required(VERSION 3.1) ++ cmake_minimum_required(VERSION 3.10) + endif() + + project(openbabel) +@@ -10,9 +10,6 @@ set (CMAKE_CXX_STANDARD 11) + + if(COMMAND cmake_policy) + cmake_policy(SET CMP0003 NEW) +- if(POLICY CMP0042) +- cmake_policy(SET CMP0042 OLD) +- endif() + endif() + + include (CheckCXXCompilerFlag) +diff --git a/doc/examples/static_executable/CMakeLists.txt b/doc/examples/static_executable/CMakeLists.txt +index 0ed21beaaf..63dae2a468 100644 +--- a/doc/examples/static_executable/CMakeLists.txt ++++ b/doc/examples/static_executable/CMakeLists.txt +@@ -25,7 +25,7 @@ + # + + # This line is required for cmake backwards compatibility. +-cmake_minimum_required(VERSION 2.6) ++cmake_minimum_required(VERSION 3.10) + + # Name of your project + project(myproject) +diff --git a/scripts/CMakeLists.txt b/scripts/CMakeLists.txt +index 792e4592d0..eafda66c5a 100644 +--- a/scripts/CMakeLists.txt ++++ b/scripts/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 2.6.0) ++cmake_minimum_required(VERSION 3.10.0) + # Library versioning (used in Mac Python bindings)x + set(SOVERSION 4) + +diff --git a/test/CMakeLists.txt b/test/CMakeLists.txt +index 2ecf0dbe22..280eac471f 100644 +--- a/test/CMakeLists.txt ++++ b/test/CMakeLists.txt +@@ -152,6 +152,7 @@ endif() + + add_executable(test_runner ${srclist} obtest.cpp) + target_link_libraries(test_runner ${libs}) ++set_target_properties(test_runner PROPERTIES ENABLE_EXPORTS TRUE) + + if(NOT BUILD_SHARED AND NOT BUILD_MIXED) + set_target_properties(test_runner PROPERTIES LINK_SEARCH_END_STATIC TRUE) diff --git a/pkgs/by-name/op/openbabel/package.nix b/pkgs/by-name/op/openbabel/package.nix index 0eb3d6771fc5..c6156cb93662 100644 --- a/pkgs/by-name/op/openbabel/package.nix +++ b/pkgs/by-name/op/openbabel/package.nix @@ -29,6 +29,10 @@ stdenv.mkDerivation { hash = "sha256-pJbvKBjpvXNjTZRxD2AqEarqmq+Pq08uvGvog/k/a7k="; }; + patches = [ + # + ./fix-cmake-4.patch + ]; nativeBuildInputs = [ cmake From bcb952004eb32d536fd13ed0e1aaf3dec932cdf8 Mon Sep 17 00:00:00 2001 From: Emily Date: Wed, 17 Sep 2025 19:41:54 +0100 Subject: [PATCH 8/8] openbabel: enable tests --- pkgs/by-name/op/openbabel/package.nix | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/pkgs/by-name/op/openbabel/package.nix b/pkgs/by-name/op/openbabel/package.nix index c6156cb93662..2b206e294c6a 100644 --- a/pkgs/by-name/op/openbabel/package.nix +++ b/pkgs/by-name/op/openbabel/package.nix @@ -16,6 +16,7 @@ boost, maeparser, coordgenlibs, + ctestCheckHook, }: stdenv.mkDerivation { @@ -54,12 +55,25 @@ stdenv.mkDerivation { coordgenlibs ]; + nativeCheckInputs = [ + ctestCheckHook + ]; + cmakeFlags = [ (lib.cmakeBool "RUN_SWIG" true) (lib.cmakeBool "PYTHON_BINDINGS" true) (lib.cmakeFeature "PYTHON_INSTDIR" "${placeholder "out"}/${python3.sitePackages}") ]; + disabledTests = [ + "test_cifspacegroup_11" + "pybindtest_obconv_writers" + ]; + + doCheck = true; + + dontUseNinjaCheck = true; + meta = { description = "Toolbox designed to speak the many languages of chemical data"; homepage = "http://openbabel.org";