gnu: rdkit: Update to 2023.09.4.

* gnu/packages/chemistry.scm (rdkit): Update to 2023.09.4.
[arguments]: Skip testConrec test in check phase.
[native-inputs]: Replace catch2 with catch2-3.
* gnu/packages/patches/rdkit-unbundle-external-dependencies.patch: Adjust
patch.
[supported-systems]: New field.

Signed-off-by: Christopher Baines <mail@cbaines.net>
This commit is contained in:
David Elsing 2024-01-28 23:02:02 +00:00 committed by Christopher Baines
parent cc772e7f31
commit e5bfc462dd
No known key found for this signature in database
GPG key ID: 5E28A33B0B84F577
2 changed files with 128 additions and 99 deletions

View file

@ -1073,7 +1073,7 @@ (define-public ringdecomposerlib
(define-public rdkit (define-public rdkit
(package (package
(name "rdkit") (name "rdkit")
(version "2022.03.5") (version "2023.09.4")
(source (origin (source (origin
(method git-fetch) (method git-fetch)
(uri (git-reference (uri (git-reference
@ -1084,7 +1084,7 @@ (define-public rdkit
(file-name (git-file-name name version)) (file-name (git-file-name name version))
(sha256 (sha256
(base32 (base32
"19idgilabh04cbr1qj6zgrgsfjm248mmfz6fsr0smrd68d0xnml9")) "1lgcgijlzzwpfxndsdlx13npdfk7hcii11zg25cvpmzhbpn6vyn8"))
(patches (patches
(search-patches "rdkit-unbundle-external-dependencies.patch")) (search-patches "rdkit-unbundle-external-dependencies.patch"))
(modules '((guix build utils))) (modules '((guix build utils)))
@ -1183,7 +1183,10 @@ (define-public rdkit
"substructLibraryTest" "pyFeatures" "substructLibraryTest" "pyFeatures"
"pythonTestDirML" "pythonTestDirChem" "pythonTestDirML" "pythonTestDirChem"
;; Catching Python exception fails ;; Catching Python exception fails
"pyRanker") "|") "pyRanker"
;; Flaky test depending on floating point rounding
"testConrec"
) "|")
")"))))))))) ")")))))))))
(inputs (inputs
(list avalon-toolkit (list avalon-toolkit
@ -1200,7 +1203,7 @@ (define-public rdkit
(native-inputs (native-inputs
(list bison (list bison
boost boost
catch2 catch2-3
eigen eigen
flex flex
freesasa freesasa
@ -1214,4 +1217,8 @@ (define-public rdkit
(description "RDKit is a C++ and Python library for cheminformatics, which (description "RDKit is a C++ and Python library for cheminformatics, which
includes (among other things) the analysis and modification of molecules in 2D includes (among other things) the analysis and modification of molecules in 2D
and 3D and descriptor generation for machine learning.") and 3D and descriptor generation for machine learning.")
;; For 32 bit systems, there is a bug in Boost.Python:
;; https://github.com/boostorg/python/issues/312. Additionally, several
;; other test fail.
(supported-systems %64bit-supported-systems)
(license license:bsd-3))) (license license:bsd-3)))

View file

@ -58,100 +58,83 @@ diff --git a/External/AvalonTools/CMakeLists.txt b/External/AvalonTools/CMakeLis
index 3e31195fc..314ba35b5 100644 index 3e31195fc..314ba35b5 100644
--- a/External/AvalonTools/CMakeLists.txt --- a/External/AvalonTools/CMakeLists.txt
+++ b/External/AvalonTools/CMakeLists.txt +++ b/External/AvalonTools/CMakeLists.txt
@@ -2,107 +2,14 @@ if(NOT RDK_BUILD_AVALON_SUPPORT) @@ -2,90 +2,8 @@ if(NOT RDK_BUILD_AVALON_SUPPORT)
return() return()
endif(NOT RDK_BUILD_AVALON_SUPPORT) endif(NOT RDK_BUILD_AVALON_SUPPORT)
-set(AVALON_VERSION "2.0.5-pre.3")
-if(NOT DEFINED AVALONTOOLS_DIR) -if(NOT DEFINED AVALONTOOLS_DIR)
- set(AVALONTOOLS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/SourceDistribution") - set(AVALONTOOLS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/ava-formake-AvalonToolkit_${AVALON_VERSION}")
- set(fileToPatch "${CMAKE_CURRENT_SOURCE_DIR}/SourceDistribution/common/reaccsio.c") - set(fileToCheck "${AVALONTOOLS_DIR}/src/main/C/common/reaccsio.c")
- set(needDownload "TRUE") - set(needDownload "TRUE")
- if(EXISTS "${fileToPatch}") - if(EXISTS "${fileToCheck}")
- file(READ "${fileToPatch}" buffer)
- if("${buffer}" MATCHES "//MyFree\\(\\(char \\*\\)tempdir\\);")
- set(needDownload "FALSE") - set(needDownload "FALSE")
- endif() - endif()
- endif()
-else() -else()
- string(REGEX REPLACE "\\\\" "/" AVALONTOOLS_DIR ${AVALONTOOLS_DIR}) - string(REGEX REPLACE "\\\\" "/" AVALONTOOLS_DIR ${AVALONTOOLS_DIR})
- set(needDownload "FALSE") - set(needDownload "FALSE")
-endif() -endif()
- -
-set(AVALON_SRC_PATH ${AVALONTOOLS_DIR}/common) -set(AVALON_SRC_PATH "${AVALONTOOLS_DIR}/src/main/C")
-set(AVALON_COMMON_PATH "${AVALON_SRC_PATH}/common")
-set(AVALON_INCLUDE_PATH "${AVALON_SRC_PATH}/include")
-set(AVALON_PROGRAMS_PATH "${AVALON_SRC_PATH}/programs")
- -
-if(needDownload) -if(needDownload)
- if(NOT DEFINED AVALONTOOLS_URL) - if(NOT DEFINED AVALONTOOLS_URL)
- set(AVALONTOOLS_URL "https://sourceforge.net/projects/avalontoolkit/files/AvalonToolkit_1.2/AvalonToolkit_1.2.0.source.tar") - set(AVALONTOOLS_URL "https://github.com/rdkit/ava-formake/archive/refs/tags/AvalonToolkit_${AVALON_VERSION}.tar.gz")
- endif() - endif()
- if(NOT DEFINED AVALONTOOLS_MD5SUM) - if(NOT DEFINED AVALONTOOLS_MD5SUM)
- set(AVALONTOOLS_MD5SUM "092a94f421873f038aa67d4a6cc8cb54") - set(AVALONTOOLS_MD5SUM "7a20c25a7e79f3344e0f9f49afa03351")
- endif() - endif()
- if(NOT DEFINED AVALONTOOLS_BASE) - if(NOT DEFINED AVALONTOOLS_BASE)
- string(REGEX REPLACE "^.*/" "" AVALONTOOLS_BASE "${AVALONTOOLS_URL}") - string(REGEX REPLACE "^.*/" "" AVALONTOOLS_BASE "${AVALONTOOLS_URL}")
- endif() - endif()
- downloadAndCheckMD5(${AVALONTOOLS_URL} "${CMAKE_CURRENT_SOURCE_DIR}/${AVALONTOOLS_BASE}" ${AVALONTOOLS_MD5SUM}) - downloadAndCheckMD5(${AVALONTOOLS_URL} "${CMAKE_CURRENT_SOURCE_DIR}/${AVALONTOOLS_BASE}" ${AVALONTOOLS_MD5SUM})
- execute_process(COMMAND ${CMAKE_COMMAND} -E tar xf - execute_process(COMMAND ${CMAKE_COMMAND} -E tar xzf
- ${CMAKE_CURRENT_SOURCE_DIR}/AvalonToolkit_1.2.0.source.tar - ${CMAKE_CURRENT_SOURCE_DIR}/AvalonToolkit_${AVALON_VERSION}.tar.gz
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR}) - WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
- # apply patch to AvalonTools
- configure_file("${fileToPatch}" "${fileToPatch}.orig" COPYONLY)
- file(READ "${fileToPatch}" buffer)
- string(REGEX REPLACE "MyFree\\(\\(char \\*\\)tempdir\\);"
- "//MyFree((char *)tempdir);" buffer "${buffer}")
- file(WRITE "${fileToPatch}" "${buffer}")
-endif() -endif()
-
if (MSVC) -if(CMAKE_C_COMPILER_ID STREQUAL "GNU")
add_definitions("/D_CRT_SECURE_NO_WARNINGS") - add_compile_options(-Wno-format-security -Wformat=0 -Wstringop-overflow=0 -Wformat-overflow=0 -Wno-unused-result )
add_compile_options(/wd4224 /wd4101 /wd4018 /wd4996 /wd4244 /wd4305 /wd4013 /wd4146 /wd4334 /wd4715 /wd4715 /nologo) -endif()
endif(MSVC) -if(CMAKE_C_COMPILER_ID STREQUAL "Clang")
- add_compile_options(-Wno-absolute-value -Wno-return-type -Wno-tautological-overlap-compare)
-set(avalon_clib_srcs ${AVALON_SRC_PATH}/layout.c -endif()
- ${AVALON_SRC_PATH}/symboltable.c -if (MSVC)
- ${AVALON_SRC_PATH}/patclean.c - add_definitions("/D_CRT_SECURE_NO_WARNINGS")
- ${AVALON_SRC_PATH}/utilities.c - add_compile_options(/wd4018 /wd4101 /wd4146 /wd4334 /wd4477 /wd4715 /wd4716 /wd4996 /nologo)
- ${AVALON_SRC_PATH}/symbol_lists.c -endif(MSVC)
- ${AVALON_SRC_PATH}/stereo.c -
- ${AVALON_SRC_PATH}/set.c -set(avalon_clib_srcs ${AVALON_COMMON_PATH}/layout.c
- ${AVALON_SRC_PATH}/perceive.c - ${AVALON_COMMON_PATH}/symboltable.c
- ${AVALON_SRC_PATH}/local.c - ${AVALON_COMMON_PATH}/patclean.c
- ${AVALON_SRC_PATH}/graph.c - ${AVALON_COMMON_PATH}/utilities.c
- ${AVALON_SRC_PATH}/geometry.c - ${AVALON_COMMON_PATH}/symbol_lists.c
- ${AVALON_SRC_PATH}/forio.c - ${AVALON_COMMON_PATH}/stereo.c
- ${AVALON_SRC_PATH}/depictutil.c - ${AVALON_COMMON_PATH}/set.c
- ${AVALON_SRC_PATH}/denormal.c - ${AVALON_COMMON_PATH}/perceive.c
- ${AVALON_SRC_PATH}/casutils.c - ${AVALON_COMMON_PATH}/local.c
- ${AVALON_SRC_PATH}/ssmatch.c - ${AVALON_COMMON_PATH}/graph.c
- ${AVALON_SRC_PATH}/rtutils.c - ${AVALON_COMMON_PATH}/geometry.c
- ${AVALON_SRC_PATH}/smi2mol.c - ${AVALON_COMMON_PATH}/forio.c
- ${AVALON_SRC_PATH}/didepict.c - ${AVALON_COMMON_PATH}/depictutil.c
- ${AVALON_SRC_PATH}/pattern.c - ${AVALON_COMMON_PATH}/denormal.c
- ${AVALON_SRC_PATH}/canonizer.c - ${AVALON_COMMON_PATH}/casutils.c
- ${AVALON_SRC_PATH}/aacheck.c - ${AVALON_COMMON_PATH}/ssmatch.c
- ${AVALON_SRC_PATH}/fixcharges.c - ${AVALON_COMMON_PATH}/rtutils.c
- ${AVALON_SRC_PATH}/struchk.c - ${AVALON_COMMON_PATH}/smi2mol.c
- ${AVALON_SRC_PATH}/reaccsio.c - ${AVALON_COMMON_PATH}/didepict.c
- ${AVALON_SRC_PATH}/hashcode.c - ${AVALON_COMMON_PATH}/pattern.c
- ${AVALON_COMMON_PATH}/canonizer.c
- ${AVALON_COMMON_PATH}/aacheck.c
- ${AVALON_COMMON_PATH}/fixcharges.c
- ${AVALON_PROGRAMS_PATH}/struchk.c
- ${AVALON_COMMON_PATH}/reaccsio.c
- ${AVALON_COMMON_PATH}/hashcode.c
- ) - )
- -
-# we need this to ensure that builds continue
-# to work on linux systems with older versions
-# of glibc when we're building with gcc-4.1.
-# Without this flag, we'll endup requiring
-# glibc 2.7.
-if(CMAKE_SYSTEM_NAME STREQUAL "Linux")
- add_definitions(-D_GNU_SOURCE=1)
-endif()
-
-if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-return-type -Wno-implicit-function-declaration -Wno-absolute-value -Wno-parentheses -Wno-logical-op-parentheses -Wno-dangling-else -Wno-format")
-endif()
-if(CMAKE_CXX_COMPILER_ID STREQUAL "GNU")
- set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-unused-result -Wformat-overflow=0 -Wformat=0 -Wno-format-security -Wno-implicit-function-declaration")
-endif()
-
-
-
-rdkit_library(avalon_clib ${avalon_clib_srcs}) -rdkit_library(avalon_clib ${avalon_clib_srcs})
-target_compile_definitions(avalon_clib PRIVATE RDKIT_AVALONLIB_BUILD) -target_compile_definitions(avalon_clib PRIVATE RDKIT_AVALONLIB_BUILD)
-if((MSVC AND RDK_INSTALL_DLLS_MSVC) OR ((NOT MSVC) AND WIN32)) -if((MSVC AND RDK_INSTALL_DLLS_MSVC) OR ((NOT MSVC) AND WIN32))
@ -159,11 +142,11 @@ index 3e31195fc..314ba35b5 100644
-endif() -endif()
- -
-include_directories(${CMAKE_CURRENT_SOURCE_DIR}) -include_directories(${CMAKE_CURRENT_SOURCE_DIR})
-include_directories(${AVALON_SRC_PATH}) -include_directories(${AVALON_INCLUDE_PATH})
- -
rdkit_library(AvalonLib AvalonTools.cpp SHARED rdkit_library(AvalonLib AvalonTools.cpp SHARED
- LINK_LIBRARIES avalon_clib SubstructMatch FileParsers SmilesParse GraphMol DataStructs ) - LINK_LIBRARIES avalon_clib SubstructMatch FileParsers SmilesParse GraphMol DataStructs )
+ LINK_LIBRARIES -lavalontoolkit SubstructMatch FileParsers SmilesParse GraphMol DataStructs ) + LINK_LIBRARIES -lavalon4rdkit SubstructMatch FileParsers SmilesParse GraphMol DataStructs )
target_compile_definitions(AvalonLib PRIVATE RDKIT_AVALONLIB_BUILD) target_compile_definitions(AvalonLib PRIVATE RDKIT_AVALONLIB_BUILD)
rdkit_headers(AvalonTools.h DEST GraphMol) rdkit_headers(AvalonTools.h DEST GraphMol)
rdkit_test(testAvalonLib1 test1.cpp rdkit_test(testAvalonLib1 test1.cpp
@ -278,7 +261,7 @@ diff --git a/External/RingFamilies/CMakeLists.txt b/External/RingFamilies/CMakeL
index 08dd1fe04..66ecd5834 100644 index 08dd1fe04..66ecd5834 100644
--- a/External/RingFamilies/CMakeLists.txt --- a/External/RingFamilies/CMakeLists.txt
+++ b/External/RingFamilies/CMakeLists.txt +++ b/External/RingFamilies/CMakeLists.txt
@@ -1,47 +1,6 @@ @@ -1,47 +1,7 @@
-add_custom_target(ringdecomposerlib_support ALL) -add_custom_target(ringdecomposerlib_support ALL)
- -
if(NOT RDK_USE_URF) if(NOT RDK_USE_URF)
@ -324,10 +307,9 @@ index 08dd1fe04..66ecd5834 100644
-rdkit_headers(${URFLIB_DIR}/RingDecomposerLib.h DEST "") -rdkit_headers(${URFLIB_DIR}/RingDecomposerLib.h DEST "")
- -
- -
-set(RDK_URF_LIBS RingDecomposerLib
- CACHE STRING "the libraries for the URF calculation" FORCE)
+rdkit_library(RingDecomposerLib dummy.cpp SHARED LINK_LIBRARIES -lRingDecomposerLib) +rdkit_library(RingDecomposerLib dummy.cpp SHARED LINK_LIBRARIES -lRingDecomposerLib)
+set(RDK_URF_LIBS RingDecomposerLib CACHE STRING "" FORCE) set(RDK_URF_LIBS RingDecomposerLib
CACHE STRING "the libraries for the URF calculation" FORCE)
diff --git a/External/RingFamilies/dummy.cpp b/External/RingFamilies/dummy.cpp diff --git a/External/RingFamilies/dummy.cpp b/External/RingFamilies/dummy.cpp
new file mode 100644 new file mode 100644
index 000000000..e69de29bb index 000000000..e69de29bb
@ -335,40 +317,60 @@ diff --git a/External/YAeHMOP/CMakeLists.txt b/External/YAeHMOP/CMakeLists.txt
index f1027b3bd..8bee2f910 100644 index f1027b3bd..8bee2f910 100644
--- a/External/YAeHMOP/CMakeLists.txt --- a/External/YAeHMOP/CMakeLists.txt
+++ b/External/YAeHMOP/CMakeLists.txt +++ b/External/YAeHMOP/CMakeLists.txt
@@ -18,32 +18,8 @@ endif() @@ -4,52 +4,7 @@ endif(NOT RDK_BUILD_YAEHMOP_SUPPORT)
include_directories( ${RDKit_ExternalDir}/YAeHMOP ) add_definitions(-DRDK_BUILD_YAEHMOP_SUPPORT)
-ExternalProject_Add(yaehmop_project -if(NOT DEFINED YAEHMOP_DIR)
- GIT_REPOSITORY https://github.com/greglandrum/yaehmop.git - set(YAEHMOP_DIR "${CMAKE_CURRENT_SOURCE_DIR}/yaehmop")
- GIT_TAG master -endif()
- UPDATE_COMMAND "" -
- PATCH_COMMAND "" -if(NOT EXISTS "${YAEHMOP_DIR}/tightbind/bind.h")
- PREFIX ${CMAKE_CURRENT_SOURCE_DIR} - set(RELEASE_NO "2023.03.1")
- SOURCE_DIR "${CMAKE_CURRENT_SOURCE_DIR}/yaehmop" - set(MD5 "e6450f13e02c54d024233b993c3c7ff6")
- SOURCE_SUBDIR "tightbind" - downloadAndCheckMD5("https://github.com/greglandrum/yaehmop/archive/refs/tags/v${RELEASE_NO}.tar.gz"
- CMAKE_ARGS -DUSE_BLAS_LAPACK=OFF -DCMAKE_INSTALL_PREFIX=${PROJECT_BINARY_DIR} -DCMAKE_C_FLAGS=${CMAKE_C_FLAGS} -DCMAKE_BUILD_TYPE=${CMAKE_BUILD_TYPE} - "${CMAKE_CURRENT_SOURCE_DIR}/yaehmop-${RELEASE_NO}.tar.gz" ${MD5})
- TEST_COMMAND "") - execute_process(COMMAND ${CMAKE_COMMAND} -E tar zxf
- ${CMAKE_CURRENT_SOURCE_DIR}/yaehmop-${RELEASE_NO}.tar.gz
- WORKING_DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR})
-
- file(RENAME "yaehmop-${RELEASE_NO}" "${YAEHMOP_DIR}")
-else()
- message("-- Found YAeHMOP source in ${YAEHMOP_DIR}")
-endif()
-
-set(yaehmop_INCLUDE_DIRS ${YAEHMOP_DIR}/..
- CACHE STRING "yaehmop Include File" FORCE)
-include_directories(${yaehmop_INCLUDE_DIRS})
-
-if(CMAKE_COMPILER_IS_GNUCXX AND NOT CYGWIN)
- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
-endif()
-if(CMAKE_CXX_COMPILER_ID STREQUAL "Clang")
- SET(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -fPIC")
-endif()
-
-# bring in the eHT code, but skip the targets (we'll get yaehmop_eht anyway because it's a dependency)
-add_subdirectory(yaehmop/tightbind EXCLUDE_FROM_ALL True)
-
-# set install dir for the yaehmop library:
-INSTALL(TARGETS yaehmop_eht EXPORT rdkit-targets
- DESTINATION ${RDKit_LibDir}/${RDKLIB_DEST}
- COMPONENT runtime )
-
-
- -
-include_directories(${PROJECT_BINARY_DIR}/include)
-link_directories(${PROJECT_BINARY_DIR}/lib)
-link_directories(${CMAKE_CURRENT_SOURCE_DIR}/src/yaehmop_project-build)
- -
-set(EHT_PARAM_FILE ${CMAKE_CURRENT_SOURCE_DIR}/yaehmop/tightbind/eht_parms.dat ) -set(EHT_PARAM_FILE ${CMAKE_CURRENT_SOURCE_DIR}/yaehmop/tightbind/eht_parms.dat )
-install(FILES ${EHT_PARAM_FILE} -install(FILES ${EHT_PARAM_FILE}
- DESTINATION ${RDKit_ShareDir}/Data - DESTINATION ${RDKit_ShareDir}/Data
- COMPONENT data) - COMPONENT data)
- -
-message("YAeHMOP include_dirs: ${PROJECT_BINARY_DIR}/include")
-message("YAeHMOP link_dirs: ${PROJECT_BINARY_DIR}/lib ${CMAKE_CURRENT_SOURCE_DIR}/src/yaehmop_project-build")
-
-rdkit_library(EHTLib EHTTools.cpp SHARED LINK_LIBRARIES yaehmop_eht GraphMol ) -rdkit_library(EHTLib EHTTools.cpp SHARED LINK_LIBRARIES yaehmop_eht GraphMol )
+rdkit_library(EHTLib EHTTools.cpp SHARED LINK_LIBRARIES -lyaehmop_eht GraphMol ) +rdkit_library(EHTLib EHTTools.cpp SHARED LINK_LIBRARIES -lyaehmop_eht GraphMol )
target_compile_definitions(EHTLib PRIVATE RDKIT_EHTLIB_BUILD) target_compile_definitions(EHTLib PRIVATE RDKIT_EHTLIB_BUILD)
-add_dependencies(EHTLib yaehmop_project)
rdkit_headers(EHTTools.h DEST GraphMol) rdkit_headers(EHTTools.h DEST GraphMol)
rdkit_catch_test(testEHTLib1 test1.cpp rdkit_catch_test(testEHTLib1 test1.cpp
LINK_LIBRARIES EHTLib FileParsers SmilesParse )
diff --git a/External/YAeHMOP/EHTTools.cpp b/External/YAeHMOP/EHTTools.cpp diff --git a/External/YAeHMOP/EHTTools.cpp b/External/YAeHMOP/EHTTools.cpp
index 7a229f51f..71033dc5c 100644 index 7a229f51f..71033dc5c 100644
--- a/External/YAeHMOP/EHTTools.cpp --- a/External/YAeHMOP/EHTTools.cpp
@ -382,3 +384,23 @@ index 7a229f51f..71033dc5c 100644
} }
namespace RDKit { namespace RDKit {
@@ -160,4 +160,4 @@ bool runMol(const ROMol &mol, EHTResults &results, int confId,
}
} // end of namespace EHTTools
-} // end of namespace RDKit
\ No newline at end of file
+} // end of namespace RDKit
diff --git a/External/YAeHMOP/Wrap/CMakeLists.txt b/External/YAeHMOP/Wrap/CMakeLists.txt
index 759a9f360..114d24532 100644
--- a/External/YAeHMOP/Wrap/CMakeLists.txt
+++ b/External/YAeHMOP/Wrap/CMakeLists.txt
@@ -4,6 +4,8 @@ rdkit_python_extension(rdEHTTools
DEST Chem
LINK_LIBRARIES
EHTLib )
+
+target_include_directories(rdEHTTools PRIVATE ${RDKit_ExternalDir}/YAeHMOP)
add_pytest(pyEHTTools
${CMAKE_CURRENT_SOURCE_DIR}/testEHTTools.py)