On Mon, Dec 14, 2020 at 02:57:22PM -0700, the...@sys-concept.com wrote:
> [snip]
> 
> emerge --update --oneshot portage
> 
> !!! All ebuilds that could satisfy 
> ">=app-crypt/openpgp-keys-gentoo-release-20180706" have been masked.
> !!! One of the following masked packages is required to complete your request:
> - app-crypt/openpgp-keys-gentoo-release-20200704::gentoo (masked by: EAPI 7)
> 
> The current version of portage supports EAPI '6'. You must upgrade to a
> newer version of portage before EAPI masked packages can be installed.
> (dependency required by 
> "sys-apps/portage-2.3.99-r2::gentoo[rsync-verify,-build]" [ebuild])
> (dependency required by "portage" [argument])
> 
> I don't even have "app-crypt/openpgp-keys-gentoo-release" installed why is it 
> complaining? 
> 

I've done a similar update recently, it's definitely possible if you
know what you're doing. A few things:

First, you need to update portage. To do so, you'll need to manually
downgrade the portage ebuild from EAPI 7 to EAPI 6 (simply change the
number in the ebuild). First, emerge it without rsync-verify. Once you
have portage up to date, it'll support EAPI 7 and life'll be easier. You
can then reemerge it with rsync-verify, as the EAPI 7 dependencies will
be installable this time.

Then, I'd recommend upgrading the toolchain (binutils, gcc, glibc),
otherwise you might run into compilation issues.

After that, you can update packages. For big updates like this, I like
to do it by chunks as it's easier (and it makes reading the emerge plan
less painful). Like all the perl packages, then all the python packages,
and so on. For that, the "emerge by path" feature is convenient; for
example to update python packages:
emerge -au /usr/lib/python3.7

In case force-unmerging python modules makes the update easier
(resolving blocks), you can do so. That's actually safe to do, portage
will still be able to emerge packages. Python itself (the interpreter)
is the only hard dependency of portage. 

Hope this helps, and good luck with your update!

Reply via email to