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

Bug 220341

Summary: emerge -uDp world continuously pulls in gcc-4.2.3 with multislot USE flag
Product: Gentoo Linux Reporter: Darren Dale <dsdale24>
Component: New packagesAssignee: Portage team <dev-portage>
Status: RESOLVED FIXED    
Severity: normal CC: evazquez
Priority: High Keywords: InVCS, REGRESSION
Version: unspecified   
Hardware: All   
OS: Linux   
Whiteboard:
Package list:
Runtime testing required: ---
Bug Depends on:    
Bug Blocks: 216231    
Attachments: output of emerge -uDNvp --debug world
detect and prevent multislot package reinstallation due to slot dependencies

Description Darren Dale 2008-05-05 10:23:46 UTC
Every time I run "emerge -uDp world", portage wants to remerge gcc-4.2.3:

$ sudo emerge -uDNvp world

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild     U ] sys-apps/gawk-3.1.6 [3.1.5-r5] USE="-nls" 1,818 kB
[ebuild     U ] media-libs/libid3tag-0.15.1b-r1 [0.15.1b] USE="-debug" 331 kB
[ebuild     U ] sys-apps/texinfo-4.12 [4.11-r1] USE="-nls -static" 1,353 kB
[ebuild   R   ] sys-devel/gcc-4.2.3  USE="doc fortran gtk mudflap multislot openmp (-altivec) -bootstrap -build -gcj (-hardened) -ip28 -ip32r10k -libffi (-multilib) (-n32) (-n64) -nls -nocxx -objc -objc++ -objc-gc -test -vanilla" 0 kB
[ebuild     U ] sys-apps/debianutils-2.28.5 [2.28.4] USE="-static" 136 kB
[ebuild     U ] sys-devel/libtool-2.2.4 [1.5.26] USE="-vanilla" 1,875 kB
[ebuild     U ] media-libs/t1lib-5.1.2 [5.1.1] USE="X doc" 1,829 kB
[ebuild  N    ] dev-python/numpy-1.0.4-r2  USE="lapack -debug" 0 kB

Total: 8 packages (6 upgrades, 1 new, 1 reinstall), Size of downloads: 7,340 kB


I just remerged gcc-4.2.3 yesterday, and the day before.

Reproducible: Always




$ emerge --info
Portage 2.1.5_rc6 (default-linux/amd64/2007.0/desktop, gcc-4.2.3, glibc-2.7-r2, 2.6.24-gentoo-r5 x86_64)
=================================================================
System uname: 2.6.24-gentoo-r5 x86_64 Dual Core AMD Opteron(tm) Processor 275
Timestamp of tree: Mon, 05 May 2008 10:00:01 +0000
app-shells/bash:     3.2_p39
dev-java/java-config: 1.3.7, 2.1.6
dev-lang/python:     2.5.2-r2
sys-apps/baselayout: 2.0.0
sys-apps/openrc:     0.2.3
sys-apps/sandbox:    1.2.18.1-r2
sys-devel/autoconf:  2.13, 2.62
sys-devel/automake:  1.5, 1.7.9-r1, 1.8.5-r3, 1.9.6-r2, 1.10.1-r1
sys-devel/binutils:  2.18-r1
sys-devel/gcc-config: 1.4.0-r4
sys-devel/libtool:   1.5.26
virtual/os-headers:  2.6.25-r1
ACCEPT_KEYWORDS="amd64 ~amd64"
CBUILD="x86_64-pc-linux-gnu"
CFLAGS="-O2 -march=k8 -mtune=k8 -pipe -fomit-frame-pointer"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/kde/3.5/env /usr/kde/3.5/share/config /usr/kde/3.5/shutdown /usr/kde/4.0/env /usr/kde/4.0/share/config /usr/kde/4.0/shutdown /usr/share/config /var/lib/hsqldb"
CONFIG_PROTECT_MASK="/etc/env.d /etc/env.d/java/ /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/terminfo /etc/texmf/web2c /etc/udev/rules.d"
CXXFLAGS="-O2 -march=k8 -mtune=k8 -pipe -fomit-frame-pointer"
DISTDIR="/usr/portage/distfiles"
FEATURES="collision-protect distlocks fixpackages parallel-fetch sandbox sfperms strict unmerge-orphans userfetch"
GENTOO_MIRRORS="http://distfiles.gentoo.org http://distro.ibiblio.org/pub/linux/distributions/gentoo"
LANG="en_US.UTF-8"
LC_ALL="en_US.UTF-8"
LDFLAGS=""
LINGUAS="en en_US"
MAKEOPTS="-j5"
PKGDIR="/usr/portage/packages"
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="/usr/portage"
PORTDIR_OVERLAY="/usr/local/layman/font-overlay /usr/local/portage"
SYNC="rsync://rsync.gentoo.org/gentoo-portage"
USE="3dnow X aac acl acpi alsa amd64 apache2 arts atlas avahi bash-completion berkdb blas bookmarks branding bzip2 cairo cblas cdr cli cracklib crypt ctype cups dbus doc dri dvd dvdr dvdread eds emacs emboss encode esd evo examples f77 fam fftw firefox foomativdb fortran gdbm gfortran gif gimpprint glitz gpm gstreamer gtk hal iconv imagemagick imap isdnlog ivman java jpeg jpeg2k kde kdrive kerberos lapack latex ldap lzo mad mdnsresponder-compat midi mikmod mime mmap mmx mozbranding mozilla mozsvg mp3 mpeg mplayer mudflap multislot ncurses nptl nptlonly nsplugin ogg opengl openmp oss pam pcre pdf perl pertty pic png ppds pppd python qt3 qt3support qt4 quicktime readline reflection rss samba sdl session spell spl sse sse2 ssl subversion svg symlink tcltk tcpd tetex threads tiff tk transparency truetype umfpack unicode usb v4l v4l2 vorbis webdav winbind xcomposite xfs xft xinerama xml xorg xulrunner xv zeroconf zlib" 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" 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" APACHE2_MODULES="actions alias auth_basic auth_digest authn_anon authn_dbd authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache dav dav_fs dav_lock dbd deflate dir disk_cache env expires ext_filter file_cache filter headers ident imagemap include info log_config logio mem_cache mime mime_magic negotiation proxy proxy_ajp proxy_balancer proxy_connect proxy_http rewrite setenvif so speling status unique_id userdir usertrack vhost_alias" ELIBC="glibc" INPUT_DEVICES="keyboard mouse" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="en en_US" USERLAND="GNU" VIDEO_CARDS="nvidia vga nv"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS
Comment 1 Carsten Lohrke (RETIRED) gentoo-dev 2008-05-05 16:33:24 UTC
Darren: Sure that it's happening when using -uDp and not only when using -uDNp as options!?


Portage bug - or doesn't the latest rc print added/removed use flags anymore, maybe?
Comment 2 Darren Dale 2008-05-05 16:44:18 UTC
(In reply to comment #1)
> Darren: Sure that it's happening when using -uDp and not only when using -uDNp
> as options!?

I'm sure:

$ emerge -uDvp world

These are the packages that would be merged, in order:

Calculating dependencies... done!
[ebuild   R   ] sys-devel/gcc-4.2.3  USE="doc fortran gtk mudflap multislot openmp (-altivec) -bootstrap -build -gcj (-hardened) -ip28 -ip32r10k -libffi (-multilib) (-n32) (-n64) -nls -nocxx -objc -objc++ -objc-gc -test -vanilla" 0 kB
[ebuild     U ] sys-apps/debianutils-2.28.5 [2.28.4] USE="-static" 0 kB
[ebuild     U ] media-libs/t1lib-5.1.2 [5.1.1] USE="X doc" 0 kB
[ebuild     U ] kde-base/kdelibs-3.5.9-r4 [3.5.9-r3] USE="acl alsa arts avahi branding cups doc fam jpeg2k kerberos spell tiff xinerama -bindist -debug -kdeenablefinal -kdehiddenvisibility -legacyssl -lua -openexr -utempter" 0 kB

Total: 4 packages (3 upgrades, 1 reinstall), Size of downloads: 0 kB


> Portage bug - or doesn't the latest rc print added/removed use flags anymore,
> maybe?

This is the fourth time I am remerging gcc, there have been no changes to use flags.
Comment 3 Ed Vazquez 2008-05-05 20:21:21 UTC
Also happening here, though as part of revdep-rebuild (again, no USE flags change, etc. as in the initial ticket).
Comment 4 Zac Medico gentoo-dev 2008-05-05 22:11:36 UTC
(In reply to comment #3)
> Also happening here, though as part of revdep-rebuild (again, no USE flags
> change, etc. as in the initial ticket).

revdep-rebuild is an entirely separate issue (maybe bug 125728)

(In reply to comment #0)
> [ebuild   R   ] sys-devel/gcc-4.2.3  USE="doc fortran gtk mudflap multislot
> openmp (-altivec) -bootstrap -build -gcj (-hardened) -ip28 -ip32r10k -libffi
> (-multilib) (-n32) (-n64) -nls -nocxx -objc -objc++ -objc-gc -test -vanilla" 0
> kB

I suspect the the problem may be related to the multislot flag. Do you have any 
sys-devel/gcc atoms in /var/lib/portage/world? If so, what are they? Please reproduce the problem and attach the dependency calculation output with --debug enabled:

emerge -uDNvp world > debug.log 2&>1

Comment 5 Darren Dale 2008-05-06 12:05:13 UTC
(In reply to comment #4)
> (In reply to comment #0)
> I suspect the the problem may be related to the multislot flag. Do you have any 
> sys-devel/gcc atoms in /var/lib/portage/world? If so, what are they? 

sys-devel/gcc

> Please reproduce the problem and attach the dependency calculation output with --debug
> enabled:
> 
> emerge -uDNvp world > debug.log 2&>1

Do you mean emerge -uDNvp --debug world > debug.log 2&>1? That produces an empty file. I'll attach the output of emerge -uDNvp --debug world > debug.log.
Comment 6 Darren Dale 2008-05-06 12:06:17 UTC
Created attachment 152101 [details]
output of emerge -uDNvp --debug world
Comment 7 Zac Medico gentoo-dev 2008-05-07 02:04:06 UTC
The sci-libs/acml-4.1.0 package that you have installed has a sys-devel/gcc:4.2 dependency atom. That dependency atom is incompatible with USE=multislot since multislot causes the value in /var/db/pkg/sys-devel/gcc-4.2.3/SLOT to be something other than "4.2". I don't see any way to fix this other than for you disable USE=multislot or avoid packages that have slot dependencies on gcc.
Comment 8 Darren Dale 2008-05-07 12:21:54 UTC
(In reply to comment #7)
> The sci-libs/acml-4.1.0 package that you have installed has a sys-devel/gcc:4.2
> dependency atom. That dependency atom is incompatible with USE=multislot since
> multislot causes the value in /var/db/pkg/sys-devel/gcc-4.2.3/SLOT to be
> something other than "4.2". I don't see any way to fix this other than for you
> disable USE=multislot or avoid packages that have slot dependencies on gcc.

I didn't understand most of that, but I did get that unmerging acml would prevent portage from trying to remerge gcc. I can use blas- and lapack-atlas instead. Is this a portage bug or a feature?
Comment 9 Zac Medico gentoo-dev 2008-05-07 16:39:33 UTC
(In reply to comment #8)
> I didn't understand most of that, but I did get that unmerging acml would
> prevent portage from trying to remerge gcc. I can use blas- and lapack-atlas
> instead. Is this a portage bug or a feature?

It's a portage feature and a misfeature of what USE=multislot does. Portage is correctly trying to guarantee that the sys-devel/gcc:4.2 is satisfied by an _installed_ package. However, when portage installs a package to satisfy sys-devel/gcc:4.2, USE=multislot can cause the SLOT to spontaneously change to some unexpected value. This prevents the sys-devel/gcc:4.2 dependency from every being satisfied.
Comment 10 Zac Medico gentoo-dev 2008-05-08 17:46:43 UTC
Created attachment 152499 [details, diff]
detect and prevent multislot package reinstallation due to slot dependencies

If this patch is saved as /tmp/multislot.patch then it can be applied as follows:

patch /usr/lib/portage/bin/emerge /tmp/multislot.patch
Comment 11 Zac Medico gentoo-dev 2008-05-09 09:31:59 UTC
This is fixed in 2.1.5_rc8.