Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 19 May 2009 00:32:30 +0200
From:      Jan Henrik Sylvester <me@janh.de>
To:        Pav Lucistnik <pav@FreeBSD.org>
Cc:        cvs-ports@freebsd.org, Pietro Cerutti <gahr@FreeBSD.org>
Subject:   Re: [review] cvs commit: ports/math/libqalculate Makefile
Message-ID:  <4A11E1FE.9010601@janh.de>
References:  20090518182452.2B7F310656B4@hub.freebsd.org

next in thread | raw e-mail | index | archive | help
Pav Lucistnik wrote:
> Pietro Cerutti píše v po 18. 05. 2009 v 18:24 +0000:
>> gahr        2009-05-18 18:24:36 UTC
>> 
>>   FreeBSD ports repository
>> 
>>   Modified files:
>>     math/libqalculate    Makefile 
>>   Log:
>>   - Add dependency on math/libgmp4
>>   - Bump PORTREVISION
>>   
>>   Reported by:    Jan Henrik Sylvester <me at janh.de>
> 
>> -LIB_DEPENDS=	cln.5:${PORTSDIR}/math/cln
>> +LIB_DEPENDS=	cln.5:${PORTSDIR}/math/cln \
>> +    		gmp.8:${PORTSDIR}/math/libgmp4
> 
> Why are you adding a dependency on libgmp4, when this port is depended
> on already, indirectly, via math/cln ?
> 
> This is unneeded in FreeBSD Ports.

I really would like to understand this.

As far as I understand, if a shared library version is bumped -- for 
example recently libgmp.so.7 was bumped to libgmp.so.8 -- all ports that 
have gmp.7 listed in LIB_DEPENDS are changed to gmp.8 and have their 
PORTREVISION bumped at the same time to trigger a rebuild of the package.

Ports that depend on the library only indirectly are not bumped, since 
it would be a waste to rebuild everything recursively. This can only 
work, if all ports linking a library actually list that dependency as 
there is no other way for someone bumping a shared library version to 
know which packages actually link that library.

In this case, /usr/local/bin/qalc from math/libqalculate linked 
libgmp.so.7, but since the dependency was not listed, the PORTREVISION 
was not bumped leaving the package broken.

If bumping PORTREVISIONs is not feasible as there are too many dependent 
ports, there is usually an entry in UPDATING to rebuild everything 
recursively.

I only got this understanding observing commits. What is wrong with it? 
I do not understand the PORTREVISION bumping at all if not all 
dependencies are listed.

Thanks for any explanation,
Jan Henrik



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4A11E1FE.9010601>