diff options
author | François Bissey <frp.bissey@gmail.com> | 2022-05-20 11:22:50 +1200 |
---|---|---|
committer | Michael Orlitzky <mjo@gentoo.org> | 2022-05-27 07:57:28 -0400 |
commit | 6be66ead89fefe4639d071245b4d151cdf06a581 (patch) | |
tree | ea0c8f97ec7f281e421454829d548f98b7b1ed0d | |
parent | kde-plasma/plasma-meta: Stabilize 5.24.5 amd64, #845075 (diff) | |
download | gentoo-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/Manifest | 1 | ||||
-rw-r--r-- | sci-mathematics/singular/files/singular-4.3.0_p1-gcc12.patch | 85 | ||||
-rw-r--r-- | sci-mathematics/singular/singular-4.3.0_p1.ebuild | 114 |
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 +} |