• Status Closed
  • Percent Complete
    100%
  • 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

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.

Closed by  Erich Eckner
28.03.2021 08:42
Reason for closing:  Won't implement
Admin
Andreas Baumann commented on 12.03.2021 06:05

This sounds like a partial upgrade to me which is not supported by either Archlinux32 nor
Archlinux.

Admin
Erich Eckner commented on 12.03.2021 06:23

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.

James Feeney commented on 12.03.2021 15:07

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.

Admin
Erich Eckner commented on 12.03.2021 18:10
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 suspicion, too. But you should really ask them :)
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.
Yes, this can be improved. I'm open for suggestions.
> 3) How do you uncompress a zstd compressed package to install the zstd compressed package that will uncompress zstd packages? "Catch-22".

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

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.

As said in the other bug: There is pacman-static (compiled by Eli) which should accomplish precisely, what you ask for.

Admin
Erich Eckner commented on 12.03.2021 18:34
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

2020/01/01 seems to be a promising date.

Loading...

Available keyboard shortcuts

Tasklist

Task Details

Task Editing