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>