Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 30 Apr 2026 17:53:50 +0000
From:      bugzilla-noreply@freebsd.org
To:        python@FreeBSD.org
Subject:   [Bug 294631] devel/py-installer update to 1.0.0 broke several python ports builds
Message-ID:  <bug-294631-21822-9m1idPSt4e@https.bugs.freebsd.org/bugzilla/>
In-Reply-To: <bug-294631-21822@https.bugs.freebsd.org/bugzilla/>

index | next in thread | previous in thread | raw e-mail

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=294631

--- Comment #29 from Charlie Li <vishwin@freebsd.org> ---
I'm really not joking.

The default behaviour of even devel/py-build, which is central to
USE_PYTHON=pep517 outside of itself and its dependencies (namely flit-core and
installer), when building a binary distribution (binary wheel) is to create a
virtual environment to perform the build. We only override this default for the
following reasons:
- poudriere is our analogue of said virtual environment. We use pkg(8) to
manage dependencies in there.
- system packages (ie anything from pkg(8)) representing Python packages are
not available in Python virtual environments by default. pip is used in Python
virtual environments for package management, which we do not want, and would
not be permissible since the network is accessed outside of fetch.

I understand that this is not something youse wanted to hear. Unfortunately,
this is not a FreeBSD ports problem, or even a problem with other operating
system-level package building systems. If anything, we (both as FreeBSD Ports
and individuals who build stuff from source) and other operating system-level
package building systems have had to adapt to this reality, handbook or not. To
quote myself in an unrelated thread broaching this topic:

The wider open source community has largely shied away from building in live
environments because it is not verifiably reproducible, amongst other reasons.
This is especially pronounced with many projects using CI. This allows projects
to better focus on more relevant tasks and bugs and such rather than providing
too much tech support for what could very well be pilot error.

For Python packages specifically, isolated environments are expected and
practically required. There is widespread dependency version bounding and
pinning and excepting for various different reasons. In a pure Python
environment, both pip [0] and build [1] build binary wheels in an isolated
virtual environment by default. There was a proposed standard [2] to make
virtual environments mandatory; while withdrawn for different reasons, the
sentiment remains that virtual environments are an essential part of the
development workflow, binary wheel building included, to the point where
higher-level tools wrap them. [3]

[0] https://pip.pypa.io/en/latest/reference/build-system/
[1]
https://build.pypa.io/en/latest/how-to/basic-usage.html#building-without-isolation
[2] https://peps.python.org/pep-0704/
[3] https://packaging.python.org/en/latest/overview/#virtualenv

More commentary in a separate comment and title change...

-- 
You are receiving this mail because:
You are on the CC list for the bug.
You are the assignee for the bug.

home | help

Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-294631-21822-9m1idPSt4e>