Subject: Re: make update hell
To: Pavel Cahyna <pavel.cahyna@st.mff.cuni.cz>
From: Jeremy C. Reed <reed@reedmedia.net>
List: tech-pkg
Date: 10/06/2004 14:59:33
On Tue, 5 Oct 2004, Pavel Cahyna wrote:

> > I found this one out the hard way. The problem occurs when the update results
> > in a shared library being installed with a different revision number.
> > Dependent code still references the library with the old number, yet, with
> > the "make replace" you delete the old and install the new.
>
> This sounds like a major deficiency of pkgsrc. A library package should never
> be upgraded to an incompatible version. AFAIK Debian solves this by having
> library packages with revision number embedded in their name (like libpng3
> or libc6). That way, packages depend exactly on the version they need, and
> multiple incompatible versions of a library can be installed in parallel.
>
> See: http://www.debian.org/doc/debian-policy/ch-sharedlibs.html
> and http://www.netfort.gr.jp/~dancer/column/libpkg-guide/libpkg-guide.html
>
> (I do not pretend to understand it all, but maybe you will find it
> interesting.)

I am replying here at tech-pkg because your links above may be to use for
the pkgsrc infrastructure developers.

One solution (but has not been done yet) is to take advantage of the
information already recorded by pkgsrc. We have the list of libraries
provided and required in the +BUILD_INFO files (see PROVIDES= and
REQUIRES=). Maybe we can add some rules that check this information on
installs and deinstalls and upgrades.

 Jeremy C. Reed

 	  	 	 BSD News, BSD tutorials, BSD links
	  	 	 http://www.bsdnewsletter.com/