Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 612486 - portage: --verbose-conflicts does not show all conflicts
Summary: portage: --verbose-conflicts does not show all conflicts
Status: CONFIRMED
Alias: None
Product: Portage Development
Classification: Unclassified
Component: Core - Interface (emerge) (show other bugs)
Hardware: All Linux
: Normal normal (vote)
Assignee: Portage team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2017-03-13 08:53 UTC by Kent Fredric (IRC: kent\n) (RETIRED)
Modified: 2017-03-14 19:50 UTC (History)
0 users

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Kent Fredric (IRC: kent\n) (RETIRED) gentoo-dev 2017-03-13 08:53:00 UTC
sudo -i emerge -vat1 --verbose-conflicts x11-base/xorg-server:0/1.19.2= 

...

 (x11-base/xorg-server-1.19.2:0/1.19.2::gentoo, ebuild scheduled for merge) pulled in by
    x11-base/xorg-server:0/1.19.2= (Argument)
    (and 1 more with the same problem)

  (x11-base/xorg-server-1.18.4:0/1.18.4::gentoo, ebuild scheduled for merge) pulled in by
    x11-base/xorg-server:0/1.18.4= required by (x11-drivers/xf86-input-wacom-0.33.0:0/0::gentoo, installed)
    (and 1 more with the same problem)

  (x11-base/xorg-server-1.19.1:0/1.19.1::gentoo, installed) pulled in by
    x11-base/xorg-server:0/1.19.1= required by (x11-drivers/xf86-input-libinput-0.23.0:0/0::gentoo, installed)                                                                                                 
    x11-base/xorg-server:0/1.19.1= required by (x11-drivers/xf86-input-evdev-2.10.5:0/0::gentoo, installed)                                                                                               
    x11-base/xorg-server:0/1.19.1= required by (x11-drivers/xf86-video-vesa-2.3.4:0/0::gentoo, installed)
    x11-base/xorg-server:0/1.19.1= required by (x11-drivers/xf86-video-nv-2.1.21:0/0::gentoo, installed)
    x11-base/xorg-server:0/1.19.1= required by (x11-drivers/xf86-input-vmmouse-13.1.0:0/0::gentoo, installed)
    x11-base/xorg-server:0/1.19.1= required by (x11-drivers/xf86-video-nouveau-1.0.13:0/0::gentoo, installed)
    x11-base/xorg-server:0/1.19.1= required by (x11-drivers/xf86-input-mouse-1.9.2:0/0::gentoo, installed)
    x11-base/xorg-server:0/1.19.1= required by (x11-drivers/xf86-input-synaptics-1.9.0:0/0::gentoo, installed)
    x11-base/xorg-server:0/1.19.1= required by (x11-drivers/xf86-video-dummy-0.3.8:0/0::gentoo, installed)
    x11-base/xorg-server:0/1.19.1= required by (x11-drivers/xf86-video-fbdev-0.4.4:0/0::gentoo, installed)
    x11-base/xorg-server:0/1.19.1= required by (x11-drivers/xf86-input-keyboard-1.9.0:0/0::gentoo, installed)
    (and 11 more with the same problems)

...

NOTE: Use the '--verbose-conflicts' option to display parents omitted above

....

sys-apps/portage-9999::gentoo was built with the following:
USE="doc (ipc) native-extensions xattr -build -epydoc (-selinux)" ABI_X86="64" LINGUAS="-ru" PYTHON_TARGETS="python3_4 python3_5 -pypy -python2_7 -python3_6"


git --no-pager -C /usr/portage/distfiles/git3-src/proj_portage.git/ log --format=fuller -1
commit 9e0f0364ffb187ad784f3ba63a02b8e170d72de0
Author:     Mike Frysinger <vapier@gentoo.org>
AuthorDate: Mon Jun 13 00:21:51 2016 -0400
Commit:     Mike Frysinger <vapier@gentoo.org>
CommitDate: Fri Mar 10 14:58:30 2017 -0800



Portage 2.3.4 (python 3.5.3-final-0, default/linux/amd64/13.0, gcc-6.3.0, glibc-2.24-r1, 4.8.5-gentoo x86_64)
=================================================================
                         System Settings
=================================================================
System uname: Linux-4.8.5-gentoo-x86_64-Intel-R-_Core-TM-_i5-2410M_CPU_@_2.30GHz-with-gentoo-2.3
KiB Mem:     8017708 total,    454160 free
KiB Swap:   20478972 total,  18899184 free
Timestamp of repository gentoo: Sun, 12 Mar 2017 14:30:01 +0000
sh bash 4.4_p12
ld GNU ld (Gentoo 2.26.1 p1.0) 2.26.1
ccache version 3.3.3 [enabled]
app-shells/bash:          4.4_p12::gentoo
dev-java/java-config:     2.2.0-r3::gentoo
dev-lang/perl:            5.24.1-r1::local-portage
dev-lang/python:          2.7.13::gentoo, 3.4.6::gentoo, 3.5.3::gentoo
dev-util/ccache:          3.3.3::gentoo
dev-util/cmake:           3.7.2::gentoo
dev-util/pkgconfig:       0.29.1::gentoo
sys-apps/baselayout:      2.3::gentoo
sys-apps/openrc:          0.24::gentoo
sys-apps/sandbox:         2.10-r4::gentoo
sys-devel/autoconf:       2.13::gentoo, 2.69-r2::gentoo
sys-devel/automake:       1.11.6-r2::gentoo, 1.14.1-r1::gentoo, 1.15-r2::gentoo
sys-devel/binutils:       2.26.1::gentoo, 2.27::gentoo
sys-devel/gcc:            4.9.4::gentoo, 5.4.0-r3::gentoo, 6.3.0::gentoo
sys-devel/gcc-config:     1.8-r1::gentoo
sys-devel/libtool:        2.4.6-r3::gentoo
sys-devel/make:           4.2.1::gentoo
sys-kernel/linux-headers: 4.10::gentoo (virtual/os-headers)
sys-libs/glibc:           2.24-r1::gentoo
Repositories:

gentoo
    location: /usr/portage
    sync-type: rsync
    sync-uri: rsync://ember/gentoo-portage/
    priority: -1000
    sync-rsync-extra-opts:  --no-compress --delete-delay --delay-updates --fuzzy --temp-dir=/var/tmp/rsync/

...

ACCEPT_KEYWORDS="amd64 ~amd64"
ACCEPT_LICENSE="* -@EULA"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -pipe -mtune=native -march=native"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /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/apache2-php7.1/ext-active/ /etc/php/cgi-php7.0/ext-active/ /etc/php/cgi-php7.1/ext-active/ /etc/php/cli-php7.0/ext-active/ /etc/php/cli-php7.1/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 -mtune=native -march=native"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS="--alert y --changed-deps y --changed-use --complete-graph=n --with-bdeps=n --deep --dynamic-deps n --keep-going y --newuse --verbose-conflicts --unordered-display --autounmask n --backtrack=0 --autounmask-write n"
FCFLAGS="-O2 -pipe"
FEATURES="assume-digests binpkg-logs ccache cgroup clean-logs compress-build-logs compressdebug config-protect-if-modified distlocks fixlafiles ipc-sandbox merge-sync metadata-transfer network-sandbox news parallel-fetch parallel-install preserve-libs protect-owned sandbox sfperms sign split-elog split-log splitdebug strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
FFLAGS="-O2 -pipe"
GENTOO_MIRRORS="http://ember./ http://distfiles.gentoo.org/ "
INSTALL_MASK="/usr/lib/debug/.build-id/"
LANG="en_NZ.UTF8"
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
MAKEOPTS=" -j3 --load-average=4"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_EXTRA_OPTS=" --no-compress --delete-delay --delay-updates --fuzzy --temp-dir=/var/tmp/rsync/"
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 --exclude=/.git"
PORTAGE_TMPDIR="/var/tmp"
USE="X acl amd64 avx berkdb bzip2 cli cracklib crypt cxx dbus dri fortran gdbm iconv ipv6 jpeg jpeg2k mmx modules multilib ncurses netlink2 nls nptl opengl openmp pam pcre png qml qt4 readline seccomp session sse sse2 sse4_1 sse4_2 ssl ssse3 tcpd tiff unicode vim-syntax xattr xinerama zlib" ABI_X86="32 64" 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" 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" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="aes avx mmx mmxext popcnt sse sse2 sse3 sse4_1 sse4_2 ssse3" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock isync itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 timing tsip tripmate tnt ublox ubx" INPUT_DEVICES="libinput keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LIBREOFFICE_EXTENSIONS="presenter-console presenter-minimizer" LLVM_TARGETS="BPF NVPTX" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php5-6" PYTHON_SINGLE_TARGET="python3_5" PYTHON_TARGETS="python3_5" RUBY_TARGETS="ruby23 ruby24" USERLAND="GNU" VIDEO_CARDS="amdgpu fbdev intel nouveau radeon radeonsi vesa dummy v4l" 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"
USE_PYTHON="3.5"
Unset:  CC, CPPFLAGS, CTARGET, CXX, LC_ALL, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS
Comment 1 Zac Medico gentoo-dev 2017-03-13 19:26:53 UTC
It may be that it showed you all of the relevant atoms, but then told you that it omitted some atoms because it counted them incorrectly.

The flawed counting logic involves this num_all_specific_atoms variable:

https://gitweb.gentoo.org/proj/portage.git/tree/pym/_emerge/resolver/slot_collision.py?h=portage-2.3.4#n274

The variable is incremented when atoms are added to sets, which means that it can be incorrectly incremented when an atom that it adds to a set happens to be in that set already.
Comment 2 Brian Dolbec (RETIRED) gentoo-dev 2017-03-14 19:10:37 UTC
Zac, should we not then just use the length of the set instead?  What other use does the count have?
Comment 3 Zac Medico gentoo-dev 2017-03-14 19:50:53 UTC
(In reply to Brian Dolbec from comment #2)
> Zac, should we not then just use the length of the set instead?  What other
> use does the count have?

The count is not used for anything else so using the set lengths will work. Something like this:

    num_all_specific_atoms = sum(len(value)
        for value in collision_reasons.values())

There's another issue with the count, involving the fix for bug 374423 here:

https://gitweb.gentoo.org/proj/portage.git/tree/pym/_emerge/resolver/slot_collision.py?h=portage-2.3.4#n456

In this case, there's an atom that no longer triggers a conflict, because autounmask has changed the parent package's USE such that conditional USE dependencies are now satisfied. In case this information is relevant somehow, we should probably display the atom with some kind of indication that the conflict is solved by autounmask USE changes.