On Sun, Feb 6, 2011 at 5:16 PM, Xyne <xyne@archlinux.ca> wrote:
I have CC'd this to aur-general as this concerns all CPAN packagers on Arch.
CPAN package versions are a mess on Arch Linux. It seems that many if not most CPAN packagers on Arch are unaware of how CPAN deals with versions and thus they do not correctly translate the CPAN version. Most of the time a naive translation is used instead, and this prevents Pacman from working correctly.
To give an example, CPAN considers "1.15" to be a later version than "1.23.0", whereas Pacman will consider the latter version the newer version. This is because "1.15" is short for "1.150" on CPAN, whereas "1.23.0" is short for "1.023.0". This can be confirmed using the "version" module[1].
I have written a simple Perl script[2] that addresses this issue.* It accepts CPAN versions as command-line arguments and prints out standardized Pacman package versions. The package versions enable Pacman to correctly compare CPAN packages, e.g. when resolving minimal dependencies.
I propose that the script be packaged and made an official tool for Perl package developers.** It should also be included on the Perl Package Guidelines wiki page[3].
I hope that this will be seriously considered as it addresses a real issue. Tools that generate CPAN packages for Pacman (e.g. Bauerbill) cannot work properly when there is no consistency in how Arch packages are versioned.
Please note as well that this is completely separate from my previous (and continued) contention regarding the "provides" array of CPAN packages.
I hate to ask but if it's to be official, do you have any unit tests? --Kaiting. -- Kiwis and Limes: http://kaitocracy.blogspot.com/