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

polymake 4.11 #36878

Merged
merged 5 commits into from
Jan 14, 2024
Merged

polymake 4.11 #36878

merged 5 commits into from
Jan 14, 2024

Conversation

mkoeppe
Copy link
Contributor

@mkoeppe mkoeppe commented Dec 14, 2023

Fixes #36023

📝 Checklist

  • The title is concise, informative, and self-explanatory.
  • The description explains in detail what this PR is about.
  • I have linked a relevant issue or discussion.
  • I have created tests covering the changes.
  • I have updated the documentation accordingly.

⌛ Dependencies

@kwankyu
Copy link
Collaborator

kwankyu commented Jan 4, 2024

"CI Linux incremental" all failed. Is that related with this PR? Or rerunning the test will fix itself after rebase?

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jan 4, 2024

It's because it was trying to install dummy packages perl_cpan_polymake_prereq, libxml2.

I think I fixed this recently in the workflows

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jan 4, 2024

Rebased, let's see.

@kwankyu
Copy link
Collaborator

kwankyu commented Jan 4, 2024

My system has polymake 4.11. So I ran make polymake, which failed

...
[perl_term_readline_gnu-1.35] Successfully installed perl_term_readline_gnu-1.35
[perl_term_readline_gnu-1.35] Deleting temporary build directory
[perl_term_readline_gnu-1.35] /Users/kwankyu/GitHub/sage-dev/local/var/tmp/sage/build/perl_term_readline_gnu-1.35
[perl_term_readline_gnu-1.35] Finished installing perl_term_readline_gnu-1.35
make --no-print-directory perl_cpan_polymake_prereq-SAGE_LOCAL-no-deps
[perl_cpan_polymake_prereq-none] 
[perl_cpan_polymake_prereq-none] Note: perl_cpan_polymake_prereq is a dummy package that the Sage distribution uses
[perl_cpan_polymake_prereq-none] to provide information about equivalent system packages.
[perl_cpan_polymake_prereq-none] It cannot be installed using the Sage distribution.
[perl_cpan_polymake_prereq-none] Please install it manually, for example using the system packages
[perl_cpan_polymake_prereq-none] recommended at the end of a run of './configure'
[perl_cpan_polymake_prereq-none] See below for package-specific information.
[perl_cpan_polymake_prereq-none] 
[perl_cpan_polymake_prereq-none] perl_cpan_polymake_prereq: Represents all Perl packages that are prerequisites for polymake
[perl_cpan_polymake_prereq-none] ===========================================================================================
[perl_cpan_polymake_prereq-none] 
[perl_cpan_polymake_prereq-none] Description
[perl_cpan_polymake_prereq-none] -----------
[perl_cpan_polymake_prereq-none] 
[perl_cpan_polymake_prereq-none] This script package represents all Perl packages that are prerequisites
[perl_cpan_polymake_prereq-none] for polymake.
[perl_cpan_polymake_prereq-none] 
[perl_cpan_polymake_prereq-none] License
[perl_cpan_polymake_prereq-none] -------
[perl_cpan_polymake_prereq-none] 
[perl_cpan_polymake_prereq-none] Various free software licenses
[perl_cpan_polymake_prereq-none] 
[perl_cpan_polymake_prereq-none] Type
[perl_cpan_polymake_prereq-none] ----
[perl_cpan_polymake_prereq-none] 
[perl_cpan_polymake_prereq-none] optional
[perl_cpan_polymake_prereq-none] 
[perl_cpan_polymake_prereq-none] 
[perl_cpan_polymake_prereq-none] Dependencies
[perl_cpan_polymake_prereq-none] ------------
[perl_cpan_polymake_prereq-none] 
[perl_cpan_polymake_prereq-none] 
[perl_cpan_polymake_prereq-none] Version Information
[perl_cpan_polymake_prereq-none] -------------------
[perl_cpan_polymake_prereq-none] 
[perl_cpan_polymake_prereq-none] 
[perl_cpan_polymake_prereq-none] Equivalent System Packages
[perl_cpan_polymake_prereq-none] --------------------------
[perl_cpan_polymake_prereq-none] 
[perl_cpan_polymake_prereq-none] alpine:
[perl_cpan_polymake_prereq-none]     $ apk add perl-term-readkey perl-dev perl-file-slurp perl-json \
[perl_cpan_polymake_prereq-none]           perl-xml-writer perl-xml-libxslt
[perl_cpan_polymake_prereq-none] 
[perl_cpan_polymake_prereq-none] cpan:
[perl_cpan_polymake_prereq-none]     $ cpan -i XML::Writer XML::LibXML XML::LibXSLT File::Slurp JSON SVG \
[perl_cpan_polymake_prereq-none]           Term::ReadKey
[perl_cpan_polymake_prereq-none] 
[perl_cpan_polymake_prereq-none] Debian/Ubuntu:
[perl_cpan_polymake_prereq-none]     $ sudo apt-get install libxml-libxslt-perl libxml-writer-perl libxml2-dev \
[perl_cpan_polymake_prereq-none]           libperl-dev libfile-slurp-perl libjson-perl libsvg-perl \
[perl_cpan_polymake_prereq-none]           libterm-readkey-perl libterm-readline-gnu-perl
[perl_cpan_polymake_prereq-none] 
[perl_cpan_polymake_prereq-none] Fedora/Redhat/CentOS:
[perl_cpan_polymake_prereq-none]     $ sudo yum install perl-ExtUtils-Embed perl-File-Slurp perl-JSON \
[perl_cpan_polymake_prereq-none]           perl-Term-ReadLine-Gnu perl-TermReadKey perl-XML-Writer \
[perl_cpan_polymake_prereq-none]           perl-XML-LibXML perl-XML-LibXSLT
[perl_cpan_polymake_prereq-none] 
[perl_cpan_polymake_prereq-none] freebsd:
[perl_cpan_polymake_prereq-none]     $ sudo pkg install textproc/p5-XML-Writer textproc/p5-XML-LibXML \
[perl_cpan_polymake_prereq-none]           textproc/p5-XML-LibXSLT devel/p5-File-Slurp converters/p5-JSON \
[perl_cpan_polymake_prereq-none]           textproc/p5-SVG devel/p5-Term-ReadKey
[perl_cpan_polymake_prereq-none] 
[perl_cpan_polymake_prereq-none] gentoo:
[perl_cpan_polymake_prereq-none]     $ sudo emerge XML-Writer XML-LibXML XML-LibXSLT File-Slurp \
[perl_cpan_polymake_prereq-none]           dev-perl/Term-ReadLine-Gnu dev-perl/TermReadKey JSON SVG
[perl_cpan_polymake_prereq-none] 
[perl_cpan_polymake_prereq-none] void:
[perl_cpan_polymake_prereq-none]     $ sudo xbps-install perl-File-Slurp perl-JSON perl-SVG perl-Term-ReadKey \
[perl_cpan_polymake_prereq-none]           perl-XML-LibXML perl-XML-LibXSLT perl-XML-Writer
[perl_cpan_polymake_prereq-none] 
[perl_cpan_polymake_prereq-none] 
[perl_cpan_polymake_prereq-none] If the system package is installed, ./configure will check if it can be used.
[perl_cpan_polymake_prereq-none] 
[perl_cpan_polymake_prereq-none] 
[perl_cpan_polymake_prereq-none] Error: perl_cpan_polymake_prereq is a dummy package and 
[perl_cpan_polymake_prereq-none] cannot be installed using the Sage distribution.
make[2]: *** [perl_cpan_polymake_prereq-SAGE_LOCAL-no-deps] Error 1
make[1]: *** [/Users/kwankyu/GitHub/sage-dev/local/var/lib/sage/installed/perl_cpan_polymake_prereq-none] Error 2

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jan 4, 2024

What does config.log say about perl_cpan_polymake_prereq?

@kwankyu
Copy link
Collaborator

kwankyu commented Jan 4, 2024

## -------------------------------------------------------------------------- ##
## Checking whether SageMath should install SPKG perl_cpan_polymake_prereq... ##
## -------------------------------------------------------------------------- ##
configure:46263: checking for perl module XML::Writer
configure:46269: result: no
configure:46263: checking for perl module XML::LibXML
configure:46269: result: no
configure:46263: checking for perl module XML::LibXSLT
configure:46269: result: no
configure:46263: checking for perl module File::Slurp
configure:46269: result: no
configure:46263: checking for perl module JSON
configure:46269: result: no
configure:46263: checking for perl module SVG
configure:46269: result: no
configure:46263: checking for perl module Term::ReadKey
configure:46269: result: no
configure:46312: no suitable system package found for SPKG perl_cpan_polymake_prereq   

@kwankyu
Copy link
Collaborator

kwankyu commented Jan 4, 2024

So this is normal. I should first install "perl_cpan_polymake_prereq" by homebrew, or maybe it is not possible on mac.

@kwankyu
Copy link
Collaborator

kwankyu commented Jan 4, 2024

After installing prerequisite perl modules, make polymake is making polymake 4.11 on my system.

Some observations:

  1. "CI Linux incremental" is still failing. But I think this is normal because optional dependencies (dummy packages: perl_cpan_polymake_prereq and libxml2) are missing.

  2. libxml2 is a dependency of perl_cpan_polymake_prereq. Hence I think libxml2 should be placed before perl_cpan_polymake_prereq in dependencies. But because they are all dummy packages, this point may be meaningless.

  3. lrslib is both in dependencies_optional and dependencies. Is this ok?

  4. perl_cpan_polymake_prereq is called a "script package" in SPKG.rst of polymake. Isn't this a "dummy package"?

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jan 4, 2024

  • "CI Linux incremental" is still failing. But I think this is normal because optional dependencies (dummy packages: perl_cpan_polymake_prereq and libxml2) are missing.

You are right. We don't have a mechanism for that in the CI.

  • libxml2 is a dependency of perl_cpan_polymake_prereq. Hence I think libxml2 should be placed before perl_cpan_polymake_prereq in dependencies. But because they are all dummy packages, this point may be meaningless.

I don't think the order of the packages in our dependencies has any meaning.

I have made the other suggested changes.

@kwankyu
Copy link
Collaborator

kwankyu commented Jan 4, 2024

  • libxml2 is a dependency of perl_cpan_polymake_prereq. Hence I think libxml2 should be placed before perl_cpan_polymake_prereq in dependencies. But because they are all dummy packages, this point may be meaningless.

I don't think the order of the packages in our dependencies has any meaning.

Right. But the messages from ./configure are in the same order as the packages are listed in dependencies. So, following the messages, the user will try to install perl_cpan_polymake_prereq first and then libxml2. But in the end, the user is forced to install libxml2 first and then perl_cpan_polymake_prereq.

This is a trivial point. No action is required.

I have made the other suggested changes.

Thanks.

…ake_prereq, so list it first so that users can install them from left to right
@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jan 4, 2024

OK, thanks. Done

Copy link

github-actions bot commented Jan 4, 2024

Documentation preview for this PR (built with commit dcbb426; changes) is ready! 🎉

Copy link
Collaborator

@kwankyu kwankyu left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It works well on mac, and perhaps on linux too 🤞

@mkoeppe
Copy link
Contributor Author

mkoeppe commented Jan 4, 2024

Thank you!

vbraun pushed a commit to vbraun/sage that referenced this pull request Jan 5, 2024
    
<!-- ^^^^^
Please provide a concise, informative and self-explanatory title.
Don't put issue numbers in there, do this in the PR body below.
For example, instead of "Fixes sagemath#1234" use "Introduce new method to
calculate 1+1"
-->
<!-- Describe your changes here in detail -->

<!-- Why is this change required? What problem does it solve? -->
<!-- If this PR resolves an open issue, please link to it here. For
example "Fixes sagemath#12345". -->
<!-- If your change requires a documentation PR, please link it
appropriately. -->

Fixes sagemath#36023

### 📝 Checklist

<!-- Put an `x` in all the boxes that apply. -->
<!-- If your change requires a documentation PR, please link it
appropriately -->
<!-- If you're unsure about any of these, don't hesitate to ask. We're
here to help! -->
<!-- Feel free to remove irrelevant items. -->

- [ ] The title is concise, informative, and self-explanatory.
- [ ] The description explains in detail what this PR is about.
- [ ] I have linked a relevant issue or discussion.
- [ ] I have created tests covering the changes.
- [ ] I have updated the documentation accordingly.

### ⌛ Dependencies

<!-- List all open PRs that this PR logically depends on
- sagemath#12345: short description why this is a dependency
- sagemath#34567: ...
-->
- sagemath#36930

<!-- If you're unsure about any of these, don't hesitate to ask. We're
here to help! -->
    
URL: sagemath#36878
Reported by: Matthias Köppe
Reviewer(s): Kwankyu Lee
@vbraun vbraun merged commit 87a91d9 into sagemath:develop Jan 14, 2024
24 of 44 checks passed
@mkoeppe mkoeppe added this to the sage-10.3 milestone Jan 14, 2024
@mkoeppe mkoeppe deleted the polymake_4_11 branch February 16, 2024 03:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

old Polymake incompatibility with system Perl 5.38 (Fedora 39) - update to polymake 4.11
3 participants