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

Bug 161422

Summary: portage-2.1.2_rc4-r7: Multiple versions within a single package slot error when using --fetchonly
Product: Portage Development Reporter: Paul Varner (RETIRED) <fuzzyray>
Component: CoreAssignee: Portage team <dev-portage>
Status: RESOLVED FIXED    
Severity: minor Keywords: InVCS, REGRESSION
Priority: High    
Version: unspecified   
Hardware: All   
OS: Linux   
See Also: https://bugs.gentoo.org/show_bug.cgi?id=607252
https://bugs.gentoo.org/show_bug.cgi?id=922038
https://bugs.gentoo.org/show_bug.cgi?id=927301
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 377365, 147007, 314579    

Description Paul Varner (RETIRED) gentoo-dev 2007-01-10 22:22:00 UTC
When using emerge to download the sources for multiple versions of a package, it now errors out with:

$ emerge --fetchonly =gentoolkit-dev-0.2.6.1 =gentoolkit-dev-0.2.5
Calculating dependencies \
!!! Multiple versions within a single package slot have been
!!! pulled into the dependency graph:

('ebuild', '/', 'app-portage/gentoolkit-dev-0.2.5', 'merge') (no parents)
('ebuild', '/', 'app-portage/gentoolkit-dev-0.2.6.1', 'merge') (no parents)

While I think this behavior is correct in the sense that you have an invalid depgraph. It is a regression from previous versions and loss of convenience.

Reproducible: Always




Portage 2.1.2_rc4-r7 (default-linux/x86/2006.1/desktop, gcc-4.1.1, glibc-2.4-r4, 2.6.17-gentoo-r8 i686)
=================================================================
System uname: 2.6.17-gentoo-r8 i686 Intel(R) Pentium(R) 4 CPU 1.80GHz
Gentoo Base System version 1.12.8
Last Sync: Wed, 10 Jan 2007 06:50:01 +0000
ccache version 2.4 [enabled]
dev-java/java-config: 1.3.7, 2.0.31
dev-lang/python:     2.4.4
dev-python/pycrypto: 2.0.1-r5
dev-util/ccache:     2.4-r6
sys-apps/sandbox:    1.2.18.1
sys-devel/autoconf:  2.13, 2.61
sys-devel/automake:  1.4_p6, 1.5, 1.6.3, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10
sys-devel/binutils:  2.17
sys-devel/gcc-config: 1.3.14
sys-devel/libtool:   1.5.22
virtual/os-headers:  2.6.19
ACCEPT_KEYWORDS="x86 ~x86"
AUTOCLEAN="yes"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-march=pentium4 -O2 -pipe"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/chroot/dns /etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/share/X11/xkb /usr/share/config /var/bind"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/gconf /etc/java-config/vms/ /etc/revdep-rebuild /etc/terminfo"
CXXFLAGS="-march=pentium4 -O2 -pipe"
DISTDIR="/usr/portage/distfiles"
EMERGE_DEFAULT_OPTS=""
FEATURES="autoconfig ccache cvs distlocks fixpackages metadata-transfer sandbox sfperms strict"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://gentoo.osuosl.org"
LINGUAS="en"
PKGDIR="/usr/portage/packages"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --delete-after --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY="/usr/local/portage /usr/portage/local/layman/webapps-experimental /usr/portage/local/layman/sunrise"
SYNC="rsync://rsync.namerica.gentoo.org/gentoo-portage"
USE="X acpi alsa apache2 arts artswrappersuid audiofile berkdb bitmap-fonts cdr cli cracklib crypt cups dlloader dri dvd eds emboss encode fam fbcon firefox flac fortran gdbm gif gpm gstreamer gtk iconv imlib isdnlog java javascript jpeg kde kdeenablefinal libg++ logrotate mad maildir mikmod mmx motif mp3 mpeg ncurses nls nptl nptlonly nsplugin ogg opengl pam pcre pdf perl png ppds pppd python qt3 quicktime readline reflection samba sasl sdl session spell spl sse ssl tcltk tcpd tiff truetype truetype-fonts type1-fonts udev usb vim-syntax vorbis win32codecs x86 xorg xscreensaver xv zlib" ALSA_CARDS="intel8x0" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mulaw multi null plug rate route share shm softvol" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LINGUAS="en" USERLAND="GNU" VIDEO_CARDS="nvidia nv vesa"
Unset:  CTARGET, INSTALL_MASK, LANG, LC_ALL, LDFLAGS, MAKEOPTS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Zac Medico gentoo-dev 2007-01-11 00:04:16 UTC
This is fixed in svn r5533:5536.
Comment 2 Zac Medico gentoo-dev 2007-01-11 04:18:12 UTC
This has been released in 2.1.2_rc4-r8.
Comment 3 Larry the Git Cow gentoo-dev 2024-01-16 16:03:15 UTC
The bug has been referenced in the following commit(s):

https://gitweb.gentoo.org/proj/portage.git/commit/?id=a5078e5774932103d4ad367de4c6bf130a6da34f

commit a5078e5774932103d4ad367de4c6bf130a6da34f
Author:     Zac Medico <zmedico@gentoo.org>
AuthorDate: 2024-01-15 23:10:03 +0000
Commit:     Zac Medico <zmedico@gentoo.org>
CommitDate: 2024-01-16 16:01:53 +0000

    emerge: backtrack consistently regardless of --fetchonly
    
    Make the _accept_blocker_conflicts method always return
    True when backtracking is enabled, so that backtracking
    results will be identical regardless of options that
    _accept_blocker_conflicts treats specially. This way,
    conflicts will only be accepted when backtracking is
    disabled or all backtracking tries have been exhausted.
    Make --nodeps imply --backtrack=0, since backtracking
    is only useful with dependencies.
    
    Make _eliminate_rebuilds return early if there are
    slot conflicts, since the merge list is invalid anyway,
    and its possible that state inconsistencies could
    trigger unexpected exceptions as in bug 922038. Make
    the KeyError from bug 922038 a warning, and include
    relevant information to help trace the inconsistency
    back to the _eliminate_rebuilds method or some other
    source like  _solve_non_slot_operator_slot_conflicts.
    
    Bug: https://bugs.gentoo.org/161422
    Bug: https://bugs.gentoo.org/607252
    Bug: https://bugs.gentoo.org/675748
    Bug: https://bugs.gentoo.org/922038
    Signed-off-by: Zac Medico <zmedico@gentoo.org>

 lib/_emerge/depgraph.py | 63 +++++++++++++++++++++++++++++++++++++++++++++----
 man/emerge.1            |  5 ++--
 2 files changed, 61 insertions(+), 7 deletions(-)