Subject: apr0/apr naming scheme not getting along with pkg_chk (hard problem)
To: None <tech-pkg@netbsd.org>
From: Greg Troxel <gdt@ir.bbn.com>
List: tech-pkg
Date: 02/05/2007 20:09:54
I have a machine with a number of packages, including:

apr (0.9)
subversion-base
apache2

pkg_chk reports:

devel/apr - apr-0.9.12.2.0.59nb2 < apr-1.2.8.2.2.4nb1

and so 'pkg_rolling-replace -uv' does make replace package clean in
devel/apr, which happily installs apr-1.2.8.2.2.4nb1

Then, subversion-base and apache2 are both broken due to wrong
shlibs, but they are marked unsafe_depends=YES, and pkg_rr will
get to them and replace.

But, one can't install both apr0 and apr1, subversion-base by
default wants apr0, and apache2 wants only apr0, so builds of both of
those fail.

The fix is to delete apr and reinstall apr0, but then this happens
again.

Clearly something is wrong, and it's a bit hard to say what.
Candidates are (with not necessarily balanced arguments):

  apr naming:
 
    It seems apr0 is the "standard" version, and apr1 is the "living
    on the edge" version, despite ASF's claims that 2.2.x is now
    'standard' and 2.0 "legacy".  So therefore renaming apr to apr0
    was premature.

  default apr choice and apache naming:

    If apr 1.x is standard, then subversion should just use it by
    default.  And www/apache should get 2.2, with apache20 and apache1
    the old ones.

  pkg_chk:

    pkg_chk should realize somehow that a user running apr-0.9.x which
    is current with respect to the devel/apr0 package is not really
    out of date in the usual sense.  Clearly somehow one decided to do
    this, and branch jumps aren't really something pkg_chk should do
    for you.

  pkg_rolling-replace:

    This should figure out all of the above and do the right thing
    somehow.  An argument for why it's not pkg_rr's fault is that
    using pkg_chk to do updates has more or less the same issue.  

On balance, I think:

1) pkg_chk should somehow not demand that apr0 be updated.

2) The naming of apr0/apr(silent 1) should be consistent with
   www/apache being 2.2, and 1 and 2.0 available as apache1 and
   apache20, and subversion-base should use the unsuffixed apr.

3) The Apache people should have made a way to have apr be able to
   install multiple versions at the same time.

4) It would be really cool if pkg_chk knew how to find (e.g. after 2
   is done) www/apache20 from an installed apache-2.0.59 built from
   www/apache2 from before 2 and do the right thing with asking for
   updates and pointing to www/apache20 as the place to 'make
   replace'.

This is hard, so I don't mean to sound too cranky.  But I'm getting
used to pkg_rolling-replace just working, and thus coming to view
times when it doesn't as pointing to a bug somewhere.