diff --git a/pkgs/by-name/co/coordgenlibs/package.nix b/pkgs/by-name/co/coordgenlibs/package.nix index a02ce722480f..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 @@ -26,12 +35,21 @@ 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; + # 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"; 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 new file mode 100644 index 000000000000..2b206e294c6a --- /dev/null +++ b/pkgs/by-name/op/openbabel/package.nix @@ -0,0 +1,84 @@ +{ + stdenv, + lib, + fetchFromGitHub, + cmake, + ninja, + perl, + zlib, + libxml2, + eigen, + python3, + cairo, + pkg-config, + swig, + rapidjson, + boost, + maeparser, + coordgenlibs, + ctestCheckHook, +}: + +stdenv.mkDerivation { + pname = "openbabel"; + version = "3.1.1-unstable-2024-12-21"; + + src = fetchFromGitHub { + owner = "openbabel"; + repo = "openbabel"; + rev = "889c350feb179b43aa43985799910149d4eaa2bc"; + hash = "sha256-pJbvKBjpvXNjTZRxD2AqEarqmq+Pq08uvGvog/k/a7k="; + }; + + patches = [ + # + ./fix-cmake-4.patch + ]; + + nativeBuildInputs = [ + cmake + ninja + swig + pkg-config + ]; + + buildInputs = [ + perl + zlib + libxml2 + eigen + python3 + cairo + rapidjson + boost + maeparser + 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"; + platforms = lib.platforms.all; + license = lib.licenses.gpl2Plus; + maintainers = with lib.maintainers; [ danielbarter ]; + }; +} 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/development/libraries/openbabel/default.nix b/pkgs/development/libraries/openbabel/default.nix deleted file mode 100644 index 8bad13e512a0..000000000000 --- a/pkgs/development/libraries/openbabel/default.nix +++ /dev/null @@ -1,84 +0,0 @@ -{ - stdenv, - lib, - fetchFromGitHub, - cmake, - perl, - zlib, - libxml2, - eigen, - python3, - cairo, - pkg-config, - swig, - rapidjson, - boost, - maeparser, - coordgenlibs, -}: - -stdenv.mkDerivation rec { - pname = "openbabel"; - version = "unstable-06-12-23"; - - src = fetchFromGitHub { - owner = "openbabel"; - repo = pname; - rev = "32cf131444c1555c749b356dab44fb9fe275271f"; - hash = "sha256-V0wrZVrojCZ9Knc5H6cPzPoYWVosRZ6Sn4PX+UFEfHY="; - }; - - postPatch = '' - sed '1i#include ' -i include/openbabel/obutil.h # gcc12 - ''; - - buildInputs = [ - perl - zlib - libxml2 - eigen - python3 - cairo - rapidjson - boost - maeparser - coordgenlibs - ]; - - nativeBuildInputs = [ - cmake - swig - pkg-config - ]; - - 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; { - 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 ]; - }; -} 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/aliases.nix b/pkgs/top-level/aliases.nix index de6b4f44fe70..7f738e43f47c 100644 --- a/pkgs/top-level/aliases.nix +++ b/pkgs/top-level/aliases.nix @@ -1860,6 +1860,8 @@ 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 + 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 36fc74c16aa5..07606034efeb 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -8499,12 +8499,6 @@ with pkgs; openal = openalSoft; - openbabel = openbabel3; - - openbabel2 = callPackage ../development/libraries/openbabel/2.nix { }; - - openbabel3 = callPackage ../development/libraries/openbabel { }; - opencascade-occt_7_6 = opencascade-occt.overrideAttrs rec { pname = "opencascade-occt"; version = "7.6.2"; 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 { };