Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 360861 - dev-libs/libgweather-2.30.3 fails to build on prefix: libX11.la: No such file or directory
Summary: dev-libs/libgweather-2.30.3 fails to build on prefix: libX11.la: No such file...
Status: RESOLVED OBSOLETE
Alias: None
Product: Gentoo/Alt
Classification: Unclassified
Component: Prefix Support (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Gentoo Prefix
URL:
Whiteboard:
Keywords:
: 364543 (view as bug list)
Depends on:
Blocks:
 
Reported: 2011-03-28 03:46 UTC by Dan Wallis
Modified: 2011-04-23 07:02 UTC (History)
2 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Full build log (build.log,14.89 KB, text/plain)
2011-03-28 03:46 UTC, Dan Wallis
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Dan Wallis 2011-03-28 03:46:06 UTC
Created attachment 267467 [details]
Full build log

Build fails with:

$ emerge -a1 =dev-libs/libgweather-2.30.3
[...]
  CC     libgweather_la-parser.lo
  CCLD   libgweather.la
/home/dan/.gentoo/bin/grep: /home/dan/.gentoo/usr/lib/libX11.la: No such file or directory
/home/dan/.gentoo/bin/sed: can't read /home/dan/.gentoo/usr/lib/libX11.la: No such file or directory
libtool: link: `/home/dan/.gentoo/usr/lib/libX11.la' is not a valid libtool archive
make[3]: *** [libgweather.la] Error 1
make[3]: Leaving directory `/home/dan/.gentoo/var/tmp/portage/dev-libs/libgweather-2.30.3/work/libgweather-2.30.3/libgweather'
make[2]: *** [all] Error 2
make[2]: Leaving directory `/home/dan/.gentoo/var/tmp/portage/dev-libs/libgweather-2.30.3/work/libgweather-2.30.3/libgweather'
make[1]: *** [all-recursive] Error 1
make[1]: Leaving directory `/home/dan/.gentoo/var/tmp/portage/dev-libs/libgweather-2.30.3/work/libgweather-2.30.3'
make: *** [all] Error 2
emake failed
 * ERROR: dev-libs/libgweather-2.30.3 failed (compile phase):
 *   compile failure
Comment 1 Michael Haubenwallner gentoo-dev 2011-03-28 09:09:12 UTC
Without being able to actually debug or fix anything, a hint what could be the problem here (I've had very similar problems in main Gentoo Linux too):

You've updated/remerged libX11 recently, where the new libX11.ebuild has dropped libX11.la. But existing .la-Files still do require /usr/lib/libX11.la.

As I run stable Gentoo Linux on my desktop (updating once or twice a year), having portage-2.1 without preserved-libs support, and don't want to use 'lafile-fixer' to hack around that, I did 'revdep-rebuild' alternating with 'emerge -uDN @system @world' a few times (in combination with 'perl-cleaner' due to perl-update).

As a result, on the one hand the newly created .la-files do not reference /usr/lib/libX11.la any more, and on the other hand any .la-file referencing another .la-file directly as "/path/to/libNAME.la" is fixed by portage during install now to read "-L/path/to -lNAME" (this feature was added to portage - both 2.1 and 2.2 - somewhat recently).

Unfortunately, we don't support 'revdep-rebuild' in prefix (any more) in favour of '@preserved-rebuild'.

Question to dev-portage:
Is 'emerge @preserved-rebuild' able to identify packages hit by such .la-file b0rkage like 'revdep-rebuild' does?
Comment 2 Johan Myreen 2011-03-28 10:11:08 UTC
I have the same problem with the following packages:

x11-libs/gtk+
media-gfx/imagemagick
gnome-extra/yelp
dev-vcs/giggle
x11-libs/libfontcache
x11-libs/libXrender
media-libs/giflib
media-libs/freeglut
x11-libs/startup-notification
media-libs/t1lib

All of these packages require /usr/lib64/libX11.la, which doesn't exist anymore.


Output of emerge --info:

Portage 2.1.9.45 (default/linux/amd64/10.0, gcc-4.5.2, glibc-2.13-r2, 2.6.38-gentoo x86_64)
=================================================================
System uname: Linux-2.6.38-gentoo-x86_64-AMD_Phenom-tm-_9550_Quad-Core_Processor-with-gentoo-2.0.2
Timestamp of tree: Mon, 28 Mar 2011 04:30:01 +0000
app-shells/bash:     4.2_p8
dev-java/java-config: 2.1.11-r3
dev-lang/python:     2.6.6-r2, 2.7.1-r1, 3.1.3-r1
dev-util/cmake:      2.8.4
sys-apps/baselayout: 2.0.2
sys-apps/openrc:     0.8.0
sys-apps/sandbox:    2.5
sys-devel/autoconf:  2.13, 2.68
sys-devel/automake:  1.8.5-r3, 1.9.6-r3, 1.10.3, 1.11.1
sys-devel/binutils:  2.21
sys-devel/gcc:       4.4.5, 4.5.2
sys-devel/gcc-config: 1.4.1
sys-devel/libtool:   2.4-r1
sys-devel/make:      3.82
virtual/os-headers:  2.6.38 (sys-kernel/linux-headers)
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="*"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -march=amdfam10 -ggdb"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php5.3/ext-active/ /etc/php/cgi-php5.3/ext-active/ /etc/php/cli-php5.3/ext-active/ /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-O2 -pipe -march=amdfam10 -ggdb"
DISTDIR="/usr/portage/distfiles"
FEATURES="assume-digests binpkg-logs distlocks fixlafiles fixpackages installsources news parallel-fetch protect-owned sandbox sfperms splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
FFLAGS=""
GENTOO_MIRRORS="http://trumpetti.atm.tut.fi/gentoo/ "
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j4"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/var/lib/layman/x11 /usr/local/portage/layman/devnull /usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="X aac accessibility acl acpi alsa amd64 bash-completion berkdb bluetooth bzip2 cli cracklib crypt cups cxx dbus doc dri evdev ffmpeg flac fortran gdbm gif gnome gpm iconv ipv6 java jpeg jpeg2k kde kerberos ldap melt mmx modules mp3 mudflap multilib mysql ncurses nls nptl nptlonly objc ogg opengl openmp pam pcre perl png policykit ppds pppd python qt3 qt3support qt4 raw readline sasl sdl session sql sse sse2 ssl svg sysfs syslog tcpd tiff tk truetype unicode vorbis xml xorg zlib" ALSA_CARDS="ali5451 als4000 atiixp atiixp-modem bt87x ca0106 cmipci emu10k1x ens1370 ens1371 es1938 es1968 fm801 hda-intel intel8x0 intel8x0m maestro3 trident usb-audio via82xx via82xx-modem ymfpci" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CAMERAS="canon topfield" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" PHP_TARGETS="php5-3" QEMU_SOFTMMU_TARGETS="x86_64" QEMU_USER_TARGETS="x86_64" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="radeon" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account" 
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, LANG, LC_ALL, LINGUAS, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 3 Zac Medico gentoo-dev 2011-03-28 15:28:01 UTC
(In reply to comment #1)
> Question to dev-portage:
> Is 'emerge @preserved-rebuild' able to identify packages hit by such .la-file
> b0rkage like 'revdep-rebuild' does?

No. However, a command like this can be used to solve this type of *.la file breakage:

  emerge -1 --complete-graph $(grep -l libX11.la /usr/lib/*.la)

I use --complete-graph to ensure that the merge order is optimized as much as possible, since merge order can be quite important in cases like this.
Comment 4 Dan Wallis 2011-03-28 22:15:11 UTC
Thanks all.

Yes, I've recently installed x11-libs/libX11-1.4.2 (upgraded from x11-libs/libX11-1.4.1).

Running:

  emerge -a1 --complete-graph $(grep -l libX11.la $EPREFIX/usr/lib/*.la)

rebuilt x11-libs/libXrender-0.9.6 & x11-libs/libXdamage-1.1.3, which fixed things. Now "grep -l libX11.la $EPREFIX/usr/lib/*.la" returns no matches, and dev-libs/libgweather-2.30.3 builds successfully.

Leaving this bug open for now in case something needs to be done to portage and/or portage-utils. Please feel free to close if not.
Comment 5 Paul Varner (RETIRED) gentoo-dev 2011-03-29 01:36:35 UTC
I'm considering adding an option to revdep-rebuild that will just handle the .la file breakage without the search for broken dynamic libraries.  If there is enough interest feel free to rename this bug and assign it to tools-portage.
Comment 6 Michael Haubenwallner gentoo-dev 2011-03-29 08:03:14 UTC
As recent portage does fix la-files to not have hardcoded dependencies on la-files (but "-L/path/to -llibrary" instead), it is unlikely to remain as a problem forever. So I don't see a real need for this performance optimization.

However, in Prefix we have discontinued revdep-rebuild in favour of @preserved-rebuild, which turns out it was too early.

OTOH, since there are workarounds available for already installed la-files to either fix (lafile-fixer) or explicitly remerge (comment#3) them, I don't see pressing need to reactivate revdep-rebuild in Prefix either.

Maybe it seems somewhat early, but this feels like RESOLVE/OBSOLETE.

Generalized workaround (based on comment#3):
$ emerge -a1 --complete-graph $(grep -l 'dependency_libs=.*\.la' $(portageq envvar EPREFIX)/usr/lib/lib*.la)
Comment 7 Fabian Groffen gentoo-dev 2011-03-29 08:12:28 UTC
I concur, in particular reviving Mach-O support for revdep-rebuild is a pita.  However, maybe a separate tool (using shared sources?) that scans .la files and does the magic in the right order would be appreciated, and probably easy to maintain for Prefix (little to no changes necessary) and alternative arches (I guess a tool like this needs not even to know about dylib, dll or so).
Comment 8 Samuli Suominen (RETIRED) gentoo-dev 2011-04-23 07:02:34 UTC
*** Bug 364543 has been marked as a duplicate of this bug. ***