Pacman

Historical bug tracker for the Pacman package manager.

The pacman bug tracker has moved to gitlab:
https://gitlab.archlinux.org/pacman/pacman/-/issues

This tracker remains open for interaction with historical bugs during the transition period. Any new bugs reports will be closed without further action.
Tasklist

FS#27204 - Old architecture-specific package installed when arch=(any)

Attached to Project: Pacman
Opened by Marty (vadmium) - Monday, 21 November 2011, 13:03 GMT
Last edited by Allan McRae (Allan) - Monday, 30 April 2012, 03:00 GMT
Task Type Bug Report
Category makepkg
Status Closed
Assigned To Allan McRae (Allan)
Architecture All
Severity Low
Priority Normal
Reported Version 4.0.0
Due in Version 4.1.0
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Actually using Pacman 4.0.1 (not 4.0.0 per “reported version”)

Summary and Info:

If I change a PKGBUILD file from architecture-specific, say arch=(i686 x86_64), to arch=(any), and the architecture-specific package already exists, it will be installed instead of the new version.

This is very confusing when you change something else as well as the architecture and cannot figure out why the old version is still installed.

Steps to Reproduce:

* Make an arch=(any) PKGBUILD
* Create dummy arch-specific package, eg:
: > <package>-<version>-x86_64.pkg.tar.xz
* makepkg --install

Attached the start of a patch. It should work for ordinary packages but probably breaks split packages because I haven’t learnt them.
This task depends upon

Closed by  Allan McRae (Allan)
Monday, 30 April 2012, 03:00 GMT
Reason for closing:  Fixed
Additional comments about closing:  In git:
https://projects.archlinux.org/pacman.gi t/commit/?id=d38a1c02
Comment by Dan McGee (toofishes) - Monday, 21 November 2011, 13:39 GMT
Can you explain why you didn't bump the pkgrel? This bug report seems invalid in that regard. You never rebuild a package changing options, and especially build configuration, without bumping the version.
Comment by Marty (vadmium) - Monday, 21 November 2011, 15:11 GMT
The most recent case of this issue is an old PKGBUILD from the AUR. I updated the upstream package version (and left pkgrel=1), and after updating the build script it would build and install fine. However I found I needed to patch the package, and in the meantime I though that it would be fine to change it to “arch=(any)”. I did not bump the version number despite the rebuild because I am no longer interested in my previous unpatched test build and I haven’t published it or shared it with anyone.

If you’re not happy with changing the behaviour of always checking for an arch-specific package, I suggest at least printing out the full file name of the package actually being installed, something like

Installing package <name>-<version>-x86_64.pkg.tar.xz with pacman -U...

instead of just

Installing package <name> with pacman -U...

Although that could get a bit excessive listing them all with a split package.
Comment by Allan McRae (Allan) - Monday, 21 November 2011, 21:12 GMT
There are some general architecture related things that need fixed in makepkg - e.g. the log file always have the architecture even with an "any" package.

I had started a fix similar to the one posted here so I will merge the patches and finish it off..
Comment by Dan McGee (toofishes) - Thursday, 05 January 2012, 22:39 GMT
Status on this, Allan?
Comment by Allan McRae (Allan) - Thursday, 05 January 2012, 22:43 GMT
I'd say this is a 4.1 target as there is quite a bit broken with "arch=any" and to fix properly requires a decent size change.

Loading...