Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!

Bug 564572

Summary: virtual/podofo-build sticks calibre in endless U/UD loop when running @preserved-rebuild
Product: Portage Development Reporter: N. Andrew Walsh <n.andrew.walsh>
Component: Core - DependenciesAssignee: Portage team <dev-portage>
Status: CONFIRMED ---    
Severity: normal CC: esigra, kensington, sam
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on: 598444    
Bug Blocks: 240323    

Description N. Andrew Walsh 2015-10-31 15:00:13 UTC
the ebuild for calibre-2.35 contains the following:

COMMON_DEPEND="
        >=app-text/podofo-0.8.2:=

as well as:

DEPEND="${COMMON_DEPEND}
        >=dev-python/setuptools-0.6_rc5
        >=virtual/podofo-build-0.8.2"

for whatever reason, 'emerge -uD world' does not cause virtual/podofo-build to update, so it stays at 0.9.2 while app-text/podofo gets updated to 0.9.3. The next run of 'emerge @presereved-rebuild then causes a downgrade of podofo back to 0.9.2, and a remerge of calibre. The next 'emerge -uD world' does not see the dependency, and updates podofo again.

This goes on forever until I manually run 'emerge -1 podofo-build && emerge calibre' after deleting /usr/lib64/libpodofo-so.0.9.2. 

Is there something wrong with how the ebuild is handling its dependencies?

Cheers.


Reproducible: Always

Steps to Reproduce:
1. emerge calibre against podofo-0.9.2 and virtual/podofo-build-0.9.2
2. emerge -uD world, which updates podofo but not podofo-build
3. emerge @preserved-rebuild
4. GOTO 1.
Actual Results:  
upgrade/downgrade loop 

Expected Results:  
checked that the dependency for virtual/podofo-build was also updated on 'emerge -uD world'
Comment 1 Michael Palimaka (kensington) gentoo-dev 2015-11-10 15:27:00 UTC
Can you add emerge --info please?
Comment 2 N. Andrew Walsh 2015-11-19 09:03:41 UTC
sure:

$ emerge --info
Portage 2.2.25 (python 3.5.0-final-0, default/linux/amd64/13.0, gcc-4.8.4, glibc-2.22-r1, 4.3.0-gentoo x86_64)
=================================================================
System uname: Linux-4.3.0-gentoo-x86_64-AMD_Phenom-tm-_9950_Quad-Core_Processor-with-gentoo-2.2
KiB Mem:     4056644 total,    128668 free
KiB Swap:    2929668 total,   2764060 free
Timestamp of repository gentoo: Wed, 18 Nov 2015 10:15:01 +0000
sh bash 4.3_p42
ld GNU ld (Gentoo 2.25.1 p1.1) 2.25.1
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.0::gentoo
dev-lang/python:          2.7.10-r3::gentoo, 3.3.5-r1::gentoo, 3.4.3-r2::gentoo, 3.5.0-r1::gentoo
dev-util/ccache:          3.2.4::gentoo
dev-util/cmake:           3.4.0::gentoo
dev-util/pkgconfig:       0.29::gentoo
sys-apps/baselayout:      2.2::gentoo
sys-apps/openrc:          0.18.3::gentoo
sys-apps/sandbox:         2.9::gentoo
sys-devel/autoconf:       2.13::gentoo, 2.69-r1::gentoo
sys-devel/automake:       1.9.6-r3::gentoo, 1.10.3::gentoo, 1.11.6-r1::gentoo, 1.12.6::gentoo, 1.13.4::gentoo, 1.14.1::gentoo, 1.15::gentoo
sys-devel/binutils:       2.25.1-r1::gentoo
sys-devel/gcc:            4.8.4::gentoo, 4.9.3::gentoo
sys-devel/gcc-config:     1.8::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: /usr/portage
    sync-type: rsync
    sync-uri: rsync://rsync.europe.gentoo.org/gentoo-portage
    priority: -1000

x-portage
    location: /usr/local/portage
    masters: gentoo
    priority: 0

emc
    location: /var/lib/layman/emc
    masters: gentoo
    priority: 50

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

rebutia
    location: /var/lib/layman/rebutia
    sync-type: git
    sync-uri: https://anongit.gentoo.org/git/user/rebutia.git
    masters: gentoo
    priority: 50

ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA dlj-1.1 Mendeley-EULA Google-TOS"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-march=athlon64 -O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/lib64/libreoffice/program/sofficerc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/polkit-1/actions /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/splash /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-march=athlon64 -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--autounmask=n"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs config-protect-if-modified distlocks ebuild-locks fixlafiles merge-sync news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="ftp://gentoo.lagis.at/ http://gentoo.mirror.dkm.cz/pub/gentoo/ http://ftp.fi.muni.cz/pub/linux/gentoo/ http://gentoo.mirror.web4u.cz/ ftp://gentoo.mirror.web4u.cz/ ftp://ftp.klid.dk/gentoo/ http://mirror.uni-c.dk/pub/gentoo/ ftp://ftp.spline.inf.fu-berlin.de/mirrors/gentoo/ http://mirror.netcologne.de/gentoo/ ftp://ftp.wh2.tu-dresden.de/pub/mirrors/gentoo ftp://ftp.join.uni-muenster.de/pub/linux/distributions/gentoo http://gentoo.mneisen.org/ http://de-mirror.org/distro/gentoo/ ftp://ftp.uni-erlangen.de/pub/mirrors/gentoo ftp://ftp.tu-clausthal.de/pub/linux/gentoo/ http://ftp.spline.inf.fu-berlin.de/mirrors/gentoo/ ftp://ftp-stud.hs-esslingen.de/pub/Mirrors/gentoo/ ftp://de-mirror.org/distro/gentoo/ http://linux.rz.ruhr-uni-bochum.de/download/gentoo-mirror/ http://ftp6.uni-erlangen.de/pub/mirrors/gentoo ftp://linux.rz.ruhr-uni-bochum.de/gentoo-mirror/ ftp://mirror.netcologne.de/gentoo/ ftp://ftp6.uni-erlangen.de/pub/mirrors/gentoo ftp://ftp6.uni-muenster.de/pub/linux/distributions/gentoo ftp://sunsite.informatik.rwth-aachen.de/pub/Linux/gentoo http://ftp.uni-erlangen.de/pub/mirrors/gentoo http://ftp-stud.hs-esslingen.de/pub/Mirrors/gentoo/ ftp://ftp.ipv6.uni-muenster.de/pub/linux/distributions/gentoo ftp://gentoo.inf.elte.hu/ http://gentoo.inf.elte.hu/ http://ftp.heanet.ie/pub/gentoo/ ftp://ftp.heanet.ie/pub/gentoo/ ftp://ftp.df.lth.se/pub/gentoo/ http://mirror.switch.ch/ftp/mirror/gentoo/ ftp://mirror.switch.ch/mirror/gentoo/ http://gentoo.kiev.ua/ftp/"
LANG="en_US.utf8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS="-j5"
PKGDIR="/usr/portage/packages"
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 Xaw3d a52 aac acl acpi aim alsa amd64 apm audiofile bash-completion berkdb bzip2 cairo cddb cdinstall cdparanoia cdr clamav cli consolekit cracklib crypt css curl curlwrappers cxx dbus directfb dri dvd dvdr dvdread encode fbcondecor ffmpeg fftw firefox flac fortran ftp gdbm geoip gif gimp glut graphite gstreamer gtk hddtemp iconv icq ieee1394 imagemagick imap imlib ipv6 jack java java6 javascript jikes joystick jpeg kde kde4 lame latex ldap libsamplerate libwww lm_sensors mad matroska minimal mmx mmxext modules motif mp3 mpeg mplayer multilib ncurses nls nptl nsplugin offensive ogg openal opengl openmp openssl oscar pam pcre pdf perl png policykit posix python qt5 quicktime raw readline real rss scanner seccomp semantic-desktop session sndfile sockets speex spell sse sse2 ssl suid svg symlink syslog tcl tcpd tetex theora threads tidy tiff tk translucency truetype udev unicode usb vaapi vdpau videos vorbis win32codecs wmf wxwindows x264 xattr xcomposite xetex xine xml xpm xscreensaver xuby_targets_ruby20 xulrunner xv xvid zlib" ABI_X86="64 32" ALSA_CARDS="hda-intel usb-audio" 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="kexi words flow plan sheets stage tables krita karbon braindump author" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="3dnow 3dnowext mmx mmxext popcnt sse sse2 sse3 sse4a" CURL_SSL="openssl" 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 ublox ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LINGUAS="en en_US en_US.utf8 de de_DE de_DE.utf8" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-5" PYTHON_SINGLE_TARGET="python3_5" PYTHON_TARGETS="python3_5 python2_7" RUBY_TARGETS="ruby22" USERLAND="GNU" VIDEO_CARDS="nvidia" 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, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS, USE_PYTHON
Comment 3 Zac Medico gentoo-dev 2015-12-06 19:41:31 UTC
(In reply to N. Andrew Walsh from comment #0)
> for whatever reason, 'emerge -uD world' does not cause virtual/podofo-build
> to update, so it stays at 0.9.2 while app-text/podofo gets updated to 0.9.3.

Assuming that app-text/calibre is listed in /var/lib/portage/world, an explanation for this is that --with-bdeps=y is not enabled, so calibre's DEPEND is not pulled into the dependency graph because calibre is not currently scheduled for rebuild or upgrade.

> The next run of 'emerge @presereved-rebuild then causes a downgrade of
> podofo back to 0.9.2, and a remerge of calibre. The next 'emerge -uD world'
> does not see the dependency, and updates podofo again.

There are a number of things that could trigger this downgrade. You might check a couple of things:

1) Verify that virtual/podofo-build-0.9.3 is not masked:
     emerge -pv --nodeps =virtual/podofo-build-0.9.3

2) Try running emerge --depclean before emerge @preserved-rebuild, since @preserved-rebuild can pull in packages which are eligible for removal by emerge --depclean, leading to undesirable results in many cases.
Comment 4 Zac Medico gentoo-dev 2015-12-06 19:48:08 UTC
(In reply to Zac Medico from comment #3)
3) Try running 'emerge -uD --selective=n @preserved-rebuild', since that might help it pull in the virtual/podofo-build update. You need to use --selective=n with -u, since -u implies --selective which makes @preserved-rebuild ineffective.
Comment 5 Zac Medico gentoo-dev 2015-12-06 20:09:01 UTC
0) Add --with-bdeps=y to your emerge -uD @world command. It results in a more complete update, mitigating issues that may result from missed updates for things like podofo-build.
Comment 6 Zac Medico gentoo-dev 2017-05-10 20:33:31 UTC
We've got --with-bdeps=y automatically enabled in portage-2.3.5 (bug 598444).