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>
