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

next in thread | previous in thread | raw e-mail | index | archive | help

--=-JvFSQsG+yxg0QQE7VT92
Content-Type: text/plain; charset="ISO8859-2"
Content-Transfer-Encoding: quoted-printable

Jan Henrik Sylvester p=ED=B9e v =FAt 19. 05. 2009 v 00:32 +0200:
> Pav Lucistnik wrote:
> > Pietro Cerutti p=ED=B9e v po 18. 05. 2009 v 18:24 +0000:
> >> gahr        2009-05-18 18:24:36 UTC
> >>=20
> >>   FreeBSD ports repository
> >>=20
> >>   Modified files:
> >>     math/libqalculate    Makefile=20
> >>   Log:
> >>   - Add dependency on math/libgmp4
> >>   - Bump PORTREVISION
> >>  =20
> >>   Reported by:    Jan Henrik Sylvester <me at janh.de>
> >=20
> >> -LIB_DEPENDS=3D	cln.5:${PORTSDIR}/math/cln
> >> +LIB_DEPENDS=3D	cln.5:${PORTSDIR}/math/cln \
> >> +    		gmp.8:${PORTSDIR}/math/libgmp4
> >=20
> > Why are you adding a dependency on libgmp4, when this port is depended
> > on already, indirectly, via math/cln ?
> >=20
> > This is unneeded in FreeBSD Ports.
>=20
> I really would like to understand this.
>=20
> As far as I understand, if a shared library version is bumped -- for=20
> example recently libgmp.so.7 was bumped to libgmp.so.8 -- all ports that=20
> have gmp.7 listed in LIB_DEPENDS are changed to gmp.8 and have their=20
> PORTREVISION bumped at the same time to trigger a rebuild of the package.
>=20
> Ports that depend on the library only indirectly are not bumped, since=20
> it would be a waste to rebuild everything recursively. This can only=20
> work, if all ports linking a library actually list that dependency as=20
> there is no other way for someone bumping a shared library version to=20
> know which packages actually link that library.
>=20
> In this case, /usr/local/bin/qalc from math/libqalculate linked=20
> libgmp.so.7, but since the dependency was not listed, the PORTREVISION=20
> 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.

--=20
Pav Lucistnik <pav@oook.cz>
              <pav@FreeBSD.org>

Your sig line (k) was stolen! -more-
There is a puff of smoke!

--=-JvFSQsG+yxg0QQE7VT92
Content-Type: application/pgp-signature; name="signature.asc"
Content-Description: 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?=

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.9 (FreeBSD)

iEYEABECAAYFAkoSZWAACgkQntdYP8FOsoIEugCeOxp/OV2Vg/82WYwke+tcbDHA
RoIAn1kbfd/s1HII6LFW1WyLK1GI9uRu
=a/q5
-----END PGP SIGNATURE-----

--=-JvFSQsG+yxg0QQE7VT92--




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