Gentoo Archives: gentoo-commits

From: "Maciej Barć" <xgqt@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sci-mathematics/cadabra/, sci-mathematics/cadabra/files/
Date: Tue, 01 Mar 2022 21:28:13
Message-Id: 1646170054.fd6ad6edc66538568100ccb6adbc1997ca44e91d.xgqt@gentoo
1 commit: fd6ad6edc66538568100ccb6adbc1997ca44e91d
2 Author: Maciej Barć <xgqt <AT> gentoo <DOT> org>
3 AuthorDate: Tue Mar 1 21:26:55 2022 +0000
4 Commit: Maciej Barć <xgqt <AT> gentoo <DOT> org>
5 CommitDate: Tue Mar 1 21:27:34 2022 +0000
6 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=fd6ad6ed
7
8 sci-mathematics/cadabra: new package; add version 2.3.8
9
10 Package-Manager: Portage-3.0.30, Repoman-3.0.3
11 Signed-off-by: Maciej Barć <xgqt <AT> gentoo.org>
12
13 sci-mathematics/cadabra/Manifest | 1 +
14 sci-mathematics/cadabra/cadabra-2.3.8.ebuild | 102 +++++++++++++++++++++
15 sci-mathematics/cadabra/files/cadabra2-CMake.patch | 69 ++++++++++++++
16 sci-mathematics/cadabra/metadata.xml | 29 ++++++
17 4 files changed, 201 insertions(+)
18
19 diff --git a/sci-mathematics/cadabra/Manifest b/sci-mathematics/cadabra/Manifest
20 new file mode 100644
21 index 000000000000..c133327bd4a3
22 --- /dev/null
23 +++ b/sci-mathematics/cadabra/Manifest
24 @@ -0,0 +1 @@
25 +DIST cadabra-2.3.8.tar.gz 24647809 BLAKE2B 70858dab32c31b75b32b9eceaa60166accb0167cd8873c0058e6ef8ccfd3e3643da20b96fce3dde8be0e3fc5fdd42e1e6dac8e394643786163095a72239701d5 SHA512 06ebb148d911094dbdcc76747404cf7eb8f31e3bc458a81a37d4ed3bee3df97fedb9f11ed2251c133914aa6482db5b01d8848ef356ea1a0c83f59e686eebcfa5
26
27 diff --git a/sci-mathematics/cadabra/cadabra-2.3.8.ebuild b/sci-mathematics/cadabra/cadabra-2.3.8.ebuild
28 new file mode 100644
29 index 000000000000..7d5bd7225161
30 --- /dev/null
31 +++ b/sci-mathematics/cadabra/cadabra-2.3.8.ebuild
32 @@ -0,0 +1,102 @@
33 +# Copyright 2022 Gentoo Authors
34 +# Distributed under the terms of the GNU General Public License v2
35 +
36 +EAPI=8
37 +
38 +MAJOR=$(ver_cut 1)
39 +CADABRA=${PN}${MAJOR}
40 +
41 +PYTHON_COMPAT=( python3_{8..10} )
42 +
43 +inherit xdg-utils python-single-r1 cmake
44 +
45 +DESCRIPTION="Field-theory motivated approach to computer algebra"
46 +HOMEPAGE="https://cadabra.science/"
47 +
48 +if [[ "${PV}" == *9999* ]] ; then
49 + inherit git-r3
50 + EGIT_REPO_URI="https://github.com/kpeeters/${CADABRA}.git"
51 +else
52 + SRC_URI="https://github.com/kpeeters/${CADABRA}/archive/${PV}.tar.gz
53 + -> ${P}.tar.gz"
54 + S="${WORKDIR}"/${CADABRA}-${PV}
55 + KEYWORDS="~amd64 ~x86"
56 +fi
57 +
58 +LICENSE="GPL-3"
59 +SLOT="0/${MAJOR}"
60 +IUSE="gtk +jupyter test"
61 +REQUIRED_USE="${PYTHON_REQUIRED_USE}"
62 +RESTRICT="!test? ( test )"
63 +
64 +RDEPEND="
65 + ${PYTHON_DEPS}
66 + app-text/dvipng
67 + dev-db/sqlite:3=
68 + dev-libs/boost:=
69 + dev-libs/gmp:=[cxx]
70 + dev-libs/jsoncpp:=
71 + dev-libs/libsigc++:2
72 + dev-texlive/texlive-basic
73 + $(python_gen_cond_dep '
74 + dev-python/gmpy:2[${PYTHON_USEDEP}]
75 + dev-python/matplotlib[${PYTHON_USEDEP}]
76 + dev-python/sympy[${PYTHON_USEDEP}]
77 + jupyter? ( dev-python/jupyter[${PYTHON_USEDEP}] )
78 + ')
79 + gtk? (
80 + dev-cpp/glibmm:2
81 + dev-cpp/gtkmm:3.0
82 + dev-libs/glib:2
83 + )
84 +"
85 +DEPEND="${RDEPEND}"
86 +BDEPEND="$(python_gen_cond_dep 'dev-python/pybind11[${PYTHON_USEDEP}]')"
87 +
88 +PATCHES=( "${FILESDIR}"/${CADABRA}-CMake.patch )
89 +
90 +DOCS=( CODE_OF_CONDUCT.md CONTRIBUTING.md JUPYTER.rst README.rst)
91 +
92 +# Because we do not want to pull in "_XDG_DEPEND" dependencies with USE="-gtk"
93 +xdg_update() {
94 + if use gtk ; then
95 + xdg_icon_cache_update
96 + xdg_desktop_database_update
97 + xdg_mimeinfo_database_update
98 + fi
99 +}
100 +
101 +src_prepare() {
102 + # Clean postinst script which calls libtool and icon-cache update
103 + echo '#!/bin/sh' > "${S}"/config/postinst.in || die
104 +
105 + # Fix "PYTHON_EXECUTABLE" in Jupyter kernel
106 + sed -i "s|@PYTHON_EXECUTABLE@|${EPYTHON}|" \
107 + "${S}"/jupyterkernel/kernelspec/kernel.json.in || die
108 +
109 + cmake_src_prepare
110 +}
111 +
112 +src_configure() {
113 + local mycmakeargs=(
114 + -DENABLE_SYSTEM_JSONCPP=ON
115 + -DPACKAGING_MODE=ON
116 + -DUSE_PYTHON_3=ON
117 + -DBUILD_AS_CPP_LIBRARY=OFF
118 + -DENABLE_JUPYTER=OFF # special Xeus Jupyter kernel (uses xtl)
119 + -DENABLE_MATHEMATICA=OFF
120 + -DINSTALL_TARGETS_ONLY=OFF
121 + -DBUILD_TESTS=$(usex test)
122 + -DENABLE_FRONTEND=$(usex gtk)
123 + -DENABLE_PY_JUPYTER=$(usex jupyter)
124 + )
125 + cmake_src_configure
126 +}
127 +
128 +pkg_postinst() {
129 + xdg_update
130 +}
131 +
132 +pkg_postrm() {
133 + xdg_update
134 +}
135
136 diff --git a/sci-mathematics/cadabra/files/cadabra2-CMake.patch b/sci-mathematics/cadabra/files/cadabra2-CMake.patch
137 new file mode 100644
138 index 000000000000..9000cd321db9
139 --- /dev/null
140 +++ b/sci-mathematics/cadabra/files/cadabra2-CMake.patch
141 @@ -0,0 +1,69 @@
142 +index 0f2ba31..7e6ace8 100644
143 +--- a/CMakeLists.txt
144 ++++ b/CMakeLists.txt
145 +@@ -166,7 +166,6 @@ if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
146 + message(FATAL_ERROR "GCC version must be at least 4.9 for regex support! See http://askubuntu.com/questions/428198/getting-installing-gcc-g-4-9-on-ubuntu and then set the environment variables CXX to g++-4.9 and CC to gcc-4.9. You may have to erase the build directory before re-running cmake.")
147 + endif()
148 + endif()
149 +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O2 -Wall -fvisibility=hidden -Wno-unused-but-set-variable")
150 + endif()
151 +
152 + # Clang
153 +@@ -175,7 +174,6 @@ if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
154 + if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 3.5)
155 + message(FATAL_ERROR "Clang version must be at least 3.5 to avoid known bugs.")
156 + endif()
157 +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -g -O2 -fvisibility=hidden -Wall -Wextra -Wunused")
158 + endif()
159 +
160 + # Visual Studio
161 +index d21069e..69f4f52 100644
162 +--- a/c++lib/CMakeLists.txt
163 ++++ b/c++lib/CMakeLists.txt
164 +@@ -48,14 +48,6 @@ if(CMAKE_COMPILER_IS_GNUCXX)
165 + add_definitions("-Wall -g -Wno-unused-but-set-variable")
166 + endif()
167 +
168 +-if(CMAKE_COMPILER_IS_GNUCC OR CMAKE_COMPILER_IS_GNUCXX)
169 +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2")
170 +-endif()
171 +-
172 +-if("${CMAKE_CXX_COMPILER_ID}" STREQUAL "Clang")
173 +- set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -O2")
174 +-endif()
175 +-
176 + if(MSVC)
177 + set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON)
178 + set(MSVC_FLAGS
179 +index b7869a9..91567ec 100644
180 +--- a/frontend/gtkmm/CMakeLists.txt
181 ++++ b/frontend/gtkmm/CMakeLists.txt
182 +@@ -160,9 +160,6 @@ if (NOT INSTALL_TARGETS_ONLY)
183 + install(FILES ${CADABRA_IMAGES_DIR}/256x256/cadabra2-gtk.png DESTINATION ${ICON_PREFIX}/share/icons/hicolor/256x256/apps)
184 + install(FILES ${CADABRA_IMAGES_DIR}/cadabra2-gtk.svg DESTINATION ${ICON_PREFIX}/share/icons/hicolor/scalable/apps)
185 + install(FILES ${CADABRA_ROOT_DIR}/config/cadabra2-gtk.desktop DESTINATION ${ICON_PREFIX}/share/applications)
186 +- install(CODE "execute_process(COMMAND touch ${ICON_PREFIX_WITH_DESTDIR}/share/icons/hicolor/icon-theme.cache)")
187 +- install(CODE "execute_process(COMMAND gtk-update-icon-cache-3.0 {ICON_PREFIX_WITH_DESTDIR}/share/icons/hicolor)")
188 +- install(CODE "execute_process(COMMAND chmod go+r ${ICON_PREFIX_WITH_DESTDIR}/share/icons/hicolor/icon-theme.cache)")
189 +
190 + # Install shared libraries on Windows.
191 + # https://stackoverflow.com/questions/32662215/how-do-you-install-gtk-3-0-on-windows
192 +index 071bf11..bdfde1c 100644
193 +--- a/core/CMakeLists.txt
194 ++++ b/core/CMakeLists.txt
195 +@@ -404,15 +404,6 @@ add_subdirectory(packages)
196 + #
197 + # https://stackoverflow.com/questions/21198030/installfiles-cmake-cfg-intdir-abc-win-dll-destination-bin
198 +
199 +-if(NOT WIN32)
200 +- # Remove any old cadabra2.so files in the global site-wide path which may have been
201 +- # left there from a previous install.
202 +- remove_file("${OLD_PYTHON_SITE_PATH}/cadabra2.${PYTHON_MOD_EXT}")
203 +- remove_file("${OLD_PYTHON_SITE_PATH}/cadabra2_defaults.py")
204 +- remove_file("${OLDER_PYTHON_SITE_PATH}/cadabra2.${PYTHON_MOD_EXT}")
205 +- remove_file("${OLDER_PYTHON_SITE_PATH}/cadabra2_defaults.py")
206 +-endif()
207 +-
208 + install_directory_permissions(${PYTHON_SITE_PATH})
209 +
210 + if (MSVC)
211
212 diff --git a/sci-mathematics/cadabra/metadata.xml b/sci-mathematics/cadabra/metadata.xml
213 new file mode 100644
214 index 000000000000..372b6a2d1f8a
215 --- /dev/null
216 +++ b/sci-mathematics/cadabra/metadata.xml
217 @@ -0,0 +1,29 @@
218 +<?xml version="1.0" encoding="UTF-8"?>
219 +<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
220 +
221 +<pkgmetadata>
222 + <maintainer type="project">
223 + <email>sci-mathematics@g.o</email>
224 + <name>Gentoo Mathematics Project</name>
225 + </maintainer>
226 + <longdescription>
227 + Cadabra is a symbolic computer algebra system (CAS) designed specifically
228 + for the solution of problems encountered in field theory. It has extensive
229 + functionality for tensor computer algebra, tensor polynomial simplification
230 + including multi-term symmetries, fermions and anti-commuting variables,
231 + Clifford algebras and Fierz transformations, component computations,
232 + implicit coordinate dependence, multiple index types and many more.
233 + The input format is a subset of TeX.
234 + Both a command-line and a graphical notebook interface are available, and
235 + you can also use Cadabra from Jupyter by using the Cadabra Jupyter kernel.
236 + </longdescription>
237 + <upstream>
238 + <changelog>https://github.com/kpeeters/cadabra2/releases/</changelog>
239 + <bugs-to>https://github.com/kpeeters/cadabra2/issues/</bugs-to>
240 + <remote-id type="github">kpeeters/cadabra2</remote-id>
241 + <doc lang="en">https://cadabra.science/man.html</doc>
242 + </upstream>
243 + <use>
244 + <flag name="jupyter">Build the Cadabra Jupyter kernel</flag>
245 + </use>
246 +</pkgmetadata>