Opened 3 years ago
Last modified 4 months ago
#27330 new task
Meta-ticket: spkg-configure: Try to use as many system packages as possible — at Version 101
Reported by: | embray | Owned by: | |
---|---|---|---|
Priority: | major | Milestone: | sage-9.7 |
Component: | build: configure | Keywords: | spkg-configure, sd111 |
Cc: | tmonteil, mjo, gh-timokau, fbissey, isuruf, mmezzarobba, thansen, gh-tobiasdiez | Merged in: | |
Authors: | Reviewers: | ||
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | Stopgaps: |
Description (last modified by )
#24919 implemented a mechanism for checking for checking for sagelib's direct and indirect dependencies at the time of running the main ./configure
script. This was already done in an ad-hoc manner for a handful of packages (e.g. gcc, git, yasm, curl), but we wanted to be able to do the same for other packages, especially those that are common on Linux-like systems.
This has now been implemented for many other packages, or is in the process of being implemented. Those packages are listed below. However, there are many others yet to be done, and this ticket will attempt to list them in some rough order of priority. Unfortunately there is still not good documentation for how to implement these configure-time dependency checks. The documentation question is tracked at #26668.
Already Done
The following packages already have spkg-configure.m4
checks that are working on most or all supported platforms:
- arb (#27270)
- boost_cropped/boost (#29100) -- many systems have boost headers available
- brial (#29369)
- bzip2 (#27182)
- cbc (#28908)
- cddlib (#28905)
- cliquer (#28885)
- cmake (#27487)
- curl (#24919)
- eclib (#28333)
- ecm (#27271)
- flint (#27264) - merged by #27270
- fplll (#29245)
- freetype (#27168)
- gcc (#24919)
- gf2x (#27238)
- gfan (#28985)
- gfortran (#24919)
- git (#24919)
- givaro (#28342)
- glpk (#28459)
- gmp (#27212)
- gp2c (#28242)
- gsl (#28879)
- isl (#27864)
- iconv (#27823)
- lcalc (#28224)
- libatomic (#28045)
- libffi (#25900, #27114)
- libgd (#27825)
- libpng (#27186)
- lrcalc (#28231)
- m4ri(e) (#28342)
- mpc (#27259) - merged by #27822
- mpfi (#28295)
- mpfr (#27258) - merged by #27822
- mpir (#27212)
- nauty (#28958)
- ncurses (#27277)
- ninja-build (#27801)
- ntl (#27265) - merged by #27822
- openblas (#27870)
- pari (#28242)
- pari's packages, apart from pari_jupyter (#28242)
- patch (#24919)
- pcre (#27284)
- perl_term_readline_gnu (#27795)
- pkgconf (#27827)
- planarity (#29063)
- python3 (#27824) this one is of course a very special case; see the ticket for details.
- r (#28884) (alternative view: getting R from the system has been desirable for a long time and will require more than just an
spkg-configure.m4
; see #25503) - readline (#27277)
- rw (#27814)
- sqlite (#29002)
- symmetrica (#28208)
- tachyon (#28919)
- xz (#26286)
- yasm (#24919)
- zeromq (#26286)
- zlib (#26286)
In Progress
The following packages have in-progress tickets to provide configure-time detection on the system:
Have Tickets
The following packages have tickets for their conversions, but don't have working prototypes (i.e. branches) yet:
- BLAS (atlas and other non-openblas): resolving how to handle finding a usable BLAS should be one of the highest priorities; it faces many of the same issues we faced with MPIR/GMP in #27212, but perhaps with even more complexity). One can already use system's openblas, though (#27870)
- gc (#28991)
- iml (#27272)
- lrslib (#27804)
No Tickets yet
- bliss (optional package)
- singular
- gap (using the system GAP is obviously desirable, but non-trivial, esp. now that we need a working libgap)
- zn_poly
- ecl (depends on gc)
- maxima (depends on ecl)
- linbox
- libhomfly (depends on gc)
- openssl (optional package)
All system Python packages, including the following, would be handled by #29023.
- numpy
- scipy
- cypari (depends on pari)
Testing infrastructure
- #29053: Add debian/fedora package information to build/pkgs, generate Dockerfiles and installation help
- #29060: Meta-ticket: Add Dockerfiles and CI scripts for integration testing of source and binary distributions and of downstream packages
Bug-fixing
A number of bugs/deficiencies has been uncovered in spkg-configure.m4 files and related configuration, and a number of tickets opened/closed
Change History (101)
comment:1 Changed 3 years ago by
comment:3 Changed 3 years ago by
- Cc tmonteil added
comment:4 Changed 3 years ago by
- Cc mjo added
comment:5 Changed 3 years ago by
- Cc gh-timokau added
comment:6 Changed 3 years ago by
- Description modified (diff)
comment:7 Changed 3 years ago by
- Description modified (diff)
comment:8 Changed 3 years ago by
- Description modified (diff)
There is also #27373, which concerns packages that change build/run environment, e.g. mpir/gmp/mpfr, that should be resolved in some way.
comment:9 Changed 3 years ago by
- Description modified (diff)
comment:10 Changed 3 years ago by
- Description modified (diff)
comment:11 Changed 3 years ago by
- Description modified (diff)
comment:12 Changed 3 years ago by
- Description modified (diff)
comment:13 Changed 3 years ago by
- Milestone changed from sage-8.7 to sage-pending
Removing most of the rest of my open tickets out of the 8.7 milestone, which should be closed.
comment:14 Changed 3 years ago by
- Description modified (diff)
comment:15 Changed 3 years ago by
- Description modified (diff)
comment:16 Changed 3 years ago by
- Description modified (diff)
comment:17 Changed 3 years ago by
- Description modified (diff)
comment:18 Changed 3 years ago by
- Description modified (diff)
comment:19 Changed 3 years ago by
- Cc fbissey added
- Description modified (diff)
comment:20 Changed 3 years ago by
- Description modified (diff)
comment:21 Changed 3 years ago by
- Description modified (diff)
comment:22 Changed 3 years ago by
- Description modified (diff)
comment:23 Changed 3 years ago by
- Description modified (diff)
comment:24 Changed 3 years ago by
- Description modified (diff)
comment:25 Changed 3 years ago by
- Description modified (diff)
comment:26 Changed 3 years ago by
- Description modified (diff)
comment:27 Changed 3 years ago by
- Description modified (diff)
comment:28 Changed 3 years ago by
- Description modified (diff)
comment:29 Changed 3 years ago by
- Description modified (diff)
comment:30 Changed 3 years ago by
- Description modified (diff)
comment:31 Changed 3 years ago by
- Description modified (diff)
comment:32 Changed 3 years ago by
- Description modified (diff)
comment:33 Changed 3 years ago by
- Description modified (diff)
comment:34 Changed 3 years ago by
- Description modified (diff)
comment:35 Changed 3 years ago by
- Description modified (diff)
comment:36 Changed 3 years ago by
- Description modified (diff)
comment:37 Changed 3 years ago by
- Description modified (diff)
comment:38 Changed 3 years ago by
- Description modified (diff)
comment:39 Changed 3 years ago by
- Description modified (diff)
comment:40 Changed 3 years ago by
- Description modified (diff)
comment:41 Changed 3 years ago by
- Cc isuruf added
comment:42 Changed 3 years ago by
- Description modified (diff)
comment:43 Changed 3 years ago by
- Description modified (diff)
comment:44 Changed 3 years ago by
- Description modified (diff)
comment:45 Changed 3 years ago by
- Description modified (diff)
comment:46 Changed 3 years ago by
- Description modified (diff)
comment:47 Changed 3 years ago by
- Description modified (diff)
comment:48 Changed 3 years ago by
- Description modified (diff)
comment:49 Changed 3 years ago by
- Description modified (diff)
comment:50 Changed 3 years ago by
- Description modified (diff)
comment:51 Changed 3 years ago by
- Description modified (diff)
comment:52 Changed 3 years ago by
- Description modified (diff)
comment:53 Changed 3 years ago by
- Description modified (diff)
comment:54 Changed 3 years ago by
- Description modified (diff)
comment:55 Changed 3 years ago by
- Cc mmezzarobba added
- Description modified (diff)
comment:56 Changed 3 years ago by
- Description modified (diff)
comment:57 Changed 3 years ago by
- Description modified (diff)
comment:58 Changed 3 years ago by
- Description modified (diff)
comment:59 Changed 3 years ago by
- Description modified (diff)
comment:60 Changed 3 years ago by
- Description modified (diff)
comment:61 Changed 3 years ago by
- Description modified (diff)
comment:62 Changed 3 years ago by
- Description modified (diff)
comment:63 Changed 3 years ago by
- Description modified (diff)
comment:64 Changed 3 years ago by
- Description modified (diff)
comment:65 Changed 3 years ago by
- Description modified (diff)
comment:66 Changed 3 years ago by
- Description modified (diff)
comment:67 Changed 3 years ago by
- Description modified (diff)
comment:68 Changed 3 years ago by
- Description modified (diff)
comment:69 Changed 3 years ago by
- Description modified (diff)
comment:70 Changed 3 years ago by
Nice to see so much progress on this. I'm sorry I haven't had more time to help, but I'm glad to see that the infrastructure I put in place has continued to be useful as support for more packages is added.
comment:71 Changed 3 years ago by
- Description modified (diff)
comment:72 Changed 3 years ago by
- Description modified (diff)
comment:73 Changed 3 years ago by
- Description modified (diff)
comment:74 Changed 3 years ago by
- Description modified (diff)
comment:75 Changed 3 years ago by
- Description modified (diff)
comment:76 Changed 3 years ago by
- Description modified (diff)
comment:77 Changed 3 years ago by
- Description modified (diff)
comment:78 follow-up: ↓ 79 Changed 3 years ago by
Should we find a better way to keep track of the distribution packages that provide what spkg-configure
is looking for?
Something autogenerated from new per-package information build/pkgs/*
that can keep the section in the installation manual current (src/doc/en/installation/source.rst
) - last updated by Dima?
Related: https://trac.sagemath.org/ticket/28745 (environment.yml
for conda).
comment:79 in reply to: ↑ 78 Changed 3 years ago by
Replying to mkoeppe:
Should we find a better way to keep track of the distribution packages that provide what
spkg-configure
is looking for?Something autogenerated from new per-package information
build/pkgs/*
that can keep the section in the installation manual current (src/doc/en/installation/source.rst
) - last updated by Dima?
A good idea, I only don't know how exactly to implement this. E.g. on Debian one could create a package with all dependencies (in fact, basically almost the same as their Sage package)
Related: https://trac.sagemath.org/ticket/28745 (
environment.yml
for conda).
comment:80 Changed 3 years ago by
I would just have thought to generate a shell script with one line of apt-get install
.
comment:81 Changed 3 years ago by
- Description modified (diff)
comment:82 Changed 3 years ago by
- Description modified (diff)
comment:83 Changed 3 years ago by
- Description modified (diff)
- Summary changed from Try to use as many system packages as possible to spkg-configure: Try to use as many system packages as possible
comment:84 Changed 3 years ago by
- Summary changed from spkg-configure: Try to use as many system packages as possible to Meta-ticket: spkg-configure: Try to use as many system packages as possible
comment:85 Changed 3 years ago by
- Description modified (diff)
comment:86 Changed 3 years ago by
- Description modified (diff)
comment:87 Changed 3 years ago by
- Description modified (diff)
comment:88 Changed 3 years ago by
- Description modified (diff)
comment:89 Changed 2 years ago by
- Description modified (diff)
comment:90 Changed 2 years ago by
- Description modified (diff)
comment:91 Changed 2 years ago by
- Description modified (diff)
comment:92 Changed 2 years ago by
- Description modified (diff)
comment:93 Changed 2 years ago by
- Cc thansen added
comment:94 Changed 2 years ago by
- Description modified (diff)
comment:95 Changed 2 years ago by
- Cc thansen removed
- Description modified (diff)
rw is listed (#27814), but since it depends on igraph, it would be fine to add igraph too.
comment:96 Changed 2 years ago by
- Cc thansen added
comment:97 Changed 2 years ago by
- Description modified (diff)
comment:98 Changed 2 years ago by
- Description modified (diff)
comment:99 Changed 2 years ago by
- Description modified (diff)
comment:100 Changed 2 years ago by
- Description modified (diff)
comment:101 Changed 2 years ago by
- Description modified (diff)
Note: The list of packages in the description is not yet exhaustive; please add others that are missing as you see fit and/or reprioritize. This is just a rough sketch.