- Status Closed
- Percent Complete
- Task Type Bug Report
- Category Packages
- Assigned To No-one
- Operating System pentium4
- Severity Low
- Priority Very Low
- Reported Version
- Due in Version Undecided
-
Due Date
Undecided
- Votes
- Private
Attached to Project: Arch Linux 32
Opened by James Feeney - 11.03.2021
Last edited by Erich Eckner - 28.03.2021
Opened by James Feeney - 11.03.2021
Last edited by Erich Eckner - 28.03.2021
FS#171 - [pacman] libarchive minimum version dependency - libarchive>=3.3.3
pacman has a dependency upon libarchive with a version recent enough to support zstd compression.
depends=(... 'libarchive>=3.3.3')
This is an issue when upgrading pacman to support the zstd packaging format.
pacman must depend upon libarchive>=3.3.3 for zstd compression support.
libarchive will then depend upon zstd>=1.3.6 for the symbol ZSTD_minCLevel.
Without these, upgrading an old Arch Linux system gives the incomplete - so unhelpful - error message:
error: could not open file /var/cache/pacman/pkg/something.pkg.tar.zst: Unrecognized archive format
How does pacman recognize an archive format? If the user does not already know the answer, they are in trouble. And, mistakenly circumventing the package compression to force an upgrade of pacman alone will lead to even more trouble, since pacman itself is not the source of the problem.
This sounds like a partial upgrade to me which is not supported by either Archlinux32 nor
Archlinux.
I agree with both of you:
- the dependencies should be corrected
- partial upgrades are not supported
However, we're not changing pacman's dependencies w.r.t. archlinux (except for adding our keyring) - so this really is an upstream issue, not an archlinux32 one.
Hmm - yes, a partial upgrade, and yes, probably an upstream issue. Is upstream sympathetic and actually going to change their PKGBUILD? Based upon past experience, I expect not.
My thinking is:
1) Which users are most likely to "dig out" an old piece of hardware, the sort running 32 bit, loaded with Arch Linux, and then run an upgrade? That would be people moving to ArchLinux32.
2) The issue with moving from xz compression to zstd compression - from an "old" version of Arch to the "new" Arch32 - is not properly documented on the web site.
3) How do you uncompress a zstd compressed package to install the zstd compressed package that will uncompress zstd packages? "Catch-22".
Modifying the PKGBUILD for pacman and libarchive provides immediate documentation to the person attempting to resolve the issues. You can always find a way to uncompress a zstd compressed package and then install it with pacman -U.
Alternatively, Arch32 could provide another or several "transition" packages, *not* zstd compressed, to install the transition keyring, zstd, libarchive, pacman, and acl - did I get them all? - to allow pacman to operate properly with the zstd compressed packages. That's probably the "correct" solution - that, and better documentation on the Arch32 home page.
Easy: you install an intermediate pacman (and while you're at it: do a whole `pacman -Syu` against the repositories of a certain date) which was xz compressed, but understands zstd. My best bet would be to use the latest pacman-$pkgver.pkg.tar.xz you find in the archive :D
As said in the other bug: There is pacman-static (compiled by Eli) which should accomplish precisely, what you ask for.
2020/01/01 seems to be a promising date.