summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFrançois Bissey <frp.bissey@gmail.com>2022-05-20 11:22:50 +1200
committerMichael Orlitzky <mjo@gentoo.org>2022-05-27 07:57:28 -0400
commit6be66ead89fefe4639d071245b4d151cdf06a581 (patch)
treeea0c8f97ec7f281e421454829d548f98b7b1ed0d
parentkde-plasma/plasma-meta: Stabilize 5.24.5 amd64, #845075 (diff)
downloadgentoo-6be66ead89fefe4639d071245b4d151cdf06a581.tar.gz
gentoo-6be66ead89fefe4639d071245b4d151cdf06a581.tar.bz2
gentoo-6be66ead89fefe4639d071245b4d151cdf06a581.zip
sci-mathematics/singular: upstream bump
Package-Manager: Portage-3.0.30, Repoman-3.0.3 Signed-off-by: François René Pierre Bissey <frp.bissey@gmail.com> Signed-off-by: Michael Orlitzky <mjo@gentoo.org>
-rw-r--r--sci-mathematics/singular/Manifest1
-rw-r--r--sci-mathematics/singular/files/singular-4.3.0_p1-gcc12.patch85
-rw-r--r--sci-mathematics/singular/singular-4.3.0_p1.ebuild114
3 files changed, 200 insertions, 0 deletions
diff --git a/sci-mathematics/singular/Manifest b/sci-mathematics/singular/Manifest
index 3c123f933187..3128bf56af08 100644
--- a/sci-mathematics/singular/Manifest
+++ b/sci-mathematics/singular/Manifest
@@ -3,3 +3,4 @@ DIST singular-4.2.0p3.tar.gz 16641923 BLAKE2B 4dd7e1a42c71bbba625e171aee656580b4
DIST singular-4.2.1.tar.gz 16643430 BLAKE2B 2cfc33bd59a5e8756c7ce022ad2b38477a0d7a6747b3c4fd4b1b168cfd179ace52121506cda2c4d5f318abca72231c74f649ede349b17b5f138083428d9da766 SHA512 48bebbe9c886ee56bb2f7bdd9e356bd33e357a2d707c976b8496200f422a2ba25d7c9bba22a261574428abf73a8b6b111d35236fca647e32619659059e861916
DIST singular-4.2.1p3.tar.gz 15042102 BLAKE2B 9958c1c432f8a3516387cfe7b258d2e22e8e9fdf3874de53a803b34e353088a3ce246a90b78db43f186717985b503d2355f524ee80784e63b186d53217fdeead SHA512 1e6533fcf966499e9ad145b640e7e5878eb9738bd65535aaa517c5e98dedb09bc99bf832359e9b6dca2fff615237f855bd861820e592a885341aa82e7a9a9168
DIST singular-4.3.0.tar.gz 15098830 BLAKE2B 9d99683c23e0fe031866807a7f24888d8e759b93ce8f454db702fee2b5200942957360edb1563f832715837f7908dbc3f37aa2a3bd1224dcf7eaa8594fc0a51f SHA512 b765536fc929f2445a3f7bea73a6a351ff98fe3326b9f3ba99c5b1cec3bfb494ed957725aad548e349a2a3f8a4058ef350ab11e7153091c9b0233f201008bbb2
+DIST singular-4.3.0p1.tar.gz 15097535 BLAKE2B 0afc8adea054ccdf68f276b3c4c25e55f938ef9cf9c85fbab86163c6d6839dcfb3d8e1632c135d4d3c978477f165d58727d35c6aaac2f39b4b6f942ca8bbb062 SHA512 af4d3377e9ea8f0b5f34db42c36817e8cf47717accba40c151b68213d8e0832bee71e480e22c60fcc6ced619f6117c24f6d18b87cf66406a175b38e3a7aece69
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
new file mode 100644
index 000000000000..7654f1710191
--- /dev/null
+++ b/sci-mathematics/singular/files/singular-4.3.0_p1-gcc12.patch
@@ -0,0 +1,85 @@
+From 5155427417fa722a27c110b2c1939c0979c6dcbc Mon Sep 17 00:00:00 2001
+From: Hans Schoenemann <hannes@mathematik.uni-kl.de>
+Date: Tue, 10 May 2022 16:52:42 +0200
+Subject: [PATCH] fix: gcc-12 does not like offsetof ?
+
+---
+ kernel/oswrapper/vspace.cc | 24 ++++++++++++++++++++++++
+ 1 file changed, 24 insertions(+)
+
+diff --git a/kernel/oswrapper/vspace.cc b/kernel/oswrapper/vspace.cc
+index fa42bf5e28..aefa661600 100644
+--- a/kernel/oswrapper/vspace.cc
++++ b/kernel/oswrapper/vspace.cc
+@@ -197,7 +197,11 @@ static void print_freelists() {
+
+ void vmem_free(vaddr_t vaddr) {
+ lock_allocator();
++ #if defined(__GNUC__) && (__GNUC__>11)
++ vaddr -= (sizeof(vaddr_t)*2);
++ #else
+ vaddr -= offsetof(Block, data);
++ #endif
+ vmem.ensure_is_mapped(vaddr);
+ size_t segno = vmem.segment_no(vaddr);
+ VSeg seg = vmem.segment(vaddr);
+@@ -245,7 +249,11 @@ void vmem_free(vaddr_t vaddr) {
+
+ vaddr_t vmem_alloc(size_t size) {
+ lock_allocator();
++ #if defined(__GNUC__) && (__GNUC__>11)
++ size_t alloc_size = size + (sizeof(vaddr_t)*2);
++ #else
+ size_t alloc_size = size + offsetof(Block, data);
++ #endif
+ int level = find_level(alloc_size);
+ int flevel = level;
+ while (flevel < LOG2_SEGMENT_SIZE && vmem.freelist[flevel] == VADDR_NULL)
+@@ -275,7 +283,11 @@ vaddr_t vmem_alloc(size_t size) {
+ assert(vmem.freelist[level] != VADDR_NULL);
+ Block *block = vmem.block_ptr(vmem.freelist[level]);
+ vaddr_t vaddr = vmem.freelist[level];
++ #if defined(__GNUC__) && (__GNUC__>11)
++ vaddr_t result = vaddr + (sizeof(vaddr_t)*2);
++ #else
+ vaddr_t result = vaddr + offsetof(Block, data);
++ #endif
+ vmem.freelist[level] = block->next;
+ if (block->next != VADDR_NULL)
+ vmem.block_ptr(block->next)->prev = VADDR_NULL;
+@@ -751,7 +763,11 @@ static void print_freelists() {
+
+ void vmem_free(vaddr_t vaddr) {
+ lock_allocator();
++ #if defined(__GNUC__) && (__GNUC__>11)
++ vaddr_t vaddr -= (sizeof(vaddr_t)*2);
++ #else
+ vaddr -= offsetof(Block, data);
++ #endif
+ vmem.ensure_is_mapped(vaddr);
+ size_t segno = vmem.segment_no(vaddr);
+ VSeg seg = vmem.segment(vaddr);
+@@ -799,7 +815,11 @@ void vmem_free(vaddr_t vaddr) {
+
+ vaddr_t vmem_alloc(size_t size) {
+ lock_allocator();
++ #if defined(__GNUC__) && (__GNUC__>11)
++ size_t alloc_size = size + (sizeof(vaddr_t)*2);
++ #else
+ size_t alloc_size = size + offsetof(Block, data);
++ #endif
+ int level = find_level(alloc_size);
+ int flevel = level;
+ while (flevel < LOG2_SEGMENT_SIZE && vmem.freelist[flevel] == VADDR_NULL)
+@@ -829,7 +849,11 @@ vaddr_t vmem_alloc(size_t size) {
+ assert(vmem.freelist[level] != VADDR_NULL);
+ Block *block = vmem.block_ptr(vmem.freelist[level]);
+ vaddr_t vaddr = vmem.freelist[level];
++ #if defined(__GNUC__) && (__GNUC__>11)
++ vaddr_t result = vaddr + (sizeof(vaddr_t)*2);
++ #else
+ vaddr_t result = vaddr + offsetof(Block, data);
++ #endif
+ vmem.freelist[level] = block->next;
+ if (block->next != VADDR_NULL)
+ vmem.block_ptr(block->next)->prev = VADDR_NULL;
diff --git a/sci-mathematics/singular/singular-4.3.0_p1.ebuild b/sci-mathematics/singular/singular-4.3.0_p1.ebuild
new file mode 100644
index 000000000000..99fc1c61dd9b
--- /dev/null
+++ b/sci-mathematics/singular/singular-4.3.0_p1.ebuild
@@ -0,0 +1,114 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools elisp-common flag-o-matic
+
+MY_PN=Singular
+MY_PV=$(ver_rs 3 '')
+# Consistency is different...
+MY_DIR2=$(ver_cut 1-3 ${PV})
+MY_DIR=$(ver_rs 1- '-' ${MY_DIR2})
+
+DESCRIPTION="Computer algebra system for polynomial computations"
+HOMEPAGE="https://www.singular.uni-kl.de/ https://github.com/Singular/Singular"
+SRC_URI="ftp://jim.mathematik.uni-kl.de/pub/Math/${MY_PN}/SOURCES/${MY_DIR}/${PN}-${MY_PV}.tar.gz"
+S="${WORKDIR}/${PN}-${MY_PV}"
+
+LICENSE="BSD GPL-2 GPL-3"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~riscv ~x86 ~x86-linux"
+IUSE="emacs examples polymake +readline static-libs"
+
+RDEPEND="
+ dev-lang/perl
+ dev-libs/gmp:0
+ dev-libs/ntl:=
+ sci-libs/cddlib
+ sci-mathematics/flint
+ emacs? ( >=app-editors/emacs-23.1:* )
+ polymake? ( sci-mathematics/polymake )
+ readline? ( sys-libs/readline )
+"
+DEPEND="${RDEPEND}"
+
+SITEFILE=60${PN}-gentoo.el
+
+PATCHES=(
+ "${FILESDIR}/${PN}-4.2.1-htmldoc.patch"
+ "${FILESDIR}/${PN}-4.3.0_p1-gcc12.patch"
+)
+
+src_prepare() {
+ default
+
+ eautoreconf
+}
+
+src_configure() {
+ local myconf=(
+ --disable-debug
+ --disable-doc
+ --disable-optimizationflags
+ --disable-pyobject-module
+ --disable-python
+ --disable-python-module
+ --disable-python_module
+ --enable-factory
+ --enable-gfanlib
+ --enable-libfac
+ --with-flint
+ --with-gmp
+ --with-libparse
+ --with-ntl
+ --without-python
+ --without-pythonmodule
+ $(use_enable emacs)
+ $(use_enable polymake polymake-module)
+ $(use_enable static-libs static)
+ $(use_with readline)
+ )
+ econf "${myconf[@]}"
+}
+
+src_compile() {
+ default
+
+ if use emacs; then
+ pushd "${S}"/emacs
+ elisp-compile *.el || die "elisp-compile failed"
+ popd
+ fi
+}
+
+src_install() {
+ # Do not compress singular's info file (singular.hlp)
+ # some consumer of that file do not know how to deal with compression
+ docompress -x /usr/share/info
+
+ default
+
+ dosym Singular /usr/bin/"${PN}"
+
+ # purge .la file
+ find "${ED}" -name '*.la' -delete || die
+}
+
+src_test() {
+ # SINGULAR_PROCS_DIR need to be set to "" otherwise plugins from
+ # an already installed version of singular may be used and cause segfault
+ # See https://github.com/Singular/Sources/issues/980
+ SINGULAR_PROCS_DIR="" emake check
+}
+
+pkg_postinst() {
+ einfo "Additional functionality can be enabled by installing"
+ einfo "sci-mathematics/4ti2"
+
+ use emacs && elisp-site-regen
+}
+
+pkg_postrm() {
+ use emacs && elisp-site-regen
+}