Skip site navigation (1)Skip section navigation (2)
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>