unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
* [bug#57430] [PATCH] gnu: wayland-protocols: Fix cross-compilation
@ 2022-08-26 10:14 Tobias Kortkamp
  2022-08-26 15:04 ` Maxime Devos
  2022-08-30  7:18 ` bug#57430: " Mathieu Othacehe
  0 siblings, 2 replies; 9+ messages in thread
From: Tobias Kortkamp @ 2022-08-26 10:14 UTC (permalink / raw)
  To: 57430; +Cc: Tobias Kortkamp

* gnu/packages/freedesktop.scm (wayland-protocols): Fix cross-compilation
[native-inputs]: Add pkg-config-for-build and wayland.
---
 gnu/packages/freedesktop.scm | 7 +++++--
 1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 037a247243..c0a94c6623 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -1074,8 +1074,11 @@ (define-public wayland-protocols
     (build-system meson-build-system)
     (inputs
      (list wayland))
-    (native-inputs
-     (list pkg-config python))
+    (native-inputs (cons* pkg-config python
+                          (if (%current-target-system)
+                              (list pkg-config-for-build
+                                    wayland) ; for wayland-scanner
+                              '())))
     (synopsis "Wayland protocols")
     (description "Wayland-Protocols contains Wayland protocols that add
 functionality not available in the Wayland core protocol.  Such protocols either
-- 
2.37.1





^ permalink raw reply related	[flat|nested] 9+ messages in thread

* [bug#57430] [PATCH] gnu: wayland-protocols: Fix cross-compilation
  2022-08-26 10:14 [bug#57430] [PATCH] gnu: wayland-protocols: Fix cross-compilation Tobias Kortkamp
@ 2022-08-26 15:04 ` Maxime Devos
  2022-08-26 16:59   ` muradm
  2022-08-30  7:18 ` bug#57430: " Mathieu Othacehe
  1 sibling, 1 reply; 9+ messages in thread
From: Maxime Devos @ 2022-08-26 15:04 UTC (permalink / raw)
  To: Tobias Kortkamp, 57430; +Cc: muradm, Liliana Marie Prikler


[-- Attachment #1.1.1: Type: text/plain, Size: 1064 bytes --]

On 26-08-2022 12:14, Tobias Kortkamp wrote:

> * gnu/packages/freedesktop.scm (wayland-protocols): Fix cross-compilation
> [native-inputs]: Add pkg-config-for-build and wayland.

According to 'guix gc --references $(guix build wayland-protocols))' and 
it only having a 'share' subdirectory, this appears pure, 
architecture-independent, data.

As such, here's a proposal for a simpler solution: do:

;; Pure architecture-independent data, cross-compilation is meaningless.
;; Resolve a cross-compilation failure and save some disk space and 
compilation
;; time by always compiling natively. As an additional benefit, this 
avoids some
;; worrying about whether placing this package should be placed in 
'inputs' or in
;; 'native-inputs', it can now be placed wherever makes the build succeed.

(arguments (list #:target #false))

This appears related to https://issues.guix.gnu.org/50627, so putting 
the people there in CC.

I'm wondering, is whatever the issue addressed by 50627 now addressed by 
this patch?

Greetings,
Maxime.

[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 929 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [bug#57430] [PATCH] gnu: wayland-protocols: Fix cross-compilation
  2022-08-26 15:04 ` Maxime Devos
@ 2022-08-26 16:59   ` muradm
  2022-08-26 18:58     ` Maxime Devos
  0 siblings, 1 reply; 9+ messages in thread
From: muradm @ 2022-08-26 16:59 UTC (permalink / raw)
  To: Maxime Devos; +Cc: 57430, Tobias Kortkamp, Liliana Marie Prikler

[-- Attachment #1: Type: text/plain, Size: 2045 bytes --]


Maxime Devos <maximedevos@telenet.be> writes:

> [[PGP Signed Part:Undecided]]
> On 26-08-2022 12:14, Tobias Kortkamp wrote:
>
>> * gnu/packages/freedesktop.scm (wayland-protocols): Fix 
>> cross-compilation
>> [native-inputs]: Add pkg-config-for-build and wayland.
>
> According to 'guix gc --references $(guix build 
> wayland-protocols))'
> and it only having a 'share' subdirectory, this appears pure,
> architecture-independent, data.
>
> As such, here's a proposal for a simpler solution: do:
>
> ;; Pure architecture-independent data, cross-compilation is 
> meaningless.
> ;; Resolve a cross-compilation failure and save some disk space 
> and
>    compilation
> ;; time by always compiling natively. As an additional benefit, 
> this
>    avoids some
> ;; worrying about whether placing this package should be placed 
> in
>    'inputs' or in
> ;; 'native-inputs', it can now be placed wherever makes the 
> build succeed.
>
> (arguments (list #:target #false))
>
> This appears related to https://issues.guix.gnu.org/50627, so 
> putting
> the people there in CC.
>
> I'm wondering, is whatever the issue addressed by 50627 now 
> addressed
> by this patch?

Purpose of 50627 was to reduce dependency on wayland-protocols 
from
other packages.

As far as I understand, this one is to reduce dependencies of
wayland-protocols itself.

As far as I know, there is no binary output of wayland-protocols,
and wayland maybe needed as dependency for testing purposes only.
IMHO these tests are targeted for developers producing protocol
specifications. Once protocol specification is ready
wayland-protocols is released. So running tests on
wayland-protocols should be pointless waste of resources, as they
don't prove that anything useful, instead dependents should
test themselves. If testing causing waste of space and resources
I would turn them off or probably use copy-build-system even.

> Greetings,
> Maxime.
>
> [2. OpenPGP public key --- application/pgp-keys; 
> OpenPGP_0x49E3EE22191725EE.asc]...
>
> [[End of PGP Signed Part]]


[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 832 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [bug#57430] [PATCH] gnu: wayland-protocols: Fix cross-compilation
  2022-08-26 16:59   ` muradm
@ 2022-08-26 18:58     ` Maxime Devos
  2022-08-26 19:22       ` Liliana Marie Prikler
  2022-08-27 10:40       ` Tobias Kortkamp
  0 siblings, 2 replies; 9+ messages in thread
From: Maxime Devos @ 2022-08-26 18:58 UTC (permalink / raw)
  To: muradm; +Cc: 57430, Tobias Kortkamp, Liliana Marie Prikler


[-- Attachment #1.1.1: Type: text/plain, Size: 2509 bytes --]


On 26-08-2022 18:59, muradm wrote:
> As far as I understand, this one is to reduce dependencies of
> wayland-protocols itself. 

This one keeps the dependencies the same (except for pkg-config / 
pkg-config-for-build) -- it just sorts the dependencies differently.

> As far as I know, there is no binary output of wayland-protocols,

'ls -R "$(guix build wayland-protocols)"'? Maybe not 'binary', but it 
still appears required by some dependents.

> and wayland maybe needed as dependency for testing purposes only. 
This appears confirmed by meson.build. In that case, wayland can be 
removed from 'inputs' and put in 'native-inputs' unconditionally.

Tobias, does unconditionally moving wayland from 'inputs' to 
'native-inputs' (and unconditionally using pkg-config-for-build) work? 
Potential problem: lots of dependents according to "guix refresh -l", 
making it unconditional would need to be done on core-updates or staging.

> IMHO these tests are targeted for developers producing protocol
> specifications. Once protocol specification is ready
> wayland-protocols is released. So running tests on
> wayland-protocols should be pointless waste of resources, as they
> don't prove that anything useful, instead dependents should
> test themselves. If testing causing waste of space and resources
> I would turn them off or probably use copy-build-system even. 
#:tests? #false should suffice, no need to switch to copy-build-system.

I see the argument for a waste of CPU time/energy resources, but not for 
a waste of space.

Also, it is a dangerous assumption to make that developers run tests 
prior to a release. It seems pretty logical to me to do that, but 
sometimes errors are encountered in Guix and discussions happen upstream 
that indicate that this somehow didn't happen.

Even if developers are known to always run tests, without fail, they 
might run tests in a different environment.

For example, until recent-ish, GCC did -fcommon as a default, but later 
switched to -fcommon, breaking some builds.

Also, 'developers' is not necessarily 'upstream developers'. Sometimes 
Guix adds a patch to package definitions, in combinations that upstream 
might not have tested, in that case running tests is important. 
Additionally, sometimes I find it more practical to write a patch, add 
it to the package definition and do a "guix build", than to do 
whatever's the meson equivalent of 'make && make check'.

Greetings,
Maxime.


[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 929 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [bug#57430] [PATCH] gnu: wayland-protocols: Fix cross-compilation
  2022-08-26 18:58     ` Maxime Devos
@ 2022-08-26 19:22       ` Liliana Marie Prikler
  2022-08-26 20:34         ` Maxime Devos
  2022-08-27 10:40       ` Tobias Kortkamp
  1 sibling, 1 reply; 9+ messages in thread
From: Liliana Marie Prikler @ 2022-08-26 19:22 UTC (permalink / raw)
  To: Maxime Devos, muradm; +Cc: 57430, Tobias Kortkamp

Am Freitag, dem 26.08.2022 um 20:58 +0200 schrieb Maxime Devos:
> For example, until recent-ish, GCC did -fcommon as a default, but
> later switched to -fcommon, breaking some builds.
You probably typo'd there.

> Additionally, sometimes I find it more practical to write a patch,
> add it to the package definition and do a "guix build", than to do 
> whatever's the meson equivalent of 'make && make check'.
This is good advice for everyone regardless of build system, even if
you do also run make && make check manually.  guix build addresses
several other issues, particular in the graphics toolkit world :)




^ permalink raw reply	[flat|nested] 9+ messages in thread

* [bug#57430] [PATCH] gnu: wayland-protocols: Fix cross-compilation
  2022-08-26 19:22       ` Liliana Marie Prikler
@ 2022-08-26 20:34         ` Maxime Devos
  0 siblings, 0 replies; 9+ messages in thread
From: Maxime Devos @ 2022-08-26 20:34 UTC (permalink / raw)
  To: Liliana Marie Prikler, muradm; +Cc: 57430, Tobias Kortkamp


[-- Attachment #1.1.1: Type: text/plain, Size: 359 bytes --]

On 26-08-2022 21:22, Liliana Marie Prikler wrote:

> Am Freitag, dem 26.08.2022 um 20:58 +0200 schrieb Maxime Devos:
>> For example, until recent-ish, GCC did -fcommon as a default, but
>> later switched to -fcommon, breaking some builds.
> You probably typo'd there.
Yes, -fcommon and -fno-common if I have my GCC flags right.

Greetings,
Maxime


[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 929 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* [bug#57430] [PATCH] gnu: wayland-protocols: Fix cross-compilation
  2022-08-26 18:58     ` Maxime Devos
  2022-08-26 19:22       ` Liliana Marie Prikler
@ 2022-08-27 10:40       ` Tobias Kortkamp
  2022-08-27 11:02         ` Maxime Devos
  1 sibling, 1 reply; 9+ messages in thread
From: Tobias Kortkamp @ 2022-08-27 10:40 UTC (permalink / raw)
  To: Maxime Devos; +Cc: 57430, muradm, Liliana Marie Prikler

On Fri, Aug 26, 2022 at 08:58:51PM +0200, Maxime Devos wrote:
> Tobias, does unconditionally moving wayland from 'inputs' to 'native-inputs'
> (and unconditionally using pkg-config-for-build) work? Potential problem:
> lots of dependents according to "guix refresh -l", making it unconditional
> would need to be done on core-updates or staging.

You mean change the patch like this?

-    (inputs
-     (list wayland))
-    (native-inputs (cons* pkg-config python
-                          (if (%current-target-system)
-                              (list pkg-config-for-build
-                                    wayland) ; for wayland-scanner
-                              '())))
+    (native-inputs (list pkg-config pkg-config-for-build wayland python))

No, it doesn't work:

Run-time dependency wayland-client found: NO (tried pkgconfig)

../wayland-protocols-1.23/tests/meson.build:4:0: ERROR: Dependency "wayland-client" not found, tried pkgconfig

What would work is:

+    (arguments `(#:configure-flags (list "-Dtests=false")))
+    (native-inputs (list pkg-config-for-build wayland))

But this turns off the tests. Even then it still looks for
wayland-scanner for some reason.





^ permalink raw reply	[flat|nested] 9+ messages in thread

* [bug#57430] [PATCH] gnu: wayland-protocols: Fix cross-compilation
  2022-08-27 10:40       ` Tobias Kortkamp
@ 2022-08-27 11:02         ` Maxime Devos
  0 siblings, 0 replies; 9+ messages in thread
From: Maxime Devos @ 2022-08-27 11:02 UTC (permalink / raw)
  To: Tobias Kortkamp; +Cc: 57430, muradm, Liliana Marie Prikler


[-- Attachment #1.1.1: Type: text/plain, Size: 1267 bytes --]


On 27-08-2022 12:40, Tobias Kortkamp wrote:
> On Fri, Aug 26, 2022 at 08:58:51PM +0200, Maxime Devos wrote:
>> Tobias, does unconditionally moving wayland from 'inputs' to 'native-inputs'
>> (and unconditionally using pkg-config-for-build) work? Potential problem:
>> lots of dependents according to "guix refresh -l", making it unconditional
>> would need to be done on core-updates or staging.
> You mean change the patch like this?
>
> -    (inputs
> -     (list wayland))
> -    (native-inputs (cons* pkg-config python
> -                          (if (%current-target-system)
> -                              (list pkg-config-for-build
> -                                    wayland) ; for wayland-scanner
> -                              '())))
> +    (native-inputs (list pkg-config pkg-config-for-build wayland python))
>
> No, it doesn't work:
>
> Run-time dependency wayland-client found: NO (tried pkgconfig)
>
> ../wayland-protocols-1.23/tests/meson.build:4:0: ERROR: Dependency "wayland-client" not found, tried pkgconfig

I thought it would work because in the meson.build, wayland-protocols 
was listed as 'native', but apparently things are different on 
core-updates and master (1.23 vs. 1.25).

Greetings,
Maxime.



[-- Attachment #1.1.2: OpenPGP public key --]
[-- Type: application/pgp-keys, Size: 929 bytes --]

[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 236 bytes --]

^ permalink raw reply	[flat|nested] 9+ messages in thread

* bug#57430: [PATCH] gnu: wayland-protocols: Fix cross-compilation
  2022-08-26 10:14 [bug#57430] [PATCH] gnu: wayland-protocols: Fix cross-compilation Tobias Kortkamp
  2022-08-26 15:04 ` Maxime Devos
@ 2022-08-30  7:18 ` Mathieu Othacehe
  1 sibling, 0 replies; 9+ messages in thread
From: Mathieu Othacehe @ 2022-08-30  7:18 UTC (permalink / raw)
  To: Tobias Kortkamp; +Cc: 57430-done, maximedevos


Hello Tobias,

> * gnu/packages/freedesktop.scm (wayland-protocols): Fix cross-compilation
> [native-inputs]: Add pkg-config-for-build and wayland.

Maxime's idea of setting #target to false is interesting but let's go
with your original patch because it's the way we handle things in
general.

Thanks,

Mathieu




^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2022-08-30  7:19 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-08-26 10:14 [bug#57430] [PATCH] gnu: wayland-protocols: Fix cross-compilation Tobias Kortkamp
2022-08-26 15:04 ` Maxime Devos
2022-08-26 16:59   ` muradm
2022-08-26 18:58     ` Maxime Devos
2022-08-26 19:22       ` Liliana Marie Prikler
2022-08-26 20:34         ` Maxime Devos
2022-08-27 10:40       ` Tobias Kortkamp
2022-08-27 11:02         ` Maxime Devos
2022-08-30  7:18 ` bug#57430: " Mathieu Othacehe

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/guix.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).