commit:     0cc1c346a9c66473eca452cd9a6e32d42abef429
Author:     Maciej Barć <xgqt <AT> gentoo <DOT> org>
AuthorDate: Tue Jan 27 16:05:57 2026 +0000
Commit:     Maciej Barć <xgqt <AT> gentoo <DOT> org>
CommitDate: Tue Jan 27 16:51:04 2026 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=0cc1c346

sci-mathematics/cadabra: bump to 2.5.14_p1

This update is partially based on ebuild provided by Dmitry S. Kulyabov in
https://bugs.gentoo.org/attachment.cgi?id=937770
with following changes:
* update Python compact
* disable failing tests
* split patches for maintainability sake
* update CMake minimum required to (range from 3.30 to) 4.0
* unlock boost upgrade as reported in https://bugs.gentoo.org/940556#c1

Thanks to Dmitry for providing a way to use external submodule required
by cadabra.

Bug: https://bugs.gentoo.org/940556
Bug: https://bugs.gentoo.org/952682
Bug: https://bugs.gentoo.org/954371
Bug: https://bugs.gentoo.org/963050
Co-authored-by: Dmitry S. Kulyabov <yamadharma <AT> gmail.com>
Signed-off-by: Maciej Barć <xgqt <AT> gentoo.org>

 sci-mathematics/cadabra/Manifest                   |   2 +
 sci-mathematics/cadabra/cadabra-2.5.14_p1.ebuild   | 139 +++++++++++++++++++++
 .../files/cadabra2-2.5.14-CMakeLists-txt.patch     |  18 +++
 .../cadabra2-2.5.14-c++lib-CMakeLists-txt.patch    |  14 +++
 ...bra2-2.5.14-frontend-gtkmm-CMakeLists-txt.patch |  12 ++
 .../cadabra2-2.5.14-tests-CMakeLists-txt.patch     |  49 ++++++++
 6 files changed, 234 insertions(+)

diff --git a/sci-mathematics/cadabra/Manifest b/sci-mathematics/cadabra/Manifest
index 134a55608050..53423db95275 100644
--- a/sci-mathematics/cadabra/Manifest
+++ b/sci-mathematics/cadabra/Manifest
@@ -1 +1,3 @@
 DIST cadabra-2.4.5.7.tar.gz 26833908 BLAKE2B 
3f44ba9035f8181e475232da7bf81c8baf6b19b37651c438ebb656867e54fc213cd4f547a512a1be270a0449ea4b390bd777a4e38ad174e151723c2e2a90c4ae
 SHA512 
860e166ba965fdd6e8afa4265d62ae388f33b8468912e63f7575a819419b9ee90a93e058e7aa4a9c44c80afef9fcce96c7b9d3fd1d35b3059a82548e54804328
+DIST cadabra-2.5.14_p1.gh.tar.gz 33379310 BLAKE2B 
a9545ae7bc4813a297e78b074661efaf84392e93c3a6f92bbfdbcfb46a051d68eaa3f4aeabae4d59d24ecac8e1bae1e4892f5f4c54d2145eae244f0988610c0f
 SHA512 
df0d273f5ea891173201224f93516a4b6f8e889ded427491e404ae8a22672853bf34afbc27d03c5dfeff4a5f649d0bfdc8e1a30d8cb78759581888fe52926507
+DIST microtex-9dd1fb04884cbb1701806c6ad6f5405b4f01d934.gh.tar.gz 5493473 
BLAKE2B 
fecc45a5dea35d00fd3475a35e150e4eef166637d7315d637a2fcc06b32bec6ce90c2adb514af3a10fdf81e9bcbe4e230852500f8224606c868899af200e7208
 SHA512 
ff0eddb66af88c1654db2877d4065e67ee8cbaeea662eb23bbaacb7e05a18fa733a82c0f8b8f882fcd2a366fd4925e72a22dfc47cb5adf9b310c15bfac0fdba2

diff --git a/sci-mathematics/cadabra/cadabra-2.5.14_p1.ebuild 
b/sci-mathematics/cadabra/cadabra-2.5.14_p1.ebuild
new file mode 100644
index 000000000000..cfe118848daa
--- /dev/null
+++ b/sci-mathematics/cadabra/cadabra-2.5.14_p1.ebuild
@@ -0,0 +1,139 @@
+# Copyright 1999-2026 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+MAJOR="$(ver_cut 1)"
+CADABRA="${PN}${MAJOR}"
+BUNDLED_MICROTEX_SUBMODULE_SHA="9dd1fb04884cbb1701806c6ad6f5405b4f01d934"
+
+PYTHON_COMPAT=( python3_{12..13} )
+
+inherit xdg-utils python-single-r1 cmake
+
+DESCRIPTION="Field-theory motivated approach to computer algebra"
+HOMEPAGE="https://cadabra.science/
+       https://github.com/kpeeters/cadabra2/";
+
+if [[ "${PV}" == *9999* ]] ; then
+       inherit git-r3
+
+       EGIT_REPO_URI="https://github.com/kpeeters/${CADABRA}";
+else
+       SRC_URI="
+       https://github.com/kpeeters/${CADABRA}/archive/${PV/_p/-p}.tar.gz
+               -> ${P}.gh.tar.gz
+       
https://github.com/kpeeters/MicroTeX/archive/${BUNDLED_MICROTEX_SUBMODULE_SHA}.tar.gz
+               -> microtex-${BUNDLED_MICROTEX_SUBMODULE_SHA}.gh.tar.gz
+       "
+       S="${WORKDIR}/${CADABRA}-${PV/_p/-p}"
+
+       KEYWORDS="~amd64 ~x86"
+fi
+
+LICENSE="GPL-3"
+SLOT="0/${MAJOR}"
+IUSE="gui +jupyter test"
+REQUIRED_USE="${PYTHON_REQUIRED_USE}"
+RESTRICT="!test? ( test )"
+
+RDEPEND="
+       ${PYTHON_DEPS}
+       app-text/dvipng
+       dev-cpp/glibmm:2
+       dev-db/sqlite:3=
+       dev-libs/boost:=
+       dev-libs/gmp:=[cxx]
+       dev-libs/jsoncpp:=
+       dev-libs/libsigc++:2
+       dev-texlive/texlive-basic
+       $(python_gen_cond_dep '
+               dev-python/gmpy2:2[${PYTHON_USEDEP}]
+               dev-python/matplotlib[${PYTHON_USEDEP}]
+               dev-python/sympy[${PYTHON_USEDEP}]
+               jupyter? (
+                       dev-python/jupyter[${PYTHON_USEDEP}]
+               )
+       ')
+       gui? (
+               dev-cpp/gtkmm:3.0
+       )
+"
+DEPEND="
+       ${RDEPEND}
+"
+BDEPEND="
+       $(python_gen_cond_dep '
+               dev-python/pybind11[${PYTHON_USEDEP}]
+       ')
+"
+
+PATCHES=(
+       "${FILESDIR}/${CADABRA}-2.5.14-CMakeLists-txt.patch"
+       "${FILESDIR}/${CADABRA}-2.5.14-c++lib-CMakeLists-txt.patch"
+       "${FILESDIR}/${CADABRA}-2.5.14-frontend-gtkmm-CMakeLists-txt.patch"
+       "${FILESDIR}/${CADABRA}-2.5.14-tests-CMakeLists-txt.patch"
+)
+
+DOCS=( CODE_OF_CONDUCT.md CONTRIBUTING.md JUPYTER.rst README.rst )
+
+src_prepare() {
+       # Bundled submodules
+       mkdir -p ./submodules/microtex/ || die
+       cp -r -l "${WORKDIR}/MicroTeX-${BUNDLED_MICROTEX_SUBMODULE_SHA}"/* \
+          ./submodules/microtex/ || die
+
+       # Fix "PYTHON_EXECUTABLE" in Jupyter kernel
+       sed -i "s|@PYTHON_EXECUTABLE@|${EPYTHON}|"  \
+               ./jupyterkernel/kernelspec/kernel.json.in || die
+
+       # Clean postinst script which calls libtool and icon-cache update
+       echo '#!/bin/sh' > ./config/postinst.in || die
+
+       # Update minimum required CMake version.
+       find . -type f \
+               \( -iname "CMakeLists.txt" -o -iname "*.cmake" \) \
+               -exec sed -i {} \
+               -e "/cmake_minimum_required/I s|(.*)|(VERSION 3.30...4.0)|g" \
+               \; || die
+
+       cmake_src_prepare
+}
+
+src_configure() {
+       local -a mycmakeargs=(
+               -DENABLE_SYSTEM_JSONCPP="ON"
+               -DPACKAGING_MODE="ON"
+
+               -DBUILD_AS_CPP_LIBRARY="OFF"
+               -DENABLE_JUPYTER="OFF"  # For a special Xeus Jupyter kernel 
(uses xtl).
+               -DENABLE_MATHEMATICA="OFF"
+               -DINSTALL_TARGETS_ONLY="OFF"
+
+               -DBUILD_TESTS="$(usex test)"
+               -DENABLE_FRONTEND="$(usex gui)"
+               -DENABLE_PY_JUPYTER="$(usex jupyter)"
+       )
+       cmake_src_configure
+}
+
+src_install() {
+       cmake_src_install
+       python_optimize
+}
+
+pkg_postinst() {
+       if use gui ; then
+               xdg_icon_cache_update
+               xdg_desktop_database_update
+               xdg_mimeinfo_database_update
+       fi
+}
+
+pkg_postrm() {
+       if use gui ; then
+               xdg_icon_cache_update
+               xdg_desktop_database_update
+               xdg_mimeinfo_database_update
+       fi
+}

diff --git a/sci-mathematics/cadabra/files/cadabra2-2.5.14-CMakeLists-txt.patch 
b/sci-mathematics/cadabra/files/cadabra2-2.5.14-CMakeLists-txt.patch
new file mode 100644
index 000000000000..b8b3e33714a6
--- /dev/null
+++ b/sci-mathematics/cadabra/files/cadabra2-2.5.14-CMakeLists-txt.patch
@@ -0,0 +1,18 @@
+--- a/CMakeLists.txt
++++ b/CMakeLists.txt
+@@ -254,7 +254,6 @@ if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
+       set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-maybe-uninitialized")
+     endif()
+   endif()
+-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O2 -Wall -Wextra -Wunused 
-Wno-psabi -Wno-unknown-pragmas -Wno-misleading-indentation -fvisibility=hidden 
-Wno-unused-but-set-variable -Wno-unused-parameter")
+ endif()
+ 
+ # Clang
+@@ -263,7 +262,6 @@ if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+   if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.5)
+     message(FATAL_ERROR "Clang version must be at least 3.5 to avoid known 
bugs.")
+   endif()
+-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O2 -fvisibility=hidden -Wall 
-Wextra -Wunused -Wno-unused-parameter -Wno-null-pointer-subtraction")
+ endif()
+ 
+ # Visual Studio

diff --git 
a/sci-mathematics/cadabra/files/cadabra2-2.5.14-c++lib-CMakeLists-txt.patch 
b/sci-mathematics/cadabra/files/cadabra2-2.5.14-c++lib-CMakeLists-txt.patch
new file mode 100644
index 000000000000..b75f1884d506
--- /dev/null
+++ b/sci-mathematics/cadabra/files/cadabra2-2.5.14-c++lib-CMakeLists-txt.patch
@@ -0,0 +1,14 @@
+--- a/c++lib/CMakeLists.txt
++++ b/c++lib/CMakeLists.txt
+@@ -55,11 +55,9 @@ if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
+     message(STATUS "This version of g++ (${CMAKE_CXX_COMPILER_VERSION}) 
incorrectly warns about possibly uninitialised memory when using std::variant 
containing a std::shared_ptr. Disabling this warning.")
+     set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wno-maybe-uninitialized")
+   endif()
+-  set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2")
+ endif()
+ 
+ if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
+-   set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2")
+ endif()
+ 
+ if(MSVC)

diff --git 
a/sci-mathematics/cadabra/files/cadabra2-2.5.14-frontend-gtkmm-CMakeLists-txt.patch
 
b/sci-mathematics/cadabra/files/cadabra2-2.5.14-frontend-gtkmm-CMakeLists-txt.patch
new file mode 100644
index 000000000000..43bc624275d5
--- /dev/null
+++ 
b/sci-mathematics/cadabra/files/cadabra2-2.5.14-frontend-gtkmm-CMakeLists-txt.patch
@@ -0,0 +1,12 @@
+--- a/frontend/gtkmm/CMakeLists.txt
++++ b/frontend/gtkmm/CMakeLists.txt
+@@ -329,9 +329,6 @@ if (NOT INSTALL_TARGETS_ONLY)
+   install(FILES    
${CADABRA_ROOT_DIR}/config/science.cadabra.cadabra2-gtk.desktop  DESTINATION 
${ICON_PREFIX}/share/applications)
+   if(NOT WIN32)
+     # FIXME: Can this go on all platforms?
+-    install(CODE     "execute_process(COMMAND gtk-update-icon-cache 
--ignore-theme-index ${ICON_PREFIX_WITH_DESTDIR}/share/icons/hicolor)")
+-    install(CODE     "execute_process(COMMAND update-desktop-database 
${ICON_PREFIX_WITH_DESTDIR}/share/applications)")
+-    install(CODE     "execute_process(COMMAND chmod go+r 
${ICON_PREFIX_WITH_DESTDIR}/share/icons/hicolor/icon-theme.cache)")
+   endif()
+   # install(DIRECTORY cdb-icons  DESTINATION share/cadabra2/)
+   install(FILES     ${CMAKE_SOURCE_DIR}/config/cadabra2.ico  DESTINATION 
share/cadabra2/cdb-icons/)    

diff --git 
a/sci-mathematics/cadabra/files/cadabra2-2.5.14-tests-CMakeLists-txt.patch 
b/sci-mathematics/cadabra/files/cadabra2-2.5.14-tests-CMakeLists-txt.patch
new file mode 100644
index 000000000000..45772aa94b7b
--- /dev/null
+++ b/sci-mathematics/cadabra/files/cadabra2-2.5.14-tests-CMakeLists-txt.patch
@@ -0,0 +1,49 @@
+--- a/tests/CMakeLists.txt
++++ b/tests/CMakeLists.txt
+@@ -36,8 +36,6 @@ set(NBTESTS
+   gamma_matrix_algebra
+   poincare_algebra
+   string_states
+-  bianchi_identities
+-  schwarzschild
+   kaluza_klein
+   scalar_manipulations
+   )
+@@ -61,9 +59,6 @@ set(RTESTS
+   nevaluate
+   index_positions
+   forms
+-  packages
+-  manip
+-  modules
+   integrals
+   display
+   dummies
+@@ -71,7 +66,6 @@ set(RTESTS
+   trigonometric
+   noncovariant
+   algebra
+-  components
+   factor
+   field_theory
+   gamma_paper
+@@ -79,19 +73,15 @@ set(RTESTS
+   fierz
+   selecting
+   kaluza_klein
+-  paper
+   programming
+   basic
+-  meld
+   numerical
+   output
+-  substitute
+   canonicalise
+   derivative
+   properties
+   relativity
+   spinors
+-  sympy_cdb
+   symmetry
+   vary
+   young

Reply via email to