summaryrefslogtreecommitdiff
path: root/sci-mathematics/polymake
diff options
context:
space:
mode:
authorV3n3RiX <venerix@koprulu.sector>2022-06-29 12:04:12 +0100
committerV3n3RiX <venerix@koprulu.sector>2022-06-29 12:04:12 +0100
commit0f558761aa2dee1017b4751e4017205e015a9560 (patch)
tree037df795519468a25d9362b4e95cdaeb84eb1cf9 /sci-mathematics/polymake
parent752d6256e5204b958b0ef7905675a940b5e9172f (diff)
gentoo resync : 29.12.2022
Diffstat (limited to 'sci-mathematics/polymake')
-rw-r--r--sci-mathematics/polymake/Manifest2
-rw-r--r--sci-mathematics/polymake/files/polymake-4.6-perl-5.36.patch15
-rw-r--r--sci-mathematics/polymake/polymake-4.6-r1.ebuild124
3 files changed, 141 insertions, 0 deletions
diff --git a/sci-mathematics/polymake/Manifest b/sci-mathematics/polymake/Manifest
index 95b4bb856f36..a2ef35f29bc2 100644
--- a/sci-mathematics/polymake/Manifest
+++ b/sci-mathematics/polymake/Manifest
@@ -1,3 +1,5 @@
+AUX polymake-4.6-perl-5.36.patch 659 BLAKE2B 4013b45b4edc79654fcfe77ffa17530ddaca8513eaf76fc338dae7fbcd1cf83f07f7b5ccaf2117051ae3f9fc951caa676b36fa06413988c271e0a5f01da28233 SHA512 0bf9f512c6b7439bf1660560d25a502f1fa16b7f0136f04f1c1c8812c1b1c5ab0ab5133e149777243985ca37e159d8a3de355b443441126328565063faa2ba8e
DIST polymake-4.6-minimal.tar.bz2 5634651 BLAKE2B 6ee24fa6e70fdf746ea298d78e21e17fe38c5837ae2d3153e53656b4b003555b06897f463220b59474eed1111135dfa61c080d08d6363391afca51011f331122 SHA512 90f04c67bf297fb1b9f5a51d1654ff12385860b1fc80278a8b47f65970f11a1e0f33ede8a839b54a12422e772c8b76302ff78cc467712a2486f6e76ce0d5ab20
+EBUILD polymake-4.6-r1.ebuild 4119 BLAKE2B c04865bd05d7b52223b59c93f814e67a35a5d14ad4c7224be8e169ed3359aa67551e4aa174b54b88c4dde46c8468661cf5428c7fea5ba70574bd38183cac7ec0 SHA512 5d98adebe72237bca051cd0e4b9bbec533fae5ce182becd20e26bc7a32179693a5e283f7529952e0f7cd7a1662fefcc1718fd4c4ceff05950c634eba0211a3bf
EBUILD polymake-4.6.ebuild 4028 BLAKE2B d3f194adf0566143a32e3914e5bfdeccee3e41e8d59236d3bfc22ee061cfa39039f46339b5a2a5e0e05ea6a8761387dfa506658d392cd7874c2d96f8745d9671 SHA512 9e8b93bc2b86c9ec895b44f5988d70e583f3b414c82d4993e3c0df2fcefd650f809a549325bdbdcb2ae4a6d7199cbd1d295775ab8f63b7883e655725ac64bda5
MISC metadata.xml 1762 BLAKE2B 249af503c9e7e99118c87e4cd71c151cc962502972e80c4ba4f66ae3805c9f6c47601ecadef5e6e1b5c67a7e7779155f2524bace8d6f2f4fb260f2f4dce1b257 SHA512 fc887d14710c9529a9738a14ae8f6a41adae80c273354aa5bcd0a14ad695de09ff562e775a5d40582b23e3b6b1fd4e34a277fa9a6ff7131f19ad4f5cc98d6374
diff --git a/sci-mathematics/polymake/files/polymake-4.6-perl-5.36.patch b/sci-mathematics/polymake/files/polymake-4.6-perl-5.36.patch
new file mode 100644
index 000000000000..4a9d349ccb9a
--- /dev/null
+++ b/sci-mathematics/polymake/files/polymake-4.6-perl-5.36.patch
@@ -0,0 +1,15 @@
+diff -up lib/core/src/perl/RefHash.xxs.orig lib/core/src/perl/RefHash.xxs
+--- a/lib/core/src/perl/RefHash.xxs 2022-06-06 10:35:17.689807548 +0200
++++ b/lib/core/src/perl/RefHash.xxs 2022-06-06 10:37:12.935663947 +0200
+@@ -71,7 +71,11 @@ SV* tmp_keysv::set(SV* keysv)
+ Copy(obj.keyp, HEK_KEY(hekp), sizeof(SV*), char);
+ HEK_LEN(hekp) = sizeof(SV*);
+ HEK_HASH(hekp) = U32(obj.keyl >> 4); // hash value
++#if PerlVersion < 5360
+ HEK_FLAGS(hekp) = HVhek_UNSHARED;
++#else
++ HEK_FLAGS(hekp) = HVhek_NOTSHARED;
++#endif
+ sv.sv_any = &xpv;
+ sv.sv_refcnt = 1;
+ sv.sv_flags = SVt_PVIV | SVf_IVisUV | SVf_POK | SVp_POK | PmFlagsForHashKey;
diff --git a/sci-mathematics/polymake/polymake-4.6-r1.ebuild b/sci-mathematics/polymake/polymake-4.6-r1.ebuild
new file mode 100644
index 000000000000..446fedbda04a
--- /dev/null
+++ b/sci-mathematics/polymake/polymake-4.6-r1.ebuild
@@ -0,0 +1,124 @@
+# Copyright 1999-2022 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-util/ninja
+ dev-lang/perl"
+
+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}-perl-5.36.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'."
+}