Subject: Re: make update with half the fuss?
To: None <netbsd-users@netbsd.org>
From: Christian Biere <christianbiere@gmx.de>
List: netbsd-users
Date: 01/23/2004 22:23:49
--0OAP2g/MAC+5xKAE
Content-Type: text/plain; charset=us-ascii
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

Bruce J.A. Nourish wrote:
> Firstly, the recursive deletion of dependencies. This is done for a very
> good reason: if you update a package that provides shared libraries=20
> without rebuilding the dependencies, you will probably end up with
> subtle ABI incompatibilities.

Agreed, upgrading every dependency is probably the sanest way. OTOH,
the developers probably tested their software with a certain version
of library X and Y. So actually, you'd have to use those versions
because anything else isn't tested and known to be stable.
Anyhow, if the software isn't developed by skript kiddiez, they
won't change the ABI without the library's major version. Ever
wondered what those those fancy numbers in libexample.so.3.4
mean? It's the ABI version of the library whereas the '4' is
just some sugar but the '3' declares binary compatibility between
all libexample.so.3.x. So, if software X works flawlessly with
the old version but software Y needs a newer version, there's
no need to recompile X against the new version. Just leave the
old libs around. This is much safer than upgrading everything. It
wouldn't be the first time a newer version broke dozens of
features.

> Mmmmm... no. Deinstall/install takes a small fraction of the build time.

I think you missed the point. First, the above applies and second
what if the build fails? You won't be able to use neither the old
nor the new version because you've just deinstalled it. It wouldn't
be the first time it took me half a day to rebuild and fix all
the GNOME stuff just to get a e.g., a newer version of glade.

But as far as I understand pkgsrc, the only reasonable way to
install packages in a production evironment is to use a box
for compiling and "make package". Then enroll these packages
on your production machines. I mean, seriously, you can't
deinstall Mozilla and compile 2 hours before anyone can (hopefully)
use a browser again. And no, I don't want to do all upgrades
overnight. Not to mention that it wouldn't work for 24/7 software
you can only stop for a few minutes without all hell break loose.

> This would enormously convolute the reinstall code for a vanishingly
> small benefit. It's also not clear how install/deinstall scripts and
> @(un)?exec in PLISTs would be handled.

CMIIW, but the FreeBSD port system can handle that.

--=20
Christian

--0OAP2g/MAC+5xKAE
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.4 (NetBSD)

iD8DBQFAEZDl0KQix3oyIMcRArHiAJ9a1Im/+zIJ/CqFWs7gb02h9+9IqgCff0FL
0YH7q7YA/SzMm53AR3NY9d4=
=NJb9
-----END PGP SIGNATURE-----

--0OAP2g/MAC+5xKAE--