Unverified Commit 4d218c31 authored by kirillrdy's avatar kirillrdy Committed by GitHub
Browse files

python3Packages.rdkit: 2024.09.1 -> 2025.03.1 (#446340)

parents 79a1b6a5 436d2122
Loading
Loading
Loading
Loading
+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,
@@ -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";
@@ -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 =
@@ -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 = ''
@@ -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 = [
@@ -93,7 +148,6 @@ buildPythonPackage rec {
    catch2_3
    coordgenlibs
    eigen
    inchi
    maeparser
  ];

@@ -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 = ''
@@ -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}";
  };
}
+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)