git: dc1c95ace580 - main - math/polymake: Update 4.13 => 4.15, improve port
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Tue, 16 Jun 2026 22:10:20 UTC
The branch main has been updated by vvd:
URL: https://cgit.FreeBSD.org/ports/commit/?id=dc1c95ace580a305c66ee63d4514c2713e730d46
commit dc1c95ace580a305c66ee63d4514c2713e730d46
Author: Philipp Ost <bsd@philippost.de>
AuthorDate: 2026-06-16 21:52:10 +0000
Commit: Vladimir Druzenko <vvd@FreeBSD.org>
CommitDate: 2026-06-16 22:04:53 +0000
math/polymake: Update 4.13 => 4.15, improve port
Changelogs:
https://polymake.org/doku.php/news/release_4_14
https://polymake.org/doku.php/news/release_4_15
- Set USES+=llvm:max=19 for FreeBSD with llvm 21+ - this is a stop-gap
measure, as polymake fails to compile with newer versions of llvm:
https://forum.polymake.org/viewtopic.php?p=4242.
- Remove OPTIMIZED_CFLAGS option.
- Replace BLISS_{BUILD,RUN}_DEPENDS with BLISS_LIB_DEPENDS.
- Set default option to nauty instead of bliss.
- Move 7 common dependencies from BUILD_DEPENDS and RUN_DEPENDS to
_BR_DEPENDS.
- Fix warnings from portclippy.
- Reformat Makefile with portfmt.
- Replace *_CONFIGURE_ON/*_CONFIGURE_OFF with *_CONFIGURE_WITH -
simplify and reduce size of options block.
- Move perl module Ext.so from PLIST_FILES in Makefile to pkg-plist.
- Add substitution for SOVER and DISTVERSION in plist.
- Merge all STRIP in one call.
PR: 296012
Sponsored by: UNIS Labs
Co-authored-by: Vladimir Druzenko <vvd@FreeBSD.org>
---
math/polymake/Makefile | 163 +++++++++------------
math/polymake/distinfo | 6 +-
.../patch-external_permlib_include_permlib_bsgs.h | 11 --
...include_permlib_predicate_identity__predicate.h | 11 --
...ib_predicate_pointwise__stabilizer__predicate.h | 11 --
...ermlib_predicate_stabilizes__point__predicate.h | 11 --
...include_permlib_predicate_subgroup__predicate.h | 11 --
...ermlib_search_partition_backtrack__refinement.h | 11 --
...l_permlib_include_permlib_sorter_base__sorter.h | 11 --
..._permlib_include_permlib_sorter_group__sorter.h | 11 --
...ermlib_include_permlib_sorter_trivial__sorter.h | 11 --
.../files/patch-lib_core_include_ContainerChain.h | 131 -----------------
.../files/patch-lib_core_include_GenericMatrix.h | 17 ---
...tch-lib_core_include_internal_pool__allocator.h | 14 --
.../polymake/files/patch-lib_core_include_optional | 38 -----
math/polymake/pkg-plist | 26 ++--
16 files changed, 85 insertions(+), 409 deletions(-)
diff --git a/math/polymake/Makefile b/math/polymake/Makefile
index 65ae1b3781b2..7081e825f391 100644
--- a/math/polymake/Makefile
+++ b/math/polymake/Makefile
@@ -1,6 +1,5 @@
PORTNAME= polymake
-DISTVERSION= 4.13
-PORTREVISION= 5
+DISTVERSION= 4.15
CATEGORIES= math
MASTER_SITES= https://github.com/${PORTNAME}/${PORTNAME}/releases/download/V${DISTVERSION}/ \
https://polymake.org/lib/exe/fetch.php/download/
@@ -13,26 +12,21 @@ WWW= https://www.polymake.org/
LICENSE= GPLv2+
LICENSE_FILE= ${WRKSRC}/COPYING
-BUILD_DEPENDS= boost-libs>=1.72:devel/boost-libs \
- ninja:devel/ninja \
- permlib>=0.2.9:math/permlib \
+_BR_DEPENDS= boost-libs>=1.72:devel/boost-libs \
+ p5-JSON>=2.97:converters/p5-JSON \
+ p5-Term-ReadKey>=2.38:devel/p5-Term-ReadKey \
+ p5-Term-ReadLine-Gnu>=1.37:devel/p5-Term-ReadLine-Gnu \
p5-XML-SAX>=1.02:textproc/p5-XML-SAX \
p5-XML-Writer>=0.900:textproc/p5-XML-Writer \
- p5-Term-ReadLine-Gnu>=1.37:devel/p5-Term-ReadLine-Gnu \
- p5-Term-ReadKey>=2.38:devel/p5-Term-ReadKey \
- p5-JSON>=2.97:converters/p5-JSON
+ permlib>=0.2.9:math/permlib
+BUILD_DEPENDS= ${_BR_DEPENDS} \
+ ninja:devel/ninja
LIB_DEPENDS= libcddgmp.so:math/cddlib \
libflint.so:math/flint2 \
libgmpxx.so:math/gmp \
libmpfr.so:math/mpfr
-RUN_DEPENDS= bash>=5.0:shells/bash \
- boost-libs>=1.72:devel/boost-libs \
- permlib>=0.2.9:math/permlib \
- p5-XML-SAX>=1.02:textproc/p5-XML-SAX \
- p5-XML-Writer>=0.900:textproc/p5-XML-Writer \
- p5-Term-ReadLine-Gnu>=1.37:devel/p5-Term-ReadLine-Gnu \
- p5-Term-ReadKey>=2.38:devel/p5-Term-ReadKey \
- p5-JSON>=2.97:converters/p5-JSON
+RUN_DEPENDS= ${_BR_DEPENDS} \
+ bash>=5.0:shells/bash
USES= compiler:c++14-lang gmake gnome perl5 readline shebangfix \
tar:bzip2
@@ -46,39 +40,42 @@ SHEBANG_GLOB= *.pl *.sh
# polymake's configure script expects options to be disabled by --without-option
# and most options to be enabled by --with-option=DIR
HAS_CONFIGURE= yes
-CONFIGURE_ARGS= --prefix=${PREFIX} \
+CONFIGURE_LOG= build/bundled.log
+CONFIGURE_ARGS= --bindir=${PREFIX}/bin \
+ --datadir=${DATADIR} \
+ --docdir=${DOCSDIR} \
--exec-prefix=${PREFIX} \
- --bindir=${PREFIX}/bin \
--includedir=${PREFIX}/include \
--libdir=${PREFIX}/lib \
--libexecdir=${PREFIX}/libexec/polymake \
- --datadir=${PREFIX}/share/polymake \
- --docdir=${DOCSDIR} \
- --without-prereq \
- --with-libcxx \
+ --prefix=${PREFIX} \
--with-cdd=${LOCALBASE} \
--with-flint=${LOCALBASE} \
+ --with-libcxx \
--with-permlib=${LOCALBASE}/lib \
--without-java \
--without-javaview \
--without-native \
+ --without-prereq \
--without-sympol
-CONFIGURE_LOG= build/bundled.log
+
+# The port uses the minimal distribution tarball without bundled libraries.
+# Set WRKSRC accordingly.
+WRKSRC= ${WRKDIR}/${PORTNAME}-${DISTVERSION}
# Optional features; SoPlex defaults to off due to licencsing and SCIP defaults
# to off due to a dependency on libsoplex.so.
-OPTIONS_DEFINE= LRS NORMALIZ OPENMP OPTIMIZED_CFLAGS PPL SCIP SINGULAR SOPLEX TESTS
-OPTIONS_DEFAULT= BLISS LRS NORMALIZ OPENMP OPTIMIZED_CFLAGS PPL SINGULAR
+OPTIONS_DEFINE= LRS NORMALIZ OPENMP PPL SCIP SINGULAR SOPLEX TESTS
+OPTIONS_DEFAULT= LRS NAUTY NORMALIZ OPENMP PPL SINGULAR
+# polymake needs either math/bliss or math/nauty to compute graph automorphism
+# groups
+OPTIONS_SINGLE= GRAPH
+OPTIONS_SINGLE_GRAPH= BLISS NAUTY
# Exlude lrslib on i386 and powerpc because it is marked BROKEN for those
# architectures
OPTIONS_EXCLUDE_i386= LRS
OPTIONS_EXCLUDE_powerpc= LRS
-OPTIONS_SUB= yes
-
-# polymake needs either math/bliss or math/nauty to compute graph automorphism
-# groups
-OPTIONS_SINGLE= GRAPH
-OPTIONS_SINGLE_GRAPH= BLISS NAUTY
+OPTIONS_SUB= yes
BLISS_DESC= Compute graph automorphism groups using bliss
GRAPH_DESC= Graph automorphism groups
@@ -91,115 +88,91 @@ SINGULAR_DESC= Computation of Groebner bases
SOPLEX_DESC= Solver for linear programming problems
TESTS_DESC= Run bundled self tests after build
-BLISS_CONFIGURE_ON= --with-bliss=${LOCALBASE}
-BLISS_CONFIGURE_OFF= --without-bliss
-BLISS_BUILD_DEPENDS= bliss-graph-tool>=0.73:math/bliss # does it need the tool or the library? LIB_DEPENDS should be used in the latter case.
-BLISS_RUN_DEPENDS= bliss-graph-tool>=0.73:math/bliss
+BLISS_LIB_DEPENDS= libbliss.so:math/bliss
+BLISS_CONFIGURE_WITH= bliss=${LOCALBASE}
-NAUTY_CONFIGURE_ON= --with-nauty=${LOCALBASE}
-NAUTY_CONFIGURE_OFF= --without-nauty
-NAUTY_LIB_DEPENDS= libnauty.so:math/nauty
-
-LRS_CONFIGURE_ON= --with-lrs=${LOCALBASE} \
- --with-lrs-include=${LOCALBASE}/include/lrslib
-LRS_CONFIGURE_OFF= --without-lrs
LRS_LIB_DEPENDS= liblrs.so:math/lrslib
+LRS_CONFIGURE_ON= --with-lrs-include=${LOCALBASE}/include/lrslib
+LRS_CONFIGURE_WITH= lrs=${LOCALBASE}
-NORMALIZ_CONFIGURE_ON= --with-libnormaliz=${LOCALBASE}
-NORMALIZ_CONFIGURE_OFF= --without-libnormaliz
-NORMALIZ_LIB_DEPENDS= libnormaliz.so:math/libnormaliz
+NAUTY_LIB_DEPENDS= libnauty.so:math/nauty
+NAUTY_CONFIGURE_WITH= nauty=${LOCALBASE}
-OPENMP_CONFIGURE_OFF= --without-openmp
+NORMALIZ_LIB_DEPENDS= libnormaliz.so:math/libnormaliz
+NORMALIZ_CONFIGURE_WITH= libnormaliz=${LOCALBASE}
-OPTIMIZED_CFLAGS_CFLAGS= -O3
+OPENMP_CONFIGURE_WITH= openmp
-PPL_CONFIGURE_ON= --with-ppl=${LOCALBASE}
-PPL_CONFIGURE_OFF= --without-ppl
PPL_LIB_DEPENDS= libppl.so:devel/ppl
+PPL_CONFIGURE_WITH= ppl=${LOCALBASE}
-SCIP_CONFIGURE_ON= --with-scip=${LOCALBASE}
-SCIP_CONFIGURE_OFF= --without-scip
SCIP_LIB_DEPENDS= libscip.so:math/SCIP
+SCIP_CONFIGURE_WITH= scip=${LOCALBASE}
-SINGULAR_CONFIGURE_ON= --with-singular=${LOCALBASE}
-SINGULAR_CONFIGURE_OFF= --without-singular
-SINGULAR_LIB_DEPENDS= libSingular.so:math/singular
+SINGULAR_LIB_DEPENDS= libSingular.so:math/singular
+SINGULAR_CONFIGURE_WITH= singular=${LOCALBASE}
-SOPLEX_CONFIGURE_ON= --with-soplex=${LOCALBASE}
-SOPLEX_CONFIGURE_OFF= --without-soplex
SOPLEX_LIB_DEPENDS= libsoplex-pic.so:math/SoPlex
+SOPLEX_CONFIGURE_WITH= soplex=${LOCALBASE}
TESTS_VARS= USE_PERL5+=test
-# The port uses the minimal distribution tarball without bundled libraries.
-# Set WRKSRC accordingly.
-WRKSRC= ${WRKDIR}/${PORTNAME}-${DISTVERSION}
-
.include <bsd.port.options.mk>
+.if ${OPSYS} == FreeBSD && ( \
+ ${OSVERSION} >= 1404501 && ${OSVERSION} < 1500000 || \
+ ${OSVERSION} >= 1501501 && ${OSVERSION} < 1600000 || \
+ ${OSVERSION} >= 1600017 )
+USES+= llvm:max=19
+.endif
+
# Deal with site specific installation directory
# polymake installs a perlxs module which depends on the perl configuration
PERL_ARCHNAME= ${:!${PERL} -E 'use Config; print "\$Config::Config{archname}";'!}
-PLIST_FILES= libexec/polymake/perlx/${PERL_VERSION}/${PERL_ARCHNAME}/auto/Polymake/Ext/Ext.so
+PLIST_SUB+= PERL_ARCHNAME=${PERL_ARCHNAME} \
+ PERL_VERSION=${PERL_VERSION} \
+ VER=${DISTVERSION} \
+ SOVER=${SOVER}
# Keep track of the major version
-DISTVERSION_MAJ= ${:!expr ${DISTVERSION} : '\([0-9]*\).*'!}
+SOVER= ${DISTVERSION:R}
post-install:
${RLN} ${STAGEDIR}${PREFIX}/lib/libpolymake.so.${DISTVERSION} \
- ${STAGEDIR}${PREFIX}/lib/libpolymake.so.${DISTVERSION_MAJ}
+ ${STAGEDIR}${PREFIX}/lib/libpolymake.so.${SOVER}
${RLN} ${STAGEDIR}${PREFIX}/lib/libpolymake.so.${DISTVERSION} \
${STAGEDIR}${PREFIX}/lib/libpolymake.so
- ${STRIP_CMD} \
- ${STAGEDIR}${PREFIX}/lib/libpolymake.so.${DISTVERSION} \
-
.for _lp in libpolymake-apps libpolymake-apps-rt
${RLN} ${STAGEDIR}${PREFIX}/lib/${_lp}.so.${DISTVERSION} \
- ${STAGEDIR}${PREFIX}/lib/${_lp}.so.${DISTVERSION_MAJ}
+ ${STAGEDIR}${PREFIX}/lib/${_lp}.so.${SOVER}
${RLN} ${STAGEDIR}${PREFIX}/lib/${_lp}.so.${DISTVERSION} \
${STAGEDIR}${PREFIX}/lib/${_lp}.so
${RLN} ${STAGEDIR}${PREFIX}/lib/${_lp}.so.${DISTVERSION} \
- ${STAGEDIR}${PREFIX}/libexec/polymake/lib/${_lp}.so.${DISTVERSION_MAJ}
+ ${STAGEDIR}${PREFIX}/libexec/polymake/lib/${_lp}.so.${SOVER}
${RLN} ${STAGEDIR}${PREFIX}/lib/${_lp}.so.${DISTVERSION} \
${STAGEDIR}${PREFIX}/libexec/polymake/lib/${_lp}.so
${RLN} ${STAGEDIR}${PREFIX}/libexec/polymake/lib/${_lp}.so.${DISTVERSION} \
- ${STAGEDIR}${PREFIX}/libexec/polymake/lib/${_lp}.so.${DISTVERSION_MAJ}
+ ${STAGEDIR}${PREFIX}/libexec/polymake/lib/${_lp}.so.${SOVER}
${RLN} ${STAGEDIR}${PREFIX}/libexec/polymake/lib/${_lp}.so.${DISTVERSION} \
${STAGEDIR}${PREFIX}/libexec/polymake/lib/${_lp}.so
-# strip the libraries
- ${STRIP_CMD} ${STAGEDIR}${PREFIX}/libexec/polymake/lib/${_lp}.so.${DISTVERSION}
-.endfor
-
- ${STRIP_CMD} ${STAGEDIR}${PREFIX}/libexec/polymake/perlx/${PERL_VERSION}/${PERL_ARCHNAME}/auto/Polymake/Ext/Ext.so
-
-.for l in common fan fulton graph group matroid polytope topaz tropical
- ${STRIP_CMD} ${STAGEDIR}${PREFIX}/libexec/polymake/lib/${l}.so
.endfor
-# only strip libexec/polymake/lib/ideal.so iff SINGULAR=on, if SINGULAR=off it
-# is an empty file and stripping fails
-.if ${PORT_OPTIONS:MSINGULAR}
- ${STRIP_CMD} ${STAGEDIR}${PREFIX}/libexec/polymake/lib/ideal.so
-.endif
-
-.for lp in libpolymake-apps libpolymake-apps-rt
- ${STRIP_CMD} ${STAGEDIR}${PREFIX}/libexec/polymake/lib/${lp}.so.${DISTVERSION}
-.endfor
+# strip the libraries
+ ${STRIP_CMD} ${STAGEDIR}${PREFIX}/lib/libpolymake.so.${DISTVERSION} \
+ ${STAGEDIR}${PREFIX}/libexec/polymake/lib/libpolymake-*.so.${DISTVERSION} \
+ ${common fan fulton graph group ideal matroid polytope topaz tropical \
+ :L:C|^(.*)$|${STAGEDIR}${PREFIX}/libexec/polymake/lib/\1.so|} \
+ ${STAGEDIR}${PREFIX}/libexec/polymake/perlx/${PERL_VERSION}/${PERL_ARCHNAME}/auto/Polymake/Ext/Ext.so
post-install-TESTS-on: test
# Set HOME=${WRKDIR} to prevent polymake writing its .polymake directory outside
-# WRKDIR.
+# WRKDIR. Also tests fail if TERM is not defined.
test:
- @cd ${WRKSRC} && HOME=${WRKDIR} perl/polymake --script run_testcases
-
-.include <bsd.port.pre.mk>
-
-.if ${PERL_LEVEL} >= 504200
-BROKEN= polymake has not been checked for compatibility with perl 5.42 or newer
-.endif
+ @(cd ${WRKSRC} && \
+ HOME=${WRKDIR} TERM=vt100 perl/polymake --script run_testcases)
-.include <bsd.port.post.mk>
+.include <bsd.port.mk>
diff --git a/math/polymake/distinfo b/math/polymake/distinfo
index e3d780791b0b..fd27da882c78 100644
--- a/math/polymake/distinfo
+++ b/math/polymake/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1727625660
-SHA256 (polymake-4.13-minimal.tar.bz2) = f3adacd063b9ea60d5e9c37c6183f5dbb7458b0cb3491eba3efc38f20c565ceb
-SIZE (polymake-4.13-minimal.tar.bz2) = 7338096
+TIMESTAMP = 1780934589
+SHA256 (polymake-4.15-minimal.tar.bz2) = 30e0a8f89013cf7a9a44ed90db2f69c49bf181050664c7e6bdb861c610b1bdb9
+SIZE (polymake-4.15-minimal.tar.bz2) = 7338374
diff --git a/math/polymake/files/patch-external_permlib_include_permlib_bsgs.h b/math/polymake/files/patch-external_permlib_include_permlib_bsgs.h
deleted file mode 100644
index 176060a8a967..000000000000
--- a/math/polymake/files/patch-external_permlib_include_permlib_bsgs.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- external/permlib/include/permlib/bsgs.h.orig 2024-09-24 09:32:47 UTC
-+++ external/permlib/include/permlib/bsgs.h
-@@ -461,7 +461,7 @@ template <class PERM>
- * stabilizer chain are next to each other.
- */
- template <class PERM>
--class StrongGeneratingSetSorter : public std::binary_function<typename PERM::ptr, typename PERM::ptr, bool> {
-+class StrongGeneratingSetSorter {
- public:
- /**
- * @param baseBegin begin-iterator(dom_int) to the base relative to which the strong generating set is to be sorted
diff --git a/math/polymake/files/patch-external_permlib_include_permlib_predicate_identity__predicate.h b/math/polymake/files/patch-external_permlib_include_permlib_predicate_identity__predicate.h
deleted file mode 100644
index 0f8e6404edf9..000000000000
--- a/math/polymake/files/patch-external_permlib_include_permlib_predicate_identity__predicate.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- external/permlib/include/permlib/predicate/identity_predicate.h.orig 2024-09-24 09:32:47 UTC
-+++ external/permlib/include/permlib/predicate/identity_predicate.h
-@@ -39,7 +39,7 @@ template <class PERM>
-
- /// predicate matching a permutation if it stabilizes a given list of points pointwise
- template <class PERM>
--class IdentityPredicate : public std::unary_function<typename PERM::ptr, bool> {
-+class IdentityPredicate {
- public:
- /// evaluate predicate
- bool operator()(const typename PERM::ptr &p) const {
diff --git a/math/polymake/files/patch-external_permlib_include_permlib_predicate_pointwise__stabilizer__predicate.h b/math/polymake/files/patch-external_permlib_include_permlib_predicate_pointwise__stabilizer__predicate.h
deleted file mode 100644
index 176cdb17ca29..000000000000
--- a/math/polymake/files/patch-external_permlib_include_permlib_predicate_pointwise__stabilizer__predicate.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- external/permlib/include/permlib/predicate/pointwise_stabilizer_predicate.h.orig 2024-09-24 09:32:47 UTC
-+++ external/permlib/include/permlib/predicate/pointwise_stabilizer_predicate.h
-@@ -39,7 +39,7 @@ template <class PERM>
-
- /// predicate matching a permutation if it stabilizes a given list of points pointwise
- template <class PERM>
--class PointwiseStabilizerPredicate : public std::unary_function<typename PERM::ptr, bool> {
-+class PointwiseStabilizerPredicate {
- public:
- /// constructor
- /**
diff --git a/math/polymake/files/patch-external_permlib_include_permlib_predicate_stabilizes__point__predicate.h b/math/polymake/files/patch-external_permlib_include_permlib_predicate_stabilizes__point__predicate.h
deleted file mode 100644
index 311db4d802ed..000000000000
--- a/math/polymake/files/patch-external_permlib_include_permlib_predicate_stabilizes__point__predicate.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- external/permlib/include/permlib/predicate/stabilizes_point_predicate.h.orig 2024-09-24 09:32:47 UTC
-+++ external/permlib/include/permlib/predicate/stabilizes_point_predicate.h
-@@ -39,7 +39,7 @@ template <class PERM>
-
- /// predicate matching points that are stabilized by given permutations
- template <class PERM>
--class StabilizesPointPredicate : public std::unary_function<unsigned long, bool> {
-+class StabilizesPointPredicate {
- public:
- /// constructor
- /**
diff --git a/math/polymake/files/patch-external_permlib_include_permlib_predicate_subgroup__predicate.h b/math/polymake/files/patch-external_permlib_include_permlib_predicate_subgroup__predicate.h
deleted file mode 100644
index 93ca0a5b9a9e..000000000000
--- a/math/polymake/files/patch-external_permlib_include_permlib_predicate_subgroup__predicate.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- external/permlib/include/permlib/predicate/subgroup_predicate.h.orig 2024-09-24 09:32:47 UTC
-+++ external/permlib/include/permlib/predicate/subgroup_predicate.h
-@@ -42,7 +42,7 @@ template <class PERM>
-
- /// abstract base class for subgroup (and coset) predicates
- template <class PERM>
--class SubgroupPredicate : public std::unary_function<PERM, bool> {
-+class SubgroupPredicate {
- public:
- /// virtual destructor
- virtual ~SubgroupPredicate() {}
diff --git a/math/polymake/files/patch-external_permlib_include_permlib_search_partition_backtrack__refinement.h b/math/polymake/files/patch-external_permlib_include_permlib_search_partition_backtrack__refinement.h
deleted file mode 100644
index 4ac79394f799..000000000000
--- a/math/polymake/files/patch-external_permlib_include_permlib_search_partition_backtrack__refinement.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- external/permlib/include/permlib/search/partition/backtrack_refinement.h.orig 2024-09-24 09:32:47 UTC
-+++ external/permlib/include/permlib/search/partition/backtrack_refinement.h
-@@ -67,7 +67,7 @@ class BacktrackRefinement : public Refinement<PERM> {
-
- typedef typename Refinement<PERM>::RefinementPtr RefinementPtr;
-
-- struct RefinementSorter : public std::binary_function<RefinementPtr, RefinementPtr, bool> {
-+ struct RefinementSorter {
- RefinementSorter(const BaseSorterByReference& sorter, const Partition* pi) : m_sorter(sorter), m_pi(pi) {}
-
- bool operator()(RefinementPtr a, RefinementPtr b) const {
diff --git a/math/polymake/files/patch-external_permlib_include_permlib_sorter_base__sorter.h b/math/polymake/files/patch-external_permlib_include_permlib_sorter_base__sorter.h
deleted file mode 100644
index 2c7604b05d84..000000000000
--- a/math/polymake/files/patch-external_permlib_include_permlib_sorter_base__sorter.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- external/permlib/include/permlib/sorter/base_sorter.h.orig 2024-09-24 09:32:47 UTC
-+++ external/permlib/include/permlib/sorter/base_sorter.h
-@@ -39,7 +39,7 @@ template<class ORDER>
-
- /// A sorter that sorts a sequence with respect to a given input ordering
- template<class ORDER>
--class OrderedSorter : public std::binary_function<unsigned long, unsigned long, bool> {
-+class OrderedSorter {
- public:
- /// true iff a preceeds b in given sequence
- bool operator() (unsigned long a, unsigned long b) const {
diff --git a/math/polymake/files/patch-external_permlib_include_permlib_sorter_group__sorter.h b/math/polymake/files/patch-external_permlib_include_permlib_sorter_group__sorter.h
deleted file mode 100644
index 7cf655ca5d21..000000000000
--- a/math/polymake/files/patch-external_permlib_include_permlib_sorter_group__sorter.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- external/permlib/include/permlib/sorter/group_sorter.h.orig 2024-09-24 09:32:47 UTC
-+++ external/permlib/include/permlib/sorter/group_sorter.h
-@@ -39,7 +39,7 @@ template <class PERM>
-
- /// A sorter that sorts a sequence of permutations with respect to a ordering induced by a base
- template <class PERM>
--class GroupSorter : public std::binary_function<PERM, PERM, bool>{
-+class GroupSorter {
- public:
- /// constructor
- /**
diff --git a/math/polymake/files/patch-external_permlib_include_permlib_sorter_trivial__sorter.h b/math/polymake/files/patch-external_permlib_include_permlib_sorter_trivial__sorter.h
deleted file mode 100644
index dcc9ea434dbb..000000000000
--- a/math/polymake/files/patch-external_permlib_include_permlib_sorter_trivial__sorter.h
+++ /dev/null
@@ -1,11 +0,0 @@
---- external/permlib/include/permlib/sorter/trivial_sorter.h.orig 2024-09-24 09:32:47 UTC
-+++ external/permlib/include/permlib/sorter/trivial_sorter.h
-@@ -36,7 +36,7 @@ namespace permlib {
- namespace permlib {
-
- /// A sorter that sorts a sequence in natural numerical order (1 < 2 < 3 < ...)
--class TrivialSorter : public std::binary_function<unsigned long, unsigned long, bool>{
-+class TrivialSorter {
- public:
- /// true iff a < b
- bool operator() (unsigned long a, unsigned long b) const {
diff --git a/math/polymake/files/patch-lib_core_include_ContainerChain.h b/math/polymake/files/patch-lib_core_include_ContainerChain.h
deleted file mode 100644
index bff622bf092a..000000000000
--- a/math/polymake/files/patch-lib_core_include_ContainerChain.h
+++ /dev/null
@@ -1,131 +0,0 @@
---- lib/core/include/ContainerChain.h.orig 2024-09-24 09:32:47 UTC
-+++ lib/core/include/ContainerChain.h
-@@ -1128,15 +1128,15 @@ class modified_container_tuple_impl (public)
-
- Int size() const
- {
-- return this->manip_top().template get_container(size_constant<base_t::normal_it_pos>()).size();
-+ return this->manip_top().get_container(size_constant<base_t::normal_it_pos>()).size();
- }
- Int dim() const
- {
-- return get_dim(this->manip_top().template get_container(size_constant<base_t::normal_it_pos>()));
-+ return get_dim(this->manip_top().get_container(size_constant<base_t::normal_it_pos>()));
- }
- bool empty() const
- {
-- return this->manip_top().template get_container(size_constant<base_t::normal_it_pos>()).empty();
-+ return this->manip_top().get_container(size_constant<base_t::normal_it_pos>()).empty();
- }
-
- decltype(auto) front()
-@@ -1153,40 +1153,40 @@ class modified_container_tuple_impl (public)
- iterator make_begin(std::index_sequence<Index...>, mlist<Features...>)
- {
- return iterator(this->manip_top().get_operation(),
-- ensure(this->manip_top().template get_container(size_constant<Index>()), muntag_t<Features>()).begin()...);
-+ ensure(this->manip_top().get_container(size_constant<Index>()), muntag_t<Features>()).begin()...);
- }
-
- template <size_t... Index, typename... Features>
- iterator make_end(std::index_sequence<Index...>, mlist<Features...>)
- {
- return iterator(this->manip_top().get_operation(),
-- ensure(this->manip_top().template get_container(size_constant<Index>()), muntag_t<Features>()).end()...);
-+ ensure(this->manip_top().get_container(size_constant<Index>()), muntag_t<Features>()).end()...);
- }
-
- template <size_t... Index, typename... Features>
- const_iterator make_begin(std::index_sequence<Index...>, mlist<Features...>) const
- {
- return const_iterator(this->manip_top().get_operation(),
-- ensure(this->manip_top().template get_container(size_constant<Index>()), muntag_t<Features>()).begin()...);
-+ ensure(this->manip_top().get_container(size_constant<Index>()), muntag_t<Features>()).begin()...);
- }
-
- template <size_t... Index, typename... Features>
- const_iterator make_end(std::index_sequence<Index...>, mlist<Features...>) const
- {
- return const_iterator(this->manip_top().get_operation(),
-- ensure(this->manip_top().template get_container(size_constant<Index>()), muntag_t<Features>()).end()...);
-+ ensure(this->manip_top().get_container(size_constant<Index>()), muntag_t<Features>()).end()...);
- }
-
- template <size_t... Index>
- decltype(auto) make_front(std::index_sequence<Index...>)
- {
-- return this->manip_top().get_operation()( this->manip_top().template get_container(size_constant<Index>()).front()... );
-+ return this->manip_top().get_operation()( this->manip_top().get_container(size_constant<Index>()).front()... );
- }
-
- template <size_t... Index>
- decltype(auto) make_front(std::index_sequence<Index...>) const
- {
-- return this->manip_top().get_operation()( this->manip_top().template get_container(size_constant<Index>()).front()... );
-+ return this->manip_top().get_operation()( this->manip_top().get_container(size_constant<Index>()).front()... );
- }
- };
-
-@@ -1230,40 +1230,40 @@ class modified_container_tuple_impl<Top, Params, std::
- reverse_iterator make_rbegin(std::index_sequence<Index...>, mlist<Features...>)
- {
- return reverse_iterator(this->manip_top().get_operation(),
-- ensure(this->manip_top().template get_container(size_constant<Index>()), muntag_t<Features>()).rbegin()...);
-+ ensure(this->manip_top().get_container(size_constant<Index>()), muntag_t<Features>()).rbegin()...);
- }
-
- template <size_t... Index, typename... Features>
- reverse_iterator make_rend(std::index_sequence<Index...>, mlist<Features...>)
- {
- return reverse_iterator(this->manip_top().get_operation(),
-- ensure(this->manip_top().template get_container(size_constant<Index>()), muntag_t<Features>()).rend()...);
-+ ensure(this->manip_top().get_container(size_constant<Index>()), muntag_t<Features>()).rend()...);
- }
-
- template <size_t... Index, typename... Features>
- const_reverse_iterator make_rbegin(std::index_sequence<Index...>, mlist<Features...>) const
- {
- return const_reverse_iterator(this->manip_top().get_operation(),
-- ensure(this->manip_top().template get_container(size_constant<Index>()), muntag_t<Features>()).rbegin()...);
-+ ensure(this->manip_top().get_container(size_constant<Index>()), muntag_t<Features>()).rbegin()...);
- }
-
- template <size_t... Index, typename... Features>
- const_reverse_iterator make_rend(std::index_sequence<Index...>, mlist<Features...>) const
- {
- return const_reverse_iterator(this->manip_top().get_operation(),
-- ensure(this->manip_top().template get_container(size_constant<Index>()), muntag_t<Features>()).rend()...);
-+ ensure(this->manip_top().get_container(size_constant<Index>()), muntag_t<Features>()).rend()...);
- }
-
- template <size_t... Index>
- decltype(auto) make_back(std::index_sequence<Index...>)
- {
-- return this->manip_top().get_operation()( this->manip_top().template get_container(size_constant<Index>()).back()... );
-+ return this->manip_top().get_operation()( this->manip_top().get_container(size_constant<Index>()).back()... );
- }
-
- template <size_t... Index>
- decltype(auto) make_back(std::index_sequence<Index...>) const
- {
-- return this->manip_top().get_operation()( this->manip_top().template get_container(size_constant<Index>()).back()... );
-+ return this->manip_top().get_operation()( this->manip_top().get_container(size_constant<Index>()).back()... );
- }
- };
-
-@@ -1285,13 +1285,13 @@ class modified_container_tuple_impl<Top, Params, std::
- template <size_t... Index>
- decltype(auto) make_random(Int i, std::index_sequence<Index...>)
- {
-- return this->manip_top().get_operation()( this->manip_top().template get_container(size_constant<Index>())[i]... );
-+ return this->manip_top().get_operation()( this->manip_top().get_container(size_constant<Index>())[i]... );
- }
-
- template <size_t... Index>
- decltype(auto) make_random(Int i, std::index_sequence<Index...>) const
- {
-- return this->manip_top().get_operation()( this->manip_top().template get_container(size_constant<Index>())[i]... );
-+ return this->manip_top().get_operation()( this->manip_top().get_container(size_constant<Index>())[i]... );
- }
- };
-
diff --git a/math/polymake/files/patch-lib_core_include_GenericMatrix.h b/math/polymake/files/patch-lib_core_include_GenericMatrix.h
deleted file mode 100644
index 62ade36b0d90..000000000000
--- a/math/polymake/files/patch-lib_core_include_GenericMatrix.h
+++ /dev/null
@@ -1,17 +0,0 @@
---- lib/core/include/GenericMatrix.h.orig 2024-09-24 09:32:47 UTC
-+++ lib/core/include/GenericMatrix.h
-@@ -1525,12 +1525,12 @@ class ConcatRows< BlockMatrix<MatrixList, std::true_ty
- template <size_t i>
- decltype(auto) get_container(size_constant<i>)
- {
-- return concat_rows(this->hidden().template get_container(size_constant<i>()));
-+ return concat_rows(this->hidden().get_container(size_constant<i>()));
- }
- template <size_t i>
- decltype(auto) get_container(size_constant<i>) const
- {
-- return concat_rows(this->hidden().template get_container(size_constant<i>()));
-+ return concat_rows(this->hidden().get_container(size_constant<i>()));
- }
-
- ConcatRows& operator= (const ConcatRows& other) { return ConcatRows::generic_type::operator=(other); }
diff --git a/math/polymake/files/patch-lib_core_include_internal_pool__allocator.h b/math/polymake/files/patch-lib_core_include_internal_pool__allocator.h
deleted file mode 100644
index f4c4252e2d86..000000000000
--- a/math/polymake/files/patch-lib_core_include_internal_pool__allocator.h
+++ /dev/null
@@ -1,14 +0,0 @@
---- lib/core/include/internal/pool_allocator.h.orig 2024-09-24 09:32:47 UTC
-+++ lib/core/include/internal/pool_allocator.h
-@@ -34,7 +34,11 @@ class allocator : public PM_ALLOCATOR_BASE<char> { (pu
- public:
- void* allocate(std::size_t n)
- {
-+#if __cplusplus < 201703L
- return base_t::allocate(n, nullptr);
-+#else
-+ return base_t::allocate(n);
-+#endif
- }
- void deallocate(void* p, std::size_t n)
- {
diff --git a/math/polymake/files/patch-lib_core_include_optional b/math/polymake/files/patch-lib_core_include_optional
deleted file mode 100644
index cb7d9756dc41..000000000000
--- a/math/polymake/files/patch-lib_core_include_optional
+++ /dev/null
@@ -1,38 +0,0 @@
---- lib/core/include/optional.orig 2024-09-24 09:32:47 UTC
-+++ lib/core/include/optional
-@@ -7,6 +7,8 @@
- // Moreover, older clangs produce strange errors even in combination with libstdc++.
- // For this configuration, we include a minimal implementation just covering our needs.
-
-+#if __cplusplus < 201703L
-+
- #if defined(__clang__) && (defined(_LIBCPP_STD_VER) || __clang_major__ < 4)
-
- #include "polymake/internal/type_union.h"
-@@ -76,8 +78,6 @@ using pm::make_optional;
-
- #else // GCC or clang >= 4
-
--#if __cplusplus < 201703L
--
- # include <experimental/optional>
-
- namespace polymake {
-@@ -91,6 +91,8 @@ using std::experimental::make_optional;
- using std::experimental::make_optional;
- }
-
-+#endif
-+
- #else
-
- #include <optional>
-@@ -105,8 +107,6 @@ using std::make_optional;
- using std::nullopt;
- using std::make_optional;
- }
--
--#endif
-
- #endif
-
diff --git a/math/polymake/pkg-plist b/math/polymake/pkg-plist
index b0d937a789df..15a58fd911ec 100644
--- a/math/polymake/pkg-plist
+++ b/math/polymake/pkg-plist
@@ -373,14 +373,14 @@ include/polymake/tropical/thomog.h
include/polymake/type_utils.h
include/polymake/vector
lib/libpolymake-apps-rt.so
-lib/libpolymake-apps-rt.so.4
-lib/libpolymake-apps-rt.so.4.13
+lib/libpolymake-apps-rt.so.%%SOVER%%
+lib/libpolymake-apps-rt.so.%%VER%%
lib/libpolymake-apps.so
-lib/libpolymake-apps.so.4
-lib/libpolymake-apps.so.4.13
+lib/libpolymake-apps.so.%%SOVER%%
+lib/libpolymake-apps.so.%%VER%%
lib/libpolymake.so
-lib/libpolymake.so.4
-lib/libpolymake.so.4.13
+lib/libpolymake.so.%%SOVER%%
+lib/libpolymake.so.%%VER%%
libexec/polymake/config.ninja
libexec/polymake/lib/common.so
libexec/polymake/lib/fan.so
@@ -389,16 +389,16 @@ libexec/polymake/lib/graph.so
libexec/polymake/lib/group.so
libexec/polymake/lib/ideal.so
libexec/polymake/lib/libpolymake-apps-rt.so
-libexec/polymake/lib/libpolymake-apps-rt.so.4
-libexec/polymake/lib/libpolymake-apps-rt.so.4.13
+libexec/polymake/lib/libpolymake-apps-rt.so.%%SOVER%%
+libexec/polymake/lib/libpolymake-apps-rt.so.%%VER%%
libexec/polymake/lib/libpolymake-apps.so
-libexec/polymake/lib/libpolymake-apps.so.4
-libexec/polymake/lib/libpolymake-apps.so.4.13
+libexec/polymake/lib/libpolymake-apps.so.%%SOVER%%
+libexec/polymake/lib/libpolymake-apps.so.%%VER%%
libexec/polymake/lib/matroid.so
libexec/polymake/lib/polytope.so
libexec/polymake/lib/topaz.so
libexec/polymake/lib/tropical.so
-@comment libexec/polymake/perlx/%%PERL_VERSION%%/amd64-freebsd-thread-multi/auto/Polymake/Ext/Ext.so
+libexec/polymake/perlx/%%PERL_VERSION%%/%%PERL_ARCHNAME%%/auto/Polymake/Ext/Ext.so
libexec/polymake/shared
%%DATADIR%%/apps/common/perllib/BackgroundViewer.pm
%%DATADIR%%/apps/common/perllib/Geomview.pm
@@ -925,6 +925,7 @@ libexec/polymake/shared
%%DATADIR%%/apps/polytope/src/schlegel_transform.cc
%%DATADIR%%/apps/polytope/src/separating_hyperplane.cc
%%DATADIR%%/apps/polytope/src/simplex.cc
+%%DATADIR%%/apps/polytope/src/smooth_vertices.cc
%%DATADIR%%/apps/polytope/src/solids.cc
%%DATADIR%%/apps/polytope/src/spherize.cc
%%DATADIR%%/apps/polytope/src/split_compatibility_graph.cc
@@ -1112,7 +1113,6 @@ libexec/polymake/shared
%%DATADIR%%/apps/tropical/src/dual_addition_version_cone.cc
%%DATADIR%%/apps/tropical/src/dual_addition_version_cycle.cc
%%DATADIR%%/apps/tropical/src/envelope.cc
-%%DATADIR%%/apps/tropical/src/extract_pseudovertices.cc
%%DATADIR%%/apps/tropical/src/feasible_cell.cc
%%DATADIR%%/apps/tropical/src/hypersimplex.cc
%%DATADIR%%/apps/tropical/src/hypersurface.cc
@@ -1508,6 +1508,7 @@ libexec/polymake/shared
%%DATADIR%%/upgrades/3.5
%%DATADIR%%/upgrades/4.1
%%DATADIR%%/upgrades/4.12
+%%DATADIR%%/upgrades/4.14
%%DATADIR%%/upgrades/4.2
%%DATADIR%%/upgrades/4.3
%%DATADIR%%/upgrades/4.4
@@ -1527,6 +1528,7 @@ libexec/polymake/shared
%%DATADIR%%/upgrades/big_objects-4.0.1
%%DATADIR%%/upgrades/big_objects-4.1.1
%%DATADIR%%/upgrades/big_objects-4.11.1
+%%DATADIR%%/upgrades/big_objects-4.13.1
%%DATADIR%%/upgrades/big_objects-4.2.1
%%DATADIR%%/upgrades/big_objects-4.3.1
%%DATADIR%%/upgrades/big_objects-4.3.3