FS#5388 - pacman -Su and -S different version check

Attached to Project: Pacman
Opened by Roberto Braga (Bobonov) - Monday, 11 September 2006, 10:15 GMT
Last edited by Aaron Griffin (phrakture) - Sunday, 04 February 2007, 20:31 GMT
Task Type Bug Report
Status Closed
Assigned To Aaron Griffin (phrakture)
Architecture not specified
Severity Low
Priority Normal
Reported Version 0.7.2 Gimmick
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No


It seem that -Su and -S package version check are different and the -S is wrong.

I have done a pacman -Syu to list all the needed upgrade.
(I'll cut of the unecessary package form the output to have it more clear)

pacman -Su

Targets: libmysqlclient-5.0.24a-1 mysql-5.0.24a-1 mysql-clients-5.0.24a-1

Then I started to upgrage the package using -S optin and specifing the package:

Pacman -S libmysqlclient mysql mysql-clients

:: libmysqlclient-5.0.24-1: local version is newer. Upgrade anyway? [Y/n] y
:: mysql-5.0.24-2: local version is newer. Upgrade anyway? [Y/n] y
:: mysql-clients-5.0.24-1: local version is newer. Upgrade anyway? [Y/n] y

Targets: libmysqlclient-5.0.24a-1 mysql-5.0.24a-1 mysql-clients-5.0.24a-1

It seem that the -Su option use a differen version check than -S option.
This task depends upon

This task blocks these from closing
 FS#6316 - Pacman 3 release bugcatcher 
Closed by  Dan McGee (toofishes)
Tuesday, 06 February 2007, 21:34 GMT
Reason for closing:  Fixed
Additional comments about closing:  Added some code to honor 'force' flag in plain -S operation.
Comment by Thomas Bächler (brain0) - Thursday, 21 September 2006, 11:04 GMT
-Su respects the force=y option in PKGBUILDs to upgrade even if the version seems older. -S doesn't seem to respect the force=y flag.
Comment by Roberto Braga (Bobonov) - Thursday, 21 September 2006, 13:07 GMT
So this mean that the version checking is wrong since 5.0.24a is never than 5.0.24 unless pacman understand the "a" as alpha....
I noticed this also with other package, maybe the version checking should be corrected.
Comment by Aaron Griffin (phrakture) - Monday, 13 November 2006, 22:42 GMT
The version checking is _impossible_ to correct when talking about alphanumeric versions. Which of these is greater:
1.0abcd or 1.0abc
1.0a or 1.0A
1.1 or 1.1c

It's utterly impossible to tell.

The best we can do is honor 'force' in -S calls. I will fix this in pacman3.
Comment by Aaron Griffin (phrakture) - Sunday, 04 February 2007, 20:31 GMT
Looks like this is fixed in pacman3 already. Can someone verify that -S foo respects a FORCE setting for package foo?
Comment by Dan McGee (toofishes) - Tuesday, 06 February 2007, 21:34 GMT
FORCE is now honored by pacman3 with changes made today by Aaron. Tested and marking implemented.