Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 238236 - emerge @preserved-rebuild attempts to emerge gcc from non-existent slot (system type in slot identifier)
Summary: emerge @preserved-rebuild attempts to emerge gcc from non-existent slot (syst...
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Unspecified (show other bugs)
Hardware: x86 Linux
: High normal with 1 vote (vote)
Assignee: Portage team
Depends on: 287900
Blocks: preserve-libs
  Show dependency tree
Reported: 2008-09-20 22:53 UTC by Nico R.
Modified: 2019-03-31 19:23 UTC (History)
3 users (show)

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


Note You need to log in before you can comment on or make changes to this bug.
Description Nico R. 2008-09-20 22:53:13 UTC
When I run

    emerge --ignore-default-opts --verbose --oneshot --debug @preserved-rebuild

, emerge aborts with the following output:

myaction None
myopts {'--ignore-default-opts': True, '--oneshot': True, '--debug': True, '--verbose': True}

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

Calculating dependencies  
      Arg: @preserved-rebuild
     Atom: app-misc/beagle:0
   ebuild: app-misc/beagle-0.2.18-r1
      Arg: @preserved-rebuild
     Atom: sys-devel/gcc:i686-pc-linux-gnu-4.1.2
installed: sys-devel/gcc-4.1.2
... done!

emerge: there are no ebuilds to satisfy "sys-devel/gcc:i686-pc-linux-gnu-4.1.2".

By the way, before manually working around the famous bug 125728, I experienced the same problem (with more than one gcc version/slot) when I tried to use revdep-rebuild. I assume this happened due to the same cause.

emerge should use ‘4.1’ as the package slot, or ‘=sys-devel/gcc-4.1.2’ (versioned atom). Instead, the type of system is prepended to the version.

Could this in some way be related to the fact that I am using crossdev? Perhaps emerge does not get the distinction between i686-mingw32 and i686-pc-linux-gnu right?
Comment 1 Zac Medico gentoo-dev 2008-09-22 01:31:05 UTC
It's triggered by the "multislot" USE flag, which modifies SLOT in a way that it was never designed to be modified.
Comment 2 Nico R. 2008-09-22 07:52:36 UTC
Ah, I see, thanks.

But I’ve been using ‘multislot’ for quite a while, and it /used to/ work (until a few weeks ago, IIRC).
Comment 3 Marius Mauch (RETIRED) gentoo-dev 2008-09-22 08:22:36 UTC
Well, things change. Portage uses the SLOT value in more places than it did in the past.
Comment 4 Daniel Santos 2008-10-01 00:11:40 UTC
so what is the work-around?  I'm enjoying this bug as well.  I haven't kept up with portage changes so this preserved-libs feature came as a surprise to me (one day I'll switch from ~amd64 to amd64).  The contents of /var/lib/portage/preserved_libs_registry don't look very hacker-friendly either.
Comment 5 Zac Medico gentoo-dev 2008-10-01 00:25:13 UTC
For example, if you have this problem with sys-devel/gcc-4.1.2 then you can fix it like this:

echo 4.1.2 > /var/db/pkg/sys-devel/gcc-4.1.2/SLOT
touch /var/db/pkg/sys-devel/gcc-4.1.2
Comment 6 Zac Medico gentoo-dev 2008-10-01 00:29:16 UTC
(In reply to comment #5)
> For example, if you have this problem with sys-devel/gcc-4.1.2 then you can fix
> it like this:
> echo 4.1.2 > /var/db/pkg/sys-devel/gcc-4.1.2/SLOT
> touch /var/db/pkg/sys-devel/gcc-4.1.2

Actually, the correct SLOT in that case is 4.1 so you'd really do this:

echo 4.1 > /var/db/pkg/sys-devel/gcc-4.1.2/SLOT
touch /var/db/pkg/sys-devel/gcc-4.1.2