On Thu, May 22, 2025 at 01:08:07AM -0400, Ionen Wolkens wrote:
On Thu, May 22, 2025 at 12:35:48AM -0400, Eli Schwartz wrote:
This has been bothering me for a while. Meson will detect find_program('python3') as the dummy shim in ${T} defined by the eclass, and py.find_installation() may be the python that *Meson* was built
with. In DISTUTILS_USE_PEP517=meson-python a dedicated machine file is created by the build backend but we should set this for other types of packages as well.
Signed-off-by: Eli Schwartz <[email protected]>
---
eclass/meson.eclass | 11 ++++++++++-
1 file changed, 10 insertions(+), 1 deletion(-)
diff --git a/eclass/meson.eclass b/eclass/meson.eclass
index a2bc5537e458..ab82234942d5 100644
--- a/eclass/meson.eclass
+++ b/eclass/meson.eclass
@@ -1,4 +1,4 @@
-# Copyright 2017-2024 Gentoo Authors
+# Copyright 2017-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
# @ECLASS: meson.eclass
@@ -224,7 +224,16 @@ _meson_create_native_file() {
pkg-config = '$(tc-getBUILD_PKG_CONFIG)'
strip = $(_meson_env_array "$(tc-getBUILD_STRIP)")
windres = $(_meson_env_array "$(tc-getBUILD_PROG RC windres)")
+ EOF
+
+ if [[ -n ${EPYTHON} ]]; then
+ cat >> "${fn}" <<-EOF
+ python = '${EPREFIX}/usr/bin/${EPYTHON}'
+ python3 = '${EPREFIX}/usr/bin/${EPYTHON}'
+ EOF
+ fi
One problem is that there is two potential usecase here.
1. build system storing path for runtime use (rare'ish)
2. using at build time for some script (more common)
1 should indeed be ${EPREFIX}/usr/bin/${EPYTHON}
2 should be either the wrapper or ${PYTHON} which includes BROOT
To add to this, guess we "could" use ${PYTHON} here as it'll be right
when ROOT is unset and not break build-time usage for crossdev, but
feel that just makes wrong-runtime-path issues harder to notice (vs
the ${T} one) given we'll only spot issues with ROOT.
tl;dr think the current situation is better even if means needing
ebuild workarounds for #1.
So I think this breaks ROOT builds unless I'm missing something.
+ cat >> "${fn}" <<-EOF
[built-in options]
c_args = $(_meson_env_array "${BUILD_CFLAGS} ${BUILD_CPPFLAGS}")
c_link_args = $(_meson_env_array "${BUILD_CFLAGS} ${BUILD_LDFLAGS}")
--
2.49.0
--
ionen
--
ionen
-----BEGIN PGP SIGNATURE-----
iQEzBAABCAAdFiEEx3SLh1HBoPy/yLVYskQGsLCsQzQFAmguvKQACgkQskQGsLCs QzQnQQf5AX5ELkkwKh/AH52HtEBaep+C/wt7pvGf2tbpfOblU9DHk24fs8nZFVM/ duFiGrIUrT+Xndlz/9uRWvkAZfum31ftVbkahByUrRD/ovgWCK42By9wMrQ84pDW iKZYS+UU2CK5vFQ1d+oIz2ICaJWtjk/JgY4oGATHlwVTWs/9/MkKJ5mW+C+p74Qi Ia6fxk1pBvZRBxY3IGqEFBfotGYN40YEWbyD7T9s4byuAtnyW7h8k6QQiX6hyC1J Dy/ZmXSpY8IuZ0VX88mJJPHYgHnXEolSjFSWtQL8zs08Oxo1xnQh/tcc9ai0CSJ1 3OEDB4qVZOEIU5JPEeaGdYi2usHzPA==
=fMHD
-----END PGP SIGNATURE-----
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)