Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 949486 - Upgrading from EAPI 7 to EAPI 8 fails miserably
Summary: Upgrading from EAPI 7 to EAPI 8 fails miserably
Status: RESOLVED INVALID
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: Current packages (show other bugs)
Hardware: All Linux
: Normal normal
Assignee: Gentoo Linux bug wranglers
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2025-02-08 17:04 UTC by Zeno Davatz
Modified: 2025-02-09 17:45 UTC (History)
3 users (show)

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


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Zeno Davatz 2025-02-08 17:04:06 UTC
I am trying to upgrade portage from EAPI 7 to EAPI 8 an I am landing in Python dependency Hell.

I did this: 
https://wiki.gentoo.org/wiki/Upgrading_Gentoo/de
and this:
https://wiki.gentoo.org/wiki/Fix_my_Gentoo

I managed to generate all the necessary binary packages according to above gudis. I rebooted into my system and now I do:

emerge --nodeps --oneshot --binpkg-changed-deps=n python-exec

This results in:

>>> Emerging binary (1 of 1) dev-lang/python-exec-2.4.10::gentoo
>>> Jobs: 0 of 1 complete, 1 running                Load avg: 0.63, 0.51, 0.44================================================================================================
======== Traceback for invalid call to portage.package.ebuild.config.config.__getitem__ ========
  File "/usr/lib/python-exec/python3.7/emerge", line 51, in <module>
    retval = emerge_main()
  File "/usr/lib/python3.7/site-packages/_emerge/main.py", line 1317, in emerge_main
    return run_action(emerge_config)
  File "/usr/lib/python3.7/site-packages/_emerge/actions.py", line 3376, in run_action
    retval = action_build(emerge_config, spinner=spinner)
  File "/usr/lib/python3.7/site-packages/_emerge/actions.py", line 560, in action_build
    retval = mergetask.merge()
  File "/usr/lib/python3.7/site-packages/_emerge/Scheduler.py", line 1045, in merge
    rval = self._merge()
  File "/usr/lib/python3.7/site-packages/_emerge/Scheduler.py", line 1461, in _merge
    self._main_loop()
  File "/usr/lib/python3.7/site-packages/_emerge/Scheduler.py", line 1414, in _main_loop
    self._schedule()
  File "/usr/lib/python3.7/site-packages/_emerge/PollScheduler.py", line 152, in _schedule
    self._schedule_tasks()
  File "/usr/lib/python3.7/site-packages/_emerge/Scheduler.py", line 1640, in _schedule_tasks
    if self._schedule_tasks_imp():
  File "/usr/lib/python3.7/site-packages/_emerge/Scheduler.py", line 1783, in _schedule_tasks_imp
    self._task_queues.jobs.add(task)
  File "/usr/lib/python3.7/site-packages/_emerge/SequentialTaskQueue.py", line 24, in add
    self.schedule()
  File "/usr/lib/python3.7/site-packages/_emerge/SequentialTaskQueue.py", line 46, in schedule
    task.start()
  File "/usr/lib/python3.7/site-packages/_emerge/AsynchronousTask.py", line 30, in start
    self._start()
  File "/usr/lib/python3.7/site-packages/_emerge/MergeListItem.py", line 98, in _start
    self._start_task(binpkg, self._default_final_exit)
  File "/usr/lib/python3.7/site-packages/_emerge/CompositeTask.py", line 113, in _start_task
    task.start()
  File "/usr/lib/python3.7/site-packages/_emerge/AsynchronousTask.py", line 30, in start
    self._start()
  File "/usr/lib/python3.7/site-packages/_emerge/Binpkg.py", line 59, in _start
    settings=self.settings, db=self._bintree.dbapi)
  File "/usr/lib/python3.7/site-packages/portage/package/ebuild/doebuild.py", line 360, in doebuild_environment
    mysettings["PORTDIR"] = os.path.realpath(mysettings["PORTDIR"])
  File "/usr/lib/python3.7/site-packages/portage/package/ebuild/config.py", line 2619, in __getitem__
    return self._getitem(key)
  File "/usr/lib/python3.7/site-packages/portage/package/ebuild/config.py", line 2680, in _getitem
    raise KeyError(mykey)
KeyError: 'PORTDIR'
================================================================================================

Traceback (most recent call last):
  File "/usr/lib/python-exec/python3.7/emerge", line 51, in <module>
    retval = emerge_main()
  File "/usr/lib/python3.7/site-packages/_emerge/main.py", line 1317, in emerge_main
    return run_action(emerge_config)
  File "/usr/lib/python3.7/site-packages/_emerge/actions.py", line 3376, in run_action
    retval = action_build(emerge_config, spinner=spinner)
  File "/usr/lib/python3.7/site-packages/_emerge/actions.py", line 560, in action_build
    retval = mergetask.merge()
  File "/usr/lib/python3.7/site-packages/_emerge/Scheduler.py", line 1045, in merge
    rval = self._merge()
  File "/usr/lib/python3.7/site-packages/_emerge/Scheduler.py", line 1461, in _merge
    self._main_loop()
  File "/usr/lib/python3.7/site-packages/_emerge/Scheduler.py", line 1414, in _main_loop
    self._schedule()
  File "/usr/lib/python3.7/site-packages/_emerge/PollScheduler.py", line 152, in _schedule
    self._schedule_tasks()
  File "/usr/lib/python3.7/site-packages/_emerge/Scheduler.py", line 1640, in _schedule_tasks
    if self._schedule_tasks_imp():
  File "/usr/lib/python3.7/site-packages/_emerge/Scheduler.py", line 1783, in _schedule_tasks_imp
    self._task_queues.jobs.add(task)
  File "/usr/lib/python3.7/site-packages/_emerge/SequentialTaskQueue.py", line 24, in add
    self.schedule()
  File "/usr/lib/python3.7/site-packages/_emerge/SequentialTaskQueue.py", line 46, in schedule
    task.start()
  File "/usr/lib/python3.7/site-packages/_emerge/AsynchronousTask.py", line 30, in start
    self._start()
  File "/usr/lib/python3.7/site-packages/_emerge/MergeListItem.py", line 98, in _start
    self._start_task(binpkg, self._default_final_exit)
  File "/usr/lib/python3.7/site-packages/_emerge/CompositeTask.py", line 113, in _start_task
    task.start()
  File "/usr/lib/python3.7/site-packages/_emerge/AsynchronousTask.py", line 30, in start
    self._start()
  File "/usr/lib/python3.7/site-packages/_emerge/Binpkg.py", line 59, in _start
    settings=self.settings, db=self._bintree.dbapi)
  File "/usr/lib/python3.7/site-packages/portage/package/ebuild/doebuild.py", line 360, in doebuild_environment
    mysettings["PORTDIR"] = os.path.realpath(mysettings["PORTDIR"])
  File "/usr/lib/python3.7/site-packages/portage/package/ebuild/config.py", line 2619, in __getitem__
    return self._getitem(key)
  File "/usr/lib/python3.7/site-packages/portage/package/ebuild/config.py", line 2680, in _getitem
    raise KeyError(mykey)
KeyError: 'PORTDIR'

and this 

emerge --nodeps --oneshot --binpkg-changed-deps=n portage

results in:

>>> Source prepared.
>>> Configuring source in /var/tmp/portage/sys-apps/portage-3.0.66.1-r1/work/portage-3.0.66.1 ...
 * pypy3: running my_src_configure
meson-format-array: no python-exec wrapped executable found in /usr/lib/python-exec.
meson-format-array: no python-exec wrapped executable found in /usr/lib/python-exec.
meson-format-array: no python-exec wrapped executable found in /usr/lib/python-exec.
meson-format-array: no python-exec wrapped executable found in /usr/lib/python-exec.
meson-format-array: no python-exec wrapped executable found in /usr/lib/python-exec.
meson-format-array: no python-exec wrapped executable found in /usr/lib/python-exec.
meson-format-array: no python-exec wrapped executable found in /usr/lib/python-exec.
meson-format-array: no python-exec wrapped executable found in /usr/lib/python-exec.
meson-format-array: no python-exec wrapped executable found in /usr/lib/python-exec.
meson-format-array: no python-exec wrapped executable found in /usr/lib/python-exec.
meson-format-array: no python-exec wrapped executable found in /usr/lib/python-exec.
meson-format-array: no python-exec wrapped executable found in /usr/lib/python-exec.
meson-format-array: no python-exec wrapped executable found in /usr/lib/python-exec.
meson-format-array: no python-exec wrapped executable found in /usr/lib/python-exec.
meson-format-array: no python-exec wrapped executable found in /usr/lib/python-exec.
meson-format-array: no python-exec wrapped executable found in /usr/lib/python-exec.
meson-format-array: no python-exec wrapped executable found in /usr/lib/python-exec.
meson-format-array: no python-exec wrapped executable found in /usr/lib/python-exec.
meson-format-array: no python-exec wrapped executable found in /usr/lib/python-exec.
meson-format-array: no python-exec wrapped executable found in /usr/lib/python-exec.
meson setup -Db_lto=false --libdir lib64 --localstatedir /var/lib --prefix /usr --sysconfdir /etc --wrap-mode nodownload --build.pkg-config-path /var/tmp/portage/sys-apps/portage-3.0.66.1-r1/temp/pypy3/pkgconfig:/usr/share/pkgconfig --pkg-config-path /var/tmp/portage/sys-apps/portage-3.0.66.1-r1/temp/pypy3/pkgconfig:/usr/share/pkgconfig --native-file /var/tmp/portage/sys-apps/portage-3.0.66.1-r1/temp/meson.x86_64-pc-linux-gnu.amd64.ini -Db_pch=false -Dwerror=false -Dbuildtype=plain -Dcode-only=false -Deprefix= -Dportage-bindir=/usr/lib/portage/pypy3 -Ddocdir=/usr/share/doc/portage-3.0.66.1-r1 -Ddoc=false -Dapidoc=false -Dgentoo-dev=false -Dipc=true -Dxattr=true -Dnative-extensions=false -Drsync-verify=true /var/tmp/portage/sys-apps/portage-3.0.66.1-r1/work/portage-3.0.66.1 /var/tmp/portage/sys-apps/portage-3.0.66.1-r1/work/portage-3.0.66.1-pypy3
meson: no python-exec wrapped executable found in /usr/lib/python-exec.
 * ERROR: sys-apps/portage-3.0.66.1-r1::gentoo failed (configure phase):

There really seems no easy way to upgrade your Gentoo System. ;(

Any hints are welcome.

Emerge --info:

Portage 3.0.14 (python 3.7.17-final-0, !../../var/db/repos/gentoo/profiles/default/linux/amd64/23.0/split-usr/no-multilib, gcc-12.3.0, glibc-2.33-r4, 6.13.0 x86_64)
=================================================================
System uname: Linux-6.13.0-x86_64-Intel-R-_Core-TM-_i7_CPU_960_@_3.20GHz-with-gentoo-2.2.1
KiB Mem:    49332940 total,  36849928 free
KiB Swap:          0 total,         0 free
Timestamp of repository gentoo: Sat, 08 Feb 2025 15:15:00 +0000
Head commit of repository gentoo: c6cb0eba38cbbb7e7def07e5217059a268d60e24
Head commit of repository flatpak-overlay: 4bf9a7815ca9361f86459c8a8e9bc403e3721704

sh bash 5.2.37
ld GNU ld (Funtoo 2.40_p5 patchset: https://dev.gentoo.org/~dilfridge/distfiles/binutils-2.40-patches-5.tar.xz) 2.40.0
dev-lang/python:          2.7.18-r1::python-kit, 3.4.8-r1::python-kit, 3.7.17::python-kit, 3.9.21::python-kit, 3.11.11_p1::gentoo
sys-devel/autoconf:       2.72::core-kit
sys-devel/automake:       1.15.1-r2::core-kit, 1.16.5::core-kit
sys-devel/binutils:       2.40_p5-r1::core-kit, 2.44::gentoo
sys-kernel/linux-headers: 4.14::core-kit (virtual/os-headers)
Repositories:

gentoo
    location: /var/db/repos/gentoo
    sync-type: rsync
    sync-uri: rsync://rsync.gentoo.org/gentoo-portage
    sync-rsync-extra-opts:

flatpak-overlay
    location: /home/zeno/zgoverlay/flatpak-overlay
    sync-type: git
    sync-uri: https://github.com/fosero/flatpak-overlay.git
    masters: gentoo
    priority: 50

Binary Repositories:

binhost
    priority: 9999
    sync-uri: https://distfiles.gentoo.org/releases/amd64/binpackages/23.0/x86-64

ACCEPT_KEYWORDS="amd64"
ACCEPT_LICENSE="@FREE"
CFLAGS="-O2 -pipe"
CHOST="x86_64-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/gnupg/qualified.txt /usr/share/maven-bin-3.3/conf"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/dconf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/revdep-rebuild /etc/sandbox.d /etc/terminfo /etc/texmf/language.dat.d /etc/texmf/language.def.d /etc/texmf/updmap.d /etc/texmf/web2c"
CXXFLAGS="-O2 -pipe"
DISTDIR="/var/cache/portage/distfiles"
EMERGE_DEFAULT_OPTS=" --jobs=8 --load-average=8"
ENV_UNSET="CARGO_HOME DBUS_SESSION_BUS_ADDRESS DISPLAY GDK_PIXBUF_MODULE_FILE GOBIN GOPATH PERL5LIB PERL5OPT PERLPREFIX PERL_CORE PERL_MB_OPT PERL_MM_OPT XAUTHORITY XDG_CACHE_HOME XDG_CONFIG_HOME XDG_DATA_HOME XDG_RUNTIME_DIR XDG_STATE_HOME"
FEATURES="assume-digests binpkg-docompress binpkg-dostrip binpkg-logs cdn config-protect-if-modified distlocks ebuild-locks fixlafiles getbinpkg ipc-sandbox merge-sync multilib-strict network-sandbox news parallel-fetch pid-sandbox preserve-libs protect-owned qa-unresolved-soname-deps sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch userpriv usersandbox usersync xattr"
GENTOO_MIRRORS="https://direct.funtoo.org"
PKGDIR="/var/cache/portage/packages"
PORTAGE_TMPDIR="/var/tmp"
USE="acl amd64 bzip2 cet crypt gdbm iconv ipv6 libtirpc ncurses nls openmp pam pcre readline seccomp split-usr ssl test-rust unicode xattr zlib" ABI_X86="64" ADA_TARGET="gcc_13" APACHE2_MODULES="authn_core authz_core socache_shmcb unixd actions alias auth_basic authn_anon authn_dbm authn_file authz_dbm authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir env expires ext_filter file_cache filter headers include info log_config logio mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="karbon sheets words" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" CPU_FLAGS_X86="mmx mmxext sse sse2" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock greis isync itrax navcom oceanserver oncore rtcm104v2 rtcm104v3 sirf skytraq superstar2 tsip tripmate tnt ublox" GUILE_SINGLE_TARGET="3-0" GUILE_TARGETS="3-0" INPUT_DEVICES="libinput" KERNEL="linux" LCD_DEVICES="bayrad cfontz glk hd44780 lb216 lcdm001 mtxorb text" LUA_SINGLE_TARGET="lua5-1" LUA_TARGETS="lua5-1" OFFICE_IMPLEMENTATION="libreoffice" PHP_TARGETS="php8-2" POSTGRES_TARGETS="postgres16" PYTHON_SINGLE_TARGET="python3_12" PYTHON_TARGETS="python3_12 python3_11 python3_9 python_targets_pypy3" RUBY_TARGETS="ruby32" VIDEO_CARDS="amdgpu fbdev intel nouveau radeon radeonsi vesa dummy" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipp2p iface geoip fuzzy condition tarpit sysrq proto logmark ipmark dhcpmac delude chaos account"
Unset:  PORTAGE_BINHOST, PORTAGE_BUNZIP2_COMMAND
Comment 1 Andreas Sturmlechner gentoo-dev 2025-02-08 17:25:49 UTC
That's not a bug.

You can try #gentoo or forums.gentoo.org.
Comment 2 Enne Eziarc 2025-02-08 18:02:19 UTC
You're using Funtoo.
Comment 3 Zeno Davatz 2025-02-08 18:05:39 UTC
nope, this is Gentoo. But it does not work, it is a true pain to upgrade.
Comment 4 Zeno Davatz 2025-02-08 18:06:48 UTC
nothing that is mentioned in the Docs works the way it is supposed to.
Comment 5 Enne Eziarc 2025-02-08 18:08:16 UTC
Then where do those ::python-kit and ::core-kit packages you have installed come from? Those are not part of Gentoo or any overlays.
Comment 6 Zeno Davatz 2025-02-08 18:11:48 UTC
I also tried this, https://wiki.gentoo.org/wiki/Upgrading_Gentoo/de but it does not work.

Portage upgrade almost went through but then failed because you can only upgrade portage with Python 11 that supports "distfiles."

I am happy to test more, if you can give me a pointer how to get around the EAPI 7 to EAPI 8 boundaries.
Comment 7 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2025-02-08 18:23:41 UTC
Not only that, but using a 23.0 profile on such an outdated machine sounds odd (the guide is clear you should upgrade first). See also https://wiki.gentoo.org/wiki/Project:Portage/Fixing_broken_portage. You can also use /usr/lib/python-exec/python3.*/emerge.
Comment 8 Zeno Davatz 2025-02-08 20:06:51 UTC
Yes, thank you, I tried this one too. Last time it told me there is no "/usr/bin/env".

This time it tells me after doing all the

  500  mkdir -p /tmp/portage && cd /tmp/portage
  501  wget https://gitweb.gentoo.org/proj/portage.git/snapshot/portage-3.0.52.tar.gz
  502  tar xvf portage-3.0.52.tar.gz -C /tmp/portage --strip-components=1
  503  export PYTHONPATH="/tmp/portage/lib${PYTHONPATH:+:}${PYTHONPATH}"
  504  export PATH="/tmp/portage/bin:${PATH}"
  505  bin/emerge --info

steps:

zenogentoo /tmp/portage # bin/emerge
  File "bin/emerge", line 61
    sys.stderr.write(f"Permission denied: '{str(e)}'\n")
                                                      ^
SyntaxError: invalid syntax
Comment 9 Zeno Davatz 2025-02-08 20:09:34 UTC
(In reply to Sam James from comment #7)

> also use /usr/lib/python-exec/python3.*/emerge.

This one I will bookmark, thank you!
Comment 10 Zeno Davatz 2025-02-08 20:24:13 UTC
Ok this worked now: 

emerge --oneshot --nodeps bzip2
Comment 11 Zeno Davatz 2025-02-08 20:26:05 UTC
but when I do:

emerge --update --newuse --deep @world

I get:

Calculating dependencies... done!

!!! The following binary packages have been ignored due to non matching USE:

    =sys-apps/baselayout-2.17 -split-usr

NOTE: The --binpkg-respect-use=n option will prevent emerge
      from ignoring these binary packages if possible.
      Using --binpkg-respect-use=y will silence this warning.

!!! All ebuilds that could satisfy "app-alternatives/bzip2" have been masked.
!!! One of the following masked packages is required to complete your request:
- app-alternatives/bzip2-1::gentoo (masked by: EAPI 8)
- app-alternatives/bzip2-1 (masked by: EAPI 8)

The current version of portage supports EAPI '7'. You must upgrade to a
newer version of portage before EAPI masked packages can be installed.
(dependency required by "@system" [set])
(dependency required by "@world" [argument])
For more information, see the MASKED PACKAGES section in the emerge
man page or refer to the Gentoo Handbook.
Comment 12 Zeno Davatz 2025-02-08 20:31:27 UTC
Where is this coming from: 

meson-format-array: no python-exec wrapped executable found in /usr/lib/python-exec

This dependency is like a big black whole leading nowhere.
Comment 13 Zeno Davatz 2025-02-08 21:00:35 UTC
Ok, I set my profile to: 

eselect profile set 45

why is my EAPI Version in 

cat /etc/portage/make.profile/eapi

showing 

5 and not 8?
Comment 14 Greg Kubaryk 2025-02-08 22:24:54 UTC
This is still not a bug.

You can still try #gentoo or forums.gentoo.org.
Comment 15 Zeno Davatz 2025-02-09 06:55:57 UTC
Whatever you call it. It just does not work as advertised in the Docs.
Comment 16 Andreas Sturmlechner gentoo-dev 2025-02-09 08:38:58 UTC
(In reply to Zeno Davatz from comment #15)
> It just does not work as advertised in the Docs.
You're holding them wrong.
Comment 17 Zeno Davatz 2025-02-09 09:26:52 UTC
If I misinterpret the Docs please le me know what I am doing wrong.

Feels like a Bug to me.

I also posted here now. 

https://forums.gentoo.org/viewtopic-p-8854180.html#8854180
Comment 18 Andreas Sturmlechner gentoo-dev 2025-02-09 09:44:39 UTC
Just because some people came up with wiki pages as a labor of love, does not mean what you are doing is in any way supported. Even with experience, upgrading from such a sorry state will be a major effort. It requires following a strict sequence of steps, dealing with obstacles and working around those, and understanding the nature of those obstacles and implications of those workarounds.

And the fact that your emerge --info says profile 23.0 means you've already failed that strategy.
Comment 19 Zeno Davatz 2025-02-09 13:29:05 UTC
I agree! Looking forward to test a comment that works.
Comment 20 Sam James archtester Gentoo Infrastructure gentoo-dev Security 2025-02-09 13:30:32 UTC
Please consult support for Funtoo.
Comment 21 Andreas Sturmlechner gentoo-dev 2025-02-09 14:20:58 UTC
(In reply to Zeno Davatz from comment #19)
> I agree! Looking forward to test a comment that works.
It is up to you to comprehend what is already in front of you, not someone else's job to service you.
Comment 22 Roy Bamford gentoo-dev 2025-02-09 17:45:34 UTC
I missed it being Funtoo. Thank you.

It appears that the last successful @world update was at the end of 2016.
We have a Funtoo/Gentoo conversion on our hands and a 9 year old system to update.

It's going to be a long bumpy ride but it sounds like fun :)

I'm only checking in here because of the bug/forums cross posting.
I prefer to work on the forums.