Gentoo Archives: gentoo-commits

From: Michael Orlitzky <mjo@g.o>
To: gentoo-commits@l.g.o
Subject: [gentoo-commits] repo/gentoo:master commit in: sci-mathematics/singular/, sci-mathematics/singular/files/
Date: Fri, 27 May 2022 12:23:14
Message-Id: 1653652648.6be66ead89fefe4639d071245b4d151cdf06a581.mjo@gentoo
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 +}