mirror of
https://github.com/gentoo-mirror/gentoo.git
synced 2026-08-04 12:18:08 -07:00
Merge updates from master
This commit is contained in:
@@ -31,6 +31,21 @@ IUSE="lua52compat static-libs"
|
||||
|
||||
S="${WORKDIR}/LuaJIT-${GIT_COMMIT}"
|
||||
|
||||
src_configure() {
|
||||
tc-export_build_env
|
||||
|
||||
# You need to use a 32-bit toolchain to build for a 32-bit architecture.
|
||||
# Some 64-bit toolchains (like amd64 and ppc64) usually have multilib
|
||||
# enabled, allowing you to build in 32-bit with -m32. This won't work in all
|
||||
# cases, but it will otherwise just break, so it's worth trying anyway. If
|
||||
# you're trying to build for 64-bit from 32-bit, then you're screwed, sorry.
|
||||
# See https://github.com/LuaJIT/LuaJIT/issues/664 for the upstream issue.
|
||||
if tc-is-cross-compiler && [[ $(tc-get-build-ptr-size) != 4 && $(tc-get-ptr-size) == 4 ]]; then
|
||||
BUILD_CFLAGS+=" -m32"
|
||||
BUILD_LDFLAGS+=" -m32"
|
||||
fi
|
||||
}
|
||||
|
||||
_emake() {
|
||||
emake \
|
||||
Q= \
|
||||
@@ -55,7 +70,6 @@ _emake() {
|
||||
}
|
||||
|
||||
src_compile() {
|
||||
tc-export_build_env
|
||||
_emake XCFLAGS="$(usex lua52compat "-DLUAJIT_ENABLE_LUA52COMPAT" "")"
|
||||
}
|
||||
|
||||
|
||||
@@ -1216,4 +1216,18 @@ tc-get-c-rtlib() {
|
||||
return 0
|
||||
}
|
||||
|
||||
# @FUNCTION: tc-get-ptr-size
|
||||
# @RETURN: Size of a pointer in bytes for CHOST (e.g. 4 or 8).
|
||||
tc-get-ptr-size() {
|
||||
$(tc-getCPP) -P - <<< __SIZEOF_POINTER__ ||
|
||||
die "Could not determine CHOST pointer size"
|
||||
}
|
||||
|
||||
# @FUNCTION: tc-get-build-ptr-size
|
||||
# @RETURN: Size of a pointer in bytes for CBUILD (e.g. 4 or 8).
|
||||
tc-get-build-ptr-size() {
|
||||
$(tc-getBUILD_CPP) -P - <<< __SIZEOF_POINTER__ ||
|
||||
die "Could not determine CBUILD pointer size"
|
||||
}
|
||||
|
||||
fi
|
||||
|
||||
1
sci-mathematics/polymake/Manifest
Normal file
1
sci-mathematics/polymake/Manifest
Normal file
@@ -0,0 +1 @@
|
||||
DIST polymake-4.11-minimal.tar.bz2 7325783 BLAKE2B 87e62741e4e44c5fea7454d5cc8cb205cf13f8ee743c1d72100f937d0677505ce0c5c8f5b37c118f89079ca88f313991eaefb2ea02c49b6c7b45c438c6f9e13b SHA512 94adf3fcec21de50451091a04ca17010f5e71b44e3dcd4e2d52b9f952b94ee0cf3f6df15657b761b0bda20eb47cbdc0cb2481bb440c7243442be34f913292246
|
||||
@@ -0,0 +1,53 @@
|
||||
commit 4ce0549f510d246c8f69c85c509fc2d13d882442
|
||||
Author: Benjamin Lorenz <lorenz@math.tu-berlin.de>
|
||||
Date: Thu Nov 9 11:15:06 2023 +0100
|
||||
|
||||
singular: support new return types for saturation command
|
||||
|
||||
This was changed from (ideal, exponent) to just the ideal in singular 4-3-2p5.
|
||||
To allow older versions we keep using sat but support both return types
|
||||
instead of switching to the new sat_with_exp.
|
||||
|
||||
diff --git a/bundled/singular/apps/ideal/src/singularIdeal.cc b/bundled/singular/apps/ideal/src/singularIdeal.cc
|
||||
index 4cbc00a6f4..bdade5c29d 100644
|
||||
--- a/bundled/singular/apps/ideal/src/singularIdeal.cc
|
||||
+++ b/bundled/singular/apps/ideal/src/singularIdeal.cc
|
||||
@@ -236,22 +236,24 @@ public:
|
||||
arg.next->data=(void *)idCopy(J);
|
||||
// call primdecSY
|
||||
BOOLEAN res=iiMake_proc(sathdl, nullptr ,&arg);
|
||||
- if(!res && (iiRETURNEXPR.Typ() == LIST_CMD)){
|
||||
- lists L = (lists)iiRETURNEXPR.Data();
|
||||
- SingularIdeal_wrap* result;
|
||||
- if(L->m[0].Typ() == IDEAL_CMD){
|
||||
- result = new SingularIdeal_impl((::ideal) (L->m[0].Data()),singRing);
|
||||
- } else {
|
||||
- throw std::runtime_error("Something went wrong for the primary decomposition");
|
||||
+ if(!res) {
|
||||
+ ::ideal iddata = nullptr;
|
||||
+ if (iiRETURNEXPR.Typ() == LIST_CMD) {
|
||||
+ lists L = (lists)iiRETURNEXPR.Data();
|
||||
+ if(L->m[0].Typ() == IDEAL_CMD)
|
||||
+ iddata = (::ideal) L->m[0].Data();
|
||||
+ } else if (iiRETURNEXPR.Typ() == IDEAL_CMD) {
|
||||
+ iddata = (::ideal) iiRETURNEXPR.Data();
|
||||
+ }
|
||||
+ if (iddata != nullptr) {
|
||||
+ SingularIdeal_wrap* result = new SingularIdeal_impl(iddata, singRing);
|
||||
+ iiRETURNEXPR.CleanUp();
|
||||
+ iiRETURNEXPR.Init();
|
||||
+ return result;
|
||||
}
|
||||
- iiRETURNEXPR.CleanUp();
|
||||
- iiRETURNEXPR.Init();
|
||||
- return result;
|
||||
- } else {
|
||||
- iiRETURNEXPR.Init();
|
||||
- throw std::runtime_error("Something went wrong for the saturation");
|
||||
}
|
||||
-
|
||||
+ iiRETURNEXPR.Init();
|
||||
+ throw std::runtime_error("saturation: unable to parse ideal from return value");
|
||||
}
|
||||
|
||||
Array<SingularIdeal_wrap*> primary_decomposition() const
|
||||
54
sci-mathematics/polymake/metadata.xml
Normal file
54
sci-mathematics/polymake/metadata.xml
Normal file
@@ -0,0 +1,54 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE pkgmetadata SYSTEM "https://www.gentoo.org/dtd/metadata.dtd">
|
||||
<pkgmetadata>
|
||||
<maintainer type="project">
|
||||
<email>sci-mathematics@gentoo.org</email>
|
||||
<name>Gentoo Mathematics Project</name>
|
||||
</maintainer>
|
||||
<use>
|
||||
<flag name="bliss">
|
||||
Enable <pkg>sci-libs/bliss</pkg> interface for graph and face lattice
|
||||
isomorphism computations.
|
||||
</flag>
|
||||
<flag name="cdd">
|
||||
Enable <pkg>sci-libs/cddlib</pkg> interface for convex hull
|
||||
computations (Should be kept enabled).
|
||||
</flag>
|
||||
<flag name="flint">
|
||||
Build with "strongly recommended" support for
|
||||
<pkg>sci-mathematics/flint</pkg>.
|
||||
</flag>
|
||||
<flag name="libpolymake">
|
||||
Build the polymake library to build applications using the C++
|
||||
interface.
|
||||
</flag>
|
||||
<flag name="lrs">
|
||||
Enable <pkg>sci-libs/lrslib</pkg> interface for convex hull
|
||||
computations.
|
||||
</flag>
|
||||
<flag name="nauty">
|
||||
Build the extension for graph automorphism computations using
|
||||
<pkg>sci-mathematics/nauty</pkg>.
|
||||
</flag>
|
||||
<flag name="normaliz">
|
||||
Build the bundled extension for lattice computations using
|
||||
<pkg>sci-mathematics/normaliz</pkg>.
|
||||
</flag>
|
||||
<flag name="ppl">
|
||||
Enable <pkg>dev-libs/ppl</pkg> interface for convex hull computations.
|
||||
</flag>
|
||||
<flag name="singular">
|
||||
Enable the interface to <pkg>sci-mathematics/singular</pkg> for
|
||||
ideal related computations.
|
||||
</flag>
|
||||
</use>
|
||||
<longdescription lang="en">
|
||||
Polymake is open source software for research in polyhedral
|
||||
geometry. It deals with polytopes, polyhedra, and fans as well as
|
||||
simplicial complexes, matroids, graphs, tropical hypersurfaces, and
|
||||
other objects.
|
||||
</longdescription>
|
||||
<upstream>
|
||||
<remote-id type="github">polymake/polymake</remote-id>
|
||||
</upstream>
|
||||
</pkgmetadata>
|
||||
124
sci-mathematics/polymake/polymake-4.11.ebuild
Normal file
124
sci-mathematics/polymake/polymake-4.11.ebuild
Normal file
@@ -0,0 +1,124 @@
|
||||
# Copyright 1999-2023 Gentoo Authors
|
||||
# Distributed under the terms of the GNU General Public License v2
|
||||
|
||||
EAPI=8
|
||||
|
||||
inherit flag-o-matic ninja-utils toolchain-funcs
|
||||
|
||||
DESCRIPTION="Tool for polyhedral geometry and combinatorics"
|
||||
SRC_URI="https://polymake.org/lib/exe/fetch.php/download/${P}-minimal.tar.bz2"
|
||||
HOMEPAGE="https://polymake.org/"
|
||||
|
||||
# polymake itself is GPL-2, but even the minimal tarball bundles a lot
|
||||
# of other code. I've included everything that turns up with a
|
||||
#
|
||||
# find ./ -name 'LICENSE' -o -name 'COPYING'
|
||||
#
|
||||
# in the list below. If any of these bother you, you may want to take a
|
||||
# closer look at how (or even if) the corresponding code is being used.
|
||||
LICENSE="BSD GPL-2 GPL-2+ MIT WTFPL-2"
|
||||
SLOT="0"
|
||||
KEYWORDS="~amd64 ~riscv ~x86 ~amd64-linux ~x86-linux"
|
||||
IUSE="bliss +cdd +flint +normaliz libpolymake lrs nauty ppl singular"
|
||||
|
||||
REQUIRED_USE="^^ ( bliss nauty )"
|
||||
|
||||
# The "configure" script isn't autotools; it basically exists just to
|
||||
# exec some other perl script but using the familiar name.
|
||||
BDEPEND="dev-lang/perl
|
||||
${NINJA_DEPEND}"
|
||||
|
||||
DEPEND="
|
||||
libpolymake? ( dev-lang/perl )
|
||||
dev-libs/boost:=
|
||||
dev-libs/gmp:=
|
||||
dev-libs/libxml2:2=
|
||||
dev-libs/libxslt:=
|
||||
dev-libs/mpfr:=
|
||||
sys-libs/readline:=
|
||||
bliss? ( sci-libs/bliss:=[gmp] )
|
||||
cdd? ( sci-libs/cddlib:= )
|
||||
flint? ( sci-mathematics/flint:= )
|
||||
lrs? ( >=sci-libs/lrslib-051:=[gmp] )
|
||||
nauty? ( sci-mathematics/nauty:= )
|
||||
normaliz? ( >=sci-mathematics/normaliz-3.8:= )
|
||||
ppl? ( dev-libs/ppl:= )
|
||||
singular? ( sci-mathematics/singular:= )"
|
||||
|
||||
RDEPEND="${DEPEND}
|
||||
dev-lang/perl
|
||||
dev-perl/JSON
|
||||
dev-perl/Term-ReadLine-Gnu
|
||||
dev-perl/TermReadKey
|
||||
dev-perl/XML-SAX
|
||||
dev-perl/XML-Writer"
|
||||
|
||||
# Tests observed failing after upgrade to polymake-4.5. No idea if they
|
||||
# worked prior to that. Someone who actually understands polymake will
|
||||
# have to get these working (at least briefly) before we re-enable them.
|
||||
RESTRICT=test
|
||||
|
||||
PATCHES=( "${FILESDIR}/${P}-singular-sat.patch" )
|
||||
|
||||
src_configure() {
|
||||
# Without this, the build system tries to use "the highest possible"
|
||||
# optimization level and will override what's in your CXXFLAGS.
|
||||
export CXXOPT=""
|
||||
|
||||
tc-export CC CXX
|
||||
|
||||
# We need to define BLISS_USE_GMP if bliss was built with gmp support.
|
||||
# Therefore we require gmp support on bliss, so that the package
|
||||
# manager can prevent rebuilds with changed gmp flag. Yes, this should
|
||||
# be append-cppflags; but the build system doesn't respect CPPFLAGS.
|
||||
use bliss && append-cxxflags -DBLISS_USE_GMP
|
||||
|
||||
# This isn't an autotools ./configure script, so a lot of things
|
||||
# don't work the way you'd expect. We disable openmp unconditionally
|
||||
# because it's only supposedly only used for building the bundled
|
||||
# libnormaliz (we unbundle it) and for something called to_simplex
|
||||
# that I can't find anywhere in the polymake source.
|
||||
./configure --prefix="${EPREFIX}/usr" \
|
||||
--libdir="${EPREFIX}/usr/$(get_libdir)" \
|
||||
--libexecdir="${EPREFIX}/usr/$(get_libdir)/polymake" \
|
||||
$(usev !libpolymake "--without-callable") \
|
||||
--without-java \
|
||||
--without-javaview \
|
||||
--without-native \
|
||||
--without-scip \
|
||||
--without-soplex \
|
||||
--without-openmp \
|
||||
$(use_with bliss bliss "${EPREFIX}/usr") \
|
||||
$(use_with cdd cdd "${EPREFIX}/usr") \
|
||||
$(use_with flint flint "${EPREFIX}/usr") \
|
||||
$(use_with lrs lrs "${EPREFIX}/usr") \
|
||||
$(use_with nauty nauty "${EPREFIX}/usr") \
|
||||
$(use_with normaliz libnormaliz "${EPREFIX}/usr") \
|
||||
$(use_with ppl ppl "${EPREFIX}/usr") \
|
||||
$(use_with singular singular "${EPREFIX}/usr") \
|
||||
|| die
|
||||
}
|
||||
|
||||
# There is a backwards-compatible Makefile that would call ninja for us
|
||||
# in src_compile/src_install, but it doesn't handle MAKEOPTS correctly.
|
||||
src_compile() {
|
||||
eninja -C build/Opt
|
||||
}
|
||||
|
||||
src_install() {
|
||||
# DESTDIR needs to find its way into the real install script,
|
||||
# support/install.pl.
|
||||
export DESTDIR="${D}"
|
||||
eninja -C build/Opt install
|
||||
}
|
||||
|
||||
src_test() {
|
||||
perl/polymake --script run_testcases --emacs-style \
|
||||
|| die "test suite failed"
|
||||
}
|
||||
|
||||
pkg_postinst() {
|
||||
elog "Additional features for polymake are available through external"
|
||||
elog "software such as sci-mathematics/4ti2 and sci-mathematics/topcom."
|
||||
elog "After installing new external software run 'polymake --reconfigure'."
|
||||
}
|
||||
Reference in New Issue
Block a user