commit:     d535cf3e0e39007008f8a8dc59026df57ccddb32
Author:     Eli Schwartz <eschwartz <AT> gentoo <DOT> org>
AuthorDate: Sun May  4 15:09:56 2025 +0000
Commit:     Eli Schwartz <eschwartz <AT> gentoo <DOT> org>
CommitDate: Sun May  4 15:09:56 2025 +0000
URL:        https://gitweb.gentoo.org/proj/binhost.git/commit/?id=d535cf3e

variants: python3both: work around portage bug that crashes if impl changes

portage can copy itself on upgrades... sometimes. However, it appears
that when switching the USE flags of portage, i.e. rebuilding a 3.12 +
3.13 build of portage to a pure 3.12 one, it starts off running with a
3.13-based portage executable, then fails with:

```
[ERROR] Exception in callback AsynchronousTask._exit_listener_cb()
handle: <Handle AsynchronousTask._exit_listener_cb()>
Traceback (most recent call last):
  File "/usr/lib/python3.13/asyncio/events.py", line 89, in _run
    self._context.run(self._callback, *self._args)
    ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/lib/python3.13/site-packages/_emerge/AsynchronousTask.py", line 
209, in _exit_listener_cb
  File "/usr/lib/python3.13/site-packages/_emerge/EbuildPhase.py", line 255, in 
_async_start_exit
  File "/usr/lib/python3.13/site-packages/_emerge/EbuildPhase.py", line 161, in 
_async_start
  File "/usr/lib/python3.13/site-packages/_emerge/EbuildPhase.py", line 108, in 
_setup_repo_revisions
  File "/usr/lib/python3.13/site-packages/portage/module.py", line 158, in 
get_class
  File "/usr/lib/python3.13/site-packages/portage/module.py", line 79, in 
get_class
ModuleNotFoundError: No module named 'portage.sync.modules.rsync.rsync'
Terminated
```

This could be solved by copying itself on upgrade, but it's not even
clear how that would work in the more complicated case of reinstalling a
*dependency* in the middle of the transaction.

The other solution is running portage with an EPYTHON that we know is
going to remain valid the entire time.

Signed-off-by: Eli Schwartz <eschwartz <AT> gentoo.org>

 builders/dola/gnome-23/portage/variants/python3both/buildpkgonly      | 2 +-
 builders/dola/kde-23/portage/variants/python3both/buildpkgonly        | 2 +-
 builders/dola/server-23/portage/variants/python3both/buildpkgonly     | 2 +-
 builders/milou/gnome-23/portage/variants/python3both/buildpkgonly     | 2 +-
 builders/milou/gnome-v3-23/portage/variants/python3both/buildpkgonly  | 2 +-
 builders/milou/kde-23/portage/variants/python3both/buildpkgonly       | 2 +-
 builders/milou/kde-v3-23/portage/variants/python3both/buildpkgonly    | 2 +-
 builders/milou/server-23/portage/variants/python3both/buildpkgonly    | 2 +-
 builders/milou/server-v3-23/portage/variants/python3both/buildpkgonly | 2 +-
 9 files changed, 9 insertions(+), 9 deletions(-)

diff --git a/builders/dola/gnome-23/portage/variants/python3both/buildpkgonly 
b/builders/dola/gnome-23/portage/variants/python3both/buildpkgonly
index 4f0aa15..6f396d8 100755
--- a/builders/dola/gnome-23/portage/variants/python3both/buildpkgonly
+++ b/builders/dola/gnome-23/portage/variants/python3both/buildpkgonly
@@ -10,4 +10,4 @@ cat >> ../../make.conf <<- __EOF__
        PYTHON_SINGLE_TARGET="python3_12"
 __EOF__
 
-emerge -uDN --backtrack=100 @world
+EPYTHON=python3.12 emerge -uDN --backtrack=100 @world

diff --git a/builders/dola/kde-23/portage/variants/python3both/buildpkgonly 
b/builders/dola/kde-23/portage/variants/python3both/buildpkgonly
index 4f0aa15..6f396d8 100755
--- a/builders/dola/kde-23/portage/variants/python3both/buildpkgonly
+++ b/builders/dola/kde-23/portage/variants/python3both/buildpkgonly
@@ -10,4 +10,4 @@ cat >> ../../make.conf <<- __EOF__
        PYTHON_SINGLE_TARGET="python3_12"
 __EOF__
 
-emerge -uDN --backtrack=100 @world
+EPYTHON=python3.12 emerge -uDN --backtrack=100 @world

diff --git a/builders/dola/server-23/portage/variants/python3both/buildpkgonly 
b/builders/dola/server-23/portage/variants/python3both/buildpkgonly
index 4f0aa15..6f396d8 100755
--- a/builders/dola/server-23/portage/variants/python3both/buildpkgonly
+++ b/builders/dola/server-23/portage/variants/python3both/buildpkgonly
@@ -10,4 +10,4 @@ cat >> ../../make.conf <<- __EOF__
        PYTHON_SINGLE_TARGET="python3_12"
 __EOF__
 
-emerge -uDN --backtrack=100 @world
+EPYTHON=python3.12 emerge -uDN --backtrack=100 @world

diff --git a/builders/milou/gnome-23/portage/variants/python3both/buildpkgonly 
b/builders/milou/gnome-23/portage/variants/python3both/buildpkgonly
index 4f0aa15..6f396d8 100755
--- a/builders/milou/gnome-23/portage/variants/python3both/buildpkgonly
+++ b/builders/milou/gnome-23/portage/variants/python3both/buildpkgonly
@@ -10,4 +10,4 @@ cat >> ../../make.conf <<- __EOF__
        PYTHON_SINGLE_TARGET="python3_12"
 __EOF__
 
-emerge -uDN --backtrack=100 @world
+EPYTHON=python3.12 emerge -uDN --backtrack=100 @world

diff --git 
a/builders/milou/gnome-v3-23/portage/variants/python3both/buildpkgonly 
b/builders/milou/gnome-v3-23/portage/variants/python3both/buildpkgonly
index 4f0aa15..6f396d8 100755
--- a/builders/milou/gnome-v3-23/portage/variants/python3both/buildpkgonly
+++ b/builders/milou/gnome-v3-23/portage/variants/python3both/buildpkgonly
@@ -10,4 +10,4 @@ cat >> ../../make.conf <<- __EOF__
        PYTHON_SINGLE_TARGET="python3_12"
 __EOF__
 
-emerge -uDN --backtrack=100 @world
+EPYTHON=python3.12 emerge -uDN --backtrack=100 @world

diff --git a/builders/milou/kde-23/portage/variants/python3both/buildpkgonly 
b/builders/milou/kde-23/portage/variants/python3both/buildpkgonly
index 4f0aa15..6f396d8 100755
--- a/builders/milou/kde-23/portage/variants/python3both/buildpkgonly
+++ b/builders/milou/kde-23/portage/variants/python3both/buildpkgonly
@@ -10,4 +10,4 @@ cat >> ../../make.conf <<- __EOF__
        PYTHON_SINGLE_TARGET="python3_12"
 __EOF__
 
-emerge -uDN --backtrack=100 @world
+EPYTHON=python3.12 emerge -uDN --backtrack=100 @world

diff --git a/builders/milou/kde-v3-23/portage/variants/python3both/buildpkgonly 
b/builders/milou/kde-v3-23/portage/variants/python3both/buildpkgonly
index 4f0aa15..6f396d8 100755
--- a/builders/milou/kde-v3-23/portage/variants/python3both/buildpkgonly
+++ b/builders/milou/kde-v3-23/portage/variants/python3both/buildpkgonly
@@ -10,4 +10,4 @@ cat >> ../../make.conf <<- __EOF__
        PYTHON_SINGLE_TARGET="python3_12"
 __EOF__
 
-emerge -uDN --backtrack=100 @world
+EPYTHON=python3.12 emerge -uDN --backtrack=100 @world

diff --git a/builders/milou/server-23/portage/variants/python3both/buildpkgonly 
b/builders/milou/server-23/portage/variants/python3both/buildpkgonly
index 4f0aa15..6f396d8 100755
--- a/builders/milou/server-23/portage/variants/python3both/buildpkgonly
+++ b/builders/milou/server-23/portage/variants/python3both/buildpkgonly
@@ -10,4 +10,4 @@ cat >> ../../make.conf <<- __EOF__
        PYTHON_SINGLE_TARGET="python3_12"
 __EOF__
 
-emerge -uDN --backtrack=100 @world
+EPYTHON=python3.12 emerge -uDN --backtrack=100 @world

diff --git 
a/builders/milou/server-v3-23/portage/variants/python3both/buildpkgonly 
b/builders/milou/server-v3-23/portage/variants/python3both/buildpkgonly
index 4f0aa15..6f396d8 100755
--- a/builders/milou/server-v3-23/portage/variants/python3both/buildpkgonly
+++ b/builders/milou/server-v3-23/portage/variants/python3both/buildpkgonly
@@ -10,4 +10,4 @@ cat >> ../../make.conf <<- __EOF__
        PYTHON_SINGLE_TARGET="python3_12"
 __EOF__
 
-emerge -uDN --backtrack=100 @world
+EPYTHON=python3.12 emerge -uDN --backtrack=100 @world

Reply via email to