Summary: | dev-libs/libgweather-2.30.3 fails to build on prefix: libX11.la: No such file or directory | ||
---|---|---|---|
Product: | Gentoo/Alt | Reporter: | Dan Wallis <mrdanwallis> |
Component: | Prefix Support | Assignee: | Gentoo Prefix <prefix> |
Status: | RESOLVED OBSOLETE | ||
Severity: | normal | CC: | dev-portage, mail |
Priority: | Normal | ||
Version: | unspecified | ||
Hardware: | All | ||
OS: | Linux | ||
Whiteboard: | |||
Package list: | Runtime testing required: | --- | |
Attachments: | Full build log |
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? 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 (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. 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. 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. 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) 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). *** Bug 364543 has been marked as a duplicate of this bug. *** |
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