On Tue, 2023-08-15 at 18:25 -0400, Ionen Wolkens wrote: > On Tue, Aug 15, 2023 at 11:02:54PM +0100, James Le Cuirot wrote: > > We dynamically determine Python's SITEDIR and INCLUDEDIR using the build > > host's Python. This breaks down when the build host's prefix differs > > from the target host's prefix, so chop off the former and prepend the > > latter. > > > > This assumes that each Python implementation is always installed using > > the same scheme. Meson already makes this assumption, and gpep517 makes > > a similar assumption to determine Python's stdlib location. > > > > We could improve on this and determine these locations using SYSROOT's > > sysconfigdata file, like gpep517 does, but this seems needlessly > > complex. We would need to take this approach for PYTHON_LIBPATH and > > PYTHON_CONFIG, but these are only used by handful of packages. > > > > ${BROOT-${EPREFIX}} is needed rather than plain ${BROOT} for the same > > reason we need it for PYTHON, namely that Portage <3.0.50 was buggy. > > > > Signed-off-by: James Le Cuirot <ch...@gentoo.org> > > --- > > > > Note that gpep517 also needs the same treatment, but I'll handle that > > later. This at least allows Portage itself to be installed. > > > > eclass/python-utils-r1.eclass | 2 ++ > > 1 file changed, 2 insertions(+) > > > > diff --git a/eclass/python-utils-r1.eclass b/eclass/python-utils-r1.eclass > > index 2fffd6d56bf5..68b28c0ed806 100644 > > --- a/eclass/python-utils-r1.eclass > > +++ b/eclass/python-utils-r1.eclass > > @@ -351,6 +351,7 @@ _python_export() { > > > > print(sysconfig.get_path("purelib")) > > EOF > > ) > > + > > PYTHON_SITEDIR=${EPREFIX}${PYTHON_SITEDIR#${BROOT-${EPREFIX}}} > > For a minor nitpick, should use quotes for the substitution, aka: > > PYTHON_SITEDIR=${EPREFIX}${PYTHON_SITEDIR#"${BROOT-${EPREFIX}}"} > > Or else if BROOT/EPREFIX somehow had glob characters in them, they will > actually be globbing. > > > export PYTHON_SITEDIR > > debug-print "${FUNCNAME}: PYTHON_SITEDIR = > > ${PYTHON_SITEDIR}" > > ;; > > @@ -362,6 +363,7 @@ _python_export() { > > > > print(sysconfig.get_path("platinclude")) > > EOF > > ) > > + > > PYTHON_INCLUDEDIR=${ESYSROOT}${PYTHON_INCLUDEDIR#${BROOT-${EPREFIX}}} > > Same here. > > > export PYTHON_INCLUDEDIR > > debug-print "${FUNCNAME}: PYTHON_INCLUDEDIR = > > ${PYTHON_INCLUDEDIR}" > > > > -- > > 2.41.0 > >
Oops, not like me to miss that. Thanks!
signature.asc
Description: This is a digitally signed message part