On Tue, Jul 15, 2025, 6:27 PM John Snow <js...@redhat.com> wrote:

> The way editable installs work has changed at some point since Fedora 40
> was released. Generally, we should be opting to use pyproject.toml
> installs (PEP517/518) - but those are not fully supported until v61 of
> setuptools, and CentOS Stream 9 ships v53.
>
> Until that time, we can make use of a transitional feature in
> pip/setuptools to use "legacy" editable installs, which is enough to fix
> "make check-dev" on modern local workstations for now.
>
> By using the environment variable approach to configure pip, we avoid
> any problems for older versions of pip that don't recognize this option,
> so it's harmless. The config-settings option first appeared in v23 of
> pip. editable_mode was first supported by setuptools in v64.
>
> (I'm not currently precisely aware of when the default behavior of '-e'
> switched away from 'compat', but it appears to be a joint effect between
> setuptools and pip versions.)
>
> Version information for supported build platforms:
>
> distro              python3  pip     setuptools  sphinx
> --------------------------------------------------------
> centos_stream_9     3.9.23   21.3.1  53.0.0      3.4.3
> ubuntu_22_04        3.10.12  22.0.2  59.6.0      4.3.2
>
> ** pyproject.toml installs supported as of here **
>
> freebsd             3.11.13  23.3.2  63.1.0      5.3.0
> debian_12           3.11.2   23.0.1  66.1.1      5.3.0
> ubuntu_24_04        3.12.3   24.0    68.1.2      7.2.6
> centos_stream_10    3.12.11  23.3.2  69.0.3      7.2.6
> fedora_41           3.13.5   24.2    69.2.0      7.3.7
> alpine_3_19         3.11.13  23.3.1  70.3.0      6.2.1
> alpine_3_20         3.12.11  24.0    70.3.0      7.2.6
> alpine_3_21         3.12.11  24.3.1  70.3.0      8.1.3
> ubuntu_24_10        3.12.7   24.2    74.1.2      7.4.7
> fedora_42           3.13.5   24.3.1  74.1.3      8.1.3
> ubuntu_25_04        3.13.3   25.0    75.8.0      8.1.3
> macports            3.13.5   25.1.1  78.1.1      8.2.3
> openbsd             3.12.11  25.1.1  79.0.1      8.2.3
> alpine_3_22         3.12.11  25.1.1  80.9.0      8.2.3
> homebrew            3.13.5   ---     80.9.0      8.2.3
> pkgsrc_current      3.12.11  25.1.1  80.9.0      8.2.3
>
> Signed-off-by: John Snow <js...@redhat.com>
> ---
>  python/Makefile | 4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> diff --git a/python/Makefile b/python/Makefile
> index 764b79ccb23..32aedce4137 100644
> --- a/python/Makefile
> +++ b/python/Makefile
> @@ -68,7 +68,7 @@ $(QEMU_MINVENV_DIR) $(QEMU_MINVENV_DIR)/bin/activate:
> setup.cfg tests/minreqs.tx
>                 echo "INSTALL -r tests/minreqs.txt $(QEMU_MINVENV_DIR)";\
>                 $(PIP_INSTALL) -r tests/minreqs.txt 1>/dev/null;        \
>                 echo "INSTALL -e qemu $(QEMU_MINVENV_DIR)";             \
> -               $(PIP_INSTALL) -e . 1>/dev/null;                        \
> +               PIP_CONFIG_SETTINGS="editable_mode=compat" $(PIP_INSTALL)
> -e . 1>/dev/null;     \
>         )
>         @touch $(QEMU_MINVENV_DIR)
>
> @@ -103,7 +103,7 @@ check-dev: dev-venv
>
>  .PHONY: develop
>  develop:
> -       $(PIP_INSTALL) -e .[devel]
> +       PIP_CONFIG_SETTINGS="editable_mode=compat" $(PIP_INSTALL) -e
> .[devel]
>
>  .PHONY: check
>  check:
> --
> 2.50.0
>

For what it's worth, I think this patch is safe to include in an early rc
as it should effect only testing - but if we don't feel it is safe, it's
also a very work-aroundable problem.

>

Reply via email to