1 |
commit: 6be66ead89fefe4639d071245b4d151cdf06a581 |
2 |
Author: François Bissey <frp.bissey <AT> gmail <DOT> com> |
3 |
AuthorDate: Thu May 19 23:22:50 2022 +0000 |
4 |
Commit: Michael Orlitzky <mjo <AT> gentoo <DOT> org> |
5 |
CommitDate: Fri May 27 11:57:28 2022 +0000 |
6 |
URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6be66ead |
7 |
|
8 |
sci-mathematics/singular: upstream bump |
9 |
|
10 |
Package-Manager: Portage-3.0.30, Repoman-3.0.3 |
11 |
Signed-off-by: François René Pierre Bissey <frp.bissey <AT> gmail.com> |
12 |
Signed-off-by: Michael Orlitzky <mjo <AT> gentoo.org> |
13 |
|
14 |
sci-mathematics/singular/Manifest | 1 + |
15 |
.../singular/files/singular-4.3.0_p1-gcc12.patch | 85 +++++++++++++++ |
16 |
sci-mathematics/singular/singular-4.3.0_p1.ebuild | 114 +++++++++++++++++++++ |
17 |
3 files changed, 200 insertions(+) |
18 |
|
19 |
diff --git a/sci-mathematics/singular/Manifest b/sci-mathematics/singular/Manifest |
20 |
index 3c123f933187..3128bf56af08 100644 |
21 |
--- a/sci-mathematics/singular/Manifest |
22 |
+++ b/sci-mathematics/singular/Manifest |
23 |
@@ -3,3 +3,4 @@ DIST singular-4.2.0p3.tar.gz 16641923 BLAKE2B 4dd7e1a42c71bbba625e171aee656580b4 |
24 |
DIST singular-4.2.1.tar.gz 16643430 BLAKE2B 2cfc33bd59a5e8756c7ce022ad2b38477a0d7a6747b3c4fd4b1b168cfd179ace52121506cda2c4d5f318abca72231c74f649ede349b17b5f138083428d9da766 SHA512 48bebbe9c886ee56bb2f7bdd9e356bd33e357a2d707c976b8496200f422a2ba25d7c9bba22a261574428abf73a8b6b111d35236fca647e32619659059e861916 |
25 |
DIST singular-4.2.1p3.tar.gz 15042102 BLAKE2B 9958c1c432f8a3516387cfe7b258d2e22e8e9fdf3874de53a803b34e353088a3ce246a90b78db43f186717985b503d2355f524ee80784e63b186d53217fdeead SHA512 1e6533fcf966499e9ad145b640e7e5878eb9738bd65535aaa517c5e98dedb09bc99bf832359e9b6dca2fff615237f855bd861820e592a885341aa82e7a9a9168 |
26 |
DIST singular-4.3.0.tar.gz 15098830 BLAKE2B 9d99683c23e0fe031866807a7f24888d8e759b93ce8f454db702fee2b5200942957360edb1563f832715837f7908dbc3f37aa2a3bd1224dcf7eaa8594fc0a51f SHA512 b765536fc929f2445a3f7bea73a6a351ff98fe3326b9f3ba99c5b1cec3bfb494ed957725aad548e349a2a3f8a4058ef350ab11e7153091c9b0233f201008bbb2 |
27 |
+DIST singular-4.3.0p1.tar.gz 15097535 BLAKE2B 0afc8adea054ccdf68f276b3c4c25e55f938ef9cf9c85fbab86163c6d6839dcfb3d8e1632c135d4d3c978477f165d58727d35c6aaac2f39b4b6f942ca8bbb062 SHA512 af4d3377e9ea8f0b5f34db42c36817e8cf47717accba40c151b68213d8e0832bee71e480e22c60fcc6ced619f6117c24f6d18b87cf66406a175b38e3a7aece69 |
28 |
|
29 |
diff --git a/sci-mathematics/singular/files/singular-4.3.0_p1-gcc12.patch b/sci-mathematics/singular/files/singular-4.3.0_p1-gcc12.patch |
30 |
new file mode 100644 |
31 |
index 000000000000..7654f1710191 |
32 |
--- /dev/null |
33 |
+++ b/sci-mathematics/singular/files/singular-4.3.0_p1-gcc12.patch |
34 |
@@ -0,0 +1,85 @@ |
35 |
+From 5155427417fa722a27c110b2c1939c0979c6dcbc Mon Sep 17 00:00:00 2001 |
36 |
+From: Hans Schoenemann <hannes@×××××××××××××××××.de> |
37 |
+Date: Tue, 10 May 2022 16:52:42 +0200 |
38 |
+Subject: [PATCH] fix: gcc-12 does not like offsetof ? |
39 |
+ |
40 |
+--- |
41 |
+ kernel/oswrapper/vspace.cc | 24 ++++++++++++++++++++++++ |
42 |
+ 1 file changed, 24 insertions(+) |
43 |
+ |
44 |
+diff --git a/kernel/oswrapper/vspace.cc b/kernel/oswrapper/vspace.cc |
45 |
+index fa42bf5e28..aefa661600 100644 |
46 |
+--- a/kernel/oswrapper/vspace.cc |
47 |
++++ b/kernel/oswrapper/vspace.cc |
48 |
+@@ -197,7 +197,11 @@ static void print_freelists() { |
49 |
+ |
50 |
+ void vmem_free(vaddr_t vaddr) { |
51 |
+ lock_allocator(); |
52 |
++ #if defined(__GNUC__) && (__GNUC__>11) |
53 |
++ vaddr -= (sizeof(vaddr_t)*2); |
54 |
++ #else |
55 |
+ vaddr -= offsetof(Block, data); |
56 |
++ #endif |
57 |
+ vmem.ensure_is_mapped(vaddr); |
58 |
+ size_t segno = vmem.segment_no(vaddr); |
59 |
+ VSeg seg = vmem.segment(vaddr); |
60 |
+@@ -245,7 +249,11 @@ void vmem_free(vaddr_t vaddr) { |
61 |
+ |
62 |
+ vaddr_t vmem_alloc(size_t size) { |
63 |
+ lock_allocator(); |
64 |
++ #if defined(__GNUC__) && (__GNUC__>11) |
65 |
++ size_t alloc_size = size + (sizeof(vaddr_t)*2); |
66 |
++ #else |
67 |
+ size_t alloc_size = size + offsetof(Block, data); |
68 |
++ #endif |
69 |
+ int level = find_level(alloc_size); |
70 |
+ int flevel = level; |
71 |
+ while (flevel < LOG2_SEGMENT_SIZE && vmem.freelist[flevel] == VADDR_NULL) |
72 |
+@@ -275,7 +283,11 @@ vaddr_t vmem_alloc(size_t size) { |
73 |
+ assert(vmem.freelist[level] != VADDR_NULL); |
74 |
+ Block *block = vmem.block_ptr(vmem.freelist[level]); |
75 |
+ vaddr_t vaddr = vmem.freelist[level]; |
76 |
++ #if defined(__GNUC__) && (__GNUC__>11) |
77 |
++ vaddr_t result = vaddr + (sizeof(vaddr_t)*2); |
78 |
++ #else |
79 |
+ vaddr_t result = vaddr + offsetof(Block, data); |
80 |
++ #endif |
81 |
+ vmem.freelist[level] = block->next; |
82 |
+ if (block->next != VADDR_NULL) |
83 |
+ vmem.block_ptr(block->next)->prev = VADDR_NULL; |
84 |
+@@ -751,7 +763,11 @@ static void print_freelists() { |
85 |
+ |
86 |
+ void vmem_free(vaddr_t vaddr) { |
87 |
+ lock_allocator(); |
88 |
++ #if defined(__GNUC__) && (__GNUC__>11) |
89 |
++ vaddr_t vaddr -= (sizeof(vaddr_t)*2); |
90 |
++ #else |
91 |
+ vaddr -= offsetof(Block, data); |
92 |
++ #endif |
93 |
+ vmem.ensure_is_mapped(vaddr); |
94 |
+ size_t segno = vmem.segment_no(vaddr); |
95 |
+ VSeg seg = vmem.segment(vaddr); |
96 |
+@@ -799,7 +815,11 @@ void vmem_free(vaddr_t vaddr) { |
97 |
+ |
98 |
+ vaddr_t vmem_alloc(size_t size) { |
99 |
+ lock_allocator(); |
100 |
++ #if defined(__GNUC__) && (__GNUC__>11) |
101 |
++ size_t alloc_size = size + (sizeof(vaddr_t)*2); |
102 |
++ #else |
103 |
+ size_t alloc_size = size + offsetof(Block, data); |
104 |
++ #endif |
105 |
+ int level = find_level(alloc_size); |
106 |
+ int flevel = level; |
107 |
+ while (flevel < LOG2_SEGMENT_SIZE && vmem.freelist[flevel] == VADDR_NULL) |
108 |
+@@ -829,7 +849,11 @@ vaddr_t vmem_alloc(size_t size) { |
109 |
+ assert(vmem.freelist[level] != VADDR_NULL); |
110 |
+ Block *block = vmem.block_ptr(vmem.freelist[level]); |
111 |
+ vaddr_t vaddr = vmem.freelist[level]; |
112 |
++ #if defined(__GNUC__) && (__GNUC__>11) |
113 |
++ vaddr_t result = vaddr + (sizeof(vaddr_t)*2); |
114 |
++ #else |
115 |
+ vaddr_t result = vaddr + offsetof(Block, data); |
116 |
++ #endif |
117 |
+ vmem.freelist[level] = block->next; |
118 |
+ if (block->next != VADDR_NULL) |
119 |
+ vmem.block_ptr(block->next)->prev = VADDR_NULL; |
120 |
|
121 |
diff --git a/sci-mathematics/singular/singular-4.3.0_p1.ebuild b/sci-mathematics/singular/singular-4.3.0_p1.ebuild |
122 |
new file mode 100644 |
123 |
index 000000000000..99fc1c61dd9b |
124 |
--- /dev/null |
125 |
+++ b/sci-mathematics/singular/singular-4.3.0_p1.ebuild |
126 |
@@ -0,0 +1,114 @@ |
127 |
+# Copyright 1999-2022 Gentoo Authors |
128 |
+# Distributed under the terms of the GNU General Public License v2 |
129 |
+ |
130 |
+EAPI=8 |
131 |
+ |
132 |
+inherit autotools elisp-common flag-o-matic |
133 |
+ |
134 |
+MY_PN=Singular |
135 |
+MY_PV=$(ver_rs 3 '') |
136 |
+# Consistency is different... |
137 |
+MY_DIR2=$(ver_cut 1-3 ${PV}) |
138 |
+MY_DIR=$(ver_rs 1- '-' ${MY_DIR2}) |
139 |
+ |
140 |
+DESCRIPTION="Computer algebra system for polynomial computations" |
141 |
+HOMEPAGE="https://www.singular.uni-kl.de/ https://github.com/Singular/Singular" |
142 |
+SRC_URI="ftp://jim.mathematik.uni-kl.de/pub/Math/${MY_PN}/SOURCES/${MY_DIR}/${PN}-${MY_PV}.tar.gz" |
143 |
+S="${WORKDIR}/${PN}-${MY_PV}" |
144 |
+ |
145 |
+LICENSE="BSD GPL-2 GPL-3" |
146 |
+SLOT="0" |
147 |
+KEYWORDS="~amd64 ~ppc ~riscv ~x86 ~x86-linux" |
148 |
+IUSE="emacs examples polymake +readline static-libs" |
149 |
+ |
150 |
+RDEPEND=" |
151 |
+ dev-lang/perl |
152 |
+ dev-libs/gmp:0 |
153 |
+ dev-libs/ntl:= |
154 |
+ sci-libs/cddlib |
155 |
+ sci-mathematics/flint |
156 |
+ emacs? ( >=app-editors/emacs-23.1:* ) |
157 |
+ polymake? ( sci-mathematics/polymake ) |
158 |
+ readline? ( sys-libs/readline ) |
159 |
+" |
160 |
+DEPEND="${RDEPEND}" |
161 |
+ |
162 |
+SITEFILE=60${PN}-gentoo.el |
163 |
+ |
164 |
+PATCHES=( |
165 |
+ "${FILESDIR}/${PN}-4.2.1-htmldoc.patch" |
166 |
+ "${FILESDIR}/${PN}-4.3.0_p1-gcc12.patch" |
167 |
+) |
168 |
+ |
169 |
+src_prepare() { |
170 |
+ default |
171 |
+ |
172 |
+ eautoreconf |
173 |
+} |
174 |
+ |
175 |
+src_configure() { |
176 |
+ local myconf=( |
177 |
+ --disable-debug |
178 |
+ --disable-doc |
179 |
+ --disable-optimizationflags |
180 |
+ --disable-pyobject-module |
181 |
+ --disable-python |
182 |
+ --disable-python-module |
183 |
+ --disable-python_module |
184 |
+ --enable-factory |
185 |
+ --enable-gfanlib |
186 |
+ --enable-libfac |
187 |
+ --with-flint |
188 |
+ --with-gmp |
189 |
+ --with-libparse |
190 |
+ --with-ntl |
191 |
+ --without-python |
192 |
+ --without-pythonmodule |
193 |
+ $(use_enable emacs) |
194 |
+ $(use_enable polymake polymake-module) |
195 |
+ $(use_enable static-libs static) |
196 |
+ $(use_with readline) |
197 |
+ ) |
198 |
+ econf "${myconf[@]}" |
199 |
+} |
200 |
+ |
201 |
+src_compile() { |
202 |
+ default |
203 |
+ |
204 |
+ if use emacs; then |
205 |
+ pushd "${S}"/emacs |
206 |
+ elisp-compile *.el || die "elisp-compile failed" |
207 |
+ popd |
208 |
+ fi |
209 |
+} |
210 |
+ |
211 |
+src_install() { |
212 |
+ # Do not compress singular's info file (singular.hlp) |
213 |
+ # some consumer of that file do not know how to deal with compression |
214 |
+ docompress -x /usr/share/info |
215 |
+ |
216 |
+ default |
217 |
+ |
218 |
+ dosym Singular /usr/bin/"${PN}" |
219 |
+ |
220 |
+ # purge .la file |
221 |
+ find "${ED}" -name '*.la' -delete || die |
222 |
+} |
223 |
+ |
224 |
+src_test() { |
225 |
+ # SINGULAR_PROCS_DIR need to be set to "" otherwise plugins from |
226 |
+ # an already installed version of singular may be used and cause segfault |
227 |
+ # See https://github.com/Singular/Sources/issues/980 |
228 |
+ SINGULAR_PROCS_DIR="" emake check |
229 |
+} |
230 |
+ |
231 |
+pkg_postinst() { |
232 |
+ einfo "Additional functionality can be enabled by installing" |
233 |
+ einfo "sci-mathematics/4ti2" |
234 |
+ |
235 |
+ use emacs && elisp-site-regen |
236 |
+} |
237 |
+ |
238 |
+pkg_postrm() { |
239 |
+ use emacs && elisp-site-regen |
240 |
+} |