Re: [gentoo-user] Notice: possible past, present and future breakage related to .la files

2010-10-02 Thread William Kenworthy
On Thu, 2010-09-30 at 00:40 +0200, Diego Elio Pettenò wrote: 
 Hi all users,
 
 Secondly, you can avoid any future requirement for this by sanitising
 the newly installed .la files; this can be done either by using the
 (currently testing) Portage 2.1.9 series, or by adding the following
 snippet to your /etc/portage/bashrc:
 
 post_src_install() {
 lafilefixer ${D}
 }
 


A question I cant see answered anywhere though its been asked:

What are the implications of adding this snippet - will it come back
to bite us (users) when the next version of portage comes along?


and in addition:
- none of my systems have a /etc/portage/bashrc so Ive created them, but
should they be executable, have a hash-bang line, ... ?

- will this snippet fix the problems with equery check marking
libraries as broken after lafilefixer is run? (I presume an emerge -e
world will be needed to update the database ...)

BillK







Re: [gentoo-user] Notice: possible past, present and future breakage related to .la files

2010-10-02 Thread Tanstaafl
On 2010-09-29 6:40 PM, Diego Elio Pettenò wrote:
 First of all, you should install lafilefixer and let it pass through the
 currently-installed system:
 
 # emerge lafilefixer
 # lafilefixer --justfixit
 
 This will convert the references to libtool archives to the -llibname
 form, which works both with and without them.
 
 Secondly, you can avoid any future requirement for this by sanitising
 the newly installed .la files; this can be done either by using the
 (currently testing) Portage 2.1.9 series, or by adding the following
 snippet to your /etc/portage/bashrc:
 
 post_src_install() {
 lafilefixer ${D}
 }

For those of us who prefer to stay with the stable portage, am I correct
that once the 2.1.9 portage series goes stable, that we would then
remove the above from /etc/portage/bashrc? What would happen if I forgot
to do so (ie, how important is it)?

Thanks Diego for communicating this situation so well... it is much
appreciated.

Charles



Re: [gentoo-user] Notice: possible past, present and future breakage related to .la files

2010-09-30 Thread Neil Bothwick
On Thu, 30 Sep 2010 00:40:06 +0200, Diego Elio Pettenò wrote:

 Secondly, you can avoid any future requirement for this by sanitising
 the newly installed .la files; this can be done either by using the
 (currently testing) Portage 2.1.9 series, or by adding the following
 snippet to your /etc/portage/bashrc:
 
 post_src_install() {
 lafilefixer ${D}
 }

I find this part a little confusing. Are you saying to add the function
to bashrc if you are not using portage 2.1.9? How about those of us using
2.2?


-- 
Neil Bothwick

Suborbital Ballistic-Propulsion Engineer
Not Exactly A Rocket Scientist


signature.asc
Description: PGP signature


[gentoo-user] Notice: possible past, present and future breakage related to .la files

2010-09-29 Thread Diego Elio Pettenò
Hi all users,

Some of you might have noticed, others might notice, a few would
probably not notice at all, that some Gentoo developers have started
removing the libtool archive files from packages that they maintain;
these changes have some times been applied to stable ebuilds as well,
but in all cases they won't be applied unless the package is re-emerged.

The reasoning behind this removal is too long to explain in this mail,
but you can find the start of it in [1], [2], and you can find some more
details in [3], [4] (yes these are all posts from my blog that I wrote
in the past few years). What matters to you (users) is that removing .la
files makes it less likely that unexpected libraries get linked in your
executables, even without --as-needed, or where --as-needed is not
working correctly.

If it sounds familiar as a situation, you might have gone through the
now-infamous libpng14 upgrade earlier this year [5], [6].

Removing .la files can cause, though, temporary disruption in the build
processes of libraries depending on those involved, because of the
transitive nature of .la files. For instance you could experiences
something like this:

libtool: link: `/usr/lib/libdbus-1.la' is not a valid libtool archive

with libdbus-1.la being replaced by other library names. If this is the
case, _do not panic_! Nothing is irremediably broken and nothing will
have to be rebuilt!

First of all, you should install lafilefixer and let it pass through the
currently-installed system:

# emerge lafilefixer
# lafilefixer --justfixit

This will convert the references to libtool archives to the -llibname
form, which works both with and without them.

Secondly, you can avoid any future requirement for this by sanitising
the newly installed .la files; this can be done either by using the
(currently testing) Portage 2.1.9 series, or by adding the following
snippet to your /etc/portage/bashrc:

post_src_install() {
lafilefixer ${D}
}

(Users of the bashrcng feature can install a specific plugin to do the
job, I don't remember the name of it though, sorry!)

It's a one time process that _will_ save you from more breakage and work
to do in the future, so please bear with us.

Note: removal of .la files altogether from the system is _not_ possible
and _is_ going to break your system. This is why we've got to handle
this process with care and can't simply nuke them entirely. A few
packages (imagemagick, mpg123) actually use the .la files to load their
plugins; the libtool macros to detect libltld also rely on the presence
of $libdir/libltdl.la (even though it's not really necessary). Plus I
know of at least one package that installs data files with .la extension
even though they are not libtool archives.

Note #2: if you run revdep-rebuild before the above process, it _will_
find you a lot of packages to rebuild, and you'll waste a huge amount of
time running in circles.

At this time it is unclear what the path forward will be, if we either
keep removing .la files from packages, caring about the fact they are
not needed, and causing these disruption for who hasn't gone through the
above-noted process yet, or if we'll be doing a mass-removal and deal
separately with eventual breakage on packages that use them, like those
noted above. Both approaches have advantages and disadvantages and it's
mostly a matter of opinion and taste which one is better.

We'll be looking forward to make this more widely available knowledge
and we hope to be able to provide a better experience for all of you at
the end of this (bumpy) journey.

Thanks!

[1] http://blog.flameeyes.eu/2008/04/14/what-about-those-la-files
[2] http://blog.flameeyes.eu/s/lafiles-2
[3] http://blog.flameeyes.eu/s/lafiles-plugins
[4] http://blog.flameeyes.eu/s/lafiles-chart
[5] http://blog.flameeyes.eu/2010/05/12/gentoo-failed-us-again
[6] http://blog.flameeyes.eu/2010/06/29/stable-users-libpng-update

-- 
Diego Elio Pettenò — “Flameeyes”
http://blog.flameeyes.eu/

If you found a .asc file in this mail and know not what it is,
it's a GnuPG digital signature: http://www.gnupg.org/



signature.asc
Description: This is a digitally signed message part