commit: 2eae5bba7675d51c0eb71b4c17726b6c8699b681 Author: Nicolas PARLANT <nicolas.parlant <AT> parhuet <DOT> fr> AuthorDate: Tue Jun 24 00:56:01 2025 +0000 Commit: Sam James <sam <AT> gentoo <DOT> org> CommitDate: Thu Jun 26 19:54:32 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=2eae5bba
sci-libs/avogadrolibs: adapt lto/dot-a, cmake4, add DEP fix lto/ODR violations with pending upstream PR, except with vtk enabled (filter then). add static-libs useflag for qtplugins libraries (previously enabled by default). use dot-a with qt6 even w/o static-libs, because libgwavi.a is required to build avogadro2. bump cmake_min for cmake4 compat. add dev-libs/pegtl in DEPEND, required by vtk's cmake file. Bug: https://bugs.gentoo.org/942463 Signed-off-by: Nicolas PARLANT <nicolas.parlant <AT> parhuet.fr> Part-of: https://github.com/gentoo/gentoo/pull/42718 Signed-off-by: Sam James <sam <AT> gentoo.org> ...100.0.ebuild => avogadrolibs-1.100.0-r1.ebuild} | 40 ++++++--- .../files/avogadrolibs-1.100-cmake4.patch | 38 +++++++++ .../files/avogadrolibs-1.100-fix_odr.patch | 98 ++++++++++++++++++++++ 3 files changed, 166 insertions(+), 10 deletions(-) diff --git a/sci-libs/avogadrolibs/avogadrolibs-1.100.0.ebuild b/sci-libs/avogadrolibs/avogadrolibs-1.100.0-r1.ebuild similarity index 83% rename from sci-libs/avogadrolibs/avogadrolibs-1.100.0.ebuild rename to sci-libs/avogadrolibs/avogadrolibs-1.100.0-r1.ebuild index 19472b5c3b31..d6004b49916c 100644 --- a/sci-libs/avogadrolibs/avogadrolibs-1.100.0.ebuild +++ b/sci-libs/avogadrolibs/avogadrolibs-1.100.0-r1.ebuild @@ -3,7 +3,7 @@ EAPI=8 -inherit cmake +inherit cmake dot-a flag-o-matic MY_PV_AVOGEN=1.98.0 MY_PV_CRYSTALS=1.98.0 @@ -35,7 +35,7 @@ SRC_URI=" LICENSE="BSD GPL-2+" SLOT="0" KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux" -IUSE="archive doc hdf5 mmtf qt6 spglib test vtk" +IUSE="archive doc hdf5 mmtf qt6 spglib static-libs test vtk" RESTRICT="!test? ( test )" REQUIRED_USE=" test? ( qt6 ) @@ -62,6 +62,7 @@ RDEPEND=" DEPEND="${RDEPEND} dev-cpp/eigen:3 mmtf? ( dev-libs/mmtf-cpp ) + vtk? ( dev-libs/pegtl ) " BDEPEND=" doc? ( app-text/doxygen ) @@ -73,6 +74,10 @@ PATCHES=( "${FILESDIR}/"${PN}-1.100-tests.patch # https://github.com/OpenChemistry/avogadrolibs/issues/1633 "${FILESDIR}/"${PN}-1.100-fix-openbabel3.patch + # fix lto - ODR violations (except with vtk) + "${FILESDIR}/"${PN}-1.100-fix_odr.patch + # bump cmake_min. From upstream, to be removed with next version + "${FILESDIR}/"${PN}-1.100-cmake4.patch ) # Static binary (requires ObjCryst++ to build otherwise) @@ -136,15 +141,27 @@ src_configure() { -DUSE_LIBMSYM=OFF ) - use qt6 && mycmakeargs+=( - -DBUILD_GPL_PLUGINS=ON - -DQT_VERSION=6 - ) + if use qt6; then + mycmakeargs+=( + -DBUILD_GPL_PLUGINS=ON + -DBUILD_STATIC_PLUGINS=$(usex static-libs) + -DQT_VERSION=6 + ) + + # even w/o static-libs due to libgwavi.a, required for avogadro2 + lto-guarantee-fat + fi - use vtk && mycmakeargs+=( - -DBUNDLED_GENXRDPATTERN="${WORKDIR}/genXrdPattern" - -DUSE_SYSTEM_GENXRDPATTERN=OFF - ) + if use vtk; then + mycmakeargs+=( + -DBUNDLED_GENXRDPATTERN="${WORKDIR}/genXrdPattern" + -DUSE_SYSTEM_GENXRDPATTERN=OFF + ) + + # -Werror=odr -Werror=lto-type-mismatch + # https://github.com/OpenChemistry/avogadrolibs/issues/2060 + filter-lto + fi cmake_src_configure } @@ -169,6 +186,9 @@ src_install() { cmake_src_install + # always strip due to libgwavi.a + use qt6 && strip-lto-bytecode "${ED}" + # remove CONTRIBUTING, LICENSE and duplicate README rm -r "${ED}/usr/share/doc/${PF}/avogadrolibs" || die } diff --git a/sci-libs/avogadrolibs/files/avogadrolibs-1.100-cmake4.patch b/sci-libs/avogadrolibs/files/avogadrolibs-1.100-cmake4.patch new file mode 100644 index 000000000000..07595281b5b6 --- /dev/null +++ b/sci-libs/avogadrolibs/files/avogadrolibs-1.100-cmake4.patch @@ -0,0 +1,38 @@ +PR merged +https://github.com/OpenChemistry/avogadrolibs/pull/2022.patch +From 7edee1178f5cd95c3b81964ce39d529b413dbe22 Mon Sep 17 00:00:00 2001 +From: Eisuke Kawashima <[email protected]> +Date: Thu, 5 Jun 2025 09:58:13 +0900 +Subject: [PATCH] build: bump cmake_minimum_required + +CMake 4 drops support of 3.4 or earlier + +note: FindPython is introduced in 3.12 +https://cmake.org/cmake/help/v3.12/release/3.12.html#modules + +Signed-off-by: Eisuke Kawashima <[email protected]> +--- + python/CMakeLists.txt | 2 +- + thirdparty/tinycolormap/CMakeLists.txt | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/python/CMakeLists.txt b/python/CMakeLists.txt +index 2cb3d0e17b..ab6b073746 100644 +--- a/python/CMakeLists.txt ++++ b/python/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 3.3 FATAL_ERROR) ++cmake_minimum_required(VERSION 3.12 FATAL_ERROR) + + if (NOT TARGET Avogadro::Core) + find_package(AvogadroLibs REQUIRED) +diff --git a/thirdparty/tinycolormap/CMakeLists.txt b/thirdparty/tinycolormap/CMakeLists.txt +index ee88bf4878..d4c9096175 100644 +--- a/thirdparty/tinycolormap/CMakeLists.txt ++++ b/thirdparty/tinycolormap/CMakeLists.txt +@@ -1,4 +1,4 @@ +-cmake_minimum_required(VERSION 3.1) ++cmake_minimum_required(VERSION 3.5) + + project(tinycolormap CXX) + set(CMAKE_CXX_STANDARD 11) diff --git a/sci-libs/avogadrolibs/files/avogadrolibs-1.100-fix_odr.patch b/sci-libs/avogadrolibs/files/avogadrolibs-1.100-fix_odr.patch new file mode 100644 index 000000000000..307466464b1e --- /dev/null +++ b/sci-libs/avogadrolibs/files/avogadrolibs-1.100-fix_odr.patch @@ -0,0 +1,98 @@ +https://github.com/OpenChemistry/avogadrolibs/pull/2059.patch +From ef234b94bcff5e4416e7ae0546c3e8977d3ad3a2 Mon Sep 17 00:00:00 2001 +From: Nicolas PARLANT <[email protected]> +Date: Tue, 24 Jun 2025 02:23:13 +0200 +Subject: [PATCH] Fix ODR violations, move enums into class scope +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +avogadrolibs-1.100.0/avogadro/qtplugins/cp2kinput/cp2kinputdialog.cpp:61:6: +error: type ‘Avogadro::QtPlugins::BasisOption’ violates the C++ One Definition Rule [-Werror=odr] + 61 | enum BasisOption + | ^ +avogadrolibs-1.100.0/work/avogadrolibs-1.100.0/avogadro/qtplugins/cp2kinput/cp2kinputdialog.cpp:40:6: +error: type ‘Avogadro::QtPlugins::CalculateOption’ violates the C++ One Definition Rule [-Werror=odr] + 40 | enum CalculateOption + | ^ + +Signed-off-by: Nicolas PARLANT <[email protected]> +--- + .../qtplugins/cp2kinput/cp2kinputdialog.cpp | 21 ------------------- + .../qtplugins/cp2kinput/cp2kinputdialog.h | 21 +++++++++++++++++++ + 2 files changed, 21 insertions(+), 21 deletions(-) + +diff --git a/avogadro/qtplugins/cp2kinput/cp2kinputdialog.cpp b/avogadro/qtplugins/cp2kinput/cp2kinputdialog.cpp +index 5eec8b6d..97f583a3 100644 +--- a/avogadro/qtplugins/cp2kinput/cp2kinputdialog.cpp ++++ b/avogadro/qtplugins/cp2kinput/cp2kinputdialog.cpp +@@ -37,16 +37,6 @@ using Avogadro::MoleQueue::JobObject; + + namespace Avogadro::QtPlugins { + +-enum CalculateOption +-{ +- CalculateEnergy = 0, +- CalculateEnergyAndForces, +- CalculateMolecularDynamics, +- CalculateGeometryOptimization, +- +- CalculateCount +-}; +- + enum FunctionalOption + { + FunctionalBLYP = 0, +@@ -58,17 +48,6 @@ enum FunctionalOption + FunctionalCount + }; + +-enum BasisOption +-{ +- BasisSZVGTH = 0, +- BasisDZVGTH, +- BasisDZVPGTH, +- BasisTZVPGTH, +- BasisTZV2PGTH, +- +- BasisCount +-}; +- + enum MethodOption + { + DFT = 0, +diff --git a/avogadro/qtplugins/cp2kinput/cp2kinputdialog.h b/avogadro/qtplugins/cp2kinput/cp2kinputdialog.h +index dc24594f..52be8dcd 100644 +--- a/avogadro/qtplugins/cp2kinput/cp2kinputdialog.h ++++ b/avogadro/qtplugins/cp2kinput/cp2kinputdialog.h +@@ -31,6 +31,27 @@ class Cp2kInputDialog : public QDialog + { + Q_OBJECT + ++ enum CalculateOption ++ { ++ CalculateEnergy = 0, ++ CalculateEnergyAndForces, ++ CalculateMolecularDynamics, ++ CalculateGeometryOptimization, ++ ++ CalculateCount ++ }; ++ ++ enum BasisOption ++ { ++ BasisSZVGTH = 0, ++ BasisDZVGTH, ++ BasisDZVPGTH, ++ BasisTZVPGTH, ++ BasisTZV2PGTH, ++ ++ BasisCount ++ }; ++ + public: + explicit Cp2kInputDialog(QWidget* parent_ = nullptr, + Qt::WindowFlags f = Qt::WindowFlags()); +-- +2.49.0 +
