Loading pkgs/development/python-modules/rdkit/default.nix +73 −19 Original line number Diff line number Diff line { lib, stdenv, buildPythonPackage, fetchFromGitHub, fetchzip, applyPatches, replaceVars, cmake, comic-neue, boost, catch2_3, inchi, cairo, eigen, python, Loading @@ -26,12 +27,28 @@ let rev = "AvalonToolkit_2.0.5-pre.3"; hash = "sha256-2MuFZgRIHXnkV7Nc1da4fa7wDx57VHUtwLthrmjk+5o="; }; yaehmop = fetchFromGitHub { chemdraw = fetchFromGitHub { owner = "Glysade"; repo = "chemdraw"; tag = "v1.0.10"; hash = "sha256-ee2Oxvo2d7Yb59lN0zkrbFqy/3rOvVLo6qdS+f23wVQ="; }; yaehmop = applyPatches { src = fetchFromGitHub { owner = "greglandrum"; repo = "yaehmop"; rev = "v2024.03.1"; rev = "v2025.03.1"; hash = "sha256-rhR7Ev+9Fk/Ks7R2x2SjWu1L/48a4zHDHUBohx1Dw/M="; }; # Compatibility with CMake < 3.5 has been removed from CMake. postPatch = '' substituteInPlace tightbind/CMakeLists.txt \ --replace-fail \ "cmake_minimum_required(VERSION 3.0)" \ "cmake_minimum_required(VERSION 3.5)" ''; }; freesasa = fetchFromGitHub { owner = "mittinatten"; repo = "freesasa"; Loading @@ -44,12 +61,23 @@ let rev = "daefab3dd0c90ca56da9d3d5e375fe4d651e6be3"; hash = "sha256-tQB4wqza9rlSoy4Uj9bA99ddawjxGyN9G7DYbcv/Qdo="; }; better_enums = fetchFromGitHub { owner = "aantron"; repo = "better-enums"; tag = "0.11.3"; hash = "sha256-UYldCOkRTySc78oEOJzgoY9h2lB386W/D5Rz3KjVCO8="; }; # We cannot use the inchi from nixpkgs as the version is too old inchi = fetchzip { url = "https://github.com/IUPAC-InChI/InChI/releases/download/v1.07.3/INCHI-1-SRC.zip"; hash = "sha256-TUC2175HifB63EfSsg/ixA3wYzAxsvUnY6ZyNjVR/Fc="; }; }; boost' = boost.override { enableNumpy = true; }; in buildPythonPackage rec { pname = "rdkit"; version = "2024.09.1"; version = "2025.03.6"; pyproject = false; src = Loading @@ -59,8 +87,8 @@ buildPythonPackage rec { fetchFromGitHub { owner = "rdkit"; repo = "rdkit"; rev = "Release_${versionTag}"; hash = "sha256-UsyPlAJ8FISblF8szEmRqWansunIhW/gbEBZx13YM+A="; tag = "Release_${versionTag}"; hash = "sha256-DqnwfT+lX7OnArIcFlCBrDl+QDmNpbPO9u7OGwu8fJo="; }; unpackPhase = '' Loading @@ -72,19 +100,46 @@ buildPythonPackage rec { # see https://github.com/rdkit/rdkit/pull/5928 cp -r ${external.avalon}/* External/AvalonTools/avalon mkdir External/ChemDraw/chemdraw cp -r ${external.chemdraw}/* External/ChemDraw/chemdraw/ chmod -R +w External/ChemDraw/chemdraw mkdir External/YAeHMOP/yaehmop ln -s ${external.yaehmop}/* External/YAeHMOP/yaehmop mkdir -p External/FreeSASA/freesasa mkdir External/FreeSASA/freesasa cp -r ${external.freesasa}/* External/FreeSASA/freesasa chmod +w External/FreeSASA/freesasa/src cp External/FreeSASA/freesasa2.c External/FreeSASA/freesasa/src ln -s ${external.pubchem-align3d} External/pubchem_shape/pubchem-align3d mkdir External/pubchem_shape/pubchem-align3d cp -r ${external.pubchem-align3d}/* External/pubchem_shape/pubchem-align3d mkdir External/INCHI-API/src ln -s ${external.inchi}/* External/INCHI-API/src ln -s ${rapidjson} External/rapidjson-1.1.0 ln -s ${comic-neue}/share/fonts/truetype/ComicNeue-Regular.ttf Data/Fonts/ ''; patches = [ (replaceVars ./dont-fetch-better-enums.patch { inherit (external) better_enums; }) ]; # Prevent linking to libpython which fails on darwin with: # Undefined symbols for architecture arm64 # Reverts https://github.com/rdkit/rdkit/commit/470df8cd2fab78d64ef1dd254576097b651c3dd9 postPatch = '' substituteInPlace \ CMakeLists.txt \ External/pubchem_shape/Wrap/CMakeLists.txt \ --replace-fail \ "find_package(Python3 COMPONENTS Interpreter Development.Module NumPy" \ "find_package(Python3 COMPONENTS Interpreter Development NumPy" \ ''; nativeBuildInputs = [ cmake ]; buildInputs = [ Loading @@ -93,7 +148,6 @@ buildPythonPackage rec { catch2_3 coordgenlibs eigen inchi maeparser ]; Loading Loading @@ -126,8 +180,8 @@ buildPythonPackage rec { (lib.cmakeBool "RDK_USE_URF" false) (lib.cmakeFeature "AVALONTOOLS_DIR" "avalon") (lib.cmakeFeature "FREESASA_SRC_DIR" "freesasa") (lib.cmakeFeature "INCHI_INCLUDE_DIR" "${inchi}/include/inchi") (lib.cmakeFeature "PUBCHEMSHAPE_DIR" "External/pubchem_shape/pubchem-align3d") (lib.cmakeFeature "maeparser_DIR" "${maeparser}/lib/cmake") (lib.cmakeFeature "coordgen_DIR" "${coordgenlibs}/lib/cmake") ]; checkPhase = '' Loading @@ -144,14 +198,14 @@ buildPythonPackage rec { "rdkit.Chem.rdDetermineBonds" ]; meta = with lib; { meta = { description = "Open source toolkit for cheminformatics"; maintainers = with maintainers; [ maintainers = with lib.maintainers; [ rmcgibbo natsukium ]; license = licenses.bsd3; license = lib.licenses.bsd3; homepage = "https://www.rdkit.org"; changelog = "https://github.com/rdkit/rdkit/releases/tag/${src.rev}"; changelog = "https://github.com/rdkit/rdkit/releases/tag/${src.tag}"; }; } pkgs/development/python-modules/rdkit/dont-fetch-better-enums.patch 0 → 100644 +14 −0 Original line number Diff line number Diff line diff --git a/CMakeLists.txt b/CMakeLists.txt index 77939f452..9cace7fe1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -184,8 +184,7 @@ Include(FetchContent) FetchContent_Declare( better_enums - GIT_REPOSITORY https://github.com/aantron/better-enums.git - GIT_TAG c35576bed0295689540b39873126129adfa0b4c8 # 0.11.3 + URL @better_enums@ ) if(RDK_INSTALL_INTREE) Loading
pkgs/development/python-modules/rdkit/default.nix +73 −19 Original line number Diff line number Diff line { lib, stdenv, buildPythonPackage, fetchFromGitHub, fetchzip, applyPatches, replaceVars, cmake, comic-neue, boost, catch2_3, inchi, cairo, eigen, python, Loading @@ -26,12 +27,28 @@ let rev = "AvalonToolkit_2.0.5-pre.3"; hash = "sha256-2MuFZgRIHXnkV7Nc1da4fa7wDx57VHUtwLthrmjk+5o="; }; yaehmop = fetchFromGitHub { chemdraw = fetchFromGitHub { owner = "Glysade"; repo = "chemdraw"; tag = "v1.0.10"; hash = "sha256-ee2Oxvo2d7Yb59lN0zkrbFqy/3rOvVLo6qdS+f23wVQ="; }; yaehmop = applyPatches { src = fetchFromGitHub { owner = "greglandrum"; repo = "yaehmop"; rev = "v2024.03.1"; rev = "v2025.03.1"; hash = "sha256-rhR7Ev+9Fk/Ks7R2x2SjWu1L/48a4zHDHUBohx1Dw/M="; }; # Compatibility with CMake < 3.5 has been removed from CMake. postPatch = '' substituteInPlace tightbind/CMakeLists.txt \ --replace-fail \ "cmake_minimum_required(VERSION 3.0)" \ "cmake_minimum_required(VERSION 3.5)" ''; }; freesasa = fetchFromGitHub { owner = "mittinatten"; repo = "freesasa"; Loading @@ -44,12 +61,23 @@ let rev = "daefab3dd0c90ca56da9d3d5e375fe4d651e6be3"; hash = "sha256-tQB4wqza9rlSoy4Uj9bA99ddawjxGyN9G7DYbcv/Qdo="; }; better_enums = fetchFromGitHub { owner = "aantron"; repo = "better-enums"; tag = "0.11.3"; hash = "sha256-UYldCOkRTySc78oEOJzgoY9h2lB386W/D5Rz3KjVCO8="; }; # We cannot use the inchi from nixpkgs as the version is too old inchi = fetchzip { url = "https://github.com/IUPAC-InChI/InChI/releases/download/v1.07.3/INCHI-1-SRC.zip"; hash = "sha256-TUC2175HifB63EfSsg/ixA3wYzAxsvUnY6ZyNjVR/Fc="; }; }; boost' = boost.override { enableNumpy = true; }; in buildPythonPackage rec { pname = "rdkit"; version = "2024.09.1"; version = "2025.03.6"; pyproject = false; src = Loading @@ -59,8 +87,8 @@ buildPythonPackage rec { fetchFromGitHub { owner = "rdkit"; repo = "rdkit"; rev = "Release_${versionTag}"; hash = "sha256-UsyPlAJ8FISblF8szEmRqWansunIhW/gbEBZx13YM+A="; tag = "Release_${versionTag}"; hash = "sha256-DqnwfT+lX7OnArIcFlCBrDl+QDmNpbPO9u7OGwu8fJo="; }; unpackPhase = '' Loading @@ -72,19 +100,46 @@ buildPythonPackage rec { # see https://github.com/rdkit/rdkit/pull/5928 cp -r ${external.avalon}/* External/AvalonTools/avalon mkdir External/ChemDraw/chemdraw cp -r ${external.chemdraw}/* External/ChemDraw/chemdraw/ chmod -R +w External/ChemDraw/chemdraw mkdir External/YAeHMOP/yaehmop ln -s ${external.yaehmop}/* External/YAeHMOP/yaehmop mkdir -p External/FreeSASA/freesasa mkdir External/FreeSASA/freesasa cp -r ${external.freesasa}/* External/FreeSASA/freesasa chmod +w External/FreeSASA/freesasa/src cp External/FreeSASA/freesasa2.c External/FreeSASA/freesasa/src ln -s ${external.pubchem-align3d} External/pubchem_shape/pubchem-align3d mkdir External/pubchem_shape/pubchem-align3d cp -r ${external.pubchem-align3d}/* External/pubchem_shape/pubchem-align3d mkdir External/INCHI-API/src ln -s ${external.inchi}/* External/INCHI-API/src ln -s ${rapidjson} External/rapidjson-1.1.0 ln -s ${comic-neue}/share/fonts/truetype/ComicNeue-Regular.ttf Data/Fonts/ ''; patches = [ (replaceVars ./dont-fetch-better-enums.patch { inherit (external) better_enums; }) ]; # Prevent linking to libpython which fails on darwin with: # Undefined symbols for architecture arm64 # Reverts https://github.com/rdkit/rdkit/commit/470df8cd2fab78d64ef1dd254576097b651c3dd9 postPatch = '' substituteInPlace \ CMakeLists.txt \ External/pubchem_shape/Wrap/CMakeLists.txt \ --replace-fail \ "find_package(Python3 COMPONENTS Interpreter Development.Module NumPy" \ "find_package(Python3 COMPONENTS Interpreter Development NumPy" \ ''; nativeBuildInputs = [ cmake ]; buildInputs = [ Loading @@ -93,7 +148,6 @@ buildPythonPackage rec { catch2_3 coordgenlibs eigen inchi maeparser ]; Loading Loading @@ -126,8 +180,8 @@ buildPythonPackage rec { (lib.cmakeBool "RDK_USE_URF" false) (lib.cmakeFeature "AVALONTOOLS_DIR" "avalon") (lib.cmakeFeature "FREESASA_SRC_DIR" "freesasa") (lib.cmakeFeature "INCHI_INCLUDE_DIR" "${inchi}/include/inchi") (lib.cmakeFeature "PUBCHEMSHAPE_DIR" "External/pubchem_shape/pubchem-align3d") (lib.cmakeFeature "maeparser_DIR" "${maeparser}/lib/cmake") (lib.cmakeFeature "coordgen_DIR" "${coordgenlibs}/lib/cmake") ]; checkPhase = '' Loading @@ -144,14 +198,14 @@ buildPythonPackage rec { "rdkit.Chem.rdDetermineBonds" ]; meta = with lib; { meta = { description = "Open source toolkit for cheminformatics"; maintainers = with maintainers; [ maintainers = with lib.maintainers; [ rmcgibbo natsukium ]; license = licenses.bsd3; license = lib.licenses.bsd3; homepage = "https://www.rdkit.org"; changelog = "https://github.com/rdkit/rdkit/releases/tag/${src.rev}"; changelog = "https://github.com/rdkit/rdkit/releases/tag/${src.tag}"; }; }
pkgs/development/python-modules/rdkit/dont-fetch-better-enums.patch 0 → 100644 +14 −0 Original line number Diff line number Diff line diff --git a/CMakeLists.txt b/CMakeLists.txt index 77939f452..9cace7fe1 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -184,8 +184,7 @@ Include(FetchContent) FetchContent_Declare( better_enums - GIT_REPOSITORY https://github.com/aantron/better-enums.git - GIT_TAG c35576bed0295689540b39873126129adfa0b4c8 # 0.11.3 + URL @better_enums@ ) if(RDK_INSTALL_INTREE)