commit:     8b295bba664c496c6e923c02313b3808300cd75a
Author:     Nicolas PARLANT <nicolas.parlant <AT> parhuet <DOT> fr>
AuthorDate: Tue Mar 11 14:28:07 2025 +0000
Commit:     Sam James <sam <AT> gentoo <DOT> org>
CommitDate: Mon Mar 24 09:30:11 2025 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=8b295bba

sci-libs/avogadrolibs: add 1.100.0, qt6

update HOMEPAGE

switch to qt6

iuse : add spglib (Hall number for a crystal using sci-libs/spglib)

fetch avogadrodata for more tests

deps :
  rm molequeue, abandoned and without Qt6 support, client-only bundled
  rm linguist-tools, no longer required (qm)
  add dev-cpp/nlohmann_json (since 1.98)
  add dev-libs/pugixml (since 1.98)
  add sci-chemistry/openbabel[json] (qtplugins)
  add dev-libs/mmtf-cpp (mmtf useflag)

build opt :
  rm USE_PROTOCALL (dropped since 1.98.0)
  rm BUILD_STATIC_PLUGINS, on by default
  rm OpenGL_GL_PREFERENCE=GLVND, value by default
  add USE_SYSTEM_GENXRDPATTERN=OFF to use workaround w/ DownloadGenXrdPattern

patches :
  cmake detection for openbabel
  conditionnal test: Spacegroup (spglib)

Closes: https://bugs.gentoo.org/926352
Signed-off-by: Nicolas PARLANT <nicolas.parlant <AT> parhuet.fr>
Signed-off-by: Sam James <sam <AT> gentoo.org>

 sci-libs/avogadrolibs/Manifest                     |   7 +
 sci-libs/avogadrolibs/avogadrolibs-1.100.0.ebuild  | 174 +++++++++++++++++++++
 .../files/avogadrolibs-1.100-fix-openbabel3.patch  |  13 ++
 .../files/avogadrolibs-1.100-tests.patch           |  21 +++
 sci-libs/avogadrolibs/metadata.xml                 |   2 +
 5 files changed, 217 insertions(+)

diff --git a/sci-libs/avogadrolibs/Manifest b/sci-libs/avogadrolibs/Manifest
index af9a44e3a35f..c615c4afbd3c 100644
--- a/sci-libs/avogadrolibs/Manifest
+++ b/sci-libs/avogadrolibs/Manifest
@@ -1,4 +1,11 @@
+DIST avogadrolibs-1.100.0-data.tar.gz 17378761 BLAKE2B 
6900869f5056b02648a95bcacb98f35689f6b90f57f920c2678a0b8f7c043d4adc37b5c83de671ba7554b040a898bcaaa6cb36f29df84ce5221ee9f706ee93ff
 SHA512 
71616ab1c197919fe1337654e698c0a52d86266bf64ca9453b89913c957b473c74e58a8a9483682dbaba56d296a2f56154bd94e5fdf9e4795b7457371215b0c3
+DIST avogadrolibs-1.100.0.tar.gz 4979722 BLAKE2B 
1a47d9636ff5c978e2fbe84f782b8bd9b24fd23b44de93bd2b9f7790d3e077a92e2ac62a3823466ffd0e8ec664514d18c47ef5d0ff874d83b4c7571e046960d2
 SHA512 
8f0e9a6659a3190b12667da948468b83952e5017929ab802e4153682ed8b1a8ac97e874c20773c45e6e5c67fb3d2fd0ae55e99e49a8d03305b5a66e87ccbd2fd
 DIST avogadrolibs-1.97.0.tar.gz 11456702 BLAKE2B 
2f9229a0525dc151ef636c4c101ea21d3713efb033f6a007c43689bfd078b07081d695bb3ec32715c3ccf9d67e7bb85a617a08eeb0e6fc8c80e479a3cb3f1553
 SHA512 
a0ad3ba294db5f0fff35087ff0f616fdcaefc7b4abfa470c9fd26326ad14f73e3584c18a7111b671998d8a23a50091307520f01f79295fc7ea52ae2d78716c7e
+DIST avogadrolibs-avogenerators-1.98.0.tar.gz 15676 BLAKE2B 
647050636cd93e2055dacbd5c8c1c7b98b1c61ac891b836ec990d75be80ff62c452f54d7225550b9fd5e4126c1b9cf3d806121d759aabca571bfff5e6bc69028
 SHA512 
87f42a538af6418ce33813b8e263ca349dca455142f476413b93ba9b0c5762b7e66f8fc1cd2535a5e284b6df3e7acc226fd7c223d1d20318fca9fa69536c6f4e
 DIST avogadrolibs-crystals-1.0.1.tar.gz 151829 BLAKE2B 
0a1353392a4c087977452f50ffb7db0b2976a2993651b6f7e0df7a9ce6fa8f7960223cac2916dd9f667d37518b85606d73d05e86f7489193a6a609700fc60223
 SHA512 
c5d6500d8472807b8d2e62888e4a09279c6aeafec81bc4981edaa74e36724b1e7f0381250c79ad297f9f0331bcb5cd8a45fce3f13ad65b9870e901a6424c0650
+DIST avogadrolibs-crystals-1.98.0.tar.gz 55935019 BLAKE2B 
1750369af8a259bdccb3b0babf4e46ecc7f780f12ff8d00fcc230c7d3689bdc690bd9856ece49afca1b0f4b717360462577e618a54351c80c983a1d90de58065
 SHA512 
3ed07b598841c8dbc1536bd8f2a992abe73e1dc13bb9c14a4db0b60be7ba085c834d982ceb22ade3a5f0f4d05a7681567bd0c926995e78ebb9d56e2923bd4706
+DIST avogadrolibs-fragments-1.99.0.tar.gz 2553232 BLAKE2B 
3d2b25bbf73e0c239634726005fb737a88199882059a8f0f57638749e06593d6156df382957126d8bc010ab75b1de872de64e559d56921a51d442d915c9cd389
 SHA512 
fa1341a482f184960a0167c601e3bd8faac2f4e312c7a603146c63ad563cb3b943e37c0d3fe785eb134c0bf4dd3dda6e21b8276e760237f5b6b2e883af5a268a
+DIST avogadrolibs-linux64-genXrdPattern-1.1 14315976 BLAKE2B 
bed67aa2bb015843c20af8b89e1276a3e509cbebb32b36bb4002cb8fcfa557acfeefff37ccae2b7d67ca80e09f654c924c6d6227d1d0e1fcfa43438aef81de08
 SHA512 
e98395e1dd831779af7a613e9c6460a4f048e0a7973d6156e8ebd0bebe2d32b4c19df9875e91185b73ddc6f0d3637d35e955b3bd393c0893986555763b61492a
 DIST avogadrolibs-molecules-1.0.0.tar.gz 206924 BLAKE2B 
70eea3d5eb440ab2c7f29c56111f2b8cf780cc84983aa145bc4f2fe144c981978218333ba3c33cf1f620dd3180cca706dfa4e94ffaee6167f89bd3e372172218
 SHA512 
06891ea7ad3e65c5b0c0ad73ea01916478fcd13fd9ff0d6905d28159678a50371ba9fa2c1f68ef32604dee0c2165de29bd5d50ffbc345bfe752ef0bcb13126f2
+DIST avogadrolibs-molecules-1.98.0.tar.gz 9953630 BLAKE2B 
eabc9604a68efb5db912c45ec19b731e51d5405e50dad597289f07ce1faeca9c2c296b9005ecfe21c2695ca9d536d79ec42e7e58aa6fb67f753187abc6f96649
 SHA512 
297bf73b290c099267ff011c68f40c636094a9ca632be7bc6d71db99d55eb16bfa9b1eee7504ada8a15534690aa80840e7d731880346fcd8b68e08b00b1e2bf6
 DIST linux64-genXrdPattern-avogadrolibs-1.97.0 7480152 BLAKE2B 
dca8285c41aadfaa20c72f337e0f02db8ee07ce30c11ae84bf3aa7bd0b2220273d33f484d63f761d41a8946c6a0b77a0fb27906c480bcae01ae49b1531ae5cbb
 SHA512 
538bde12e1e52600a21640d5907f43fcc853c6f3c111880f39eb238093e3d1358ccdfa1f45e944ec8b8e5ee3c2dff269cefe5334db5d73300e6ca327c95520b8

diff --git a/sci-libs/avogadrolibs/avogadrolibs-1.100.0.ebuild 
b/sci-libs/avogadrolibs/avogadrolibs-1.100.0.ebuild
new file mode 100644
index 000000000000..19472b5c3b31
--- /dev/null
+++ b/sci-libs/avogadrolibs/avogadrolibs-1.100.0.ebuild
@@ -0,0 +1,174 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit cmake
+
+MY_PV_AVOGEN=1.98.0
+MY_PV_CRYSTALS=1.98.0
+MY_PV_FRAGMENTS=1.99.0
+MY_PV_GENXRD=1.1
+MY_PV_MOLECULES=1.98.0
+
+DESCRIPTION="Advanced molecule editor and visualizer 2 - libraries"
+HOMEPAGE="https://two.avogadro.cc/ https://www.openchemistry.org/";
+SRC_URI="
+       https://github.com/OpenChemistry/${PN}/archive/${PV}.tar.gz
+               -> ${P}.tar.gz
+       qt6? (
+               
https://github.com/OpenChemistry/avogenerators/archive/refs/tags/${MY_PV_AVOGEN}.tar.gz
+                       -> ${PN}-avogenerators-${MY_PV_AVOGEN}.tar.gz
+               
https://github.com/OpenChemistry/crystals/archive/refs/tags/${MY_PV_CRYSTALS}.tar.gz
+                       -> ${PN}-crystals-${MY_PV_CRYSTALS}.tar.gz
+               
https://github.com/OpenChemistry/fragments/archive/refs/tags/${MY_PV_FRAGMENTS}.tar.gz
+                       -> ${PN}-fragments-${MY_PV_FRAGMENTS}.tar.gz
+               
https://github.com/OpenChemistry/molecules/archive/refs/tags/${MY_PV_MOLECULES}.tar.gz
+                       -> ${PN}-molecules-${MY_PV_MOLECULES}.tar.gz
+       )
+       test? ( 
https://github.com/OpenChemistry/avogadrodata/archive/refs/tags/${PV}.tar.gz
+               -> ${P}-data.tar.gz )
+       vtk? ( 
https://github.com/psavery/genXrdPattern/releases/download/${MY_PV_GENXRD}-linux/linux64-genXrdPattern
+               -> ${PN}-linux64-genXrdPattern-${MY_PV_GENXRD} )
+"
+
+LICENSE="BSD GPL-2+"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
+IUSE="archive doc hdf5 mmtf qt6 spglib test vtk"
+RESTRICT="!test? ( test )"
+REQUIRED_USE="
+       test? ( qt6 )
+       vtk? ( qt6 )
+"
+
+# TODO: Not yet packaged:
+# sci-libs/libmsym (https://github.com/mcodev31/libmsym)
+RDEPEND="
+       dev-cpp/nlohmann_json
+       dev-libs/pugixml
+       hdf5? ( sci-libs/hdf5:= )
+       qt6? (
+               >=sci-chemistry/openbabel-3.1.1_p20241221:=[json]
+               dev-qt/qtbase:6[concurrent,gui,network,opengl,widgets]
+               dev-qt/qtsvg:6
+               media-libs/glew:0=
+               virtual/opengl
+               archive? ( app-arch/libarchive:= )
+       )
+       spglib? ( >=sci-libs/spglib-2.6.0:= )
+       vtk? ( sci-libs/vtk:=[qt6,views] )
+"
+DEPEND="${RDEPEND}
+       dev-cpp/eigen:3
+       mmtf? ( dev-libs/mmtf-cpp )
+"
+BDEPEND="
+       doc? ( app-text/doxygen )
+       test? ( dev-cpp/gtest )
+"
+
+PATCHES=(
+       "${FILESDIR}/"${PN}-1.91.0_pre20180406-bundled-genxrdpattern.patch
+       "${FILESDIR}/"${PN}-1.100-tests.patch
+       # https://github.com/OpenChemistry/avogadrolibs/issues/1633
+       "${FILESDIR}/"${PN}-1.100-fix-openbabel3.patch
+)
+
+# Static binary (requires ObjCryst++ to build otherwise)
+QA_FLAGS_IGNORED="usr/bin/genXrdPattern"
+
+src_unpack() {
+       default
+
+       rm -rf thirdparty/{nlohmann,pugixml} || die
+
+       if use vtk; then
+               cp "${DISTDIR}"/${PN}-linux64-genXrdPattern-${MY_PV_GENXRD} 
"${WORKDIR}/genXrdPattern" || die
+       fi
+
+       if use qt6; then
+               # hardcoded assumptions in
+               # avogadro/qtplugins/insertfragment/CMakeLists.txt
+               mv crystals-${MY_PV_CRYSTALS} crystals || die
+               mv molecules-${MY_PV_MOLECULES} molecules || die
+               # avogadro/qtplugins/quantuminput/CMakeLists.txt
+               mv avogenerators-${MY_PV_AVOGEN} avogadrogenerators || die
+               # avogadro/qtplugins/templatetool/CMakeLists.txt
+               mv fragments-${MY_PV_FRAGMENTS} fragments || die
+       fi
+
+       if use test; then
+               mv avogadrodata-${PV} avogadrodata || die
+       fi
+}
+
+src_prepare() {
+       # fix default value for BABEL_LIBDIR
+       sed -i -e "s:/../lib/openbabel:/../$(get_libdir)/openbabel:g" \
+               avogadro/qtplugins/forcefield/obenergy.cpp \
+               avogadro/qtplugins/forcefield/obmmenergy.cpp \
+               avogadro/qtplugins/openbabel/obprocess.cpp || die
+
+       if use doc; then
+               doxygen -u docs/doxyfile.in 2>/dev/null || die
+       fi
+
+       cmake_src_prepare
+}
+
+src_configure() {
+       local mycmakeargs=(
+               -DCMAKE_SKIP_RPATH=ON
+               -DUSE_EXTERNAL_NLOHMANN=ON
+               -DUSE_EXTERNAL_PUGIXML=ON
+               -DUSE_LIBARCHIVE=$(usex archive $(usex qt6))
+               -DBUILD_DOCUMENTATION=$(usex doc)
+               -DUSE_HDF5=$(usex hdf5)
+               -DUSE_MMTF=$(usex mmtf)
+               -DUSE_OPENGL=$(usex qt6)
+               -DUSE_QT=$(usex qt6)
+               -DUSE_SPGLIB=$(usex spglib)
+               -DENABLE_TESTING=$(usex test)
+               -DUSE_VTK=$(usex vtk)
+               # disabled libraries
+               -DUSE_PYTHON=OFF
+               -DUSE_LIBMSYM=OFF
+       )
+
+       use qt6 && mycmakeargs+=(
+               -DBUILD_GPL_PLUGINS=ON
+               -DQT_VERSION=6
+       )
+
+       use vtk && mycmakeargs+=(
+               -DBUNDLED_GENXRDPATTERN="${WORKDIR}/genXrdPattern"
+               -DUSE_SYSTEM_GENXRDPATTERN=OFF
+       )
+
+       cmake_src_configure
+}
+
+src_compile() {
+       cmake_src_compile
+
+       use doc && cmake_build documentation
+}
+
+src_test() {
+       local -x LD_LIBRARY_PATH="${BUILD_DIR}/lib"
+       cmake_src_test
+}
+
+src_install() {
+       if use doc; then
+               local DOCS+=( "${BUILD_DIR}"/docs/xml )
+               local HTML_DOCS=( "${BUILD_DIR}"/docs/html/. )
+               docompress -x /usr/share/doc/${PF}/xml
+       fi
+
+       cmake_src_install
+
+       # 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-fix-openbabel3.patch 
b/sci-libs/avogadrolibs/files/avogadrolibs-1.100-fix-openbabel3.patch
new file mode 100644
index 000000000000..6395dc83359b
--- /dev/null
+++ b/sci-libs/avogadrolibs/files/avogadrolibs-1.100-fix-openbabel3.patch
@@ -0,0 +1,13 @@
+FindOpenBabel3.cmake is not fully functional
+(confusion between OpenBabel3_INCLUDE_DIR / OPENBABEL3_INCLUDE_DIR)
+The easiest way is to amend here.
+--- a/cmake/FindOpenBabel3.cmake
++++ b/cmake/FindOpenBabel3.cmake
+@@ -26,6 +26,6 @@
+     set_target_properties(OpenBabel3 PROPERTIES
+       IMPORTED_LOCATION "${OpenBabel3_LIBRARY}"
+       IMPORTED_IMPLIB "${OpenBabel3_LIBRARY}"
+-      INTERFACE_INCLUDE_DIRECTORIES "${OpenBabel3_INCLUDE_DIR}")
++      INTERFACE_INCLUDE_DIRECTORIES "${OpenBabel3_INCLUDE_DIR}/openbabel3")
+   endif()
+ endif()

diff --git a/sci-libs/avogadrolibs/files/avogadrolibs-1.100-tests.patch 
b/sci-libs/avogadrolibs/files/avogadrolibs-1.100-tests.patch
new file mode 100644
index 000000000000..6c9cc4faf99d
--- /dev/null
+++ b/sci-libs/avogadrolibs/files/avogadrolibs-1.100-tests.patch
@@ -0,0 +1,21 @@
+Spacegroup test requires spglib feature, see tests/core/spacegrouptest.cpp:17
+--- a/tests/core/CMakeLists.txt
++++ b/tests/core/CMakeLists.txt
+@@ -16,13 +16,16 @@
+   Mutex
+   NeighborPerceiver
+   RingPerceiver
+-  Spacegroup
+   Utilities
+   UnitCell
+   Variant
+   VariantMap
+   )
+ 
++if(USE_SPGLIB)
++  list(APPEND tests Spacegroup)
++endif()
++
+ # Build up the source file names.
+ set(testSrcs "")
+ foreach(TestName ${tests})

diff --git a/sci-libs/avogadrolibs/metadata.xml 
b/sci-libs/avogadrolibs/metadata.xml
index 672fc1a05040..ff776fffbddf 100644
--- a/sci-libs/avogadrolibs/metadata.xml
+++ b/sci-libs/avogadrolibs/metadata.xml
@@ -7,6 +7,8 @@
        </maintainer>
        <use>
                <flag name="archive">Enable archive support using 
<pkg>app-arch/libarchive</pkg></flag>
+               <flag name="mmtf">Enable support of MMTF format using 
<pkg>dev-libs/mmtf-cpp</pkg></flag>
+               <flag name="spglib">Find and set the Hall number for a crystal 
using <pkg>sci-libs/spglib</pkg></flag>
                <flag name="vtk">Enable <pkg>sci-libs/vtk</pkg> support</flag>
        </use>
        <upstream>

Reply via email to