Date: Mon, 8 Sep 2014 23:49:29 +0200 From: Tijl Coosemans <tijl@FreeBSD.org> To: Graham Todd <gtodd@bellanet.org> Cc: cary@sdf.org, "freebsd-ports@freebsd.org" <freebsd-ports@freebsd.org> Subject: Re: USES = libtool and missing .la files [WAS Re: pkg-plist for devel/glib20] Message-ID: <20140908234929.3c9717ba@kalimero.tijl.coosemans.org> In-Reply-To: <alpine.BSF.2.11.1409081404440.28683@ninga.iciti.internal> References: <20140907013546.GA10438@SDF.ORG> <alpine.BSF.2.11.1409081252100.65468@ninga.iciti.internal> <20140908195919.262177f2@kalimero.tijl.coosemans.org> <alpine.BSF.2.11.1409081404440.28683@ninga.iciti.internal>
next in thread | previous in thread | raw e-mail | index | archive | help
On Mon, 8 Sep 2014 14:11:53 -0400 (EDT) Graham Todd <gtodd@bellanet.org> wrote: > On Mon, 8 Sep 2014, Tijl Coosemans wrote: >>> 'USES=libtool ' about a week ago. Perhaps pkg-plist files are not >>> including the files due to this change. >>> >>> /usr/port/UPDATING doesn not warn of any problems or fallout from >>> 'USES=libtool'. How best to resolve this? >> >> .la files are being removed because they cause overlinking, i.e. in the >> dependency chain A->B->C they add an extra link from A to C even if >> A doesn't use C directly. This makes updates to C expensive because >> then both A and B have to be rebuilt instead of just B. >> >> The files have been removed in a specific order such that you should not >> see build problems if you follow normal update guidelines. That means >> for instance that before updating a port you must make sure that its >> dependencies are up to date. A tool like portmaster or portupgrade >> handles that for you. >> >> Now that you are seeing build problems you can figure out which packages >> need to be rebuilt like this: >> >> find /usr/local/lib -name '*.la' | xargs grep -l 'libglib-2\.0\.la' | xargs pkg which >> >> This will print a list of .la files that refer to libglib-2.0.la and >> which package they belong to. Where it says "not found in the database" >> some update in the past must have gone wrong leaving this file behind. >> Just remove that file. After removing all such .la files, where it says >> "installed by package X", rebuild X. The list printed by that command >> should eventually be empty. >> >> Whenever you encounter a build error about a missing .la file you need >> to repeat this. For instance, if you get an error about libiconv.la the >> command you have to run is: >> >> find /usr/local/lib -name '*.la' | xargs grep -l 'libiconv\.la' | xargs pkg which > > Tijl, thanks for the pointers (and all your QA work on the ports tree > BTW). > > Would it be worhtwile for me to file some kind of QA PR that could be > linked to from UPDATING (not sure if this is how the new bugzilla setup is > meant to be used)? I'll write an UPDATING entry tomorrow.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20140908234929.3c9717ba>