Summary: | emerge -uDp world continuously pulls in gcc-4.2.3 with multislot USE flag | ||
---|---|---|---|
Product: | Gentoo Linux | Reporter: | Darren Dale <dsdale24> |
Component: | New packages | Assignee: | 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
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? (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. Also happening here, though as part of revdep-rebuild (again, no USE flags change, etc. as in the initial ticket). (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 (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. Created attachment 152101 [details]
output of emerge -uDNvp --debug world
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. (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? (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. 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
This is fixed in 2.1.5_rc8. |