Subject: Re: BUILDLINK_DEPENDS.expat
To: Jeremy C. Reed <reed@reedmedia.net>
From: Johnny Lam <jlam@pkgsrc.org>
List: tech-pkg
Date: 03/22/2006 19:13:07
[NOTE: I am now moving this to tech-pkg@]

Jeremy C. Reed wrote:
> On Wed, 22 Mar 2006, Johnny Lam wrote:
> 
> 
>>>I use IGNORE_RECOMMENDED=yes.
> 
> 
>>>-BUILDLINK_DEPENDS.expat+=	expat>=1.95.7
>>>+BUILDLINK_DEPENDS.expat+=	expat>=2.0.0
> 
> 
>>No, this patch is not correct.  This is, IIRC, exactly what
>>BUILDLINK_RECOMMENDED was originally put into pkgsrc for -- the handle the
>>case where a lot of software can continue to build with the old version of a
>>library even though the latest version in pkgsrc has had a shlib major bump.
> 
> 
> The RECOMMENDED is for "security updates or ABI changes that do not 
> prevent a package from building correctly."

This is exactly the case here.  Between expat-1.95.x and expat-2.0.x, 
there was an ABI change that doesn't prevent packages from *building* 
correctly, though it causes problems with binary packages.  This is why 
I think the BUILDLINK_RECOMMENDED case already covers this.

> Maybe then the pkgsrc guide needs to be modified. It says:
> 
>   ... This [BUILDLINK_DEPENDS] variable should be set to the first version 
>   of the package that had the last change in the major number of a shared 
>   library or that had a major API change.
> 
> And:
> 
>   There are two situations that require increasing the dependency listed 
>   in BUILDLINK_DEPENDS.pkg after a package update:
> 
>    1. if the sonames (major number of the library version) of any 
>    installed shared libraries change.
> 
>    2. if the API or interface to the header files change.
> 
> 
> I don't know if the API or interface to the header files changed. But the 
> major number of the library version did change.

I believe this explanation of when to bump BUILDLINK_DEPENDS preceded 
the addition of BUILDLINK_RECOMMENDED to pkgsrc.

>>What you are running into is basically the problems with running with
>>IGNORE_RECOMMENDED=yes, which is why that default to "no".
> 
> 
> I have been using it since it was available. It has been very useful. I 
> have not had to manually override any of the BUILDLINK_DEPENDS.

I still believe the whole BUILDLINK_RECOMMENDED concept is 
poorly-conceived and should be removed from pkgsrc, and that 
BUILDLINK_DEPENDS should be used as the guide currently says in the 
passages you excerpted above.

	Cheers,

	-- Johnny Lam <jlam@pkgsrc.org>