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

Bug 390359

Summary: portage-2.2.0_alpha74: Display of blockers broken
Product: Portage Development Reporter: Dennis Schridde <dschridde+gentoobugs>
Component: Core - DependenciesAssignee: Portage team <dev-portage>
Status: RESOLVED FIXED    
Severity: normal CC: esigra
Priority: Normal    
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on: 385391    
Bug Blocks: 300071    

Description Dennis Schridde 2011-11-13 09:23:48 UTC
emerge -uDN @world -pv aborts with following message:
---
[...]
[blocks B      ] app-office/libreoffice-bin ("app-office/libreoffice-bin" is blocking app-office/libreoffice-3.4.4.2-r1)
[blocks B      ] app-office/libreoffice ("app-office/libreoffice" is blocking app-office/libreoffice-bin-3.4.3.2-r1)

Total: 33 packages (25 upgrades, 5 new, 1 in new slot, 2 reinstalls), Size of downloads: 320,165 kB
Conflict: 2 blocks (2 unsatisfied)

!!! Multiple package instances within a single package slot have been pulled
!!! into the dependency graph, resulting in a slot conflict:

sys-devel/llvm:0

  (sys-devel/llvm-2.8-r2::gentoo, installed) pulled in by
    =sys-devel/llvm-2.8* required by (www-plugins/lightspark-0.5.2.1::gentoo, installed)

  (sys-devel/llvm-2.9-r2::gentoo, ebuild scheduled for merge) pulled in by
    ~sys-devel/llvm-2.9[multitarget=] required by (sys-devel/clang-2.9-r1::gentoo, ebuild scheduled for merge)

sys-apps/gawk:0

  (sys-apps/gawk-4.0.0::gentoo, ebuild scheduled for merge) pulled in by
    (no parents that aren't satisfied by other packages in this slot)

  (sys-apps/gawk-3.1.8::gentoo, installed) pulled in by
    <sys-apps/gawk-4.0.0 required by (dev-db/virtuoso-server-6.1.3-r1::gentoo, installed)
    (and 1 more with the same problem)
---

The 2 blockers in the package list suggest that the slot conflict (which no doubt is real, but can be resolved by skipping the upgrade, s.b.) is not the actual reason for the aborted merge.
Instead the new version of libreoffice-l10n pulls in a newer version of libreoffice{,-bin}, and since there is no libreoffice-bin of that version, it pulls in libreoffice instead, which then blocks libreoffice-bin.
Hence I consider the displayed message misleading.

Package masking ">=app-office/libreoffice-l10n-3.4.4-r1" allows me to merge with following message:
---
[...]

WARNING: One or more updates have been skipped due to a dependency conflict:

sys-apps/gawk:0

  (sys-apps/gawk-4.0.0::gentoo, ebuild scheduled for merge) conflicts with
    <sys-apps/gawk-4.0.0 required by (dev-db/virtuoso-server-6.1.3-r1::gentoo, installed)

sys-devel/llvm:0

  (sys-devel/llvm-2.9-r2::gentoo, ebuild scheduled for merge) conflicts with
    =sys-devel/llvm-2.8* required by (www-plugins/lightspark-0.5.2.1::gentoo, installed)


!!! The following update(s) have been skipped due to unsatisfied dependencies
!!! triggered by backtracking:

sys-devel/clang:0
---

lightspark, clang and libreoffice-bin are in @world.

Reproducible: Always




Portage 2.2.0_alpha74 (default/linux/amd64/10.0/desktop/kde, gcc-4.6.2, glibc-2.13-r4, 3.1.0-gentoo-r1 x86_64)
=================================================================
System uname: Linux-3.1.0-gentoo-r1-x86_64-AMD_Athlon-tm-_64_X2_Dual_Core_Processor_5000+-with-gentoo-2.1
Timestamp of tree: Sun, 13 Nov 2011 07:45:01 +0000
distcc 3.1 x86_64-pc-linux-gnu [disabled]
app-shells/bash:          4.2_p10
dev-java/java-config:     2.1.11-r3
dev-lang/python:          2.7.2-r3, 3.2.2
dev-util/cmake:           2.8.6-r3
dev-util/pkgconfig:       0.26
sys-apps/baselayout:      2.1
sys-apps/openrc:          0.9.4
sys-apps/sandbox:         2.5
sys-devel/autoconf:       2.13, 2.68
sys-devel/automake:       1.9.6-r3, 1.10.3, 1.11.1-r1
sys-devel/binutils:       2.21.1-r1
sys-devel/gcc:            4.5.3-r1, 4.6.2
sys-devel/gcc-config:     1.4.1-r1
sys-devel/libtool:        2.4-r4
sys-devel/make:           3.82-r3
sys-kernel/linux-headers: 2.6.39 (virtual/os-headers)
sys-libs/glibc:           2.13-r4
Repositories: gentoo kde sunrise local
Installed sets: @kdebase
ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-pipe -O2 -march=athlon64-sse3 -ftree-vectorize"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/themes/oxygen-gtk/gtk-2.0 /var/lib/neatx/home"
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="-pipe -O2 -march=athlon64-sse3 -ftree-vectorize"
DISTDIR="/var/cache/portage/distfiles"
EMERGE_DEFAULT_OPTS="--depclean-lib-check n --with-bdeps y --keep-going"
FEATURES="assume-digests binpkg-logs distlocks ebuild-locks fixlafiles news parallel-fetch preserve-libs protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync"
FFLAGS=""
GENTOO_MIRRORS="ftp://linux.rz.ruhr-uni-bochum.de/gentoo-mirror/ ftp://linux.rz.ruhr-uni-bochum.de/gentoo-mirror/ "
LANG="en_GB.UTF-8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,--hash-style=gnu -Wl,--hash-style=gnu"
LINGUAS="de"
MAKEOPTS="-j3"
PKGDIR="/var/cache/portage/packages"
PORTAGE_COMPRESS="xz"
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="/var/cache/portage/gentoo"
PORTDIR_OVERLAY="/var/cache/portage/layman/kde /var/cache/portage/layman/sunrise /var/cache/portage/local"
[...]
Unset:  CPPFLAGS, CTARGET, INSTALL_MASK, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Dennis Schridde 2011-11-13 09:30:14 UTC
(In reply to comment #0)
> ---
> !!! The following update(s) have been skipped due to unsatisfied dependencies
> !!! triggered by backtracking:
> 
> sys-devel/clang:0
> ---
P.S: It appears that this list is incomplete: gawk-4.0.0 was also obviously skipped.
Comment 2 Zac Medico gentoo-dev 2011-11-13 19:50:32 UTC
(In reply to comment #0)
> The 2 blockers in the package list suggest that the slot conflict (which no
> doubt is real, but can be resolved by skipping the upgrade, s.b.) is not the
> actual reason for the aborted merge.

Actually, you have multiple reasons for the aborted merge. Either the blockers or the slot conflicts would be enough to make it abort. It seems to me that emerge is behaving as designed, given the conflicts that you have. Can you suggest some way to improve it?

Note that the libreoffice blockers are fixed if you sync (see bug #390271). The slot conflicts might resolve automatically if you use a higher emerge backtrack setting, such as `--backtrack=30`.
Comment 3 Dennis Schridde 2011-11-13 22:04:21 UTC
(In reply to comment #2)
> (In reply to comment #0)
> > The 2 blockers in the package list suggest that the slot conflict (which no
> > doubt is real, but can be resolved by skipping the upgrade, s.b.) is not the
> > actual reason for the aborted merge.
> 
> Actually, you have multiple reasons for the aborted merge. Either the blockers
> or the slot conflicts would be enough to make it abort.
The slot conflicts alone (I p.masked >=libreoffice-l10n-3.4.4, which caused the block) do not cause an abort. They both will be resolved automatically by skipping the update.
So the reason for the aborted merge seems to be the blockers, only. However, portage suggests that the reason would be the slot conflicts, which appears to be wrong.
My suggestion: Print the blockers as the actual reason for the abort, not the slot conflicts.
Comment 5 Zac Medico gentoo-dev 2011-11-13 22:26:58 UTC
(In reply to comment #3)
> My suggestion: Print the blockers as the actual reason for the abort, not the
> slot conflicts.

The thing is, it doesn't know that the blockers are the only reason, because the blockers make it quit before it tries to find a solution for the slot conflicts.
Comment 6 Dennis Schridde 2011-11-14 08:48:59 UTC
(In reply to comment #5)
> (In reply to comment #3)
> > My suggestion: Print the blockers as the actual reason for the abort, not the
> > slot conflicts.
> 
> The thing is, it doesn't know that the blockers are the only reason, because
> the blockers make it quit before it tries to find a solution for the slot
> conflicts.
Could you apply the "slot conflict display" to blockers, too? And just display both? And possibly add the (short!) hint that slot conflicts can in some cases be resolved automatically by skipping upgrades ("... see manpage for more info")?
Or just resolve everything, if possible, before bailing out. Or does that take too long (runtime speed)?
Comment 7 Zac Medico gentoo-dev 2015-01-19 23:23:08 UTC
I think we can consider this fixed since 2.2.0_alpha180, by the following commit:

https://github.com/gentoo/portage/commit/f4058826bd2928fb9f12b5cac1d225d79e58c993