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> |