Subject: Re: inflation of PKGREVISION bumps [was Re: CVS commit: pkgsrc]
To: Rene Hexel <r.hexel@griffith.edu.au>
From: Hubert Feyrer <hubert@feyrer.de>
List: tech-pkg
Date: 01/04/2004 14:19:09
On Sun, 4 Jan 2004, Rene Hexel wrote:
>    xpaint-2.7.0 depends on tiff>=3.5.4 (through tiff's buildlink2.mk,
> but that's beside the point here).
>
>    Binary packages built against tiff-3.5.4 are expected to work with
> tiff-3.5.5 and subsequent versions unless there is an incompatible
> ABI change in the tiff library.
>
>    Let's say such an incompatibility occurs in tiff-3.6.1.  When the
> tiff package gets updated to 3.6.1, a line such as
>
> INCOMPATIBLE=	tiff<3.6.1
>
>    gets added to the tiff package's Makefile.  This gets registered
> in the binary (and installed) tiff package.  If someone now tries
> to install an old xpaint-2.7.0 that was compiled against tiff-3.5.4,
> the recorded tiff-3.5.4 dependency matches the INCOMPATIBLE pattern
> of the installed tiff-3.6.1 package, and xpaint will refuse to
> install.

OK.


>    When xpaint-2.7.0 gets recompiled against tiff-3.6.1, it
> implicitly adds CONFLICTS+=tiff<3.6.1, so the binary package
> can no longer be installed on top of, say, tiff-3.5.4, even
> if its dependencies say otherwise.

Um, I'm not sure this (ab)use ob CONFLICTS is a good idea.
Requiring (via depends) tiff>=3.6.1 should be enough to prevent getting
installed against an older libtiff.


>    If somebody has gripes with the fact that there now may
> suddenly be two xpaint-2.7.0 binary packages built against
> different versions of tiff (and that there should really
> be an xpaint-2.7.0nb1 package), this is not a problem:
> We can still bump PKGREVISIONs to indicate that the two
> xpaint versions were built against different versions of
> tiff if we want to.

I'd rather say put the binary pkgs into different dirs then, on nbftp.
Mixing binary pkgs from different times is really a pain and should be
avoided (that's why I try to only upload complete bulk build results).


>    This could be fixed with the above INCOMPATIBLE
> pattern.

OK.

What do you suggest to implement it? (take tiff & xpaint again)

How do you check that the tiff>3.5 that xpaint wants is in conflict to the
tiff>3.6 that's registered in INCOMPATIBLE (or rather it's @-equivalent?)?


 - Hubert

-- 
Hubert Feyrer <hubert@feyrer.de>