Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 798819 (world-domination) - [TRACKER] cross-platform dissemination tracker (also known as the Gentoo "world domination" tracker)
Summary: [TRACKER] cross-platform dissemination tracker (also known as the Gentoo "wor...
Status: CONFIRMED
Alias: world-domination
Product: Portage Development
Classification: Unclassified
Component: Trackers (show other bugs)
Hardware: All All
: Normal enhancement
Assignee: Portage team
URL: https://wiki.gentoo.org/wiki/Portage_...
Whiteboard:
Keywords: Tracker
Depends on: 629048 798816
Blocks:
  Show dependency tree
 
Reported: 2021-06-26 17:23 UTC by Zac Medico
Modified: 2024-09-29 15:02 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 Zac Medico gentoo-dev 2021-06-26 17:23:28 UTC
The cross-platform dissemination tracker (also known as the Gentoo "world domination" tracker) is for issues involving dissemination of Gentoo to alternative platforms such as Ubuntu, Windows, and Mac OS. This dissemination can ride on the success of the python language, which allows portage to be installed in a python venv on any OS. When installed in a venv, portage is automatically configured for prefix mode, with EPREFIX equal to the venv prefix itself, since portage-3.0.21:

https://gitweb.gentoo.org/proj/portage.git/commit/?id=99d116d5b8d243aa4ed5365cbde05fa9e90bf6eb

Simply create an venv, enter it with your shell (powershell on windows), and python -m pip install portage. Use `portageq envvar EPREFIX` to test the (automatic) venv EPREFIX configuration.
Comment 1 Zac Medico gentoo-dev 2024-09-26 23:37:19 UTC
Today I installed msys, used `pacman -S python` to install python3.12, and installed pytest in a venv in order to run portage's tests.

The python3.12 installed via pacman has its muliprocessing start method default to spawn, which lead to this error:

> NotImplementedError: fd_pipes only supported with HAVE_SEND_HANDLE or multiprocessing start method "fork"

My guess is that the msys version of python is incapable of the multiprocessing fork start method, and without HAVE_SEND_HANDLE, there would be no way to implement fd_pipes.

So, I suppose any attempt to use portage under msys might not be a very good idea, and WSL could be the most viable alternative. Cygwin might also work, since it emulates fork as described here:

https://wiki.gentoo.org/wiki/Prefix/Cygwin#Restrictions

Fork is not really desirable though, since the plan for https://github.com/python/cpython/issues/84559 is to make spawn the new default multiprocessing start method.