diff options
author | Michael Orlitzky <mjo@gentoo.org> | 2024-08-28 10:43:32 -0400 |
---|---|---|
committer | Michael Orlitzky <mjo@gentoo.org> | 2024-08-29 10:03:23 -0400 |
commit | 7948c96a8b537b9e95f5f92854eca406dafa0882 (patch) | |
tree | f057254857cc0834d9e5c597cc29bf7d779ee00a /sci-mathematics | |
parent | sci-libs/libsemigroups: keyword 2.7.3-r1 for ~riscv (diff) | |
download | gentoo-7948c96a8b537b9e95f5f92854eca406dafa0882.tar.gz gentoo-7948c96a8b537b9e95f5f92854eca406dafa0882.tar.bz2 gentoo-7948c96a8b537b9e95f5f92854eca406dafa0882.zip |
sci-mathematics/polymake: add 4.12
Signed-off-by: Michael Orlitzky <mjo@gentoo.org>
Diffstat (limited to 'sci-mathematics')
-rw-r--r-- | sci-mathematics/polymake/Manifest | 1 | ||||
-rw-r--r-- | sci-mathematics/polymake/files/polymake-4.12-no-perl-constraints.patch | 62 | ||||
-rw-r--r-- | sci-mathematics/polymake/polymake-4.12.ebuild | 119 |
3 files changed, 182 insertions, 0 deletions
diff --git a/sci-mathematics/polymake/Manifest b/sci-mathematics/polymake/Manifest index 64de0ecea8e1..cb4b81dbdabb 100644 --- a/sci-mathematics/polymake/Manifest +++ b/sci-mathematics/polymake/Manifest @@ -1 +1,2 @@ DIST polymake-4.11-minimal.tar.bz2 7325783 BLAKE2B 87e62741e4e44c5fea7454d5cc8cb205cf13f8ee743c1d72100f937d0677505ce0c5c8f5b37c118f89079ca88f313991eaefb2ea02c49b6c7b45c438c6f9e13b SHA512 94adf3fcec21de50451091a04ca17010f5e71b44e3dcd4e2d52b9f952b94ee0cf3f6df15657b761b0bda20eb47cbdc0cb2481bb440c7243442be34f913292246 +DIST polymake-4.12-minimal.tar.bz2 7337552 BLAKE2B 4893be1f04ace2c4eb95ed01bc55e62e2187e10b5b10c1d274b2d4e771e1d863b2eb7adeb9a05b2f4c14466cdce1c0d223cfcf35c125d9989ab3825a88e46464 SHA512 127d4058148fdac05fb83a3ab893edfe5c0ab6865f9745d1e709396c23af9762574616f0466adcee59d35646d807621a090a41e8cc693b1fca1f5f6cd5d01054 diff --git a/sci-mathematics/polymake/files/polymake-4.12-no-perl-constraints.patch b/sci-mathematics/polymake/files/polymake-4.12-no-perl-constraints.patch new file mode 100644 index 000000000000..54cbb1ee0324 --- /dev/null +++ b/sci-mathematics/polymake/files/polymake-4.12-no-perl-constraints.patch @@ -0,0 +1,62 @@ +From b0639eca089256c1d816b62c0e2b901cc14a5f7c Mon Sep 17 00:00:00 2001 +From: Michael Orlitzky <michael@orlitzky.com> +Date: Wed, 28 Aug 2024 10:57:17 -0400 +Subject: [PATCH] support/configure.pl: disable perl version check + +The test suite apparently passes with perl-5.40, and that's what +we have in ~arch on Gentoo, so let's accept it. +--- + support/configure.pl | 37 ------------------------------------- + 1 file changed, 37 deletions(-) + +diff --git a/support/configure.pl b/support/configure.pl +index 5615c65..95f66de 100644 +--- a/support/configure.pl ++++ b/support/configure.pl +@@ -14,43 +14,6 @@ + # GNU General Public License for more details. + #------------------------------------------------------------------------------- + +-BEGIN { +- if ($] < 5.016) { +- print STDERR <<"."; +-polymake requires perl version not lower than 5.16; +-your perl interpreter says it is $]. +- +-Please upgrade your perl installation; +-if you already have an up-to-date perl interpreter somewhere else, +-you can specify its location on the command line: +- +-./configure PERL=/path/to/my/new/perl [other options ...] +-. +- exit(1); +- } elsif ($] >= 5.040) { +- print STDERR <<"."; +-************* +-*** ERROR *** +-************* +- +-polymake has not been checkced for compatibility with perl 5.40 or newer; +-your perl interpreter says it is $]. +- +-If you already have another (older) perl interpreter somewhere else, you can +-specify its location on the command line: +- +-./configure PERL=/path/to/my/new/perl [other options ...] +- +-You can install a custom perl version in your home directory using perlbrew +-(https://perlbrew.pl). Make sure to append '-Duseshrplib' to the install +-command if you want to use libpolymake (e.g. for the jupyter interface) and to +-install all required perl modules which are listed after running configure +-again with the new perl. +-. +- exit(1); +- } +-} +- + use Config; + use Cwd; + use File::Path; +-- +2.46.0 + diff --git a/sci-mathematics/polymake/polymake-4.12.ebuild b/sci-mathematics/polymake/polymake-4.12.ebuild new file mode 100644 index 000000000000..a4232f80fa1b --- /dev/null +++ b/sci-mathematics/polymake/polymake-4.12.ebuild @@ -0,0 +1,119 @@ +# Copyright 1999-2024 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" +HOMEPAGE="https://polymake.org/" +SRC_URI="https://polymake.org/lib/exe/fetch.php/download/${P}-minimal.tar.bz2" + +# 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" + +PATCHES=( "${FILESDIR}/${P}-no-perl-constraints.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'." +} |