[gentoo-commits] repo/gentoo:master commit in: sci-mathematics/polymake/files/, sci-mathematics/polymake/

2023-11-13 Thread Michael Orlitzky
commit: c5e5ffa9e5052ad286c2ed2e5fee818bd9630686
Author: Michael Orlitzky  gentoo  org>
AuthorDate: Mon Nov 13 19:36:06 2023 +
Commit: Michael Orlitzky  gentoo  org>
CommitDate: Mon Nov 13 22:17:04 2023 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c5e5ffa9

sci-mathematics/polymake: new old package, add 4.11

This is back from the dead after being removed for lack of perl-5.38
support. Only a month ago, upstream's opinion was that "any hacks we
would try here will be in vain," but it looks like they've decided to
adopt a short-term fix for perl-5.38. We bring it back, and make use
of $NINJA_DEPEND while we're at it (samurai works fine).

The new patch (and a short explanation from upstream) can be found
on Debian bug 1042521.

Bug: https://bugs.gentoo.org/909570
Closes: https://bugs.gentoo.org/917155
Signed-off-by: Michael Orlitzky  gentoo.org>

 sci-mathematics/polymake/Manifest  |   1 +
 .../files/polymake-4.11-singular-sat.patch |  53 +
 sci-mathematics/polymake/metadata.xml  |  54 +
 sci-mathematics/polymake/polymake-4.11.ebuild  | 124 +
 4 files changed, 232 insertions(+)

diff --git a/sci-mathematics/polymake/Manifest 
b/sci-mathematics/polymake/Manifest
new file mode 100644
index ..64de0ecea8e1
--- /dev/null
+++ b/sci-mathematics/polymake/Manifest
@@ -0,0 +1 @@
+DIST polymake-4.11-minimal.tar.bz2 7325783 BLAKE2B 
87e62741e4e44c5fea7454d5cc8cb205cf13f8ee743c1d72100f937d0677505ce0c5c8f5b37c118f89079ca88f313991eaefb2ea02c49b6c7b45c438c6f9e13b
 SHA512 
94adf3fcec21de50451091a04ca17010f5e71b44e3dcd4e2d52b9f952b94ee0cf3f6df15657b761b0bda20eb47cbdc0cb2481bb440c7243442be34f913292246

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 ..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 ,);
+-  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 ..e8e79ebd3fc8
--- /dev/null
+++ b/sci-mathematics/polymake/metadata.xml
@@ -0,0 +1,54 @@
+
+https://www.gentoo.org/dtd/metadata.dtd;>
+
+
+  sci-mathemat...@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 

[gentoo-commits] repo/gentoo:master commit in: sci-mathematics/polymake/files/, sci-mathematics/polymake/

2022-06-15 Thread Michael Orlitzky
commit: a5f294bb04f044d59923b582e097257559283028
Author: Michael Orlitzky  gentoo  org>
AuthorDate: Wed Jun 15 15:56:50 2022 +
Commit: Michael Orlitzky  gentoo  org>
CommitDate: Wed Jun 15 19:29:24 2022 +
URL:https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=a5f294bb

sci-mathematics/polymake: new revision with a few fixes.

  * Build with perl-5.36. Thanks to Alessandro Barbieri for pointing out
the Fedora patch.
  * Added a lower bound on sci-mathematics/normaliz (with USE=normaliz).
  * Fixed a missing sci-mathematics/flint dependency that Toralf caught.

Closes: https://bugs.gentoo.org/839255
Closes: https://bugs.gentoo.org/851693
Package-Manager: Portage-3.0.30, Repoman-3.0.3
Signed-off-by: Michael Orlitzky  gentoo.org>

 .../polymake/files/polymake-4.6-perl-5.36.patch|  15 +++
 sci-mathematics/polymake/polymake-4.6-r1.ebuild| 124 +
 2 files changed, 139 insertions(+)

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 ..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.xxs2022-06-06 10:35:17.689807548 +0200
 b/lib/core/src/perl/RefHash.xxs2022-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 = 
+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 ..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