Re: Ruminations on pkg_chk...
Greg Troxel <gdt <at> ir.bbn.com>
2004-01-01 17:19:07 GMT
>1. In FreeBSD ports, one can install multiple versions of a package.
> When starting to use portupgrade, we usually find that there are
> multiple versions of a lot of libraries, with many files claimed by
> multiple packages.
How? I've used FreeBSD ports for years and have never seen this...
Care to elaborate? The multiple versions of libraries are usually
tucked away in lib/compat after an upgrade to insure packages continue
to work after upgrades, as you point out below.
I'm not talking about lib/compat, but libraries provided by ports.
With pkgsrc, a pkg conflicts with older versions of itself, so doing a
'make install' fails if an older version is installed. With ports, at
least in the past, the second copy would be installed and registered.
This can happen by doing a 'make package' of port A, which depends on
libfoo. Version 1.0 of libfoo gets installed. Wait 3 months and cvs
update. Do 'make package' of port B, which also requires libfoo, but
now the libfoo Makefile says 1.1 is current and needed, so libfoo 1.1
gets installed. I have seen this multiple times, and when starting to
use portupgrade many such situations needed to be cleaned up.
To check that this behavior still occurs, I went to a FreeBSD box
running 4.9-RC with ports from November 5. glib-1.2.8 was installed.
I went to devel/glib12 and did 'make package'. Now glib-1.2.8 and
glib-1.2.10_10 are both installed. I deleted glib-1.2.8, which
complained about files not matching the MD5 checksum. I delete
glib-1.2.10_10, which complained about
/usr/local/share/aclocal/glib.m4 not exising (probably because it was
deleted by 1.2.8).