Message ID | 52c57042714d524c092002e64dfd53e4ebde5b02.camel@telenet.be |
---|---|
State | New |
Headers | show |
Series | [bug#49437,core-updates] build-system/qt: Fix build failures when | expand |
Context | Check | Description |
---|---|---|
cbaines/applying patch | fail | View Laminar job |
cbaines/issue | success | View issue |
Hey, > One of the features of 'qt-build-system' is that it automatically > creates wrappers, but it needs 'bash' (or 'bash-minimal') to do > so. If "bin/bash" doesn't exist among the 'inputs', then > 'search-input-file' (used by 'wrap-all-programs') will raise an > exception. Address this exception by adding "bash-minimal" to > 'host-inputs' when cross-compiling. I'd like to test it but it looks like qt-build-system drags glib which uses the meson-build-system that doesn't support cross-compilation. Did you test this patch, on top of your meson series? Otherwise, it looks fine to me. Thanks, Mathieu
Mathieu Othacehe schreef op do 08-07-2021 om 21:37 [+0200]: > Hey, > > > One of the features of 'qt-build-system' is that it automatically > > creates wrappers, but it needs 'bash' (or 'bash-minimal') to do > > so. If "bin/bash" doesn't exist among the 'inputs', then > > 'search-input-file' (used by 'wrap-all-programs') will raise an > > exception. Address this exception by adding "bash-minimal" to > > 'host-inputs' when cross-compiling. > > I'd like to test it but it looks like qt-build-system drags glib which > uses the meson-build-system that doesn't support cross-compilation. > > Did you test this patch, on top of your meson series? I had started "./pre-inst-env guix build qtsvg" but that's no cross-compilation. I'll rebase the meson series and test it! Greetings, Maxime.
Hello, Maxime Devos <maximedevos@telenet.be> writes: > Mathieu Othacehe schreef op do 08-07-2021 om 21:37 [+0200]: >> Hey, >> >> > One of the features of 'qt-build-system' is that it automatically >> > creates wrappers, but it needs 'bash' (or 'bash-minimal') to do >> > so. If "bin/bash" doesn't exist among the 'inputs', then >> > 'search-input-file' (used by 'wrap-all-programs') will raise an >> > exception. Address this exception by adding "bash-minimal" to >> > 'host-inputs' when cross-compiling. >> >> I'd like to test it but it looks like qt-build-system drags glib which >> uses the meson-build-system that doesn't support cross-compilation. >> >> Did you test this patch, on top of your meson series? > > I had started "./pre-inst-env guix build qtsvg" but that's no > cross-compilation. I'll rebase the meson series and test it! Did it test fine? Thanks, Maxim
Maxim Cournoyer schreef op wo 22-09-2021 om 23:53 [-0400]: > Hello, > > Maxime Devos <maximedevos@telenet.be> writes: > > > Mathieu Othacehe schreef op do 08-07-2021 om 21:37 [+0200]: > > > Hey, > > > > > > > One of the features of 'qt-build-system' is that it automatically > > > > creates wrappers, but it needs 'bash' (or 'bash-minimal') to do > > > > so. If "bin/bash" doesn't exist among the 'inputs', then > > > > 'search-input-file' (used by 'wrap-all-programs') will raise an > > > > exception. Address this exception by adding "bash-minimal" to > > > > 'host-inputs' when cross-compiling. > > > > > > I'd like to test it but it looks like qt-build-system drags glib which > > > uses the meson-build-system that doesn't support cross-compilation. > > > > > > Did you test this patch, on top of your meson series? > > > > I had started "./pre-inst-env guix build qtsvg" but that's no > > cross-compilation. I'll rebase the meson series and test it! > > Did it test fine? Didn't test it yet, because I first wanted the meson series merged. Now the meson series and the gtk+ cross-compilation fixes are merged, I'll take a look again. > Thanks, > > Maxim
Hi Maxime, I hope you are doing well. Maxime Devos <maximedevos@telenet.be> writes: > Maxim Cournoyer schreef op wo 22-09-2021 om 23:53 [-0400]: >> Hello, >> >> Maxime Devos <maximedevos@telenet.be> writes: >> >> > Mathieu Othacehe schreef op do 08-07-2021 om 21:37 [+0200]: >> > > Hey, >> > > >> > > > One of the features of 'qt-build-system' is that it automatically >> > > > creates wrappers, but it needs 'bash' (or 'bash-minimal') to do >> > > > so. If "bin/bash" doesn't exist among the 'inputs', then >> > > > 'search-input-file' (used by 'wrap-all-programs') will raise an >> > > > exception. Address this exception by adding "bash-minimal" to >> > > > 'host-inputs' when cross-compiling. >> > > >> > > I'd like to test it but it looks like qt-build-system drags glib which >> > > uses the meson-build-system that doesn't support cross-compilation. >> > > >> > > Did you test this patch, on top of your meson series? >> > >> > I had started "./pre-inst-env guix build qtsvg" but that's no >> > cross-compilation. I'll rebase the meson series and test it! >> >> Did it test fine? > > Didn't test it yet, because I first wanted the meson series merged. > Now the meson series and the gtk+ cross-compilation fixes are merged, > I'll take a look again. core-updates is pretty "hot" at the moment, so it may be a good time to test. On the other hand, there aren't that many Qt packages, so it could also go to staging IMO. And if it only touches cross-compilation drv, perhaps it's good for master too? It just needs testing.
Op 29-03-2023 om 04:15 schreef Maxim Cournoyer: > Hi Maxime, > > I hope you are doing well. > > [...] > > core-updates is pretty "hot" at the moment, so it may be a good time to > test. > > On the other hand, there aren't that many Qt packages, so it could also > go to staging IMO. And if it only touches cross-compilation drv, > perhaps it's good for master too? > > It just needs testing. I am not participating in Guix development anymore, except perhaps for bug reports and for when Guix intersects GNUnet, and currently it appears a permanent decision. Greetings, Maxime.
Hi, Maxime Devos <maximedevos@telenet.be> writes: > Op 29-03-2023 om 04:15 schreef Maxim Cournoyer: >> Hi Maxime, >> I hope you are doing well. >> [...] >> core-updates is pretty "hot" at the moment, so it may be a good time >> to >> test. >> On the other hand, there aren't that many Qt packages, so it could >> also >> go to staging IMO. And if it only touches cross-compilation drv, >> perhaps it's good for master too? >> It just needs testing. > > I am not participating in Guix development anymore, except perhaps for > bug reports and for when Guix intersects GNUnet, and currently it > appears a permanent decision. OK. It's sad that it's come to this, but I respect your decision; thanks for making it clear. Your thoughtful inputs and high-impact Guix contributions will be missed!
Hi, Maxime Devos <maximedevos@telenet.be> writes: > Mathieu Othacehe schreef op do 08-07-2021 om 16:45 [+0200]: >> Hey Maxime, >> >> > I am unable to test this at the moment (too little substitutes >> > for core-updates, too little processing power locally ...), but >> > I intent to do so later. >> >> I think you are missing the attached patch here. > > Now attached! > > Greetings, > Maxime. > > From b9e46156e1f35303b56fbe2ed4694385b6104214 Mon Sep 17 00:00:00 2001 > From: Maxime Devos <maximedevos@telenet.be> > Date: Tue, 6 Jul 2021 10:57:49 +0200 > Subject: [PATCH core-updates] build-system/qt: Fix build failures when > cross-compiling. > > One of the features of 'qt-build-system' is that it automatically > creates wrappers, but it needs 'bash' (or 'bash-minimal') to do > so. If "bin/bash" doesn't exist among the 'inputs', then > 'search-input-file' (used by 'wrap-all-programs') will raise an > exception. Address this exception by adding "bash-minimal" to > 'host-inputs' when cross-compiling. > > This change does not impact native compilation; the derivations > for natively-compiled packages remain identical. > > * guix/build-system/qt.scm > (bash-for-wrappers): New procedure. > (lower): Add 'bash-minimal' to 'host-inputs' when cross-compiling. I don't think our Qt packages can be already cross-built; hence there's no current value in adding this before addressing cross-compilation of the qt-build-system in the first place. Also, 'guix lint' would still complain, so for now I'm opting to close this without applying it.
From b9e46156e1f35303b56fbe2ed4694385b6104214 Mon Sep 17 00:00:00 2001 From: Maxime Devos <maximedevos@telenet.be> Date: Tue, 6 Jul 2021 10:57:49 +0200 Subject: [PATCH core-updates] build-system/qt: Fix build failures when cross-compiling. One of the features of 'qt-build-system' is that it automatically creates wrappers, but it needs 'bash' (or 'bash-minimal') to do so. If "bin/bash" doesn't exist among the 'inputs', then 'search-input-file' (used by 'wrap-all-programs') will raise an exception. Address this exception by adding "bash-minimal" to 'host-inputs' when cross-compiling. This change does not impact native compilation; the derivations for natively-compiled packages remain identical. * guix/build-system/qt.scm (bash-for-wrappers): New procedure. (lower): Add 'bash-minimal' to 'host-inputs' when cross-compiling. --- guix/build-system/qt.scm | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/guix/build-system/qt.scm b/guix/build-system/qt.scm index ccee89d5ef..9fa90baeeb 100644 --- a/guix/build-system/qt.scm +++ b/guix/build-system/qt.scm @@ -3,6 +3,7 @@ ;;; Copyright © 2013 Cyril Roelandt <tipecaml@gmail.com> ;;; Copyright © 2017 Ricardo Wurmus <rekado@elephly.net> ;;; Copyright © 2019 Hartmut Goebel <h.goebel@crazy-compilers.com> +;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> ;;; ;;; This file is part of GNU Guix. ;;; @@ -63,6 +64,13 @@ (let ((module (resolve-interface '(gnu packages cmake)))) (module-ref module 'cmake-minimal))) +(define (bash-for-wrappers) + "Return the bash package to use for wrappers." + + ;; Do not use `@' to avoid introducing circular dependencies. + (let ((module (resolve-interface '(gnu packages bash)))) + (module-ref module 'bash-minimal))) + ;; This barely is a copy from (guix build-system cmake), only adjusted to use ;; the variables defined here. (define* (lower name @@ -91,7 +99,12 @@ '()) ;; Keep the standard inputs of 'gnu-build-system'. ,@(standard-packages))) - (host-inputs inputs) + ;; Make sure the 'qt-wrap' phase has a cross-compiled bash + ;; for wrappers when cross-compiling. + (host-inputs `(,@(if target + `(("bash-minimal" ,(bash-for-wrappers))) + '()) + ,@inputs)) ;; The cross-libc is really a target package, but for bootstrapping ;; reasons, we can't put it in 'host-inputs'. Namely, 'cross-gcc' is a -- 2.32.0