Opened 3 years ago
Last modified 2 months ago
#24024 needs_work task
Meta-ticket: Update other packages to using the sage-dist-helpers functions + DESTDIR where applicable
Reported by: | embray | Owned by: | embray |
---|---|---|---|
Priority: | major | Milestone: | sage-9.2 |
Component: | build | Keywords: | |
Cc: | Merged in: | ||
Authors: | Reviewers: | ||
Report Upstream: | N/A | Work issues: | |
Branch: | Commit: | ||
Dependencies: | Stopgaps: |
Description (last modified by )
This is a meta-ticket for tickets that address updating other packages to use the helper functions in sage-dist-helpers
where possible. There are
a few advantages to doing this:
- In general it simplifies these scripts and reduces a lot of boilerplate. As more functions get written even more boilerplate can be removed, but even the existing functions help a lot.
- Although this requires irritating bulk updates to packages now, it reduces the overall need for such bulk updates in the future, since many packages that have similar build and installation steps can be be updated at once by updates to the applicable helper functions.
The second bullet point is especially motivated right now by #22509. Since it requires updates to nearly every package in Sage anyways, it makes more sense to update most packages to use the helper functions, and then add DESTDIR
support through the helper functions. In particular, the vast majority of Python and autotools packages can be given DESTDIR
support en masse by this approach.
- #24014 and #24018 -- Update Python packages that are installed with
pip
to usesdh_pip_install
- #24025 -- Update "trivial" autotools packages to use
sdh_configure
,sdh_make
, andsdh_install
. By "trivial" I mean packages with very simple build scripts that can be mechanically updated with simple replacements. - #25038 Update some standard packages that were excluded from #24025 due to conflicts with other existing tickets
- curl
- gc
- Miscellaneous packages that have already been converted (e.g. as part of a version update):
- #27039 Update some optional packages that use autotools in a standard way but were just excluded from #24025 due to not being standard packages
- 4ti2
- bliss
- cbc
- csdp
- deformation
- fricas
- gp2c
- igraph
- latte_int
- libogg
- lidia
- lrslib
- mpfrcx
- sirocco
- tdlib
- #????? Same as previous, but for experimental packages:
- libtheora - doesn't even build successfully for me ATM
- surf - doesn't even build successfully for me ATM
- valgrind
- Update "trickier" autotools packages that take a little extra care for some reason:
- #25043 - python2/python3
- #????? - compilerwrapper (experimental)
- #????? - gambit (optional)
- #22626 - gap
- #26856 - gap_packages (optional)
- #27016 - gcc (optional)
- #????? - git (optional)
#25001 #27016 - gfortran (optional)- #????? - gmp (optional)
- #25045 - mpfr
- #25086 - nauty
- #25087 - ppl
- #25049 - r
- #????? - termcap (has a
configure
from a very old autoconf) - #????? - topcom (its existing spkg-install uses
install-strip
instead ofinstall
and one can see why: the debugging info for this library is quite large for some reason; need an alternative tosdh_make_install
that allows alternate install targets)
- Handle miscellaneous non-autotools packages. There are some like this that may still be applicable (e.g. they don't use
configure
but they still usemake
in such a way that can be replaced withsdh_make
). It might also be possible to narrow down one or two other classes of packages that can be simplified with new helper functions.- #25035 - arb - has a hand-written
configure
script - #????? - cmake (optional)
- #29150 - coxeter3 (optional)
- #25035 - flint- has a hand-written
configure
script - #25042 - freetype - has a hand-written
configure
script - #????? - gap3 (experimental) - do we care?
- #25100 - gfan
- #25100 - lcalc
- #????? - lie (experimental)
- #29148 - mcqd (optional)
- #????? - modular_decomposition (experimental)
- #27511 - normaliz (optional)
- #25037 - ntl - has a hand-written
configure
script - #25052 - openblas
- #????? - openssl
- #25144 - palp
- #25143 - pari
- #????? - perl_term_readline_gnu (experimental)
- #27398 - plantri (optional)
- #????? - polymake (experimental)
- #????? - qepcad (experimental)
- #25100 - ratpoints
- #25100 - rubiks
- #????? - saclib (optional)
- #????? - scipoptsuite (experimental)
- #????? - sip (optional)
- #25100 - symmetrica
- #25099 - sympow
- #25048 - tachyon
- #25142 - zlib - has a hand-written
configure
script - #25085 - zn_poly -
configure
is just a wrapper for a custom Python script calledmakemakefile.py
- #25035 - arb - has a hand-written
- Some Python packages for which a simple
pip install
does not suffice: - Handle packages that don't have any kind of "build system" and just involve copying files. It might still be nice to have a helper function for this, for example, that ensures that all the destination directories are created under
$SAGE_DESTDIR_LOCAL
. - Miscellaneous packages with Python-based installers:
- #????? - atlas (optional)
- #????? - conway_polynomials
- #????? - elliptic_curves
Change History (54)
comment:1 Changed 3 years ago by
- Owner changed from (none) to embray
comment:2 Changed 3 years ago by
- Description modified (diff)
comment:3 Changed 3 years ago by
- Description modified (diff)
comment:4 Changed 3 years ago by
comment:5 Changed 3 years ago by
- Milestone changed from sage-8.1 to sage-8.2
comment:6 Changed 2 years ago by
- Description modified (diff)
Added classifications to several of the packages that still need to be converted over to sdh-helpers/SAGE_DESTDIR support. Still not an exhaustive list.
comment:7 Changed 2 years ago by
- Description modified (diff)
comment:8 follow-up: ↓ 9 Changed 2 years ago by
cysignals should be easy... it is only unusual because it uses autoconf in a Python package but sdh_configure
should just work anyway.
comment:9 in reply to: ↑ 8 Changed 2 years ago by
Replying to jdemeyer:
cysignals should be easy... it is only unusual because it uses autoconf in a Python package but
sdh_configure
should just work anyway.
Indeed. Most of them are easy and are already done in my old branch for this. The only reason many of these packages were separated out from #24025 is that they required one or two more other changes.
comment:10 Changed 2 years ago by
- Summary changed from Update other packages to using the sage-dist-helpers functions where applicable to Update other packages to support DESTDIR where applicable
At this point, now that DESTDIR support is available, there's no reason not to handle adding DESTDIR support, at least at a basic level, at the same time as implementing use of sage-dist-helpers.
comment:11 Changed 2 years ago by
- Description modified (diff)
- Summary changed from Update other packages to support DESTDIR where applicable to Update other packages to using the sage-dist-helpers functions where applicable
comment:12 Changed 2 years ago by
- Description modified (diff)
comment:13 Changed 2 years ago by
- Summary changed from Update other packages to using the sage-dist-helpers functions where applicable to Update other packages to using the sage-dist-helpers functions + DESTDIR where applicable
comment:14 Changed 2 years ago by
- Description modified (diff)
comment:15 Changed 2 years ago by
- Description modified (diff)
comment:16 Changed 2 years ago by
- Description modified (diff)
comment:17 Changed 2 years ago by
- Description modified (diff)
comment:18 Changed 2 years ago by
- Description modified (diff)
comment:19 Changed 2 years ago by
- Description modified (diff)
comment:20 Changed 2 years ago by
- Description modified (diff)
comment:21 Changed 2 years ago by
- Description modified (diff)
comment:22 Changed 2 years ago by
- Description modified (diff)
comment:24 Changed 2 years ago by
- Description modified (diff)
comment:25 Changed 2 years ago by
- Description modified (diff)
comment:26 Changed 2 years ago by
- Description modified (diff)
comment:27 Changed 2 years ago by
- Description modified (diff)
comment:28 Changed 2 years ago by
- Description modified (diff)
comment:29 Changed 2 years ago by
- Description modified (diff)
comment:30 Changed 2 years ago by
- Description modified (diff)
comment:31 Changed 2 years ago by
- Description modified (diff)
comment:32 Changed 2 years ago by
- Description modified (diff)
comment:33 Changed 2 years ago by
- Description modified (diff)
comment:34 Changed 2 years ago by
- Description modified (diff)
comment:35 Changed 2 years ago by
- Milestone changed from sage-8.2 to sage-8.3
comment:36 Changed 2 years ago by
- Milestone changed from sage-8.3 to sage-8.4
comment:37 Changed 21 months ago by
- Milestone changed from sage-8.4 to sage-8.5
comment:38 Changed 19 months ago by
- Description modified (diff)
Working on DESTDIR install for gap_packages as part of #26856.
comment:39 Changed 19 months ago by
- Milestone changed from sage-8.5 to sage-8.7
Retargeting some of my tickets.
comment:40 Changed 19 months ago by
- Description modified (diff)
comment:41 Changed 18 months ago by
- Description modified (diff)
comment:44 Changed 18 months ago by
- Description modified (diff)
comment:45 Changed 18 months ago by
- Description modified (diff)
comment:46 Changed 18 months ago by
- Status changed from new to needs_review
comment:47 Changed 18 months ago by
- Status changed from needs_review to needs_work
This should really be in needs work status.
comment:48 Changed 17 months ago by
- Description modified (diff)
comment:49 Changed 16 months ago by
- Description modified (diff)
- Milestone changed from sage-8.7 to sage-8.8
comment:50 Changed 13 months ago by
- Milestone changed from sage-8.8 to sage-8.9
Tickets still needing working or clarification should be moved to the next release milestone at the soonest (please feel free to revert if you think the ticket is close to being resolved).
comment:51 Changed 7 months ago by
- Milestone changed from sage-8.9 to sage-9.1
Ticket retargeted after milestone closed
comment:52 Changed 5 months ago by
- Description modified (diff)
comment:53 Changed 5 months ago by
- Summary changed from Update other packages to using the sage-dist-helpers functions + DESTDIR where applicable to Meta-ticket: Update other packages to using the sage-dist-helpers functions + DESTDIR where applicable
comment:54 Changed 2 months ago by
- Milestone changed from sage-9.1 to sage-9.2
Note that for #22509 there will have be a second round of updates to DESTDIR support for some packages that manually copy files to locations in
$SAGE_LOCAL
. However, making these updates first still significantly reduces that number of packages that will require additional treatment.