From 1d7ceabc092ddc381bd1ae31d3398f9cf095a1e6 Mon Sep 17 00:00:00 2001 From: Maxime Devos Date: Wed, 14 Jul 2021 13:13:03 +0200 Subject: glib: Use a correct python in scripts when cross-compiling. During the build, a native python should be used as these scripts will be invoked during the build, but when installed, they should be a python for the system we're compiling for. * gnu/packages/glib.scm (glib)[arguments]<#:phases>{patch-python-references}: Look up "python" in 'native-inputs', not 'inputs'. (glib)[inputs]{python,python-wrapper,bash-minimal}: New inputs. Signed-off-by: Mathieu Othacehe --- gnu/packages/glib.scm | 17 +++++++++++++++-- 1 file changed, 15 insertions(+), 2 deletions(-) (limited to 'gnu') diff --git a/gnu/packages/glib.scm b/gnu/packages/glib.scm index f0be2ddaa4..99f5c5d450 100644 --- a/gnu/packages/glib.scm +++ b/gnu/packages/glib.scm @@ -16,6 +16,7 @@ ;;; Copyright © 2020 Florian Pelz ;;; Copyright © 2020 Jan (janneke) Nieuwenhuizen ;;; Copyright © 2020 Arthur Margerit +;;; Copyright © 2021 Maxime Devos ;;; ;;; This file is part of GNU Guix. ;;; @@ -223,14 +224,19 @@ (define glib #t)) ;; Python references are not being patched in patch-phase of build, ;; despite using python-wrapper as input. So we patch them manually. + ;; + ;; These python scripts are both used during build and installed, + ;; so at first, use a python from 'native-inputs', not 'inputs'. When + ;; cross-compiling, the 'patch-shebangs' phase will replace + ;; the native python with a python from 'inputs'. (add-after 'unpack 'patch-python-references - (lambda* (#:key inputs #:allow-other-keys) + (lambda* (#:key native-inputs inputs #:allow-other-keys) (substitute* '("gio/gdbus-2.0/codegen/gdbus-codegen.in" "glib/gtester-report.in" "gobject/glib-genmarshal.in" "gobject/glib-mkenums.in") (("@PYTHON@") - (string-append (assoc-ref inputs "python") + (string-append (assoc-ref (or native-inputs inputs) "python") "/bin/python" ,(version-major+minor (package-version python))))) @@ -293,6 +299,13 @@ (define glib ("xsltproc" ,libxslt))) (inputs `(("bash-completion" ,bash-completion) + ;; "python", "python-wrapper" and "bash-minimal" + ;; are for the 'patch-shebangs' phase, to make + ;; sure the installed scripts end up with a correct shebang + ;; when cross-compiling. + ("python" ,python) + ("python-wrapper" ,python-wrapper) + ("bash-minimal" ,bash-minimal) ("dbus" ,dbus) ("libelf" ,libelf))) (propagated-inputs -- cgit v1.2.3