Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Upgrade polymake to version 3.4 #24905

Closed
mkoeppe opened this issue Mar 6, 2018 · 210 comments
Closed

Upgrade polymake to version 3.4 #24905

mkoeppe opened this issue Mar 6, 2018 · 210 comments

Comments

@mkoeppe
Copy link
Contributor

mkoeppe commented Mar 6, 2018

https://polymake.org/doku.php/download/start#get_latest_stable_release33

To build it for Sage do:

(cd upstream && wget https://polymake.org/lib/exe/fetch.php/download/polymake-3.4-minimal.tar.bz2)

pull this ticket and build sage

make build

Then
Read (and follow) the installation instructions regarding Perl prereqs on your platform:

./sage -info polymake

Finally:

./sage -i polymake

Upstream: Reported upstream. No feedback yet.

CC: @simon-king-jena @jplab @videlec @slel @sophiasage paffenholz@mathematik.tu-darmstadt.de kastner@math.tu-berlin.de

Component: packages: optional

Keywords: IMA-PolyGeom, thursdaysbdx

Author: Matthias Koeppe, Jean-Philippe Labbé, Dima Pasechnik

Branch/Commit: public/upgrade_polymake_to_version_3_2r4 @ 2eda6e1

Reviewer: Matthias Koeppe, Jean-Philippe Labbé, Dima Pasechnik

Issue created by migration from https://trac.sagemath.org/ticket/24905

@mkoeppe mkoeppe added this to the sage-8.2 milestone Mar 6, 2018
@mkoeppe
Copy link
Contributor Author

mkoeppe commented Mar 6, 2018

Dependencies: #24921

@mkoeppe

This comment has been minimized.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Apr 5, 2018

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Apr 5, 2018

Branch pushed to git repo; I updated commit sha1. New commits:

ca75153polymake: Add ninja_build as dependency

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Apr 5, 2018

Commit: ca75153

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Apr 5, 2018

Author: Matthias Koeppe

@jdemeyer
Copy link

jdemeyer commented Apr 6, 2018

comment:5

ninja_build should be an order-only dependency (after the | symbol)

@jdemeyer
Copy link

jdemeyer commented Apr 6, 2018

comment:6

All other packages have $(MP_LIBRARY) in their dependencies instead of $(INST)/$(SAGE_MP_LIBRARY). I guess this should be changed.

@jdemeyer
Copy link

jdemeyer commented Apr 6, 2018

comment:7

Unfortunately, I cannot test this because perl_term_readline_gnu fails to install:

[perl_term_readline_gnu-1.34] Could not find neither libtermcap.a, libncurses.a, or libcurses.

Indeed, there is no libncurses.a installed (but libncurses.so is).

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Apr 6, 2018

comment:8

Replying to @jdemeyer:

Unfortunately, I cannot test this because perl_term_readline_gnu fails to install:

[perl_term_readline_gnu-1.34] Could not find neither libtermcap.a, libncurses.a, or libcurses.

Indeed, there is no libncurses.a installed (but libncurses.so is).

Could you create a separate ticket for this (and include more log detail)?

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Apr 6, 2018

Branch pushed to git repo; I updated commit sha1. New commits:

4fc26ffninja_build: Add python dependency
3d6ae67ninja_build: Make Python an order-only dependency
acc3026Merge remote-tracking branch 'trac/u/mkoeppe/add_optional_package__ninja_build___build_system_for_polymake_' into t/24905/upgrade_polymake_to_version_3_2r2
196eb49polymake dependencies: Use current format for MP_LIBRARY, make ninja_build order-only

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Apr 6, 2018

Changed commit from ca75153 to 196eb49

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Apr 6, 2018

Work Issues: Failures in test suite

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Apr 6, 2018

comment:12

This upgrade seems to break the whole polymake interface. Next step: Compare what's happening on the wire (pexpect log) between the two polymake versions.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Apr 6, 2018

comment:13

Replying to @mkoeppe:

Replying to @jdemeyer:

Unfortunately, I cannot test this because perl_term_readline_gnu fails to install:

[perl_term_readline_gnu-1.34] Could not find neither libtermcap.a, libncurses.a, or libcurses.

Indeed, there is no libncurses.a installed (but libncurses.so is).

Could you create a separate ticket for this (and include more log detail)?

We have reproduced this problem on another linux box. Fix is in #25112.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Apr 6, 2018

Changed dependencies from #24921 to #24921, #25112

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Apr 6, 2018

Branch pushed to git repo; I updated commit sha1. New commits:

3ffafdfUpdate perl_term_readline_gnu to 1.35
672a3a2perl_term_readline_gnu: Find ncurses
0b818c3Merge remote-tracking branch 'trac/u/mkoeppe/perl_term_readline_gnu__upgrade_to_1_35_and_patch_away_ncurses_problem' into t/24905/upgrade_polymake_to_version_3_2r2

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented Apr 6, 2018

Changed commit from 196eb49 to 0b818c3

@mkoeppe

This comment has been minimized.

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented May 8, 2019

Branch pushed to git repo; I updated commit sha1. New commits:

b613e57Mention libterm-readline-gnu-perl

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented May 8, 2019

Branch pushed to git repo; I updated commit sha1. New commits:

e5c3249polymake: Mention MOngoDB for polydb
b89376apolymake: Update info on macOS

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented May 8, 2019

Changed commit from b613e57 to b89376a

@dimpase
Copy link
Member

dimpase commented May 8, 2019

comment:151

Let's get this done and open another ticket for promotion to optional.
IMHO it is not quite ready, e.g. it does not run on all supported platforms.
And the installation procedure isn't nice. I don't think we have a optional package where to install it one needs to install many things by hand in an ad hoc way.


New commits:

e5c3249polymake: Mention MOngoDB for polydb
b89376apolymake: Update info on macOS

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented May 8, 2019

Branch pushed to git repo; I updated commit sha1. New commits:

0c1b044polymake: update MongoDB information for linux distros

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented May 8, 2019

Changed commit from b89376a to 0c1b044

@mkoeppe
Copy link
Contributor Author

mkoeppe commented May 8, 2019

comment:153

Replying to @dimpase:

Let's get this done and open another ticket for promotion to optional.
IMHO it is not quite ready, e.g. it does not run on all supported platforms.
And the installation procedure isn't nice. I don't think we have a optional package where to install it one needs to install many things by hand in an ad hoc way.

OK, I agree, good point.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented May 8, 2019

comment:154

I added one more perl package. Could you check this on Linux?
After adding it, the following should work:

polytope > $A = db_query( { "_id"=>"F.4D.0047" }, db=>"LatticePolytopes", collection=>"SmoothReflexive" );
polymake: used package polyDB
   Access to the polymake polytope database.
   (c) 2013-2018 Silke Horn, Andreas Paffenholz
   http://solros.de
   http://www.mathematik.tu-darmstadt.de/~paffenholz


polymake:  ERROR: #
# *** DEPRECATION WARNING ***
# ...

(The deprecation warning is normal.}

@dimpase
Copy link
Member

dimpase commented May 8, 2019

comment:155

Building 72 more Perl packages now :-) Why is polymake itself not on CPAN?

@dimpase
Copy link
Member

dimpase commented May 8, 2019

comment:156

this is what I got (after installing moar perl and rebuilding polymake)

 $ ./sage --polymake
Welcome to polymake version 3.4
Copyright (c) 1997-2019
Ewgenij Gawrilow, Michael Joswig (TU Berlin)
https://polymake.org

This is free software licensed under GPL; see the source for copying conditions.
There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

Press F1 or enter 'help;' for basic instructions.

Application polytope currently uses following contributed and third-party software packages:
SVG, bliss, cdd, graphviz, latte, libnormaliz, lrs, permlib, polyDB, povray, ppl, qhull, singular, sketch, sympol, threejs, tikz, tosimplex
For more details:  show_credits;
polytope > $A = db_query( { "_id"=>"F.4D.0047" }, db=>"LatticePolytopes", collection=>"SmoothReflexive" );
polymake: used package polyDB
   Access to the polymake polytope database.
   (c) 2013-2018 Silke Horn, Andreas Paffenholz
   http://solros.de
   http://www.mathematik.tu-darmstadt.de/~paffenholz


polytope > 

perhaps you could add a meaningful doctest, tagged internet, for this?

@mkoeppe
Copy link
Contributor Author

mkoeppe commented May 8, 2019

comment:157

When MongoDB is not available, the function db_query is not even present.
Not sure if/why we want to doctest that.

Let's postpone doctesting the db_query function in Sage to #27802, which adds support for the dictionary that appears in the argument list.

@dimpase
Copy link
Member

dimpase commented May 8, 2019

comment:158

OK then.

@dimpase
Copy link
Member

dimpase commented May 8, 2019

comment:159

one last nitpick yum install perl-Term-ReadLine-Gnu should be added to Fedora instructions

@mkoeppe
Copy link
Contributor Author

mkoeppe commented May 8, 2019

comment:160

Thank you!

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented May 8, 2019

Branch pushed to git repo; I updated commit sha1 and set ticket back to needs_review. New commits:

2eda6e1polymake: add to fedora instructions

@sagetrac-git
Copy link
Mannequin

sagetrac-git mannequin commented May 8, 2019

Changed commit from 0c1b044 to 2eda6e1

@dimpase
Copy link
Member

dimpase commented May 8, 2019

comment:163

Fedora's 26 perl is however not good.

[polymake-3.4] FAILED: /home/scratch2/dimpase/sage/sage/local/var/tmp/sage/build/polymake-3.4/src/build/perlx/5.24.4/x86_64-linux-thread-multi/Customize.cc
[polymake-3.4] /usr/bin/perl /usr/share/perl5/ExtUtils/xsubpp -typemap /usr/share/perl5/ExtUtils/typemap  --output /home/scratch2/dimpase/sage/sage/local/var/tmp/sage/build/polymake-3.4/src/build/perlx/5.24.4/x86_64-linux-thread-multi/Customize.cc /home/scratch2/dimpase/sage/sage/local/var/tmp/sage/build/polymake-3.4/src/lib/core/src/perl/Customize.xxs
[polymake-3.4] Can't open perl script "/usr/share/perl5/ExtUtils/xsubpp": No such file or directory

This seems to be a known problem - not sure it's worthwhile to try to fix it though.

And, by the way, on stable Debian I get a problem building with (the standard) gcc 6.3.

@mkoeppe
Copy link
Contributor Author

mkoeppe commented May 9, 2019

comment:164

Replying to @dimpase:

Fedora's 26 perl is however not good.

[polymake-3.4] FAILED: /home/scratch2/dimpase/sage/sage/local/var/tmp/sage/build/polymake-3.4/src/build/perlx/5.24.4/x86_64-linux-thread-multi/Customize.cc
[polymake-3.4] /usr/bin/perl /usr/share/perl5/ExtUtils/xsubpp -typemap /usr/share/perl5/ExtUtils/typemap  --output /home/scratch2/dimpase/sage/sage/local/var/tmp/sage/build/polymake-3.4/src/build/perlx/5.24.4/x86_64-linux-thread-multi/Customize.cc /home/scratch2/dimpase/sage/sage/local/var/tmp/sage/build/polymake-3.4/src/lib/core/src/perl/Customize.xxs
[polymake-3.4] Can't open perl script "/usr/share/perl5/ExtUtils/xsubpp": No such file or directory

This seems to be a known problem - not sure it's worthwhile to try to fix it though.

Known to who?

@mkoeppe
Copy link
Contributor Author

mkoeppe commented May 9, 2019

comment:165

Follow-up ticket: Fix polymake 3.4 lrslib detection (#27803).

@dimpase
Copy link
Member

dimpase commented May 9, 2019

comment:166

It's known to the internet that !Fedora/Centos perform a surgery on its Perl installation resulting in breakages like in comment:163 (missing /usr/share/perl5/ExtUtils/xsubpp; of course xsubpp is present, it's only not in this locaton, hardcoded somewhere...)

@vbraun
Copy link
Member

vbraun commented May 12, 2019

comment:169

Too late, a previous version was released in 8.8.beta5. Move any new code to a separate ticket

@mkoeppe
Copy link
Contributor Author

mkoeppe commented May 13, 2019

comment:170

Replying to @vbraun:

Too late, a previous version was released in 8.8.beta5. Move any new code to a separate ticket

No problem, the missing commit is on the branch of #27803

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests