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

Pav Lucistnik pav at FreeBSD.org
Tue May 19 07:53:11 UTC 2009


Jan Henrik Sylvester píše v út 19. 05. 2009 v 00:32 +0200:
> 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.

Your observation about the need to recompile packages is correct.
But we cannot guarantee that all ports, that link some library, have it
listed in LIB_DEPENDS, and, indeed, it is not a common practice.
Imagine some complex ports having hundred of LIB_DEPENDS lines in their
Makefile!

Current practice of bumping PORTREVISION based on presence of
LIB_DEPENDS line is insufficient.

What we really need is a post-commit hook in portupgrade that would scan
all binaries under /usr/local, and trigger forced rebuilds if anything
links libraries from compat/pkg subdirectory.

-- 
Pav Lucistnik <pav at oook.cz>
              <pav at FreeBSD.org>

Your sig line (k) was stolen! -more-
There is a puff of smoke!
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 195 bytes
Desc: Toto je =?UTF-8?Q?digit=C3=A1ln=C4=9B?=
	=?ISO-8859-1?Q?_podepsan=E1?= =?UTF-8?Q?_=C4=8D=C3=A1st?=
	=?ISO-8859-1?Q?_zpr=E1vy?=
Url : http://lists.freebsd.org/pipermail/cvs-ports/attachments/20090519/0d60f984/attachment.pgp


More information about the cvs-ports mailing list