sagemath/sage

Add script package _recommended and generate "recommended system packages" info

mkoeppe opened this issue · 65 comments

Let's improve the installation-from-source documentation regarding the "recommended system packages" for 9.1.

(from #29124)

Related:

  • #29146: Meta-ticket: Refactor and improve system package related scripts, tox.ini, build/bin/write_dockerfile.sh
  • #29372: At the end of configure, show installation hints for disabled optional packages separately
  • #30624: Improve configure's recommendation message

CC: @egourgoulhon @dimpase @kiwifb @orlitzky @jhpalmieri @videlec @kcrisman @slel @antonio-rojas @kliem @thierry-FreeBSD @saraedum

Component: documentation

Keywords: sd109

Author: Matthias Koeppe, John Palmieri

Branch: 6d5cc43

Reviewer: John Palmieri, Matthias Koeppe

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

New commits:

449df5abuild/pkgs/_recommended: New

Description changed:

--- 
+++ 
@@ -1,6 +1,6 @@
 Let's improve the installation-from-source documentation regarding the "recommended system packages" for 9.1.
 
-- `build/pkgs/_recommended` - records additional recommended packages such as texlive-xetex (see https://wiki.sagemath.org/prerequisitesUbuntu)
+- `build/pkgs/_recommended` - records additional recommended packages such as texlive-xetex (see https://wiki.sagemath.org/prerequisites/Ubuntu)
 
 (from #29124)
 
comment:4

So far we only have the recommended packages for debian/ubuntu

Dependencies: #29558

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

66c07d8trac 29558: first draft
deb84cdsage-print-system-package-command: More options, update uses
a832dbcsrc/doc/bootstrap: Initialize OPTIONAL_SYSTEM_PACKAGES
272f01bbuild/bin/sage-spkg: Update use of sage-print-system-package-command
8f064f4trac 29558: correct some markup, change the date at end of file
8273e84build/pkgs/_recommended: New

Changed commit from 449df5a to 8273e84

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

7151382src/doc/bootstrap: Generate debian-recommended.txt etc

Changed commit from 8273e84 to 7151382

comment:9

Would someone like to help with the list of packages on their favorite distribution?

Author: Matthias Koeppe

Changed commit from 7151382 to 85281cf

comment:12

Here are a few suggestions for homebrew.


New commits:

85281cftrac 29557: some recommended packages for homebrew

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

2104e53trac 29557: some recommended packages for homebrew

Changed commit from 85281cf to 2104e53

comment:14

I don't think gcc needs to be added here - it's already listed in build/pkgs/gfortran/distros/homebrew.txt

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

8550fe0trac 29557: some recommended packages for homebrew

Changed commit from 2104e53 to 8550fe0

comment:16

Okay, I took gcc out.

comment:17

Thanks!

kliem commented
comment:18

Typo in the ubuntu link:

+https://wiki.sagemath.org/prerequisites/Ubuntu
-https://wiki.sagemath.org/prerequisitesUbuntu
slel commented
comment:19

My fault: I recently moved that page from prerequisitesUbuntu
to prerequisites/Ubuntu to make it easier to find, better indexed,
and thinking we might have other prerequisites/something.

comment:20

Replying to @slel:

[...] thinking we might have other prerequisites/something.

Hopefully this won't be necessary and we can keep this information up to date in a single place - the install manual.

Changed author from Matthias Koeppe to Matthias Koeppe, John Palmieri

comment:23

Fedora, Arch, anyone?

Changed dependencies from #29558 to #25206

Changed commit from 8550fe0 to 5a0682e

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

5a0682esrc/doc/en/installation/source.rst: Add recommended ubuntu packages from wiki

Changed commit from 5a0682e to 01301af

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

Changed keywords from none to sd109

Description changed:

--- 
+++ 
@@ -1,6 +1,6 @@
 Let's improve the installation-from-source documentation regarding the "recommended system packages" for 9.1.
 
-- `build/pkgs/_recommended` - records additional recommended packages such as texlive-xetex (see https://wiki.sagemath.org/prerequisites/Ubuntu)
+- `build/pkgs/_recommended` - records additional recommended packages such as texlive-xetex (see https://wiki.sagemath.org/prerequisites/Ubuntu); also texinfo (from #22191)
 
 (from #29124)
 

Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:

2cd5ef9build/pkgs/_recommended: New
ea5d610src/doc/bootstrap: Generate debian-recommended.txt etc

Changed commit from 01301af to ea5d610

Changed commit from ea5d610 to fe9ba0b

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

fe9ba0bbuild/pkgs/_recommended/distros/homebrew.txt: New

Changed dependencies from #25206 to none

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

d198e9cbuild/pkgs/_recommended/distros/debian.txt: Format change

Changed commit from fe9ba0b to d198e9c

comment:36

For homebrew, do we want to recommend any of:

  • autoconf
  • automake
  • ffmpeg
  • imagemagick
  • pandoc
    ?

A related question: if we recommend pandoc (for instance) for debian, then for consistency, should we necessarily recommend it for homebrew?

comment:37

Replying to @jhpalmieri:

For homebrew, do we want to recommend any of:

  • autoconf
  • automake
  • ffmpeg
  • imagemagick
  • pandoc

autoconf/automake are already in homebrew-bootstrap.txt

The other, yes.

A related question: if we recommend pandoc (for instance) for debian, then for consistency, should we necessarily recommend it for homebrew?

Ideally, yes, but getting a version of this ticket merged would be good even if it has not reached 100% consistency between distributions

comment:38

Hmm. I did git trac pull 29557 and made some changes, but it won't let me do git trac push ..., saying the remote contains work that you do not have locally. Any objections if I do a forced push?

slel commented
comment:39

What commit are you working on top of?

What does git log --oneline -20 say (or -3 if it's enough)?

comment:40
6d5cc43d09 (HEAD -> t/29557/29557-recommended-packages) trac 29557: recommended packages for homebrew
d198e9c5b7 build/pkgs/_recommended/distros/debian.txt: Format change
fe9ba0b00c build/pkgs/_recommended/distros/homebrew.txt: New
ea5d610b21 src/doc/bootstrap: Generate debian-recommended.txt etc
2cd5ef99ee build/pkgs/_recommended: New
comment:41

go for the force push. It's possible that you had a branch under your name previously that can't be fast-forwarded

comment:43

Replying to @mkoeppe:

go for the force push. It's possible that you had a branch under your name previously that can't be fast-forwarded

Done


New commits:

6d5cc43trac 29557: recommended packages for homebrew

Changed commit from d198e9c to 6d5cc43

comment:45

We could update the installation manual, in src/doc/en/installation/source.rst, using the generated files, but probably it's best to leave this for another ticket.

Reviewer: ..., Matthias Koeppe

Changed reviewer from ..., Matthias Koeppe to John Palmieri, Matthias Koeppe

comment:47

This looks good to me, although I can't really vouch for the recommendations on debian. It's certainly a good start, and people can supplement on later tickets.

comment:51

On OS X, I see this:

configure:40015: notice: the following SPKGs did not find equivalent system packages: _recommended arb brial cbc cddlib cliquer cmake coxeter3 eclib ecm fflas_ffpack flint flintqs fplll gf2x gfan giac givaro gp2c iml lcalc libbraiding libsemigroups lrcalc m4ri m4rie ntl palp pari pari_elldata pari_galdata pari_galpol pari_nftables pari_seadata pari_seadata_small perl_cpan_polymake_prereq perl_term_readline_gnu planarity rw symmetrica sympow tachyon zn_poly
configure:40017: checking for the package system in use
configure:40020: result: homebrew
configure:40029: hint: installing the following system packages is recommended and may avoid building some of the above SPKGs from source:
configure:40031:   $ brew install pandoc ffmpeg imagemagick texinfo cmake

On a follow-up, we could improve this message. First, these recommended packages don't actually help to avoid building any of the listed SPKGs. Second, this message is printed regardless of whether ffmpeg et al. are installed. Third, I actually have pandoc installed, it is correctly detected by ./configure, but it recommends installing it anyway.

Changed commit from 6d5cc43 to none

comment:52

Note there's also a separate pandoc script package

comment:53

For improvements of this type, please see #29146, #29372

comment:54

Replying to @mkoeppe:

Note there's also a separate pandoc script package

Right, and that correctly detects my pandoc installation, so it would be nice if the ending message took that into account. The ending message automatically prints every recommended external package, even those which are installed and have corresponding script packages.

slel commented

Description changed:

--- 
+++ 
@@ -4,4 +4,10 @@
 
 (from #29124)
 
+Related:
 
+- #29146: Meta-ticket: Refactor and improve system package related scripts, tox.ini, build/bin/write_dockerfile.sh
+- #29372: At the end of configure, show installation hints for disabled optional packages separately
+- #30624: Improve configure's recommendation message
+
+
slel commented
comment:55

Replying to jhpalmieri (comment 51):

On a follow-up, we could improve this message. First, these recommended
packages don't actually help to avoid building any of the listed SPKGs.
Second, this message is printed regardless of whether ffmpeg et al.
are installed. Third, I actually have pandoc installed, it is correctly
detected by ./configure, but it recommends installing it anyway.

See:

  • #30624: Improve configure's recommendation message
comment:56

The package texlive-generic-extra doesn't exist for ubuntu 20.04, and on 18.04 it was already labeled as "transitional dummy package". I'm not sure what's the correct replacement, maybe simply "texlive"?

comment:57

Follow-up regarding the package list at #30930