Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

{chem}[foss/2024a] RDKit v2024.03.5 #22166

Draft
wants to merge 8 commits into
base: develop
Choose a base branch
from

Conversation

ThomasHoffmann77
Copy link
Contributor

@ThomasHoffmann77 ThomasHoffmann77 commented Jan 16, 2025

Copy link

github-actions bot commented Jan 16, 2025

Updated software RDKit-2024.03.5-foss-2024a.eb

Diff against RDKit-2024.09.4-foss-2024a.eb

easybuild/easyconfigs/r/RDKit/RDKit-2024.09.4-foss-2024a.eb

diff --git a/easybuild/easyconfigs/r/RDKit/RDKit-2024.09.4-foss-2024a.eb b/easybuild/easyconfigs/r/RDKit/RDKit-2024.03.5-foss-2024a.eb
index bf1e4f931b..dcef23421c 100644
--- a/easybuild/easyconfigs/r/RDKit/RDKit-2024.09.4-foss-2024a.eb
+++ b/easybuild/easyconfigs/r/RDKit/RDKit-2024.03.5-foss-2024a.eb
@@ -1,7 +1,7 @@
 easyblock = 'CMakeMake'
 
 name = 'RDKit'
-version = '2024.09.4'
+version = '2024.03.5'
 
 homepage = 'https://www.rdkit.org'
 description = "RDKit is a collection of cheminformatics and machine-learning software written in C++ and Python."
@@ -10,9 +10,17 @@ toolchain = {'name': 'foss', 'version': '2024a'}
 
 source_urls = ['https://github.com/rdkit/rdkit/archive/']
 sources = ['Release_%s.tar.gz' % version.replace('.', '_')]
-
+patches = [
+    # fix failing testUFFAngleConstraints in test pyForceFieldConstraints
+    # by increasing number of Minimzers steps from default (200) to 500 in 
+    # order to allow convergence.
+    # see also: https://github.com/rdkit/rdkit/discussions/7588
+    'RDKit-2024.03.5_relax_pyForceFieldConstraints.patch'
+]
 checksums = [
-    {'Release_2024_09_4.tar.gz': 'a5e8da75aae7e88f3a50d8577f9027c971187492a93a15085f797fe6fef74ad2'},
+    {'Release_2024_03_5.tar.gz': 'b0870aec4dca12da5ee1100a769eaf4c71c3a6f99339f8aa72d30affc068a632'},
+    {'RDKit-2024.03.5_relax_pyForceFieldConstraints.patch':
+     'a988ea722ee88ec293ff079e8d64264ed1d58db4204668809760e29685c55195'},
 ]
 
 builddependencies = [
Diff against RDKit-2024.03.3-foss-2023a.eb

easybuild/easyconfigs/r/RDKit/RDKit-2024.03.3-foss-2023a.eb

diff --git a/easybuild/easyconfigs/r/RDKit/RDKit-2024.03.3-foss-2023a.eb b/easybuild/easyconfigs/r/RDKit/RDKit-2024.03.5-foss-2024a.eb
index 5af2865d60..dcef23421c 100644
--- a/easybuild/easyconfigs/r/RDKit/RDKit-2024.03.3-foss-2023a.eb
+++ b/easybuild/easyconfigs/r/RDKit/RDKit-2024.03.5-foss-2024a.eb
@@ -1,30 +1,42 @@
 easyblock = 'CMakeMake'
 
 name = 'RDKit'
-version = '2024.03.3'
+version = '2024.03.5'
 
 homepage = 'https://www.rdkit.org'
 description = "RDKit is a collection of cheminformatics and machine-learning software written in C++ and Python."
 
-toolchain = {'name': 'foss', 'version': '2023a'}
+toolchain = {'name': 'foss', 'version': '2024a'}
 
 source_urls = ['https://github.com/rdkit/rdkit/archive/']
 sources = ['Release_%s.tar.gz' % version.replace('.', '_')]
-checksums = ['52f79c6bf1d446cdb5c86a35de655d96bad0c52a5f4ecbe15f08eaf334e6f76a']
+patches = [
+    # fix failing testUFFAngleConstraints in test pyForceFieldConstraints
+    # by increasing number of Minimzers steps from default (200) to 500 in 
+    # order to allow convergence.
+    # see also: https://github.com/rdkit/rdkit/discussions/7588
+    'RDKit-2024.03.5_relax_pyForceFieldConstraints.patch'
+]
+checksums = [
+    {'Release_2024_03_5.tar.gz': 'b0870aec4dca12da5ee1100a769eaf4c71c3a6f99339f8aa72d30affc068a632'},
+    {'RDKit-2024.03.5_relax_pyForceFieldConstraints.patch':
+     'a988ea722ee88ec293ff079e8d64264ed1d58db4204668809760e29685c55195'},
+]
 
 builddependencies = [
-    ('CMake', '3.26.3'),
+    ('CMake', '3.29.3'),
     ('Eigen', '3.4.0'),
-    ('pkgconf', '1.9.5'),
+    ('pkgconf', '2.2.0'),
 ]
 dependencies = [
-    ('Python', '3.11.3'),
-    ('SciPy-bundle', '2023.07'),
-    ('SQLite', '3.42.0'),
-    ('matplotlib', '3.7.2'),
-    ('Pillow', '10.0.0'),
-    ('Boost.Python', '1.82.0'),
-    ('cairo', '1.17.8'),
+    ('Python', '3.12.3'),
+    ('SciPy-bundle', '2024.05'),
+    ('SQLite', '3.45.3'),
+    ('matplotlib', '3.9.2'),
+    ('Pillow', '10.4.0'),
+    ('Boost.Python-NumPy', '1.85.0'),
+    ('cairo', '1.18.0'),
+    ('Catch2', '3.8.0'),
 ]
 
 separate_build_dir = True
@@ -33,22 +45,28 @@ configopts = "-DPy_ENABLE_SHARED=1 -DRDK_INSTALL_STATIC_LIBS=OFF -DRDK_INSTALL_I
 configopts += "-DRDK_BUILD_INCHI_SUPPORT=ON "
 configopts += "-DBOOST_ROOT=$EBROOTBOOST"
 
+_src_dir = '%%(builddir)s/rdkit-Release_%s' % version.replace('.', '_')
+
 # ingnore failing test pythonSourceTests - from . import rdBase failing
-prebuildopts = "sed -i '22d' %(builddir)s/rdkit-Release_2024_03_3/rdkit/CMakeLists.txt && "
-# ignore failing testUFFAngleConstraints
-# https://github.com/rdkit/rdkit/discussions/7588
-prebuildopts += "sed -i 's/def testUFFAngleConstraints(self):/def ignore_testUFFAngleConstraints(self):/' "
-prebuildopts += "%(builddir)s/rdkit-Release_2024_03_3/Code/ForceField/Wrap/testConstraints.py && "
+prebuildopts = "sed -i '22d' %s/rdkit/CMakeLists.txt && " % _src_dir
 
 # merge source directory into build directory in order to run the tests
-buildopts = '&& cp -RT %(builddir)s/%(namelower)s-*/ ./ && '
-buildopts += 'export RDBASE=$PWD && export PYTHONPATH=$PWD:$PYTHONPATH && '
+buildopts = '&& cp -RT %(builddir)s/%(namelower)s-*/ ./  '
 
 # Specify path for libraries so that they are found during the tests when the module is built with --rpath flag.
-buildopts += 'export LD_LIBRARY_PATH=%(builddir)s/easybuild_obj/lib:${LD_LIBRARY_PATH} && '
-
-# 'ctest' allows to pass additional arguments opposed to 'make test'
-buildopts += 'ctest --output-on-failure'
+pretestopts = 'export LD_LIBRARY_PATH=%(builddir)s/easybuild_obj/lib:${LD_LIBRARY_PATH} &&'
+pretestopts += 'export RDBASE=$PWD && '
+pretestopts += 'export PYTHONPATH=$PWD:$PYTHONPATH &&'
+runtest = True
+
+# generate minimal dist-info:
+_distinfodir = '%(installdir)s/lib/python%(pyshortver)s/site-packages/rdkit-%(version)s.dist-info'
+postinstallcmds = [
+    'mkdir %s' % _distinfodir,
+    'touch %s/METADATA' % _distinfodir,
+    'echo "Name: %%(namelower)s" >> %s/METADATA' % _distinfodir,
+    'echo "Version: %%(version)s" >> %s/METADATA' % _distinfodir,
+]
 
 local_libs = ['Alignment', 'Catalogs', 'ChemicalFeatures', 'ChemReactions', 'ChemTransforms', 'coordgen', 'DataStructs',
               'Depictor', 'Descriptors', 'DistGeometry', 'DistGeomHelpers', 'EigenSolvers', 'FileParsers',
@@ -61,7 +79,10 @@ local_libs = ['Alignment', 'Catalogs', 'ChemicalFeatures', 'ChemReactions', 'Che
 
 sanity_check_paths = {
     'files': ['lib/libRDKit%s.%s' % (x, SHLIB_EXT) for x in local_libs],
-    'dirs': ['include/rdkit', 'lib/python%(pyshortver)s/site-packages/rdkit'],
+    'dirs': [
+        'include/rdkit', 'lib/python%(pyshortver)s/site-packages/rdkit',
+        'lib/python%(pyshortver)s/site-packages/rdkit-%(version)s.dist-info'
+    ],
 }
 
 sanity_check_commands = [
Diff against RDKit-2023.03.3-foss-2021a.eb

easybuild/easyconfigs/r/RDKit/RDKit-2023.03.3-foss-2021a.eb

diff --git a/easybuild/easyconfigs/r/RDKit/RDKit-2023.03.3-foss-2021a.eb b/easybuild/easyconfigs/r/RDKit/RDKit-2024.03.5-foss-2024a.eb
index c922272263..dcef23421c 100644
--- a/easybuild/easyconfigs/r/RDKit/RDKit-2023.03.3-foss-2021a.eb
+++ b/easybuild/easyconfigs/r/RDKit/RDKit-2024.03.5-foss-2024a.eb
@@ -1,58 +1,72 @@
 easyblock = 'CMakeMake'
 
 name = 'RDKit'
-version = '2023.03.3'
+version = '2024.03.5'
 
 homepage = 'https://www.rdkit.org'
 description = "RDKit is a collection of cheminformatics and machine-learning software written in C++ and Python."
 
-toolchain = {'name': 'foss', 'version': '2021a'}
-# avoid failing tests on skylake CPUs. comment out this line when building on CPUs that don't support AVX2
-# see also: https://github.com/rdkit/rdkit/issues/1674
-toolchainopts = {'optarch': 'mavx2', 'cstd': 'c++11'}
+toolchain = {'name': 'foss', 'version': '2024a'}
 
 source_urls = ['https://github.com/rdkit/rdkit/archive/']
 sources = ['Release_%s.tar.gz' % version.replace('.', '_')]
 patches = [
-    'RDKit-2021.03.4_skip-broken-test.patch',
+    # fix failing testUFFAngleConstraints in test pyForceFieldConstraints
+    # by increasing number of Minimzers steps from default (200) to 500 in 
+    # order to allow convergence.
+    # see also: https://github.com/rdkit/rdkit/discussions/7588
+    'RDKit-2024.03.5_relax_pyForceFieldConstraints.patch'
 ]
 checksums = [
-    {'Release_2023_03_3.tar.gz': 'bdbf9a2e6988526bfeb8c56ce3cdfe2998d60ac289078e2215374288185e8c8d'},
-    {'RDKit-2021.03.4_skip-broken-test.patch': '45869e01461b66e42c9305f5e8a65f696417e4777c2da60ef81d1e26e57d1b2e'},
+    {'Release_2024_03_5.tar.gz': 'b0870aec4dca12da5ee1100a769eaf4c71c3a6f99339f8aa72d30affc068a632'},
+    {'RDKit-2024.03.5_relax_pyForceFieldConstraints.patch':
+     'a988ea722ee88ec293ff079e8d64264ed1d58db4204668809760e29685c55195'},
 ]
 
-# Dependencies varies from version to version
-# https://rdkit.readthedocs.io/en/latest/Install.html#installing-prerequisites-from-source
 builddependencies = [
-    ('CMake', '3.20.1'),
-    ('Eigen', '3.3.9'),
-    ('pkg-config', '0.29.2'),
+    ('CMake', '3.29.3'),
+    ('Eigen', '3.4.0'),
+    ('pkgconf', '2.2.0'),
 ]
 dependencies = [
-    ('Python', '3.9.5'),
-    ('SciPy-bundle', '2021.05'),
-    ('SQLite', '3.35.4'),
-    ('matplotlib', '3.4.2'),
-    ('Pillow', '8.2.0'),
-    ('Boost.Python', '1.76.0'),
-    ('cairo', '1.16.0'),
+    ('Python', '3.12.3'),
+    ('SciPy-bundle', '2024.05'),
+    ('SQLite', '3.45.3'),
+    ('matplotlib', '3.9.2'),
+    ('Pillow', '10.4.0'),
+    ('Boost.Python-NumPy', '1.85.0'),
+    ('cairo', '1.18.0'),
+    ('Catch2', '3.8.0'),
 ]
 
 separate_build_dir = True
 
 configopts = "-DPy_ENABLE_SHARED=1 -DRDK_INSTALL_STATIC_LIBS=OFF -DRDK_INSTALL_INTREE=OFF "
 configopts += "-DRDK_BUILD_INCHI_SUPPORT=ON "
-configopts += "-DBoost_INCLUDE_DIR=$EBROOTBOOST/include -DBoost_LIBRARY_DIR_RELEASE=$EBROOTBOOST/lib "
+configopts += "-DBOOST_ROOT=$EBROOTBOOST"
+
+_src_dir = '%%(builddir)s/rdkit-Release_%s' % version.replace('.', '_')
+
+# ingnore failing test pythonSourceTests - from . import rdBase failing
+prebuildopts = "sed -i '22d' %s/rdkit/CMakeLists.txt && " % _src_dir
 
 # merge source directory into build directory in order to run the tests
-buildopts = '&& cp -RT %(builddir)s/%(namelower)s-*/ ./ && '
-buildopts += 'export RDBASE=$PWD && export PYTHONPATH=$PWD:$PYTHONPATH && '
+buildopts = '&& cp -RT %(builddir)s/%(namelower)s-*/ ./  '
 
 # Specify path for libraries so that they are found during the tests when the module is built with --rpath flag.
-buildopts += 'export LD_LIBRARY_PATH=%(builddir)s/easybuild_obj/lib:${LD_LIBRARY_PATH} && '
+pretestopts = 'export LD_LIBRARY_PATH=%(builddir)s/easybuild_obj/lib:${LD_LIBRARY_PATH} &&'
+pretestopts += 'export RDBASE=$PWD && '
+pretestopts += 'export PYTHONPATH=$PWD:$PYTHONPATH &&'
+runtest = True
 
-# 'ctest' allows to pass additional arguments opposed to 'make test'
-buildopts += 'ctest --output-on-failure'
+# generate minimal dist-info:
+_distinfodir = '%(installdir)s/lib/python%(pyshortver)s/site-packages/rdkit-%(version)s.dist-info'
+postinstallcmds = [
+    'mkdir %s' % _distinfodir,
+    'touch %s/METADATA' % _distinfodir,
+    'echo "Name: %%(namelower)s" >> %s/METADATA' % _distinfodir,
+    'echo "Version: %%(version)s" >> %s/METADATA' % _distinfodir,
+]
 
 local_libs = ['Alignment', 'Catalogs', 'ChemicalFeatures', 'ChemReactions', 'ChemTransforms', 'coordgen', 'DataStructs',
               'Depictor', 'Descriptors', 'DistGeometry', 'DistGeomHelpers', 'EigenSolvers', 'FileParsers',
@@ -65,7 +79,10 @@ local_libs = ['Alignment', 'Catalogs', 'ChemicalFeatures', 'ChemReactions', 'Che
 
 sanity_check_paths = {
     'files': ['lib/libRDKit%s.%s' % (x, SHLIB_EXT) for x in local_libs],
-    'dirs': ['include/rdkit', 'lib/python%(pyshortver)s/site-packages/rdkit'],
+    'dirs': [
+        'include/rdkit', 'lib/python%(pyshortver)s/site-packages/rdkit',
+        'lib/python%(pyshortver)s/site-packages/rdkit-%(version)s.dist-info'
+    ],
 }
 
 sanity_check_commands = [

Updated software RDKit-2024.09.4-foss-2024a.eb

Diff against RDKit-2024.03.5-foss-2024a.eb

easybuild/easyconfigs/r/RDKit/RDKit-2024.03.5-foss-2024a.eb

diff --git a/easybuild/easyconfigs/r/RDKit/RDKit-2024.03.5-foss-2024a.eb b/easybuild/easyconfigs/r/RDKit/RDKit-2024.09.4-foss-2024a.eb
index dcef23421c..bf1e4f931b 100644
--- a/easybuild/easyconfigs/r/RDKit/RDKit-2024.03.5-foss-2024a.eb
+++ b/easybuild/easyconfigs/r/RDKit/RDKit-2024.09.4-foss-2024a.eb
@@ -1,7 +1,7 @@
 easyblock = 'CMakeMake'
 
 name = 'RDKit'
-version = '2024.03.5'
+version = '2024.09.4'
 
 homepage = 'https://www.rdkit.org'
 description = "RDKit is a collection of cheminformatics and machine-learning software written in C++ and Python."
@@ -10,17 +10,9 @@ toolchain = {'name': 'foss', 'version': '2024a'}
 
 source_urls = ['https://github.com/rdkit/rdkit/archive/']
 sources = ['Release_%s.tar.gz' % version.replace('.', '_')]
-patches = [
-    # fix failing testUFFAngleConstraints in test pyForceFieldConstraints
-    # by increasing number of Minimzers steps from default (200) to 500 in 
-    # order to allow convergence.
-    # see also: https://github.com/rdkit/rdkit/discussions/7588
-    'RDKit-2024.03.5_relax_pyForceFieldConstraints.patch'
-]
+
 checksums = [
-    {'Release_2024_03_5.tar.gz': 'b0870aec4dca12da5ee1100a769eaf4c71c3a6f99339f8aa72d30affc068a632'},
-    {'RDKit-2024.03.5_relax_pyForceFieldConstraints.patch':
-     'a988ea722ee88ec293ff079e8d64264ed1d58db4204668809760e29685c55195'},
+    {'Release_2024_09_4.tar.gz': 'a5e8da75aae7e88f3a50d8577f9027c971187492a93a15085f797fe6fef74ad2'},
 ]
 
 builddependencies = [
Diff against RDKit-2024.03.3-foss-2023a.eb

easybuild/easyconfigs/r/RDKit/RDKit-2024.03.3-foss-2023a.eb

diff --git a/easybuild/easyconfigs/r/RDKit/RDKit-2024.03.3-foss-2023a.eb b/easybuild/easyconfigs/r/RDKit/RDKit-2024.09.4-foss-2024a.eb
index 5af2865d60..bf1e4f931b 100644
--- a/easybuild/easyconfigs/r/RDKit/RDKit-2024.03.3-foss-2023a.eb
+++ b/easybuild/easyconfigs/r/RDKit/RDKit-2024.09.4-foss-2024a.eb
@@ -1,30 +1,34 @@
 easyblock = 'CMakeMake'
 
 name = 'RDKit'
-version = '2024.03.3'
+version = '2024.09.4'
 
 homepage = 'https://www.rdkit.org'
 description = "RDKit is a collection of cheminformatics and machine-learning software written in C++ and Python."
 
-toolchain = {'name': 'foss', 'version': '2023a'}
+toolchain = {'name': 'foss', 'version': '2024a'}
 
 source_urls = ['https://github.com/rdkit/rdkit/archive/']
 sources = ['Release_%s.tar.gz' % version.replace('.', '_')]
-checksums = ['52f79c6bf1d446cdb5c86a35de655d96bad0c52a5f4ecbe15f08eaf334e6f76a']
+
+checksums = [
+    {'Release_2024_09_4.tar.gz': 'a5e8da75aae7e88f3a50d8577f9027c971187492a93a15085f797fe6fef74ad2'},
+]
 
 builddependencies = [
-    ('CMake', '3.26.3'),
+    ('CMake', '3.29.3'),
     ('Eigen', '3.4.0'),
-    ('pkgconf', '1.9.5'),
+    ('pkgconf', '2.2.0'),
 ]
 dependencies = [
-    ('Python', '3.11.3'),
-    ('SciPy-bundle', '2023.07'),
-    ('SQLite', '3.42.0'),
-    ('matplotlib', '3.7.2'),
-    ('Pillow', '10.0.0'),
-    ('Boost.Python', '1.82.0'),
-    ('cairo', '1.17.8'),
+    ('Python', '3.12.3'),
+    ('SciPy-bundle', '2024.05'),
+    ('SQLite', '3.45.3'),
+    ('matplotlib', '3.9.2'),
+    ('Pillow', '10.4.0'),
+    ('Boost.Python-NumPy', '1.85.0'),
+    ('cairo', '1.18.0'),
+    ('Catch2', '3.8.0'),
 ]
 
 separate_build_dir = True
@@ -33,22 +37,28 @@ configopts = "-DPy_ENABLE_SHARED=1 -DRDK_INSTALL_STATIC_LIBS=OFF -DRDK_INSTALL_I
 configopts += "-DRDK_BUILD_INCHI_SUPPORT=ON "
 configopts += "-DBOOST_ROOT=$EBROOTBOOST"
 
+_src_dir = '%%(builddir)s/rdkit-Release_%s' % version.replace('.', '_')
+
 # ingnore failing test pythonSourceTests - from . import rdBase failing
-prebuildopts = "sed -i '22d' %(builddir)s/rdkit-Release_2024_03_3/rdkit/CMakeLists.txt && "
-# ignore failing testUFFAngleConstraints
-# https://github.com/rdkit/rdkit/discussions/7588
-prebuildopts += "sed -i 's/def testUFFAngleConstraints(self):/def ignore_testUFFAngleConstraints(self):/' "
-prebuildopts += "%(builddir)s/rdkit-Release_2024_03_3/Code/ForceField/Wrap/testConstraints.py && "
+prebuildopts = "sed -i '22d' %s/rdkit/CMakeLists.txt && " % _src_dir
 
 # merge source directory into build directory in order to run the tests
-buildopts = '&& cp -RT %(builddir)s/%(namelower)s-*/ ./ && '
-buildopts += 'export RDBASE=$PWD && export PYTHONPATH=$PWD:$PYTHONPATH && '
+buildopts = '&& cp -RT %(builddir)s/%(namelower)s-*/ ./  '
 
 # Specify path for libraries so that they are found during the tests when the module is built with --rpath flag.
-buildopts += 'export LD_LIBRARY_PATH=%(builddir)s/easybuild_obj/lib:${LD_LIBRARY_PATH} && '
-
-# 'ctest' allows to pass additional arguments opposed to 'make test'
-buildopts += 'ctest --output-on-failure'
+pretestopts = 'export LD_LIBRARY_PATH=%(builddir)s/easybuild_obj/lib:${LD_LIBRARY_PATH} &&'
+pretestopts += 'export RDBASE=$PWD && '
+pretestopts += 'export PYTHONPATH=$PWD:$PYTHONPATH &&'
+runtest = True
+
+# generate minimal dist-info:
+_distinfodir = '%(installdir)s/lib/python%(pyshortver)s/site-packages/rdkit-%(version)s.dist-info'
+postinstallcmds = [
+    'mkdir %s' % _distinfodir,
+    'touch %s/METADATA' % _distinfodir,
+    'echo "Name: %%(namelower)s" >> %s/METADATA' % _distinfodir,
+    'echo "Version: %%(version)s" >> %s/METADATA' % _distinfodir,
+]
 
 local_libs = ['Alignment', 'Catalogs', 'ChemicalFeatures', 'ChemReactions', 'ChemTransforms', 'coordgen', 'DataStructs',
               'Depictor', 'Descriptors', 'DistGeometry', 'DistGeomHelpers', 'EigenSolvers', 'FileParsers',
@@ -61,7 +71,10 @@ local_libs = ['Alignment', 'Catalogs', 'ChemicalFeatures', 'ChemReactions', 'Che
 
 sanity_check_paths = {
     'files': ['lib/libRDKit%s.%s' % (x, SHLIB_EXT) for x in local_libs],
-    'dirs': ['include/rdkit', 'lib/python%(pyshortver)s/site-packages/rdkit'],
+    'dirs': [
+        'include/rdkit', 'lib/python%(pyshortver)s/site-packages/rdkit',
+        'lib/python%(pyshortver)s/site-packages/rdkit-%(version)s.dist-info'
+    ],
 }
 
 sanity_check_commands = [
Diff against RDKit-2023.03.3-foss-2021a.eb

easybuild/easyconfigs/r/RDKit/RDKit-2023.03.3-foss-2021a.eb

diff --git a/easybuild/easyconfigs/r/RDKit/RDKit-2023.03.3-foss-2021a.eb b/easybuild/easyconfigs/r/RDKit/RDKit-2024.09.4-foss-2024a.eb
index c922272263..bf1e4f931b 100644
--- a/easybuild/easyconfigs/r/RDKit/RDKit-2023.03.3-foss-2021a.eb
+++ b/easybuild/easyconfigs/r/RDKit/RDKit-2024.09.4-foss-2024a.eb
@@ -1,58 +1,64 @@
 easyblock = 'CMakeMake'
 
 name = 'RDKit'
-version = '2023.03.3'
+version = '2024.09.4'
 
 homepage = 'https://www.rdkit.org'
 description = "RDKit is a collection of cheminformatics and machine-learning software written in C++ and Python."
 
-toolchain = {'name': 'foss', 'version': '2021a'}
-# avoid failing tests on skylake CPUs. comment out this line when building on CPUs that don't support AVX2
-# see also: https://github.com/rdkit/rdkit/issues/1674
-toolchainopts = {'optarch': 'mavx2', 'cstd': 'c++11'}
+toolchain = {'name': 'foss', 'version': '2024a'}
 
 source_urls = ['https://github.com/rdkit/rdkit/archive/']
 sources = ['Release_%s.tar.gz' % version.replace('.', '_')]
-patches = [
-    'RDKit-2021.03.4_skip-broken-test.patch',
-]
+
 checksums = [
-    {'Release_2023_03_3.tar.gz': 'bdbf9a2e6988526bfeb8c56ce3cdfe2998d60ac289078e2215374288185e8c8d'},
-    {'RDKit-2021.03.4_skip-broken-test.patch': '45869e01461b66e42c9305f5e8a65f696417e4777c2da60ef81d1e26e57d1b2e'},
+    {'Release_2024_09_4.tar.gz': 'a5e8da75aae7e88f3a50d8577f9027c971187492a93a15085f797fe6fef74ad2'},
 ]
 
-# Dependencies varies from version to version
-# https://rdkit.readthedocs.io/en/latest/Install.html#installing-prerequisites-from-source
 builddependencies = [
-    ('CMake', '3.20.1'),
-    ('Eigen', '3.3.9'),
-    ('pkg-config', '0.29.2'),
+    ('CMake', '3.29.3'),
+    ('Eigen', '3.4.0'),
+    ('pkgconf', '2.2.0'),
 ]
 dependencies = [
-    ('Python', '3.9.5'),
-    ('SciPy-bundle', '2021.05'),
-    ('SQLite', '3.35.4'),
-    ('matplotlib', '3.4.2'),
-    ('Pillow', '8.2.0'),
-    ('Boost.Python', '1.76.0'),
-    ('cairo', '1.16.0'),
+    ('Python', '3.12.3'),
+    ('SciPy-bundle', '2024.05'),
+    ('SQLite', '3.45.3'),
+    ('matplotlib', '3.9.2'),
+    ('Pillow', '10.4.0'),
+    ('Boost.Python-NumPy', '1.85.0'),
+    ('cairo', '1.18.0'),
+    ('Catch2', '3.8.0'),
 ]
 
 separate_build_dir = True
 
 configopts = "-DPy_ENABLE_SHARED=1 -DRDK_INSTALL_STATIC_LIBS=OFF -DRDK_INSTALL_INTREE=OFF "
 configopts += "-DRDK_BUILD_INCHI_SUPPORT=ON "
-configopts += "-DBoost_INCLUDE_DIR=$EBROOTBOOST/include -DBoost_LIBRARY_DIR_RELEASE=$EBROOTBOOST/lib "
+configopts += "-DBOOST_ROOT=$EBROOTBOOST"
+
+_src_dir = '%%(builddir)s/rdkit-Release_%s' % version.replace('.', '_')
+
+# ingnore failing test pythonSourceTests - from . import rdBase failing
+prebuildopts = "sed -i '22d' %s/rdkit/CMakeLists.txt && " % _src_dir
 
 # merge source directory into build directory in order to run the tests
-buildopts = '&& cp -RT %(builddir)s/%(namelower)s-*/ ./ && '
-buildopts += 'export RDBASE=$PWD && export PYTHONPATH=$PWD:$PYTHONPATH && '
+buildopts = '&& cp -RT %(builddir)s/%(namelower)s-*/ ./  '
 
 # Specify path for libraries so that they are found during the tests when the module is built with --rpath flag.
-buildopts += 'export LD_LIBRARY_PATH=%(builddir)s/easybuild_obj/lib:${LD_LIBRARY_PATH} && '
+pretestopts = 'export LD_LIBRARY_PATH=%(builddir)s/easybuild_obj/lib:${LD_LIBRARY_PATH} &&'
+pretestopts += 'export RDBASE=$PWD && '
+pretestopts += 'export PYTHONPATH=$PWD:$PYTHONPATH &&'
+runtest = True
 
-# 'ctest' allows to pass additional arguments opposed to 'make test'
-buildopts += 'ctest --output-on-failure'
+# generate minimal dist-info:
+_distinfodir = '%(installdir)s/lib/python%(pyshortver)s/site-packages/rdkit-%(version)s.dist-info'
+postinstallcmds = [
+    'mkdir %s' % _distinfodir,
+    'touch %s/METADATA' % _distinfodir,
+    'echo "Name: %%(namelower)s" >> %s/METADATA' % _distinfodir,
+    'echo "Version: %%(version)s" >> %s/METADATA' % _distinfodir,
+]
 
 local_libs = ['Alignment', 'Catalogs', 'ChemicalFeatures', 'ChemReactions', 'ChemTransforms', 'coordgen', 'DataStructs',
               'Depictor', 'Descriptors', 'DistGeometry', 'DistGeomHelpers', 'EigenSolvers', 'FileParsers',
@@ -65,7 +71,10 @@ local_libs = ['Alignment', 'Catalogs', 'ChemicalFeatures', 'ChemReactions', 'Che
 
 sanity_check_paths = {
     'files': ['lib/libRDKit%s.%s' % (x, SHLIB_EXT) for x in local_libs],
-    'dirs': ['include/rdkit', 'lib/python%(pyshortver)s/site-packages/rdkit'],
+    'dirs': [
+        'include/rdkit', 'lib/python%(pyshortver)s/site-packages/rdkit',
+        'lib/python%(pyshortver)s/site-packages/rdkit-%(version)s.dist-info'
+    ],
 }
 
 sanity_check_commands = [

@ThomasHoffmann77
Copy link
Contributor Author

ThomasHoffmann77 commented Jan 27, 2025

TODO: Failing tests on Genoa and Turin:
distGeomHelpersCatch
pyDistGeomHelpers
-> draft

@ThomasHoffmann77 ThomasHoffmann77 marked this pull request as draft January 27, 2025 18:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants