Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 20 Jun 2014 14:12:10 -0700
From:      Kevin Oberman <rkoberman@gmail.com>
To:        mexas@bris.ac.uk
Cc:        FreeBSD Ports ML <freebsd-ports@freebsd.org>
Subject:   Re: please add revision number along with the date in ports/UPDATING
Message-ID:  <CAN6yY1sckkf%2BhyBt0wVJieGiAqsR89CESadE_2JEiR-Dcxu2wA@mail.gmail.com>
In-Reply-To: <201406181203.s5IC3Dng049322@mech-cluster241.men.bris.ac.uk>
References:  <201406181203.s5IC3Dng049322@mech-cluster241.men.bris.ac.uk>

next in thread | previous in thread | raw e-mail | index | archive | help
On Wed, Jun 18, 2014 at 5:03 AM, Anton Shterenlikht <mexas@bris.ac.uk>
wrote:

> 20140611:
>   AFFECTS: users of devel/icu
>   AUTHOR: bapt@FreeBSD.org
>
>   icu has been updated to 53.1. Please rebuild all ports that depend on it
>
> When using svn to update ports, it would
> be helpful to know which revision each
> change affects.
>
> Thanks
>
> Anton
>

Anton,

It's not clear to me exactly what you are asking for. Which revision of
what change?

In cases like this one and most other like it, the cause is that the ABI of
the updated port changed and the sharable version has been changed. In this
case it bumps the revision of a number of sharables from 52 to 53. As a
result, all ports that link to the old version (52) will no longer run as
rtld, the run-time loader, will refuse to run an executable that has
unresolvable links. This only requires that the executables in question be
re-linked with the updated sharables.

The sources of the dependent port don't need a changes and there is no new
version number. The old code simply needs to be re-linked. That said, in
many cases an attempt is made to bump the PORT_REVISION of such ports so
they will be caught and rebuilt. I have mixed feelings on this as it is
often almost impossible to catch everything. Sometimes a port is only
dependent on a sharable when a specific option is selected. Some (e.g icu
and pcre) can involve hundreds or even over a thousand ports, making
tagging all of them difficult. almost always some are missed.

I always fall back on pkg_libchk to tell me which ports need updating,
whether the port revision has changed or not.You need to install
sysutils/bsdadminscripts. Then I use:
pkg_libchk -o | grep LIB | cut -d: -f1 | sort | uniq > FILE
where LIB is a sharable installed by the port in question. (E.g. libicu)
Then you can do "portmaster -D `cat FILE`" to update all ports that need it
whether the version has been bumped or not. This will always catch every
port that requires re-linking and not do any extras. portmaster -r (or
portupgrade -r) will often list dependencies that do not actually link to
the sharable in question. In some cases, the number of unneeded rebuilds my
exceed the number that actually require it and may reach over 100.
-- 
R. Kevin Oberman, Network Engineer, Retired
E-mail: rkoberman@gmail.com



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAN6yY1sckkf%2BhyBt0wVJieGiAqsR89CESadE_2JEiR-Dcxu2wA>