Stories
Slash Boxes
Comments
NOTE: use Perl; is on undef hiatus. You can read content, but you can't post it. More info will be forthcoming forthcomingly.

All the Perl that's Practical to Extract and Report

use Perl Log In

Log In

[ Create a new account ]

rjbs (4671)

rjbs
  (email not shown publicly)
http://rjbs.manxome.org/
AOL IM: RicardoJBSignes (Add Buddy, Send Message)
Yahoo! ID: RicardoSignes (Add User, Send Message)

I'm a Perl coder living in Bethlehem, PA and working Philadelphia. I'm a philosopher and theologan by training, but I was shocked to learn upon my graduation that these skills don't have many associated careers. Now I write code.

Journal of rjbs (4671)

Tuesday May 01, 2007
09:00 AM

is freebsd on drugs?

[ #33170 ]

Gabor recenly posted some reports about what version of what CPAN dists were in what OS distributions.

I thought I'd have a look at one of the clusters of modules I maintain in the Email:: namespace. I headed to the E section and I saw something bizarre. Why does FreeBSD change so many version numbers? Email-FolderType is distributed as 0.8.12 instead of 0.812. Does that mean they only use X.Y.ZZZ? No, because Email-Folder 0.852 is distributed as 0.85.2. Does that mean they just require some form of three-part version? I don't think so, since Email-MIME 1.855 is distributed as 1.855.

Can someone tell me what the hell they're doing?

The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
 Full
 Abbreviated
 Hidden
More | Login | Reply
Loading... please wait.
  • I have no idea, but I knew it happens. Something to do with the ports system and version numbers. That's why dists like DBIx::Class and such started using 0.xxyyy as the verison number instead of 0.xx, because when things were stuffed into FBSD ports, it had crazy ideas of what things where newer than other things.
    • In fact, from the DBIC source:

      # Always remember to do all digits for the version even if they're 0
      # i.e. first release of 0.XX *must* be 0.XX000. This avoids fBSD ports
      # brain damage and presumably various other packaging systems too

      $VERSION = '0.07006';
      • That would be my fault. As the FreeBSD maintainer for DBIx::Class, I requested this, and I'm very happy it's now policy across both DBIC and Catalyst. It's not because we can't handle the situation, like tagg describes, but it's simply more (error-prone) work for us. So personally I prefer not to.
  • At least, not that I know of.

    The simple reason is the algorithm that the FreeBSD Ports system uses to compare version numbers ( pkg_version(1) [freebsd.org]). It can handle stuff like 0.01 < 0.02 and 0.99 < 1.01, but when an author, instead of incrementing the version number, just sticks another digit on the end, the version number comparison gets into trouble. Or more exactly, the trouble arises when that digit is removed. So 1.86 < 1.861, but 1.861 > 1.87! Not good.

    In order to alleviate this problem, the p
    • Thanks, that's nice and clear. I know FreeBSD isn't messing with the code for modules I maintain, unlike some OTHER distributions I could name. They probably have made me grumpier than I need to be.

      My code is always X.YYY, except for Bundle modules, which are always of a different fixed digit format. This should be true of most PEP things, especially once it's standardized.

      Feel free to keep doing what you're doing, of course. I'm just letting you know that I am not one of those lunatics who goes from 1.
      --
      rjbs