aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYuri Victorovich <yuri@FreeBSD.org>2026-10-02 21:44:12 +0000
committerYuri Victorovich <yuri@FreeBSD.org>2026-10-02 21:52:07 +0000
commitbba96c42a29fc0191b9513dde1e0ff90f8ddcc5b (patch)
tree6ad669e25d50c20d900df2827384d56949bcf8a1
parent01d50ef76d862f37ca03ebb473fe5bfcb9f90cff (diff)
science/rdkit: update 2025_09_2 → 2026.03.6
also: - fixed many tests and upstreamed fixes (their testsuite is in a disarray, we shouldn't really be fixing people's tests, but anyways) - discovered and fixed wrong clang detection in the code, reported upstream - fixed wrongfully excluded code that caused plist issues - fixed compiler crash on 16 (by using llvm:23)
-rw-r--r--science/py-MDAnalysis/Makefile2
-rw-r--r--science/py-qcengine/Makefile2
-rw-r--r--science/rdkit/Makefile37
-rw-r--r--science/rdkit/distinfo36
-rw-r--r--science/rdkit/files/patch-CMakeLists.txt58
-rw-r--r--science/rdkit/files/patch-Code_GraphMol_Atom.cpp21
-rw-r--r--science/rdkit/files/patch-Code_GraphMol_CMakeLists.txt14
-rw-r--r--science/rdkit/files/patch-Code_GraphMol_ChemReactions_Reaction.cpp27
-rw-r--r--science/rdkit/files/patch-Code_GraphMol_ChemReactions_Reaction.h17
-rw-r--r--science/rdkit/files/patch-Code_GraphMol_ChemReactions_ReactionParser.h17
-rw-r--r--science/rdkit/files/patch-Code_GraphMol_Conformer.cpp17
-rw-r--r--science/rdkit/files/patch-Code_GraphMol_Conformer.h17
-rw-r--r--science/rdkit/files/patch-Code_GraphMol_Depictor_RDDepictor.cpp17
-rw-r--r--science/rdkit/files/patch-Code_GraphMol_Depictor_RDDepictor.h17
-rw-r--r--science/rdkit/files/patch-Code_GraphMol_SanitException.h53
-rw-r--r--science/rdkit/files/patch-Code_RDGeneral_BadFileException.h17
-rw-r--r--science/rdkit/files/patch-Code_RDGeneral_CMakeLists.txt2
-rw-r--r--science/rdkit/files/patch-Code_RDGeneral_Exceptions.h35
-rw-r--r--science/rdkit/files/patch-Code_RDGeneral_FileParseException.h17
-rw-r--r--science/rdkit/files/patch-Code_RDGeneral_Invariant.cpp15
-rw-r--r--science/rdkit/files/patch-Code_RDGeneral_Invariant.h17
-rw-r--r--science/rdkit/files/patch-Code_RDGeneral_RDGeneralExceptions.cpp21
-rw-r--r--science/rdkit/pkg-plist17
-rw-r--r--science/votca/Makefile2
-rw-r--r--textproc/py-docling-metrics-chemistry/Makefile1
25 files changed, 435 insertions, 61 deletions
diff --git a/science/py-MDAnalysis/Makefile b/science/py-MDAnalysis/Makefile
index 81b0482018d6..faf8d18e360e 100644
--- a/science/py-MDAnalysis/Makefile
+++ b/science/py-MDAnalysis/Makefile
@@ -1,6 +1,6 @@
PORTNAME= MDAnalysis
DISTVERSION= 2.10.0
-PORTREVISION= 2
+PORTREVISION= 3
CATEGORIES= science python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/science/py-qcengine/Makefile b/science/py-qcengine/Makefile
index cd280060110e..e8e383ecf7f8 100644
--- a/science/py-qcengine/Makefile
+++ b/science/py-qcengine/Makefile
@@ -1,6 +1,6 @@
PORTNAME= qcengine
DISTVERSION= 0.51.0
-PORTREVISION= 1
+PORTREVISION= 2
CATEGORIES= science python # chemistry
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}
diff --git a/science/rdkit/Makefile b/science/rdkit/Makefile
index 21b4790500fe..fc5ef4a16f62 100644
--- a/science/rdkit/Makefile
+++ b/science/rdkit/Makefile
@@ -1,17 +1,14 @@
PORTNAME= rdkit
DISTVERSIONPREFIX= Release_
-DISTVERSION= 2025_09_2
-PORTREVISION= 4
+DISTVERSION= 2026_03_6
CATEGORIES= science
MASTER_SITES= https://github.com/schrodinger/maeparser/archive/:maeparser \
https://github.com/schrodinger/coordgenlibs/archive/:coordgen \
https://codeload.github.com/Glysade/chemdraw/tar.gz/refs/tags/:chemdraw \
- https://github.com/Tencent/rapidjson/archive/:rapidjson \
LOCAL/yuri/:font # unstable, changing font file: https://fonts.google.com/download?family=Comic%20Neue&dummy=/:font
DISTFILES= v${MAEPARSER_VERSION}.tar.gz:maeparser \
v${COORDGEN_VERSION}.tar.gz:coordgen \
v${CHEMDRAW_VERSION}:chemdraw \
- v${RAPIDJSON_VERSION}.tar.gz:rapidjson \
ComicNeue-Regular.ttf:font
DIST_SUBDIR= ${PORTNAME}-${PORTVERSION}
EXTRACT_ONLY= ${DISTFILES:C/:.*//:Nv*:N*.ttf}
@@ -24,15 +21,13 @@ WWW= https://www.rdkit.org/ \
LICENSE= BSD3CLAUSE
LICENSE_FILE= ${WRKSRC}/license.txt
-BROKEN_FreeBSD_16_amd64= clang crashes, see https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=272652
-BROKEN_FreeBSD_16_aarch64= clang crashes, see https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=272652
-
BUILD_DEPENDS= catch>0:devel/catch \
flex:textproc/flex
LIB_DEPENDS= libboost_thread.so:devel/boost-libs \
+ libexpat.so:textproc/expat2 \
libfreetype.so:print/freetype2
-USES= bison:build cmake:testing compiler:c++11-lang eigen:3 gnome pkgconfig python
+USES= bison:build cmake:testing compiler:c++11-lang eigen:3 gnome llvm:23 pkgconfig python # llvm:23 is needed to avoid compiler crash on 16 with the base compiler, just use it for rdkit for now
USE_GNOME= cairo
USE_LDCONFIG= yes
@@ -43,8 +38,7 @@ GH_TUPLE+= ncbi:pubchem-align3d:daefab3:align3d/External/pubchem_shape/pubchem-a
MAEPARSER_VERSION= 1.3.3
COORDGEN_VERSION= 3.0.2
-CHEMDRAW_VERSION= 1.0.11
-RAPIDJSON_VERSION= 1.1.0
+CHEMDRAW_VERSION= 1.0.14
CMAKE_ON= RDK_BUILD_CAIRO_SUPPORT
CMAKE_OFF= RDK_INSTALL_INTREE RDK_USE_FLEXBISON \
@@ -98,8 +92,6 @@ PLIST_SUB+= LITTLE_ENDIAN=""
.endif
post-extract:
- #@${MKDIR} ${WRKSRC}/External/rapidjson-1.1.0
- #@cd ${WRKSRC}/External/rapidjson-1.1.0 && ${LN} -s ${LOCALBASE}/include/rapidjson include
@cd ${WRKSRC}/Data/Fonts && ${CP} ${DISTDIR}/${DIST_SUBDIR}/ComicNeue-Regular.ttf .
@${CP} ${WRKSRC}/better_enums/enum.h ${WRKSRC}/Code/RDGeneral
@@ -114,17 +106,10 @@ post-patch:
@${REINPLACE_CMD} \
-e 's|https://codeload.github.com/Glysade/chemdraw/tar.gz/refs/tags/|file://${DISTDIR}/${DIST_SUBDIR}/|g' \
${WRKSRC}/External/ChemDraw/CMakeLists.txt
- @${REINPLACE_CMD} \
- -e 's|https://github.com/Tencent/rapidjson/archive/|file://${DISTDIR}/${DIST_SUBDIR}/|g' \
- ${WRKSRC}/Code/GraphMol/MolInterchange/CMakeLists.txt
-
-pre-build:
- @${REINPLACE_CMD} \
- -e 's|const SizeType length;|SizeType length;|g' \
- ${WRKSRC}/External/rapidjson/rapidjson-1.1.0/include/rapidjson/document.h
post-install:
- @${RM} -f ${STAGEDIR}${PREFIX}/lib/libexpat.a
+ @${RM} -f ${STAGEDIR}${PREFIX}/lib/libexpat.a \
+ ${STAGEDIR}${PREFIX}/lib/libexpatpp.a
post-install-PGSQL-on:
@${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/postgresql/rdkit.so
@@ -132,5 +117,15 @@ post-install-PGSQL-on:
# many tests fail, see https://github.com/rdkit/rdkit/issues/7779
# tests as of 2025_09_1: 65% tests passed, 24 tests failed out of 68
# tests as of 2025_09_2: 63% tests passed, 26 tests failed out of 70
+# tests as of 2026_03_6: 89% tests passed, 8 tests failed out of 73
+
+# RDKit has a lot of issues with tests - many typeinfo objects are
+# duplicated in different shared libraries which causes mis-matches
+# in exception propagation.
+# We fixed a lot of tests, still 8 tests are failing, but they are not critical and can be ignored for now.
+# All patches related to tests are upstreamed: https://github.com/rdkit/rdkit/pull/9665
+# These fixes increase tests pass rate from 65% to 89%.
+
+# remaining test failures reported here: https://github.com/rdkit/rdkit/issues/9666
.include <bsd.port.mk>
diff --git a/science/rdkit/distinfo b/science/rdkit/distinfo
index 2dd40d607202..ea1b216a3048 100644
--- a/science/rdkit/distinfo
+++ b/science/rdkit/distinfo
@@ -1,19 +1,17 @@
-TIMESTAMP = 1762809861
-SHA256 (rdkit-2025.09.2/v1.3.3.tar.gz) = 78e7571a779ea4952e752ecef57c62fb26463947e29ef7f4b31b11988d88ca07
-SIZE (rdkit-2025.09.2/v1.3.3.tar.gz) = 39896
-SHA256 (rdkit-2025.09.2/v3.0.2.tar.gz) = f67697434f7fec03bca150a6d84ea0e8409f6ec49d5aab43badc5833098ff4e3
-SIZE (rdkit-2025.09.2/v3.0.2.tar.gz) = 166817
-SHA256 (rdkit-2025.09.2/v1.0.11) = 405869fc8b3f73395047bc7c54e1da62ef66c08d48bd71af66e47ec9cbe86814
-SIZE (rdkit-2025.09.2/v1.0.11) = 1043261
-SHA256 (rdkit-2025.09.2/v1.1.0.tar.gz) = bf7ced29704a1e696fbccf2a2b4ea068e7774fa37f6d7dd4039d0787f8bed98e
-SIZE (rdkit-2025.09.2/v1.1.0.tar.gz) = 1019402
-SHA256 (rdkit-2025.09.2/ComicNeue-Regular.ttf) = 4f0f67d826565ed55f91ca6512e5562d0f2a39030fc7208519354438bc783ff6
-SIZE (rdkit-2025.09.2/ComicNeue-Regular.ttf) = 21915
-SHA256 (rdkit-2025.09.2/rdkit-rdkit-Release_2025_09_2_GH0.tar.gz) = db3254e88ef17cac7bb8480e6da9d1e69dfe180c21774b11637d8a17b5a98fb9
-SIZE (rdkit-2025.09.2/rdkit-rdkit-Release_2025_09_2_GH0.tar.gz) = 82911180
-SHA256 (rdkit-2025.09.2/rareylab-RingDecomposerLib-v1.1.3_rdkit_GH0.tar.gz) = 944b5816712a48bbf88aa25d4300ce11871ddf6e971218eac08f90ed2192f715
-SIZE (rdkit-2025.09.2/rareylab-RingDecomposerLib-v1.1.3_rdkit_GH0.tar.gz) = 137931
-SHA256 (rdkit-2025.09.2/ncbi-pubchem-align3d-daefab3_GH0.tar.gz) = d7814a00a39f6a798bc1611d0f7bbd1abc91d754309527a9038a0dad42d848c0
-SIZE (rdkit-2025.09.2/ncbi-pubchem-align3d-daefab3_GH0.tar.gz) = 112376
-SHA256 (rdkit-2025.09.2/aantron-better-enums-520d8ee_GH0.tar.gz) = 29ef26e79eb489b3ef71f85f904f3f1173ffefc6c853219bee7520188805eca5
-SIZE (rdkit-2025.09.2/aantron-better-enums-520d8ee_GH0.tar.gz) = 136592
+TIMESTAMP = 1790937224
+SHA256 (rdkit-2026.03.6/v1.3.3.tar.gz) = 78e7571a779ea4952e752ecef57c62fb26463947e29ef7f4b31b11988d88ca07
+SIZE (rdkit-2026.03.6/v1.3.3.tar.gz) = 39896
+SHA256 (rdkit-2026.03.6/v3.0.2.tar.gz) = f67697434f7fec03bca150a6d84ea0e8409f6ec49d5aab43badc5833098ff4e3
+SIZE (rdkit-2026.03.6/v3.0.2.tar.gz) = 166817
+SHA256 (rdkit-2026.03.6/v1.0.14) = bedd75643b9bfaee1663fc41814370ac9329c8d0934e970179929cb355a82aff
+SIZE (rdkit-2026.03.6/v1.0.14) = 530904
+SHA256 (rdkit-2026.03.6/ComicNeue-Regular.ttf) = 4f0f67d826565ed55f91ca6512e5562d0f2a39030fc7208519354438bc783ff6
+SIZE (rdkit-2026.03.6/ComicNeue-Regular.ttf) = 21915
+SHA256 (rdkit-2026.03.6/rdkit-rdkit-Release_2026_03_6_GH0.tar.gz) = d4d20b3b140237084694518aab34fdba6929d44bd7f720bce69329516abef663
+SIZE (rdkit-2026.03.6/rdkit-rdkit-Release_2026_03_6_GH0.tar.gz) = 84044449
+SHA256 (rdkit-2026.03.6/rareylab-RingDecomposerLib-v1.1.3_rdkit_GH0.tar.gz) = 944b5816712a48bbf88aa25d4300ce11871ddf6e971218eac08f90ed2192f715
+SIZE (rdkit-2026.03.6/rareylab-RingDecomposerLib-v1.1.3_rdkit_GH0.tar.gz) = 137931
+SHA256 (rdkit-2026.03.6/ncbi-pubchem-align3d-daefab3_GH0.tar.gz) = d7814a00a39f6a798bc1611d0f7bbd1abc91d754309527a9038a0dad42d848c0
+SIZE (rdkit-2026.03.6/ncbi-pubchem-align3d-daefab3_GH0.tar.gz) = 112376
+SHA256 (rdkit-2026.03.6/aantron-better-enums-520d8ee_GH0.tar.gz) = 29ef26e79eb489b3ef71f85f904f3f1173ffefc6c853219bee7520188805eca5
+SIZE (rdkit-2026.03.6/aantron-better-enums-520d8ee_GH0.tar.gz) = 136592
diff --git a/science/rdkit/files/patch-CMakeLists.txt b/science/rdkit/files/patch-CMakeLists.txt
index 4d7146e3b2c3..aa0c37570a79 100644
--- a/science/rdkit/files/patch-CMakeLists.txt
+++ b/science/rdkit/files/patch-CMakeLists.txt
@@ -1,23 +1,45 @@
---- CMakeLists.txt.orig 2025-09-30 06:13:45 UTC
+-- fix arch detection on FreeBSD
+-- fix clang detection, see https://github.com/rdkit/rdkit/issues/9662
+-- prevent fetch of aantron:better-enums, use GH_TUPLE instead
+-- correct docs directory
+
+--- CMakeLists.txt.orig 2026-08-28 02:56:41 UTC
+++ CMakeLists.txt
-@@ -81,12 +81,12 @@ if(NOT MSVC)
-
- if(NOT MSVC)
- if(RDK_OPTIMIZE_POPCNT)
-- if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(aarch64|arm64)")
-- message("RDK_OPTIMIZE_POPCNT is not available on aarch64 or arm64")
-- elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(ppc64|powerpc64)")
-+ if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(ppc64|powerpc64)")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mpopcntd")
-- else()
-+ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(i386|amd64|x86_64)")
- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mpopcnt")
-+ else()
-+ message("RDK_OPTIMIZE_POPCNT is not available on your architecture")
- endif()
+@@ -97,16 +97,29 @@ if(NOT MSVC AND RDK_OPTIMIZE_POPCNT)
+ if(NOT MSVC AND RDK_OPTIMIZE_POPCNT)
+ if(CMAKE_SYSTEM_PROCESSOR MATCHES "^(ppc64|powerpc64)")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mpopcntd")
+- elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(x86_64|i*86)")
++ elseif(CMAKE_SYSTEM_PROCESSOR MATCHES "^(amd64|x86_64|i*86)")
+ set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -mpopcnt")
+ else()
+ message(STATUS "POPCNT hardware flag not supported or not required for ${CMAKE_SYSTEM_PROCESSOR} architecture")
endif()
endif()
-@@ -179,15 +179,7 @@ endif()
+
+-# Detect clang, which masquerades as gcc. CMake 2.6 doesn't know how to
+-# detect it.
+-string(REGEX MATCH "clang" CMAKE_COMPILER_IS_CLANG "${CMAKE_C_COMPILER}")
++# Run the compiler with --version and capture the output
++execute_process(
++ COMMAND ${CMAKE_C_COMPILER} --version
++ OUTPUT_VARIABLE COMPILER_VERSION_OUTPUT
++ ERROR_VARIABLE COMPILER_VERSION_ERROR
++ RESULT_VARIABLE COMPILER_VERSION_RESULT
++)
++
++# Corrected regex condition using MATCHES
++if("${COMPILER_VERSION_OUTPUT}" MATCHES "clang")
++ set(CMAKE_COMPILER_IS_CLANG TRUE)
++else()
++ set(CMAKE_COMPILER_IS_CLANG FALSE)
++endif()
++message(STATUS "YURI CMAKE_COMPILER_IS_CLANG: ${CMAKE_COMPILER_IS_CLANG}")
++
+ # Detect emcc
+ string(REGEX MATCH "Emscripten" CMAKE_COMPILER_IS_EMCC "${CMAKE_SYSTEM_NAME}")
+
+@@ -192,15 +205,7 @@ endif()
FetchContent_MakeAvailable(Catch2)
endif()
@@ -33,7 +55,7 @@
if(RDK_INSTALL_INTREE)
set(RDKit_BinDir "${CMAKE_SOURCE_DIR}/bin")
set(RDKit_LibDir "${CMAKE_SOURCE_DIR}/lib")
-@@ -535,12 +527,14 @@ if(NOT RDK_INSTALL_INTREE)
+@@ -550,12 +555,14 @@ if(NOT RDK_INSTALL_INTREE)
COMPONENT data
PATTERN ".svn" EXCLUDE
)
diff --git a/science/rdkit/files/patch-Code_GraphMol_Atom.cpp b/science/rdkit/files/patch-Code_GraphMol_Atom.cpp
new file mode 100644
index 000000000000..fbc9d31706d1
--- /dev/null
+++ b/science/rdkit/files/patch-Code_GraphMol_Atom.cpp
@@ -0,0 +1,21 @@
+-- Fix cross-DLL Boost.Python exception translation on FreeBSD.
+-- Move exported exception-class destructors out-of-line so the Itanium ABI
+-- emits a single typeinfo/vtable instance per class in its owning shared
+-- library. Without this each shared module has its own local typeinfo copy
+-- and catch-by-derived-type in Python exception translators fails.
+
+--- Code/GraphMol/Atom.cpp.orig 2026-08-28 02:56:41 UTC
++++ Code/GraphMol/Atom.cpp
+@@ -23,6 +23,12 @@ namespace RDKit {
+
+ namespace RDKit {
+
++MolSanitizeException::~MolSanitizeException() noexcept = default;
++AtomSanitizeException::~AtomSanitizeException() noexcept = default;
++AtomValenceException::~AtomValenceException() noexcept = default;
++AtomKekulizeException::~AtomKekulizeException() noexcept = default;
++KekulizeException::~KekulizeException() noexcept = default;
++
+ bool isAromaticAtom(const Atom &atom) {
+ if (atom.getIsAromatic()) {
+ return true;
diff --git a/science/rdkit/files/patch-Code_GraphMol_CMakeLists.txt b/science/rdkit/files/patch-Code_GraphMol_CMakeLists.txt
new file mode 100644
index 000000000000..e17f5deba854
--- /dev/null
+++ b/science/rdkit/files/patch-Code_GraphMol_CMakeLists.txt
@@ -0,0 +1,14 @@
+-- remove restriction on clang compiler for SLN build, see https://github.com/rdkit/rdkit/issues/9664
+-- the code was just skipped for clang for no obvious reason
+
+--- Code/GraphMol/CMakeLists.txt.orig 2026-08-28 02:56:41 UTC
++++ Code/GraphMol/CMakeLists.txt
+@@ -110,7 +110,7 @@ endif (RDK_BUILD_MOLINTERCHANGE_SUPPORT)
+ add_subdirectory(MolInterchange)
+ endif (RDK_BUILD_MOLINTERCHANGE_SUPPORT)
+
+-if (RDK_BUILD_SLN_SUPPORT AND NOT CMAKE_COMPILER_IS_CLANG)
++if (RDK_BUILD_SLN_SUPPORT)
+ if (CMAKE_COMPILER_IS_GNUCC AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS_EQUAL 4.8)
+ message("Skipping SLN build with gcc version <= 4.8")
+ else ()
diff --git a/science/rdkit/files/patch-Code_GraphMol_ChemReactions_Reaction.cpp b/science/rdkit/files/patch-Code_GraphMol_ChemReactions_Reaction.cpp
new file mode 100644
index 000000000000..d0996de2f621
--- /dev/null
+++ b/science/rdkit/files/patch-Code_GraphMol_ChemReactions_Reaction.cpp
@@ -0,0 +1,27 @@
+-- Fix cross-DLL Boost.Python exception translation on FreeBSD.
+-- Move exported exception-class destructors out-of-line so the Itanium ABI
+-- emits a single typeinfo/vtable instance per class in its owning shared
+-- library. Without this each shared module has its own local typeinfo copy
+-- and catch-by-derived-type in Python exception translators fails.
+
+--- Code/GraphMol/ChemReactions/Reaction.cpp.orig 2026-08-28 02:56:41 UTC
++++ Code/GraphMol/ChemReactions/Reaction.cpp
+@@ -33,6 +33,7 @@
+ //
+
+ #include <GraphMol/ChemReactions/Reaction.h>
++#include <GraphMol/ChemReactions/ReactionParser.h>
+ #include <GraphMol/ChemReactions/ReactionPickler.h>
+ #include <GraphMol/Substruct/SubstructMatch.h>
+ #include <GraphMol/QueryOps.h>
+@@ -45,6 +46,10 @@ namespace RDKit {
+ #include "GraphMol/ChemReactions/ReactionRunner.h"
+
+ namespace RDKit {
++
++ChemicalReactionException::~ChemicalReactionException() noexcept = default;
++ChemicalReactionParserException::~ChemicalReactionParserException() noexcept =
++ default;
+
+ std::vector<MOL_SPTR_VECT> ChemicalReaction::runReactants(
+ const MOL_SPTR_VECT reactants, unsigned int maxProducts) const {
diff --git a/science/rdkit/files/patch-Code_GraphMol_ChemReactions_Reaction.h b/science/rdkit/files/patch-Code_GraphMol_ChemReactions_Reaction.h
new file mode 100644
index 000000000000..4108852d2118
--- /dev/null
+++ b/science/rdkit/files/patch-Code_GraphMol_ChemReactions_Reaction.h
@@ -0,0 +1,17 @@
+-- Fix cross-DLL Boost.Python exception translation on FreeBSD.
+-- Move exported exception-class destructors out-of-line so the Itanium ABI
+-- emits a single typeinfo/vtable instance per class in its owning shared
+-- library. Without this each shared module has its own local typeinfo copy
+-- and catch-by-derived-type in Python exception translators fails.
+
+--- Code/GraphMol/ChemReactions/Reaction.h.orig 2026-08-28 02:56:41 UTC
++++ Code/GraphMol/ChemReactions/Reaction.h
+@@ -55,7 +55,7 @@ class RDKIT_CHEMREACTIONS_EXPORT ChemicalReactionExcep
+ explicit ChemicalReactionException(const std::string msg) : _msg(msg) {}
+ //! get the error message
+ const char *what() const noexcept override { return _msg.c_str(); }
+- ~ChemicalReactionException() noexcept override = default;
++ ~ChemicalReactionException() noexcept override;
+
+ private:
+ std::string _msg;
diff --git a/science/rdkit/files/patch-Code_GraphMol_ChemReactions_ReactionParser.h b/science/rdkit/files/patch-Code_GraphMol_ChemReactions_ReactionParser.h
new file mode 100644
index 000000000000..9cb22c488821
--- /dev/null
+++ b/science/rdkit/files/patch-Code_GraphMol_ChemReactions_ReactionParser.h
@@ -0,0 +1,17 @@
+-- Fix cross-DLL Boost.Python exception translation on FreeBSD.
+-- Move exported exception-class destructors out-of-line so the Itanium ABI
+-- emits a single typeinfo/vtable instance per class in its owning shared
+-- library. Without this each shared module has its own local typeinfo copy
+-- and catch-by-derived-type in Python exception translators fails.
+
+--- Code/GraphMol/ChemReactions/ReactionParser.h.orig 2026-08-28 02:56:41 UTC
++++ Code/GraphMol/ChemReactions/ReactionParser.h
+@@ -62,7 +62,7 @@ class RDKIT_CHEMREACTIONS_EXPORT ChemicalReactionParse
+ : _msg(std::move(msg)) {}
+ //! get the error message
+ const char *what() const noexcept override { return _msg.c_str(); }
+- ~ChemicalReactionParserException() noexcept override = default;
++ ~ChemicalReactionParserException() noexcept override;
+
+ private:
+ std::string _msg;
diff --git a/science/rdkit/files/patch-Code_GraphMol_Conformer.cpp b/science/rdkit/files/patch-Code_GraphMol_Conformer.cpp
new file mode 100644
index 000000000000..512fe16c92d8
--- /dev/null
+++ b/science/rdkit/files/patch-Code_GraphMol_Conformer.cpp
@@ -0,0 +1,17 @@
+-- Fix cross-DLL Boost.Python exception translation on FreeBSD.
+-- Move exported exception-class destructors out-of-line so the Itanium ABI
+-- emits a single typeinfo/vtable instance per class in its owning shared
+-- library. Without this each shared module has its own local typeinfo copy
+-- and catch-by-derived-type in Python exception translators fails.
+
+--- Code/GraphMol/Conformer.cpp.orig 2026-08-28 02:56:41 UTC
++++ Code/GraphMol/Conformer.cpp
+@@ -12,6 +12,8 @@ namespace RDKit {
+
+ namespace RDKit {
+
++ConformerException::~ConformerException() noexcept = default;
++
+ void Conformer::setOwningMol(ROMol *mol) {
+ PRECONDITION(mol, "");
+ dp_mol = mol;
diff --git a/science/rdkit/files/patch-Code_GraphMol_Conformer.h b/science/rdkit/files/patch-Code_GraphMol_Conformer.h
new file mode 100644
index 000000000000..e6b9f5a6967d
--- /dev/null
+++ b/science/rdkit/files/patch-Code_GraphMol_Conformer.h
@@ -0,0 +1,17 @@
+-- Fix cross-DLL Boost.Python exception translation on FreeBSD.
+-- Move exported exception-class destructors out-of-line so the Itanium ABI
+-- emits a single typeinfo/vtable instance per class in its owning shared
+-- library. Without this each shared module has its own local typeinfo copy
+-- and catch-by-derived-type in Python exception translators fails.
+
+--- Code/GraphMol/Conformer.h.orig 2026-08-28 02:56:41 UTC
++++ Code/GraphMol/Conformer.h
+@@ -31,7 +31,7 @@ class RDKIT_GRAPHMOL_EXPORT ConformerException : publi
+ ConformerException(std::string msg) : _msg(std::move(msg)) {}
+ //! get the error message
+ const char *what() const noexcept override { return _msg.c_str(); }
+- ~ConformerException() noexcept override = default;
++ ~ConformerException() noexcept override;
+
+ private:
+ std::string _msg;
diff --git a/science/rdkit/files/patch-Code_GraphMol_Depictor_RDDepictor.cpp b/science/rdkit/files/patch-Code_GraphMol_Depictor_RDDepictor.cpp
new file mode 100644
index 000000000000..0857e1704ed8
--- /dev/null
+++ b/science/rdkit/files/patch-Code_GraphMol_Depictor_RDDepictor.cpp
@@ -0,0 +1,17 @@
+-- Fix cross-DLL Boost.Python exception translation on FreeBSD.
+-- Move exported exception-class destructors out-of-line so the Itanium ABI
+-- emits a single typeinfo/vtable instance per class in its owning shared
+-- library. Without this each shared module has its own local typeinfo copy
+-- and catch-by-derived-type in Python exception translators fails.
+
+--- Code/GraphMol/Depictor/RDDepictor.cpp.orig 2026-08-28 02:56:41 UTC
++++ Code/GraphMol/Depictor/RDDepictor.cpp
+@@ -38,6 +38,8 @@ bool preferCoordGen = false;
+
+ bool preferCoordGen = false;
+
++DepictException::~DepictException() noexcept = default;
++
+ namespace DepictorLocal {
+
+ constexpr auto ISQRT2 = 0.707107;
diff --git a/science/rdkit/files/patch-Code_GraphMol_Depictor_RDDepictor.h b/science/rdkit/files/patch-Code_GraphMol_Depictor_RDDepictor.h
new file mode 100644
index 000000000000..536f1e32f637
--- /dev/null
+++ b/science/rdkit/files/patch-Code_GraphMol_Depictor_RDDepictor.h
@@ -0,0 +1,17 @@
+-- Fix cross-DLL Boost.Python exception translation on FreeBSD.
+-- Move exported exception-class destructors out-of-line so the Itanium ABI
+-- emits a single typeinfo/vtable instance per class in its owning shared
+-- library. Without this each shared module has its own local typeinfo copy
+-- and catch-by-derived-type in Python exception translators fails.
+
+--- Code/GraphMol/Depictor/RDDepictor.h.orig 2026-08-28 02:56:41 UTC
++++ Code/GraphMol/Depictor/RDDepictor.h
+@@ -33,7 +33,7 @@ class RDKIT_DEPICTOR_EXPORT DepictException : public s
+ DepictException(const char *msg) : _msg(msg) {}
+ DepictException(const std::string msg) : _msg(msg) {}
+ const char *what() const noexcept override { return _msg.c_str(); }
+- ~DepictException() noexcept override = default;
++ ~DepictException() noexcept override;
+
+ private:
+ std::string _msg;
diff --git a/science/rdkit/files/patch-Code_GraphMol_SanitException.h b/science/rdkit/files/patch-Code_GraphMol_SanitException.h
new file mode 100644
index 000000000000..f535d69cb9e7
--- /dev/null
+++ b/science/rdkit/files/patch-Code_GraphMol_SanitException.h
@@ -0,0 +1,53 @@
+-- Fix cross-DLL Boost.Python exception translation on FreeBSD.
+-- Move exported exception-class destructors out-of-line so the Itanium ABI
+-- emits a single typeinfo/vtable instance per class in its owning shared
+-- library. Without this each shared module has its own local typeinfo copy
+-- and catch-by-derived-type in Python exception translators fails.
+
+--- Code/GraphMol/SanitException.h.orig 2026-08-28 02:56:41 UTC
++++ Code/GraphMol/SanitException.h
+@@ -32,7 +32,7 @@ class RDKIT_GRAPHMOL_EXPORT MolSanitizeException : pub
+ MolSanitizeException(const MolSanitizeException &other)
+ : d_msg(other.d_msg) {}
+ const char *what() const noexcept override { return d_msg.c_str(); }
+- ~MolSanitizeException() noexcept override {}
++ ~MolSanitizeException() noexcept override;
+ virtual MolSanitizeException *copy() const {
+ return new MolSanitizeException(*this);
+ }
+@@ -52,7 +52,7 @@ class RDKIT_GRAPHMOL_EXPORT AtomSanitizeException
+ AtomSanitizeException(const AtomSanitizeException &other)
+ : MolSanitizeException(other), d_atomIdx(other.d_atomIdx) {}
+ unsigned int getAtomIdx() const { return d_atomIdx; }
+- ~AtomSanitizeException() noexcept override {}
++ ~AtomSanitizeException() noexcept override;
+ MolSanitizeException *copy() const override {
+ return new AtomSanitizeException(*this);
+ }
+@@ -71,7 +71,7 @@ class RDKIT_GRAPHMOL_EXPORT AtomValenceException
+ : AtomSanitizeException(msg, atomIdx) {}
+ AtomValenceException(const AtomValenceException &other)
+ : AtomSanitizeException(other) {}
+- ~AtomValenceException() noexcept override {}
++ ~AtomValenceException() noexcept override;
+ MolSanitizeException *copy() const override {
+ return new AtomValenceException(*this);
+ }
+@@ -87,7 +87,7 @@ class RDKIT_GRAPHMOL_EXPORT AtomKekulizeException
+ : AtomSanitizeException(msg, atomIdx) {}
+ AtomKekulizeException(const AtomKekulizeException &other)
+ : AtomSanitizeException(other) {}
+- ~AtomKekulizeException() noexcept override {}
++ ~AtomKekulizeException() noexcept override;
+ MolSanitizeException *copy() const override {
+ return new AtomKekulizeException(*this);
+ }
+@@ -105,7 +105,7 @@ class RDKIT_GRAPHMOL_EXPORT KekulizeException : public
+ const std::vector<unsigned int> &getAtomIndices() const {
+ return d_atomIndices;
+ }
+- ~KekulizeException() noexcept override {}
++ ~KekulizeException() noexcept override;
+ MolSanitizeException *copy() const override {
+ return new KekulizeException(*this);
+ }
diff --git a/science/rdkit/files/patch-Code_RDGeneral_BadFileException.h b/science/rdkit/files/patch-Code_RDGeneral_BadFileException.h
new file mode 100644
index 000000000000..8785f84f6e20
--- /dev/null
+++ b/science/rdkit/files/patch-Code_RDGeneral_BadFileException.h
@@ -0,0 +1,17 @@
+-- Fix cross-DLL Boost.Python exception translation on FreeBSD.
+-- Move exported exception-class destructors out-of-line so the Itanium ABI
+-- emits a single typeinfo/vtable instance per class in its owning shared
+-- library. Without this each shared module has its own local typeinfo copy
+-- and catch-by-derived-type in Python exception translators fails.
+
+--- Code/RDGeneral/BadFileException.h.orig 2026-08-28 02:56:41 UTC
++++ Code/RDGeneral/BadFileException.h
+@@ -29,7 +29,7 @@ class RDKIT_RDGENERAL_EXPORT BadFileException : public
+ : std::runtime_error("BadFileException"), _msg(std::move(msg)) {}
+ //! get the error message
+ const char *what() const noexcept override { return _msg.c_str(); }
+- ~BadFileException() noexcept override = default;
++ ~BadFileException() noexcept override;
+
+ private:
+ std::string _msg;
diff --git a/science/rdkit/files/patch-Code_RDGeneral_CMakeLists.txt b/science/rdkit/files/patch-Code_RDGeneral_CMakeLists.txt
index 590aeb419ef9..e8c7282ec65c 100644
--- a/science/rdkit/files/patch-Code_RDGeneral_CMakeLists.txt
+++ b/science/rdkit/files/patch-Code_RDGeneral_CMakeLists.txt
@@ -1,3 +1,5 @@
+-- prevent fetch of aantron:better-enums, use GH_TUPLE instead
+
--- Code/RDGeneral/CMakeLists.txt.orig 2025-04-15 16:44:12 UTC
+++ Code/RDGeneral/CMakeLists.txt
@@ -5,11 +5,6 @@ CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/RDConfig.h.
diff --git a/science/rdkit/files/patch-Code_RDGeneral_Exceptions.h b/science/rdkit/files/patch-Code_RDGeneral_Exceptions.h
new file mode 100644
index 000000000000..bfc7ddf6d7b0
--- /dev/null
+++ b/science/rdkit/files/patch-Code_RDGeneral_Exceptions.h
@@ -0,0 +1,35 @@
+-- Fix cross-DLL Boost.Python exception translation on FreeBSD.
+-- Move exported exception-class destructors out-of-line so the Itanium ABI
+-- emits a single typeinfo/vtable instance per class in its owning shared
+-- library. Without this each shared module has its own local typeinfo copy
+-- and catch-by-derived-type in Python exception translators fails.
+
+--- Code/RDGeneral/Exceptions.h.orig 2026-08-28 02:56:41 UTC
++++ Code/RDGeneral/Exceptions.h
+@@ -28,7 +28,7 @@ class RDKIT_RDGENERAL_EXPORT IndexErrorException : pub
+
+ const char *what() const noexcept override { return _msg.c_str(); }
+
+- ~IndexErrorException() noexcept override = default;
++ ~IndexErrorException() noexcept override;
+
+ private:
+ int _idx;
+@@ -45,7 +45,7 @@ class RDKIT_RDGENERAL_EXPORT ValueErrorException : pub
+ ValueErrorException(const char *msg)
+ : std::runtime_error("ValueErrorException"), _value(msg) {}
+ const char *what() const noexcept override { return _value.c_str(); }
+- ~ValueErrorException() noexcept override = default;
++ ~ValueErrorException() noexcept override;
+
+ private:
+ std::string _value;
+@@ -68,7 +68,7 @@ class RDKIT_RDGENERAL_EXPORT KeyErrorException : publi
+
+ const char *what() const noexcept override { return _msg.c_str(); }
+
+- ~KeyErrorException() noexcept override = default;
++ ~KeyErrorException() noexcept override;
+
+ private:
+ std::string _key;
diff --git a/science/rdkit/files/patch-Code_RDGeneral_FileParseException.h b/science/rdkit/files/patch-Code_RDGeneral_FileParseException.h
new file mode 100644
index 000000000000..888bd1888bd8
--- /dev/null
+++ b/science/rdkit/files/patch-Code_RDGeneral_FileParseException.h
@@ -0,0 +1,17 @@
+-- Fix cross-DLL Boost.Python exception translation on FreeBSD.
+-- Move exported exception-class destructors out-of-line so the Itanium ABI
+-- emits a single typeinfo/vtable instance per class in its owning shared
+-- library. Without this each shared module has its own local typeinfo copy
+-- and catch-by-derived-type in Python exception translators fails.
+
+--- Code/RDGeneral/FileParseException.h.orig 2026-08-28 02:56:41 UTC
++++ Code/RDGeneral/FileParseException.h
+@@ -26,7 +26,7 @@ class RDKIT_RDGENERAL_EXPORT FileParseException : publ
+ : std::runtime_error("FileParseException"), _msg(msg) {}
+ //! get the error message
+ const char *what() const noexcept override { return _msg.c_str(); }
+- ~FileParseException() noexcept override = default;
++ ~FileParseException() noexcept override;
+
+ private:
+ std::string _msg;
diff --git a/science/rdkit/files/patch-Code_RDGeneral_Invariant.cpp b/science/rdkit/files/patch-Code_RDGeneral_Invariant.cpp
new file mode 100644
index 000000000000..4bfe8896993c
--- /dev/null
+++ b/science/rdkit/files/patch-Code_RDGeneral_Invariant.cpp
@@ -0,0 +1,15 @@
+-- Fix cross-DLL Boost.Python exception translation on FreeBSD.
+-- Move exported exception-class destructors out-of-line so the Itanium ABI
+-- emits a single typeinfo/vtable instance per class in its owning shared
+-- library. Without this each shared module has its own local typeinfo copy
+-- and catch-by-derived-type in Python exception translators fails.
+
+--- Code/RDGeneral/Invariant.cpp.orig 2026-08-28 02:56:41 UTC
++++ Code/RDGeneral/Invariant.cpp
+@@ -72,4 +72,6 @@ std::string Invariant::toUserString() const {
+ return stringRep;
+ }
+
++Invariant::~Invariant() noexcept = default;
++
+ }; // namespace Invar
diff --git a/science/rdkit/files/patch-Code_RDGeneral_Invariant.h b/science/rdkit/files/patch-Code_RDGeneral_Invariant.h
new file mode 100644
index 000000000000..6d92aaa6ad53
--- /dev/null
+++ b/science/rdkit/files/patch-Code_RDGeneral_Invariant.h
@@ -0,0 +1,17 @@
+-- Fix cross-DLL Boost.Python exception translation on FreeBSD.
+-- Move exported exception-class destructors out-of-line so the Itanium ABI
+-- emits a single typeinfo/vtable instance per class in its owning shared
+-- library. Without this each shared module has its own local typeinfo copy
+-- and catch-by-derived-type in Python exception translators fails.
+
+--- Code/RDGeneral/Invariant.h.orig 2026-08-28 02:56:41 UTC
++++ Code/RDGeneral/Invariant.h
+@@ -65,7 +65,7 @@ class RDKIT_RDGENERAL_EXPORT Invariant : public std::r
+ prefix_d(prefix),
+ file_dp(file),
+ line_d(line) {}
+- ~Invariant() noexcept override = default;
++ ~Invariant() noexcept override;
+
+ const char *what() const noexcept override { return mess_d.c_str(); }
+
diff --git a/science/rdkit/files/patch-Code_RDGeneral_RDGeneralExceptions.cpp b/science/rdkit/files/patch-Code_RDGeneral_RDGeneralExceptions.cpp
new file mode 100644
index 000000000000..1dfbe81cd3a9
--- /dev/null
+++ b/science/rdkit/files/patch-Code_RDGeneral_RDGeneralExceptions.cpp
@@ -0,0 +1,21 @@
+-- Fix cross-DLL Boost.Python exception translation on FreeBSD.
+-- Move exported exception-class destructors out-of-line so the Itanium ABI
+-- emits a single typeinfo/vtable instance per class in its owning shared
+-- library. Without this each shared module has its own local typeinfo copy
+-- and catch-by-derived-type in Python exception translators fails.
+
+--- Code/RDGeneral/RDGeneralExceptions.cpp.orig 2026-08-28 02:56:41 UTC
++++ Code/RDGeneral/RDGeneralExceptions.cpp
+@@ -16,3 +16,12 @@
+ #include "BadFileException.h"
+ #include "Exceptions.h"
+ #include "FileParseException.h"
++
++IndexErrorException::~IndexErrorException() noexcept = default;
++ValueErrorException::~ValueErrorException() noexcept = default;
++KeyErrorException::~KeyErrorException() noexcept = default;
++
++namespace RDKit {
++BadFileException::~BadFileException() noexcept = default;
++FileParseException::~FileParseException() noexcept = default;
++} // namespace RDKit
diff --git a/science/rdkit/pkg-plist b/science/rdkit/pkg-plist
index 3cd23f7e900b..5d2061665681 100644
--- a/science/rdkit/pkg-plist
+++ b/science/rdkit/pkg-plist
@@ -61,6 +61,7 @@ include/rdkit/ForceField/UFF/PositionConstraint.h
include/rdkit/ForceField/UFF/TorsionAngle.h
include/rdkit/ForceField/UFF/TorsionConstraint.h
include/rdkit/ForceField/UFF/Utils.h
+include/rdkit/GaussianShape.h
include/rdkit/Geometry/Grid3D.h
include/rdkit/Geometry/GridUtils.h
include/rdkit/Geometry/Transform.h
@@ -168,6 +169,7 @@ include/rdkit/GraphMol/Fingerprints/MorganFingerprints.h
include/rdkit/GraphMol/Fingerprints/MorganGenerator.h
include/rdkit/GraphMol/Fingerprints/RDKitFPGenerator.h
include/rdkit/GraphMol/Fingerprints/TopologicalTorsionGenerator.h
+include/rdkit/GraphMol/ForceFieldHelpers/CrystalFF/PlanarityContribs.h
include/rdkit/GraphMol/ForceFieldHelpers/CrystalFF/TorsionAngleContribs.h
include/rdkit/GraphMol/ForceFieldHelpers/CrystalFF/TorsionAngleM6.h
include/rdkit/GraphMol/ForceFieldHelpers/CrystalFF/TorsionPreferences.h
@@ -202,6 +204,7 @@ include/rdkit/GraphMol/MolDraw2D/MolDraw2D.h
include/rdkit/GraphMol/MolDraw2D/MolDraw2DCairo.h
include/rdkit/GraphMol/MolDraw2D/MolDraw2DHelpers.h
include/rdkit/GraphMol/MolDraw2D/MolDraw2DJS.h
+include/rdkit/GraphMol/MolDraw2D/MolDraw2DSGroupData.h
include/rdkit/GraphMol/MolDraw2D/MolDraw2DSVG.h
include/rdkit/GraphMol/MolDraw2D/MolDraw2DUtils.h
include/rdkit/GraphMol/MolDraw2D/MolDraw2Dwx.h
@@ -275,19 +278,23 @@ include/rdkit/GraphMol/SmilesParse/SmilesWrite.h
include/rdkit/GraphMol/StereoGroup.h
include/rdkit/GraphMol/Subgraphs/SubgraphUtils.h
include/rdkit/GraphMol/Subgraphs/Subgraphs.h
+include/rdkit/GraphMol/Subset.h
include/rdkit/GraphMol/SubstanceGroup.h
include/rdkit/GraphMol/Substruct/SubstructMatch.h
include/rdkit/GraphMol/Substruct/SubstructUtils.h
include/rdkit/GraphMol/SubstructLibrary/PatternFactory.h
include/rdkit/GraphMol/SubstructLibrary/SubstructLibrary.h
include/rdkit/GraphMol/SubstructLibrary/SubstructLibrarySerialization.h
+include/rdkit/GraphMol/SynthonSpaceSearch/ProgressBar.h
include/rdkit/GraphMol/SynthonSpaceSearch/SearchResults.h
include/rdkit/GraphMol/SynthonSpaceSearch/Synthon.h
include/rdkit/GraphMol/SynthonSpaceSearch/SynthonSet.h
+include/rdkit/GraphMol/SynthonSpaceSearch/SynthonShapeInput.h
include/rdkit/GraphMol/SynthonSpaceSearch/SynthonSpace.h
include/rdkit/GraphMol/SynthonSpaceSearch/SynthonSpaceFingerprintSearcher.h
include/rdkit/GraphMol/SynthonSpaceSearch/SynthonSpaceRascalSearcher.h
include/rdkit/GraphMol/SynthonSpaceSearch/SynthonSpaceSearcher.h
+include/rdkit/GraphMol/SynthonSpaceSearch/SynthonSpaceShapeSearcher.h
include/rdkit/GraphMol/SynthonSpaceSearch/SynthonSpaceSubstructureSearcher.h
include/rdkit/GraphMol/TautomerQuery/TautomerQuery.h
include/rdkit/GraphMol/Trajectory/Snapshot.h
@@ -302,6 +309,7 @@ include/rdkit/Numerics/Conrec.h
include/rdkit/Numerics/EigenSolvers/PowerEigenSolver.h
include/rdkit/Numerics/Matrix.h
include/rdkit/Numerics/Optimizer/BFGSOpt.h
+include/rdkit/Numerics/Optimizer/BFGSOpt_SVE.h
include/rdkit/Numerics/SquareMatrix.h
include/rdkit/Numerics/SymmMatrix.h
include/rdkit/Numerics/Vector.h
@@ -361,6 +369,8 @@ include/rdkit/RDGeneral/utils.h
include/rdkit/RDGeneral/versions.h
include/rdkit/RDStreams/streams.h
include/rdkit/RingDecomposerLib.h
+include/rdkit/ShapeInput.h
+include/rdkit/ShapeOverlayOptions.h
%%LITTLE_ENDIAN%%include/rdkit/SimDivPickers/DistPicker.h
%%LITTLE_ENDIAN%%include/rdkit/SimDivPickers/HierarchicalClusterPicker.h
%%LITTLE_ENDIAN%%include/rdkit/SimDivPickers/LeaderPicker.h
@@ -442,6 +452,9 @@ lib/libRDKitForceFieldHelpers.so.1.%%SHLIB_VER%%
lib/libRDKitFragCatalog.so
lib/libRDKitFragCatalog.so.1
lib/libRDKitFragCatalog.so.1.%%SHLIB_VER%%
+lib/libRDKitGaussianShape.so
+lib/libRDKitGaussianShape.so.1
+lib/libRDKitGaussianShape.so.1.%%SHLIB_VER%%
lib/libRDKitGeneralizedSubstruct.so
lib/libRDKitGeneralizedSubstruct.so.1
lib/libRDKitGeneralizedSubstruct.so.1.%%SHLIB_VER%%
@@ -739,6 +752,7 @@ lib/libRDKitmaeparser.so.1.%%SHLIB_VER%%
%%PYTHON%%%%PYTHON_SITELIBDIR%%/rdkit/Chem/rdRascalMCES.so
%%PYTHON%%%%PYTHON_SITELIBDIR%%/rdkit/Chem/rdReducedGraphs.so
%%PYTHON%%%%PYTHON_SITELIBDIR%%/rdkit/Chem/rdSLNParse.so
+%%PYTHON%%%%PYTHON_SITELIBDIR%%/rdkit/Chem/rdGaussianShape.so
%%PYTHON%%%%PYTHON_SITELIBDIR%%/rdkit/Chem/rdShapeAlign.so
%%PYTHON%%%%PYTHON_SITELIBDIR%%/rdkit/Chem/rdShapeHelpers.so
%%PYTHON%%%%PYTHON_SITELIBDIR%%/rdkit/Chem/rdSubstructLibrary.so
@@ -1050,6 +1064,7 @@ lib/libRDKitmaeparser.so.1.%%SHLIB_VER%%
%%DATADIR%%/Contrib/FreeWilson/data/CHEMBL2321810.smi
%%DATADIR%%/Contrib/FreeWilson/data/CHEMBL2321810_act.csv
%%DATADIR%%/Contrib/FreeWilson/data/CHEMBL2321810_scaffold.mol
+%%DATADIR%%/Contrib/FreeWilson/data/cmet_ligands.sdf
%%DATADIR%%/Contrib/FreeWilson/freewilson.py
%%DATADIR%%/Contrib/FreeWilson/pytest.ini
%%DATADIR%%/Contrib/FreeWilson/requirements.txt
@@ -1200,7 +1215,9 @@ lib/libRDKitmaeparser.so.1.%%SHLIB_VER%%
%%PYTHON%%%%DATADIR%%/Scripts/create_deb_packages.sh
%%PYTHON%%%%DATADIR%%/Scripts/gen_rdkit_stubs/__init__.py
%%PYTHON%%%%DATADIR%%/Scripts/gen_rdkit_stubs/__main__.py
+%%PYTHON%%%%DATADIR%%/Scripts/gen_rdkit_stubs/patch/rdkit/Chem/__init__.pyi.diff
%%PYTHON%%%%DATADIR%%/Scripts/gen_rdkit_stubs/patch/rdkit/Chem/inchi.pyi.diff
+%%PYTHON%%%%DATADIR%%/Scripts/gen_rdkit_stubs/patch/rdkit/Chem/rdchem.pyi.diff
%%PYTHON%%%%DATADIR%%/Scripts/gen_rdkit_stubs/worker.py
%%PYTHON%%%%DATADIR%%/Scripts/patch_rdkit_docstrings/__init__.py
%%PYTHON%%%%DATADIR%%/Scripts/patch_rdkit_docstrings/__main__.py
diff --git a/science/votca/Makefile b/science/votca/Makefile
index ace01eb71cf5..2779cd25c67b 100644
--- a/science/votca/Makefile
+++ b/science/votca/Makefile
@@ -1,7 +1,7 @@
PORTNAME= votca
DISTVERSIONPREFIX= v
DISTVERSION= 2026
-PORTREVISION= 5
+PORTREVISION= 6
CATEGORIES= science
MAINTAINER= yuri@FreeBSD.org
diff --git a/textproc/py-docling-metrics-chemistry/Makefile b/textproc/py-docling-metrics-chemistry/Makefile
index 618cfb0770f1..91742bbfff9e 100644
--- a/textproc/py-docling-metrics-chemistry/Makefile
+++ b/textproc/py-docling-metrics-chemistry/Makefile
@@ -1,5 +1,6 @@
PORTNAME= docling-metrics-chemistry
DISTVERSION= 0.10.0
+PORTREVISION= 1
CATEGORIES= textproc python
MASTER_SITES= PYPI
PKGNAMEPREFIX= ${PYTHON_PKGNAMEPREFIX}