Subject: Re: Fwd: pkg/26633: package ABI is often broken on NetBSD due to
To: Ben Collver <ben@NetBSD.org>
From: Todd Vierling <firstname.lastname@example.org>
Date: 08/13/2004 11:26:09
On Fri, 13 Aug 2004, Ben Collver wrote:
> I am looking for a volunteer to take responsibility for this PR about
> devel/libtool from Noriyuki Soda. Nick Hudson agrees that the numbering
> is wrong and needs a flag day.
> Any takers?
For some context: NetBSD's config for libtool was taken from SunOS's way
back in NetBSD 1.3 (because SunOS was also a.out); we didn't know at the
time that the config for SunOS was wrong. soda emlightened me yesterday
HOWEVER, NetBSD is not the only affected platform. Note that libtool does
the same for:
- NetBSD a.out (which may need .major.minor, rather than .major.minor.teeny)
- FreeBSD ELF
- FreeBSD a.out (same note as NetBSD a.out, but may not be supported by
pkgsrc anyway at the moment)
- Darwin (*after* the change in pkgsrc's patch-ac for libtool; without the
patch, it does the "correct" thing)
- Solaris ("SunOS 5")
- OSF/1 (pkgsrc is not supported on this at the moment)
I can fix libtool for NetBSD plus the supported platforms above, but this
will require the following (not all of which I necessarily have the time to
do right now). "Flag days" are very bad, so this should be done in a way
that keeps pkgsrc atomically correct.
A single commit to pkgsrc should do all of the following:
1. Change libtool, bump its PKGREVISION.
2. Bump _OPSYS_LIBTOOL_REQD to the new version in NetBSD.mk.
3. Bump the PKGREVISION of all USE_LIBTOOL packages, and all their direct
dependencies (but not indirect dependencies); this will unfortunately
impact all platforms, but it's unavoidable.
4. Bump the BUILDLINK_RECOMMENDED.foo of any packages bumped in (3) above,
so that default builds will require the new shlib major/minor values,
but experienced pkgsrc users may override this to allow for phased
upgrades (leaving some old pkgs installed temporarily if needed).
As to the changes noted in the PR:
> Change the following (current) way to calculate shared object
> name in libtool from:
> or the following way:
> major=.`expr $current - $age`
The above is the correct change.
-- Todd Vierling <email@example.com> <firstname.lastname@example.org>