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
