[arch-general] Pacman behaviour comparing numerical versions for package upgrades

Myra Nelson myra.nelson at hughes.net
Fri Jun 29 01:50:58 EDT 2012


I have a question about pacman's behaviour regarding packges to be updated.

According to < $: man pacman >

You can also use pacman -Su to upgrade all packages that are out of
date. See Sync Options below. When upgrading, pacman performs version
comparison to determine which packages need upgrading.

    Alphanumeric: 1.0a < 1.0b < 1.0beta < 1.0p < 1.0pre < 1.0rc < 1.0
< 1.0.a < 1.0.1
    Numeric: 1 < 1.0 < 1.1 < 1.1.1 < 1.2 < 2.0 < 3.0.0

That's very clear and makes sense. Here's where I'm confused. I build
some of my perl pacakges with cpanpkgbuild -f XXX::XXX::YYY. The
package from the official repos is:
    perl-datetime-format-strptime-1.5000-1-any.pkg.tar.xz

the package I built is:
    perl-datetime-format-strptime-1.51-1-any.pkg.tar.xz

I'm used to the warning package ??? local is newer than extra ???. But
with the above referenced package I had to list it in the [ IgnorePkg
] line to keep pacman from trying to upgrade the package and still get
this warning.

    "Ignoring upgrade from perl-datetime-format-strptime from 1.51-1
to 1.5000-1"

No complaints as it's easy to fix, I was just wondering about the
reasoning. I'll jump out on a limb here and assume it's because the
repo package has 4 digits then the package version after the decimal
point and my package has two digits then the package version after the
decimal point. The developer changed his numbering scheme after 1.5000
to 1.51.

Is this the correct behaviour for pacman?



-- 
Life's fun when your sick and psychotic!


More information about the arch-general mailing list