Closed mkoeppe closed 3 years ago
Description changed:
---
+++
@@ -1,3 +1,15 @@
(from #30559)
+```
+$ grep xz build/pkgs/*/dependencies
+build/pkgs/cmake/dependencies:curl zlib bzip2 xz
+build/pkgs/gcc/dependencies:| $(MP_LIBRARY) mpfr mpc zlib xz
+build/pkgs/gdb/dependencies:mpfr zlib ncurses $(PYTHON) xz
+build/pkgs/gfortran/dependencies:| $(MP_LIBRARY) mpfr mpc zlib xz
+build/pkgs/p_group_cohomology/dependencies:$(PYTHON)... | $(PYTHON_TOOLCHAIN) matplotlib gap xz $(SAGERUNTIME) ipywidgets
+build/pkgs/python3/dependencies:zlib readline sqlite libpng bzip2 xz libffi
+build/pkgs/r/dependencies:$(BLAS) gfortran iconv readline bzip2 xz pcre curl | pkgconf
+```
+In this list, `cmake`, `r`, `python3` all depend on `liblzma`.
+The others are merely build-time dependencies on the `xz` binary (for unpacking the tarball in `sage_bootstrap.uncompress.tar_file` - when `sage-bootstrap-python` is < 3.3 - see https://docs.python.org/3/library/tarfile.html) and have nothing to do with the shared library.
Python should be able handle uncompressing .tar.xz
files, so maybe we should modify the SageTarXZFile
class in sage_bootstrap.uncompress.tar_file
: only use it if Python can't already handle .xz
files.
We could test
hasattr(tarfile.TarFile, 'xzopen')
for example.
I guess this shouldn't be necessary: sage_bootstrap.uncompress.action.open_archive
should check to see if tarfile.is_tarfile(FILE)
is True
first, and it should be for xz
files with a supported version of Python. So I still don't know what happened in Volker's case: using an old Python?
Setting new milestone based on a cursory review of ticket status, priority, and last modification date.
If r
is coming from the system or --disable-r
(#31409) is used, then we can drop the SAGE_SPKG_DEPCHECK for xz
in python3/spkg-configure.m4
because then there is no package depending on liblzma
that will run in the same process as python3
.
(cmake
depends on liblzma
but it does not run in the same process.)
Dependencies: #31409
Author: Matthias Koeppe
New commits:
c504bb9 | build/pkgs: Split out spkg liblzma from xz |
f83aac5 | build/pkgs/{cmake,r}/dependencies: Depend on liblzma, not xz |
9e1e643 | build/pkgs/python3/dependencies: Add liblzma |
fe36a64 | build/pkgs/r/spkg-configure.m4: Change DEPCHECK from xz to liblzma |
212b03e | build/pkgs/python3/spkg-configure.m4: Change DEPCHECK from xz to liblzma |
546df52 | build/pkgs/xz/spkg-configure.m4: Set sage_require_xz=no if sage-bootstrap-python is new enough |
Description changed:
---
+++
@@ -13,3 +13,5 @@
In this list, `cmake`, `r`, `python3` all depend on `liblzma`.
The others are merely build-time dependencies on the `xz` binary (for unpacking the tarball in `sage_bootstrap.uncompress.tar_file` - when `sage-bootstrap-python` is < 3.3 - see https://docs.python.org/3/library/tarfile.html) and have nothing to do with the shared library.
+The new `liblzma` package is a script package without installation steps; it delegates the actual installation to the `xz` spkg. This follows the same approach as the `libnauty`/`nauty` packages.
+
Branch pushed to git repo; I updated commit sha1. This was a forced push. New commits:
2b4b142 | build/pkgs: Split out spkg liblzma from xz |
5137ae9 | build/pkgs/{cmake,r}/dependencies: Depend on liblzma, not xz |
462fd33 | build/pkgs/python3/dependencies: Add liblzma |
ba6fdcd | build/pkgs/r/spkg-configure.m4: Change DEPCHECK from xz to liblzma |
bba3a93 | build/pkgs/python3/spkg-configure.m4: Change DEPCHECK from xz to liblzma |
bf500be | build/pkgs/xz/spkg-configure.m4: Set sage_require_xz=no if sage-bootstrap-python is new enough |
Branch pushed to git repo; I updated commit sha1. New commits:
bc01006 | build/pkgs/xz: Update to 5.2.5, add upstream_url |
Branch pushed to git repo; I updated commit sha1. New commits:
009256e | build/pkgs/liblzma/dependencies: Update |
Should there be a symlink build/pkgs/liblzma/package-version.txt -> ../xz/package-version.txt
? Or is it okay to omit the version for lzma
?
Branch pushed to git repo; I updated commit sha1. New commits:
de28c72 | build/pkgs/liblzma: Add symlink for package-version.txt |
It's ok to omit it (it is using "none" in this case), but I agree that it's probably nicer with a version
Thank you, looks good.
Reviewer: John Palmieri
Thanks!
Merge conflict
Changed dependencies from #31409 to #31409, #30350
Changed branch from u/mkoeppe/build_pkgs__split_out_spkg_liblzma_from_xz to 1fb1fa9
(from #30559)
In this list,
cmake
,r
,python3
all depend onliblzma
. The others are merely build-time dependencies on thexz
binary (for unpacking the tarball insage_bootstrap.uncompress.tar_file
- whensage-bootstrap-python
is < 3.3 - see https://docs.python.org/3/library/tarfile.html) and have nothing to do with the shared library.The new
liblzma
package is a script package without installation steps; it delegates the actual installation to thexz
spkg. This follows the same approach as thelibnauty
/nauty
packages.Depends on #31409 Depends on #30350
CC: @dimpase @jhpalmieri
Component: packages: standard
Author: Matthias Koeppe
Branch/Commit:
1fb1fa9
Reviewer: John Palmieri
Issue created by migration from https://trac.sagemath.org/ticket/30948