[review] cvs commit: ports/math/libqalculate Makefile

Jan Henrik Sylvester me at janh.de
Mon May 18 22:45:08 UTC 2009


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


More information about the cvs-ports mailing list