From 62ce4dfbf01c603a668dabde87ccc5b4ca4069af Mon Sep 17 00:00:00 2001 From: V3n3RiX Date: Tue, 14 Nov 2023 04:26:46 +0000 Subject: gentoo auto-resync : 14:11:2023 - 04:26:45 --- sci-mathematics/polymake/Manifest | 5 + .../files/polymake-4.11-barycentric-subdiv.patch | 23 ++++ .../files/polymake-4.11-singular-sat.patch | 53 +++++++++ sci-mathematics/polymake/metadata.xml | 54 +++++++++ sci-mathematics/polymake/polymake-4.11.ebuild | 122 +++++++++++++++++++++ 5 files changed, 257 insertions(+) create mode 100644 sci-mathematics/polymake/Manifest create mode 100644 sci-mathematics/polymake/files/polymake-4.11-barycentric-subdiv.patch create mode 100644 sci-mathematics/polymake/files/polymake-4.11-singular-sat.patch create mode 100644 sci-mathematics/polymake/metadata.xml create mode 100644 sci-mathematics/polymake/polymake-4.11.ebuild (limited to 'sci-mathematics/polymake') diff --git a/sci-mathematics/polymake/Manifest b/sci-mathematics/polymake/Manifest new file mode 100644 index 000000000000..987a3369b0ec --- /dev/null +++ b/sci-mathematics/polymake/Manifest @@ -0,0 +1,5 @@ +AUX polymake-4.11-barycentric-subdiv.patch 807 BLAKE2B e2e632146e6d96e5966444283a0226caf26dfd7dab482a35289e2b6f9acaa791db015787b4b91f5c2f3abc47323227377dd296dfc21b777315979e58d2e36af8 SHA512 f5332d3a558a0b3dc1b0cc0846131210857d2a6ad11647fd64cd5366c04c349752d06e30da3f93568ff5d2f04f8419b8c9ef6e71460e997c295cb6959a8964e1 +AUX polymake-4.11-singular-sat.patch 2212 BLAKE2B 659d07040141617f7ac6cb8572c44bf4d9ba332f1f4ddb5434987ea900009ef2b3ebefa27ead63a60c6048b58c3a853c797d82af1f3c8793f2c506f09dfd43f0 SHA512 fc46ec6753ddf14d389b9e03421a909bf572e4e7d6acf3dec7319d3bf704ba7710ba1c4719bf6b9153599f523e36cf83ac8b8218141f72a43343c94373fc5b57 +DIST polymake-4.11-minimal.tar.bz2 7325783 BLAKE2B 87e62741e4e44c5fea7454d5cc8cb205cf13f8ee743c1d72100f937d0677505ce0c5c8f5b37c118f89079ca88f313991eaefb2ea02c49b6c7b45c438c6f9e13b SHA512 94adf3fcec21de50451091a04ca17010f5e71b44e3dcd4e2d52b9f952b94ee0cf3f6df15657b761b0bda20eb47cbdc0cb2481bb440c7243442be34f913292246 +EBUILD polymake-4.11.ebuild 3938 BLAKE2B 3be7f4538453e5d588176a5976e4bc8c3f7e8d5771096445bb82840846fee0dbb70cb04cf461663747b0c56066a8eb91eeb04f080d6c3d1a3ae83b3b052f0f59 SHA512 759382797478ae27197b0f760d5780e6643879ae0589dc21f9224d3a4e49ef381a6587f01080d78c6d48d8b68ce9e59916b59194584324c8c733de77be4ca45d +MISC metadata.xml 1765 BLAKE2B 4e13dfb267c8100df81d8be89e7915ba850f55fea4256882264b13a0307c60cd8346ff46bf972018b334bf2d0dc387761244c1e0c3b8c7a1f4613a2a87458538 SHA512 7fd8af42bccc7710bd7c4159759b42ace43f638365a83defee96568e6ab4d6c186f49e71cbf68291fcd3b8b30fd7f883e8096c001c6bbf233d6f7336fa266f7c diff --git a/sci-mathematics/polymake/files/polymake-4.11-barycentric-subdiv.patch b/sci-mathematics/polymake/files/polymake-4.11-barycentric-subdiv.patch new file mode 100644 index 000000000000..2f58b0f76299 --- /dev/null +++ b/sci-mathematics/polymake/files/polymake-4.11-barycentric-subdiv.patch @@ -0,0 +1,23 @@ +commit d55dc6bd7f2da9245884f86706cb96e2d11fa83a +Author: Benjamin Lorenz +Date: Tue Nov 7 16:49:33 2023 +0100 + + barycentric_subdivision: dont call back on empty strings + + thanks jamesjer + + @Jenkins: merge + +diff --git a/apps/topaz/src/barycentric_subdivision.cc b/apps/topaz/src/barycentric_subdivision.cc +index 753afb4040..e2d4130bc3 100644 +--- a/apps/topaz/src/barycentric_subdivision.cc ++++ b/apps/topaz/src/barycentric_subdivision.cc +@@ -139,7 +139,7 @@ bs_data2Object(const bool realize, + else + desc << k << "th "; + desc << "barycentric subdivision of " << description; +- if (description.back() != '\n') ++ if (description.empty() || description.back() != '\n') + desc << endl; + p_out.set_description() << desc.str(); + return p_out; diff --git a/sci-mathematics/polymake/files/polymake-4.11-singular-sat.patch b/sci-mathematics/polymake/files/polymake-4.11-singular-sat.patch new file mode 100644 index 000000000000..739e503ac246 --- /dev/null +++ b/sci-mathematics/polymake/files/polymake-4.11-singular-sat.patch @@ -0,0 +1,53 @@ +commit 4ce0549f510d246c8f69c85c509fc2d13d882442 +Author: Benjamin Lorenz +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 primary_decomposition() const diff --git a/sci-mathematics/polymake/metadata.xml b/sci-mathematics/polymake/metadata.xml new file mode 100644 index 000000000000..e8e79ebd3fc8 --- /dev/null +++ b/sci-mathematics/polymake/metadata.xml @@ -0,0 +1,54 @@ + + + + + sci-mathematics@gentoo.org + Gentoo Mathematics Project + + + + Enable sci-libs/bliss interface for graph and face lattice + isomorphism computations. + + + Enable sci-libs/cddlib interface for convex hull + computations (Should be kept enabled). + + + Build with "strongly recommended" support for + sci-mathematics/flint. + + + Build the polymake library to build applications using the C++ + interface. + + + Enable sci-libs/lrslib interface for convex hull + computations. + + + Build the extension for graph automorphism computations using + sci-mathematics/nauty. + + + Build the bundled extension for lattice computations using + sci-mathematics/normaliz. + + + Enable dev-libs/ppl interface for convex hull computations. + + + Enable the interface to sci-mathematics/singular for + ideal related computations. + + + + 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. + + + polymake/polymake + + diff --git a/sci-mathematics/polymake/polymake-4.11.ebuild b/sci-mathematics/polymake/polymake-4.11.ebuild new file mode 100644 index 000000000000..5feccaae668e --- /dev/null +++ b/sci-mathematics/polymake/polymake-4.11.ebuild @@ -0,0 +1,122 @@ +# 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" + +PATCHES=( + "${FILESDIR}/${P}-singular-sat.patch" + "${FILESDIR}/${P}-barycentric-subdiv.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'." +} -- cgit v1.2.3