Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 570690 - Does revdep-rebuild use the build-order suggested by DEPEND?
Summary: Does revdep-rebuild use the build-order suggested by DEPEND?
Status: RESOLVED NEEDINFO
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Tools (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Portage team
URL:
Whiteboard:
Keywords:
: 570686 (view as bug list)
Depends on:
Blocks:
 
Reported: 2016-01-03 09:26 UTC by Dennis Schridde
Modified: 2016-01-04 18:47 UTC (History)
1 user (show)

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


Attachments
build.log (build.log,167.97 KB, text/plain)
2016-01-03 09:26 UTC, Dennis Schridde
Details
build.log (xz-compressed) (build.log.xz,143.18 KB, application/x-xz)
2016-01-03 09:28 UTC, Dennis Schridde
Details
genlop -l --date 'Jan 1' (genlop-l-since-20160101.log,35.99 KB, text/plain)
2016-01-04 08:29 UTC, Dennis Schridde
Details

Note You need to log in before you can comment on or make changes to this bug.
Description Dennis Schridde 2016-01-03 09:26:11 UTC
I have the suspicion that revdep-rebuild uses a wrong build-order when I run "revdep-rebuild --library 'libstdc++.so.6' -- --exclude gcc".

E.g. 570686 looks suspiciously like a C++11 ABI mismatch and kde-apps/libkcddb-15.08.3::gentoo does not rebuild either, due to linking errors (e.g. undefined reference to `MusicBrainz5::CNameCredit::Name[abi:cxx11]() const', see attached build.log). Both DEPEND on the library they fail to link against, which probably means that this library should have been rebuilt before the package failing to build now.

Thus my report is a mixture between a question and a bugreport: Does revdep-rebuild use the build-order suggested by the ebuild's DEPENDencies? If so: Why does the build fail here, anyway? If not: Why not, and can that be changed, please?

Reproducible: Always
Comment 1 Dennis Schridde 2016-01-03 09:26:30 UTC
Created attachment 421726 [details]
build.log
Comment 2 Dennis Schridde 2016-01-03 09:28:24 UTC
Created attachment 421728 [details]
build.log (xz-compressed)

This seems to affect kde-base/kdelibs-4.14.15-r1::gentoo as well:
CMakeFiles/kio.dir/kio/kfilemetainfo.cpp.o: In function `KFileMetaInfoPrivate::init(QIODevice&, KUrl const&, long, QFlags<KFileMetaInfo::What>)':
/var/tmp/portage/kde-base/kdelibs-4.14.15-r1/work/kdelibs-4.14.15/kio/kio/kfilemetainfo.cpp:255: undefined reference to `Strigi::AnalysisResult::AnalysisResult(std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> >
 const&, long, Strigi::IndexWriter&, Strigi::StreamAnalyzer&, std::__cxx11::basic_string<char, std::char_traits<char>, std::allocator<char> > const&)'
collect2: error: ld returned 1 exit status
kio/CMakeFiles/kio.dir/build.make:3755: recipe for target 'lib/libkio.so.5.14.15' failed
Comment 3 Dennis Schridde 2016-01-03 09:31:17 UTC
emerge --info kde-base/kdelibs kde-apps/libkcddb kde-base/baloo kde-apps/kdepim-common-libs kde-apps/kontact sys-devel/gcc media-libs/musicbrainz app-misc/strigi
Portage 2.2.26 (python 3.4.3-final-0, default/linux/amd64/13.0/desktop/plasma/systemd, gcc-5.3.0, glibc-2.22-r1, 4.3.3-gentoo x86_64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-4.3.3-gentoo-x86_64-AMD_A10-7800_Radeon_R7,_12_Compute_Cores_4C+8G-with-gentoo-2.2
KiB Mem:    15381472 total,   6705564 free
KiB Swap:          0 total,         0 free
Timestamp of repository gentoo: Sat, 02 Jan 2016 09:15:02 +0000
sh bash 4.3_p42
ld GNU ld (Gentoo 2.25 p1.2) 2.25
ccache version 3.2.4 [disabled]
app-shells/bash:          4.3_p42::gentoo
dev-java/java-config:     2.2.0::gentoo
dev-lang/perl:            5.22.1::gentoo
dev-lang/python:          2.7.11-r1::gentoo, 3.4.3-r7::gentoo, 3.5.1-r2::gentoo
dev-util/ccache:          3.2.4::gentoo
dev-util/cmake:           3.4.1::gentoo
dev-util/pkgconfig:       0.29::gentoo
sys-apps/baselayout:      2.2::gentoo
sys-apps/sandbox:         2.10-r1::gentoo
sys-devel/autoconf:       2.13::gentoo, 2.69-r1::gentoo
sys-devel/automake:       1.11.6-r1::gentoo, 1.12.6::gentoo, 1.13.4::gentoo, 1.14.1::gentoo, 1.15-r1::gentoo
sys-devel/binutils:       2.25-r1::gentoo
sys-devel/gcc:            5.3.0::gentoo
sys-devel/gcc-config:     1.8-r1::gentoo
sys-devel/libtool:        2.4.6-r1::gentoo
sys-devel/make:           4.1-r1::gentoo
sys-kernel/linux-headers: 4.3::gentoo (virtual/os-headers)
sys-libs/glibc:           2.22-r1::gentoo
Repositories:

gentoo
    location: /var/cache/portage/gentoo
    sync-type: rsync
    sync-uri: rsync://rsync.de.gentoo.org/gentoo-portage
    priority: -1000

aegypius
    location: /var/lib/layman/aegypius
    sync-type: laymansync
    sync-uri: git://github.com/aegypius/overlay.git
    masters: gentoo
    priority: 50

java
    location: /var/lib/layman/java
    sync-type: laymansync
    sync-uri: git://anongit.gentoo.org/proj/java.git
    masters: gentoo
    priority: 50

kde
    location: /var/lib/layman/kde
    sync-type: laymansync
    sync-uri: git://anongit.gentoo.org/proj/kde.git
    masters: gentoo
    priority: 50

rust
    location: /var/lib/layman/rust
    sync-type: laymansync
    sync-uri: git://github.com/gentoo/gentoo-rust.git
    masters: gentoo
    priority: 50

sage-on-gentoo
    location: /var/lib/layman/sage-on-gentoo
    sync-type: laymansync
    sync-uri: git://github.com/cschwan/sage-on-gentoo.git
    masters: gentoo science
    priority: 50

science
    location: /var/lib/layman/science
    sync-type: laymansync
    sync-uri: git://anongit.gentoo.org/proj/sci.git
    masters: gentoo
    priority: 50

local
    location: /var/cache/portage/local
    masters: gentoo science
    priority: 100

ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-pipe -O2 -march=bdver3"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/easy-rsa /usr/share/gnupg/qualified.txt"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/php/apache2-php7.0/ext-active/ /etc/php/cgi-php7.0/ext-active/ /etc/php/cli-php7.0/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="-pipe -O2 -march=bdver3"
DISTDIR="/var/cache/portage/distfiles"
EMERGE_DEFAULT_OPTS="--keep-going --nospinner"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs buildsyspkg compressdebug config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch parallel-install preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://ftp.spline.inf.fu-berlin.de/mirrors/gentoo/ http://ftp-stud.hs-esslingen.de/pub/Mirrors/gentoo/ http://distfiles.gentoo.org"
LANG="en_GB.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu"
MAKEOPTS="-j3"
PKGDIR="/var/cache/portage/packages"
PORTAGE_COMPRESS="xz"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --omit-dir-times --compress --force --whole-file --delete --stats --human-readable --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
USE="X a52 aac aacplus aacs acl acpi alsa amd64 appindicator archive audit avahi bash-completion bdplus berkdb bluetooth bluray branding bzip2 cairo caps cdda cddb cdio cdr celt cjk cli colord conntrack cracklib crypt cups cxx dbus declarative dirac dri dts dvb dvd dvdr egl emboss encode exif fam fax ffmpeg firefox flac fontconfig fortran gdbm geoclue geolocation gif glamor gmp gpm gstreamer gtk ibus iconv ipv6 jpeg jpeg2k kde kipi ladspa latex lcms ldap libinput libnotify libproxy libsecret lua_target_lua5-2 lv2 lz4 lzma lzo mad mmx mmxext mng modemmanager modplug modules mp3 mp4 mpeg mplayer mtp multilib multitarget mysql ncurses netlink networkmanager nls nptl ogg openal opencl openexr opengl openmax openmp opus pam pango pcap pch pcre pdf phonon plasma png policykit ppds pulseaudio qml qt3support qt4 qt5 readline rtmp samba scanner schroedinger sctp sdl seccomp semantic-desktop session speex spell sse sse2 ssl startup-notification subversion svg systemd tcpd theora threads tiff truetype udev udisks unicode upnp upnp-av upower usb v4l vaapi vdpau vorbis vpx wavpack wayland webp widgets x264 x265 xattr xcb xcomposite xinerama xml xrandr xscreensaver xv xvid xz zeroconf zlib" ABI_X86="64" ALSA_CARDS="hda-intel" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd 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" CALLIGRA_FEATURES="stage words flow sheets gemini" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="3dnow 3dnowext mmx mmxext sse sse2 sse3 ssse3 sse4 sse4a sse4_1 sse4_2" DRACUT_MODULES="btrfs caps systemd" ELIBC="glibc" ENLIGHTENMENT_MODULES="*" 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 ublox ubx" GRUB_PLATFORMS="coreboot efi-64 pc" INPUT_DEVICES="evdev joystick" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="de en en_GB ar fa" LIRC_DEVICES="devinput" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python2_7" PYTHON_TARGETS="python2_7 python3_4" RUBY_TARGETS="ruby20 ruby21" USERLAND="GNU" VIDEO_CARDS="amdgpu radeon radeonsi" 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:  CC, CPPFLAGS, CTARGET, CXX, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON

=================================================================
                        Package Settings
=================================================================

kde-base/kdelibs-4.14.15-r1::gentoo was built with the following:
USE="acl alsa bzip2 crypt handbook jpeg2k lzma nls openexr opengl (policykit) spell ssl udev udisks upower zeroconf (-altivec) (-aqua) -debug -doc (-fam) -kerberos -libressl -test" ABI_X86="64" CPU_FLAGS_X86="3dnow mmx sse sse2"
CFLAGS="-pipe -O2 -march=bdver3 -g"
CXXFLAGS="-pipe -O2 -march=bdver3 -g"


kde-apps/libkcddb-15.08.3::gentoo was built with the following:
USE="handbook musicbrainz (-aqua) -debug" ABI_X86="64"


kde-base/baloo-4.14.3::gentoo was built with the following:
USE="minimal (-aqua) -debug" ABI_X86="64"


kde-apps/kdepim-common-libs-4.14.10::gentoo was built with the following:
USE="google (-aqua) -debug" ABI_X86="64"
CFLAGS="-pipe -O2 -march=bdver3 -g"
CXXFLAGS="-pipe -O2 -march=bdver3 -g"


kde-apps/kontact-4.14.10::gentoo was built with the following:
USE="handbook (-aqua) -debug" ABI_X86="64"
CFLAGS="-pipe -O2 -march=bdver3 -g"
CXXFLAGS="-pipe -O2 -march=bdver3 -g"


sys-devel/gcc-5.3.0::gentoo was built with the following:
USE="cilk cxx fortran gcj go graphite (multilib) nls nptl openmp (policykit) sanitize (-altivec) (-awt) -debug -doc (-fixed-point) (-hardened) -jit (-libssp) (-multislot) -nopie -nossp -objc -objc++ -objc-gc -regression-test -vanilla" ABI_X86="64"


media-libs/musicbrainz-5.0.1::gentoo was built with the following:
USE="(policykit) -examples -test" ABI_X86="64"


app-misc/strigi-0.7.8-r1::gentoo was built with the following:
USE="dbus exif ffmpeg inotify qt4 -clucene -debug (-fam) -libav (-log) -test" ABI_X86="64"
Comment 4 Brian Dolbec (RETIRED) gentoo-dev 2016-01-03 09:49:19 UTC
First, revdep-rebuild, both the old bash version and the new python version do NOT do dependency ordering.  It determines the broken pkgs that need rebuilding and calls emerge with that list of pkgs.

After that all merge ordering is done by emerge.

Re-assigning to dev-portage for now.
Comment 5 Zac Medico gentoo-dev 2016-01-04 06:22:24 UTC
(In reply to Dennis Schridde from comment #0)
> I have the suspicion that revdep-rebuild uses a wrong build-order when I run
> "revdep-rebuild --library 'libstdc++.so.6' -- --exclude gcc".

Please attach the output of the revdep-rebuild --pretend command, showing the build order chosen by emerge.
Comment 6 Dennis Schridde 2016-01-04 08:29:38 UTC
Created attachment 421848 [details]
genlop -l --date 'Jan 1'

(In reply to Zac Medico from comment #5)
> (In reply to Dennis Schridde from comment #0)
> > I have the suspicion that revdep-rebuild uses a wrong build-order when I run
> > "revdep-rebuild --library 'libstdc++.so.6' -- --exclude gcc".
> 
> Please attach the output of the revdep-rebuild --pretend command, showing
> the build order chosen by emerge.

Is it possible to get the messages belonging to one run of emerge from a logfile? In the meantime I ran revdep-rebuild repeatedly until everything was rebuilt.

Until then, I can only give you the output of:
# genlop -l --date 'Jan 1'
Jan 1st was just a regular update, with the rebuild runs beginning on Jan 2nd.
Comment 7 Zac Medico gentoo-dev 2016-01-04 16:47:13 UTC
(In reply to Dennis Schridde from comment #1)
> Created attachment 421726 [details]
> build.log

This log shows kde-apps/libkcddb-15.08.3 failing due to a bunch of undefined references involving musicbrainz.

(In reply to Dennis Schridde from comment #6)
> Created attachment 421848 [details]
> genlop -l --date 'Jan 1'

The log shows media-libs/musicbrainz-5.0.1 before kde-apps/libkcddb-15.08.3 so the ordering of these 2 packages with respect to on another appears to be correct:

Sun Jan  3 10:27:13 2016 >>> media-libs/musicbrainz-5.0.1
[more packages]
Sun Jan  3 21:29:03 2016 >>> kde-apps/libkcddb-15.08.3

> (In reply to Zac Medico from comment #5)
> > Please attach the output of the revdep-rebuild --pretend command, showing
> > the build order chosen by emerge.
> 
> Is it possible to get the messages belonging to one run of emerge from a
> logfile? In the meantime I ran revdep-rebuild repeatedly until everything
> was rebuilt.

We'd like to be able to *reproduce* the incorrect order. If we can't reproduce it, then that makes it much more difficult to fix. If you can show incorrect ordering with revdep-rebuild --pretend, then you have a reproducible problem.

> Until then, I can only give you the output of:
> # genlop -l --date 'Jan 1'
> Jan 1st was just a regular update, with the rebuild runs beginning on Jan
> 2nd.

As you can see above, the ordering between musicbrainz and libkcddb appears correct in the genlop output. We really need the revdep-rebuild --pretend output.
Comment 8 Dennis Schridde 2016-01-04 18:45:07 UTC
(In reply to Zac Medico from comment #7)
> As you can see above, the ordering between musicbrainz and libkcddb appears
> correct in the genlop output. We really need the revdep-rebuild --pretend
> output.

I don't think there is any way that I could give you the output of `revdep-rebuild --pretend` as it was on January 2nd, as all packages (except cdrdao, bug #569344) have already been rebuilt manually - I don't have a backup of the system partition which I could use to try to reproduce the state of January 2nd. If emerge keeps no track of the arguments it was called with or the packages it decided to emerge, I fear we'll have to drop the issue.

Contrary to my prior statement and as you might have noticed from genlop's output, I actually rebuilt all of /var/tmp/portage/*/*, rebuilt kdelibs (noticing an unresolved symbol in /usr/lib64/libkio.so.*) and then was finally able to rebuilt the rest of /var/tmp/portage/*/*.

(In reply to Zac Medico from comment #7)
> (In reply to Dennis Schridde from comment #6)
> > Created attachment 421848 [details]
> > genlop -l --date 'Jan 1'
> 
> The log shows media-libs/musicbrainz-5.0.1 before kde-apps/libkcddb-15.08.3
> so the ordering of these 2 packages with respect to on another appears to be
> correct:
> 
> Sun Jan  3 10:27:13 2016 >>> media-libs/musicbrainz-5.0.1
> [more packages]
> Sun Jan  3 21:29:03 2016 >>> kde-apps/libkcddb-15.08.3

There is a gap in emerges between (roughly) 6 p.m. and 9 p.m. This is likely the result of the original revdep-rebuild run finishing and me later trying to rebuild the remaining / failed packages. One of these packages was libkcddb, which was rebuilt successfully at half past nine. Sadly I have no way of knowing at which position libkcddb was originally scheduled to be rebuild (s.a.).
Comment 9 Dennis Schridde 2016-01-04 18:47:05 UTC
Slightly more information can be found in bug #570686, where I luckily have a (very) short excerpt of `emerge -pv --resume`, showing that baloo was scheduled to be rebuild after a package trying to link against it.
Comment 10 Dennis Schridde 2016-01-04 18:47:57 UTC
*** Bug 570686 has been marked as a duplicate of this bug. ***