commit:     6be66ead89fefe4639d071245b4d151cdf06a581
Author:     François Bissey <frp.bissey <AT> gmail <DOT> com>
AuthorDate: Thu May 19 23:22:50 2022 +0000
Commit:     Michael Orlitzky <mjo <AT> gentoo <DOT> org>
CommitDate: Fri May 27 11:57:28 2022 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=6be66ead

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 <AT> gmail.com>
Signed-off-by: Michael Orlitzky <mjo <AT> gentoo.org>

 sci-mathematics/singular/Manifest                  |   1 +
 .../singular/files/singular-4.3.0_p1-gcc12.patch   |  85 +++++++++++++++
 sci-mathematics/singular/singular-4.3.0_p1.ebuild  | 114 +++++++++++++++++++++
 3 files changed, 200 insertions(+)

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 <[email protected]>
+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
+}

Reply via email to