GNU bug report logs -
#50084
[PATCH] gnu: Add waypipe.
Previous Next
Reported by: Robby Zambito <contact <at> robbyzambito.me>
Date: Tue, 17 Aug 2021 02:35:01 UTC
Severity: normal
Tags: patch
Done: Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
Bug is archived. No further changes may be made.
To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 50084 in the body.
You can then email your comments to 50084 AT debbugs.gnu.org in the normal way.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
guix-patches <at> gnu.org
:
bug#50084
; Package
guix-patches
.
(Tue, 17 Aug 2021 02:35:01 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Robby Zambito <contact <at> robbyzambito.me>
:
New bug report received and forwarded. Copy sent to
guix-patches <at> gnu.org
.
(Tue, 17 Aug 2021 02:35:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/xdisorg.scm (waypipe): New variable.
---
gnu/packages/xdisorg.scm | 28 ++++++++++++++++++++++++++++
1 file changed, 28 insertions(+)
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index 71c2ea4cbc..d79f580b47 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -50,6 +50,7 @@
;;; Copyright © 2021 Niklas Eklund <niklas.eklund <at> posteo.net>
;;; Copyright © 2021 Nikita Domnitskii <nikita <at> domnitskii.me>
;;; Copyright © 2021 ikasero <ahmed <at> ikasero.com>
+;;; Copyright © 2021 Robby Zambito <contact <at> robbyzambito.me>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -866,6 +867,33 @@ predefined region or a particular window. Also, it makes it possible to
include cursor in the resulting image.")
(license license:gpl3+)))
+(define-public waypipe
+ (package
+ (name "waypipe")
+ (version "0.8.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.freedesktop.org/mstoeckl/waypipe")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1qa47ljfvb1vv3h647xwn1j5j8gfmcmdfaz4j8ygnkvj36y87vnz"))))
+ (build-system meson-build-system)
+ ;; One test fails where the program does not exit cleanly given a bad
+ ;; setup. Not ideal but probably safe to ignore. Check that no other tests
+ ;; fail before bumping the version. If all tests pass, remove this.
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (delete 'check))))
+ (home-page "https://gitlab.freedesktop.org/mstoeckl/waypipe")
+ (synopsis "Proxy for Wayland protocol applications")
+ (description "Waypipe is a proxy for Wayland clients, with the aim of
+supporting behavior like ssh -X.")
+ (license license:expat)))
+
(define-public unclutter
(package
(name "unclutter")
--
2.32.0
Information forwarded
to
guix-patches <at> gnu.org
:
bug#50084
; Package
guix-patches
.
(Wed, 18 Aug 2021 20:57:02 GMT)
Full text and
rfc822 format available.
Message #8 received at 50084 <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/xdisorg.scm (waypipe): Don't skip tests. Add dependencies
required to run the tests.
---
This is my first contribution to guix, I was not aware of how to do what
was needed to properly pass the tests for this package. After consulting
#guix on IRC, I have believe I have made the necessary changes.
gnu/packages/xdisorg.scm | 19 +++++++++++++++----
1 file changed, 15 insertions(+), 4 deletions(-)
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index d79f580b47..ba520d35ae 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -881,13 +881,24 @@ include cursor in the resulting image.")
(sha256
(base32 "1qa47ljfvb1vv3h647xwn1j5j8gfmcmdfaz4j8ygnkvj36y87vnz"))))
(build-system meson-build-system)
- ;; One test fails where the program does not exit cleanly given a bad
- ;; setup. Not ideal but probably safe to ignore. Check that no other tests
- ;; fail before bumping the version. If all tests pass, remove this.
(arguments
`(#:phases
(modify-phases %standard-phases
- (delete 'check))))
+ (add-after 'unpack 'fix-sleep-path
+ (lambda* (#:key inputs outputs #:allow-other-keys)
+ (let ((out (assoc-ref outputs "out"))
+ (coreutils (assoc-ref inputs "coreutils")))
+ (substitute* "./test/startup_failure.py"
+ (("sleep")
+ (string-append coreutils "/bin/sleep")))
+ #t))))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("scdoc" ,scdoc)))
+ (inputs
+ ;; For tests
+ `(("python" ,python)
+ ("coreutils" ,coreutils)))
(home-page "https://gitlab.freedesktop.org/mstoeckl/waypipe")
(synopsis "Proxy for Wayland protocol applications")
(description "Waypipe is a proxy for Wayland clients, with the aim of
--
2.32.0
Information forwarded
to
guix-patches <at> gnu.org
:
bug#50084
; Package
guix-patches
.
(Wed, 18 Aug 2021 22:58:02 GMT)
Full text and
rfc822 format available.
Message #11 received at 50084 <at> debbugs.gnu.org (full text, mbox):
Hi,
> + (add-after 'unpack 'fix-sleep-path
> + (lambda* (#:key inputs outputs #:allow-other-keys)
> + (let ((out (assoc-ref outputs "out"))
out is not used anywhere, so you can remove it, along with the outputs
argument of the lambda.
> + (coreutils (assoc-ref inputs "coreutils")))
> + (substitute* "./test/startup_failure.py"
> + (("sleep")
> + (string-append coreutils "/bin/sleep")))
> + #t))))))
> + (native-inputs
> + `(("pkg-config" ,pkg-config)
> + ("scdoc" ,scdoc)))
> + (inputs
> + ;; For tests
> + `(("python" ,python)
> + ("coreutils" ,coreutils)))
I haven't tried building this or anything, but if python and coreutils
are really only needed for tests, then they need not be in inputs (and
the fact that the initial version of this patch didn't have them at all
supports this thesis).
In other words, I'd put everything in native-inputs.
Also (and this is really minor), arguments normally follows the inputs
sections.
Best regards,
Paul
Information forwarded
to
guix-patches <at> gnu.org
:
bug#50084
; Package
guix-patches
.
(Thu, 19 Aug 2021 02:14:02 GMT)
Full text and
rfc822 format available.
Message #14 received at 50084 <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/xdisorg.scm (waypipe)[arguments]: Remove unused
argument from fix-sleep-path phase.
[native-inputs]: Add python, coreutils.
[inputs]: Remove python, coreutils.
---
Paul,
Thank you for the tips. I've removed the unused outputs argument, as
well as the out variable.
I'm a bit confused as to why test dependencies are supposed to be
native-inputs. Aren't the tests run on the target architecture, not the
build machine architecture? And aren't native-inputs built for the build
machine architecture?
I cross compiled the package for armhf-linux and aarch64-linux and it
built and tested fine with the changes you suggested, but I also did the
same with how I had it previously.
Sincerely,
Robby
gnu/packages/xdisorg.scm | 16 ++++++----------
1 file changed, 6 insertions(+), 10 deletions(-)
diff --git a/gnu/packages/xdisorg.scm b/gnu/packages/xdisorg.scm
index ba520d35ae..f5b041a590 100644
--- a/gnu/packages/xdisorg.scm
+++ b/gnu/packages/xdisorg.scm
@@ -885,19 +885,15 @@ include cursor in the resulting image.")
`(#:phases
(modify-phases %standard-phases
(add-after 'unpack 'fix-sleep-path
- (lambda* (#:key inputs outputs #:allow-other-keys)
- (let ((out (assoc-ref outputs "out"))
- (coreutils (assoc-ref inputs "coreutils")))
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((coreutils (assoc-ref inputs "coreutils")))
(substitute* "./test/startup_failure.py"
- (("sleep")
- (string-append coreutils "/bin/sleep")))
- #t))))))
+ (("sleep") (string-append coreutils "/bin/sleep")))))))))
(native-inputs
`(("pkg-config" ,pkg-config)
- ("scdoc" ,scdoc)))
- (inputs
- ;; For tests
- `(("python" ,python)
+ ("scdoc" ,scdoc)
+ ;; For tests
+ ("python" ,python)
("coreutils" ,coreutils)))
(home-page "https://gitlab.freedesktop.org/mstoeckl/waypipe")
(synopsis "Proxy for Wayland protocol applications")
--
2.32.0
Information forwarded
to
guix-patches <at> gnu.org
:
bug#50084
; Package
guix-patches
.
(Thu, 19 Aug 2021 04:05:01 GMT)
Full text and
rfc822 format available.
Message #17 received at 50084 <at> debbugs.gnu.org (full text, mbox):
On Wednesday, August 18th, 2021 at 22:02, Robby Zambito <contact <at> robbyzambito.me> wrote:
> I'm a bit confused as to why test dependencies are supposed to be
> native-inputs. Aren't the tests run on the target architecture, not the
> build machine architecture? And aren't native-inputs built for the build
> machine architecture?
You might be right.
I haven't yet done any cross compiling with Guix yet, so I don't know much about it.
I'll have to let someone with more knowledge comment on this.
Best regards,
Paul
Information forwarded
to
guix-patches <at> gnu.org
:
bug#50084
; Package
guix-patches
.
(Thu, 19 Aug 2021 15:25:01 GMT)
Full text and
rfc822 format available.
Message #20 received at 50084 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Robby Zambito schreef op wo 18-08-2021 om 22:02 [-0400]:
> * gnu/packages/xdisorg.scm (waypipe)[arguments]: Remove unused
> argument from fix-sleep-path phase.
> [native-inputs]: Add python, coreutils.
> [inputs]: Remove python, coreutils.
> ---
> Paul,
>
> Thank you for the tips. I've removed the unused outputs argument, as
> well as the out variable.
>
> I'm a bit confused as to why test dependencies are supposed to be
> native-inputs. Aren't the tests run on the target architecture, not the
> build machine architecture? And aren't native-inputs built for the build
> machine architecture?
By default, tests are never run when cross-compiling, so putting test
dependencies in 'native-inputs' works in practice. Theoretically,
putting test dependencies in 'inputs' might be cleaner, especially
if at some point Guix supports testing cross-compiled packages
(maybe the build directory could be copied to a "worktree" output or
something, and guix could provide a command to test the cross-compiled
binaries on the machine that was cross-compiled for or something).
Nevertheless, test dependencies tend to be put in 'native-input' anyways.
This has a practical reason (*): not all build systems support
cross-compilation. E.g., the build system 'meson', used by 'glib', doesn't
support cross-compilation on 'master' (it does on 'core-updates-frozen' though),
so packages that (indirectly) have 'glib' as 'input' cannot be an 'input'.
(*) not necessarily the reason people originally had in mind.
> I cross compiled the package for armhf-linux and aarch64-linux and it
> built and tested fine with the changes you suggested, but I also did the
Are you sure it tested? Unless qemu transparent emulation is enabled
(see ‘Transparent Emulation with QEMU’ in the manual) that cannot happen.
Greetings,
Maxime.
[signature.asc (application/pgp-signature, inline)]
Information forwarded
to
guix-patches <at> gnu.org
:
bug#50084
; Package
guix-patches
.
(Thu, 19 Aug 2021 19:59:02 GMT)
Full text and
rfc822 format available.
Message #23 received at 50084 <at> debbugs.gnu.org (full text, mbox):
Hi Maxime,
Thank you for the insight.
> > I cross compiled the package for armhf-linux and aarch64-linux and it
> > built and tested fine with the changes you suggested, but I also did the
>
> Are you sure it tested? Unless qemu transparent emulation is enabled
> (see ‘Transparent Emulation with QEMU’ in the manual) that cannot happen.
I just ran it again to be sure, and yes. I did set up QEMU for building
on other architectures. I suppose this means QEMU is being used for the
'native-inputs', which is a little confusing but I guess it makes sense
:D
With the current state of these patches it follows the practice of
putting the test dependencies in the native-inputs. If there is anything
else that is needed before this can be merged I will be happy to make it
happen!
Sincerely,
Robby
Information forwarded
to
guix-patches <at> gnu.org
:
bug#50084
; Package
guix-patches
.
(Thu, 19 Aug 2021 21:14:02 GMT)
Full text and
rfc822 format available.
Message #26 received at 50084 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Robby Zambito schreef op do 19-08-2021 om 15:58 [-0400]:
> Hi Maxime,
>
> Thank you for the insight.
>
> > > I cross compiled the package for armhf-linux and aarch64-linux and it
> > > built and tested fine with the changes you suggested, but I also did the
> >
> > Are you sure it tested? Unless qemu transparent emulation is enabled
> > (see ‘Transparent Emulation with QEMU’ in the manual) that cannot happen.
>
> I just ran it again to be sure, and yes. I did set up QEMU for building
> on other architectures. I suppose this means QEMU is being used for the
> 'native-inputs', which is a little confusing but I guess it makes sense
> :D
It is impossible to cross-compile waypipe on master, because
meson-build-system does not support cross-compilation (on master).
# replace 'glib' with 'waypipe'
$ LC_ALL=C guix build glib --target=arm-linux-gnueabihf
guix build: error: gnu/packages/glib.scm:425:2: glib <at> 2.62.6: build system `meson' does not support cross builds
What branch are you on?
Also, what arguments did you pass to "guix build"?
You need --target=arm-linux-gnueabihf for cross-compilation,
not --system=armhf-linux. The latter is for offloading to an armhf
machine or a QEMU emulated build.
Greetings,
Maxime.
[signature.asc (application/pgp-signature, inline)]
Information forwarded
to
guix-patches <at> gnu.org
:
bug#50084
; Package
guix-patches
.
(Thu, 19 Aug 2021 22:12:02 GMT)
Full text and
rfc822 format available.
Message #29 received at 50084 <at> debbugs.gnu.org (full text, mbox):
Hi Maxime,
> It is impossible to cross-compile waypipe on master, because
> meson-build-system does not support cross-compilation (on master).
>
> # replace 'glib' with 'waypipe'
> $ LC_ALL=C guix build glib --target=arm-linux-gnueabihf
> guix build: error: gnu/packages/glib.scm:425:2: glib <at> 2.62.6: build
> system `meson' does not support cross builds
You are correct, I am not actually able to cross compile. I was
confusing the virtualized build with cross-compiling.
> What branch are you on?
master
> Also, what arguments did you pass to "guix build"?
> You need --target=arm-linux-gnueabihf for cross-compilation,
> not --system=armhf-linux. The latter is for offloading to an armhf
> machine or a QEMU emulated build.
--target does not work, --system does.
Sincerely,
Robby
Information forwarded
to
guix-patches <at> gnu.org
:
bug#50084
; Package
guix-patches
.
(Mon, 30 Aug 2021 01:57:02 GMT)
Full text and
rfc822 format available.
Message #32 received at 50084 <at> debbugs.gnu.org (full text, mbox):
* gnu/packages/freedesktop.scm (waypipe): New variable.
---
gnu/packages/freedesktop.scm | 36 ++++++++++++++++++++++++++++++++++++
1 file changed, 36 insertions(+)
diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm
index 693a79c738..f2e00ebba9 100644
--- a/gnu/packages/freedesktop.scm
+++ b/gnu/packages/freedesktop.scm
@@ -24,6 +24,7 @@
;;; Copyright © 2020 Raghav Gururajan <raghavgururajan <at> disroot.org>
;;; Copyright © 2021 Brendan Tildesley <mail <at> brendan.scot>
;;; Copyright © 2021 pineapples <guixuser6392 <at> protonmail.com>
+;;; Copyright © 2021 Robby Zambito <contact <at> robbyzambito.me>
;;;
;;; This file is part of GNU Guix.
;;;
@@ -2434,3 +2435,38 @@ seeks to add support for the screenshot, screencast, and possibly
remote-desktop @code{xdg-desktop-portal} interfaces for wlroots based
compositors.")
(license license:expat)))
+
+(define-public waypipe
+ (package
+ (name "waypipe")
+ (version "0.8.0")
+ (source
+ (origin
+ (method git-fetch)
+ (uri (git-reference
+ (url "https://gitlab.freedesktop.org/mstoeckl/waypipe")
+ (commit (string-append "v" version))))
+ (file-name (git-file-name name version))
+ (sha256
+ (base32 "1qa47ljfvb1vv3h647xwn1j5j8gfmcmdfaz4j8ygnkvj36y87vnz"))))
+ (build-system meson-build-system)
+ (arguments
+ `(#:phases
+ (modify-phases %standard-phases
+ (add-after 'unpack 'fix-sleep-path
+ (lambda* (#:key inputs #:allow-other-keys)
+ (let ((coreutils (assoc-ref inputs "coreutils")))
+ (substitute* "./test/startup_failure.py"
+ (("sleep") (string-append coreutils "/bin/sleep")))))))))
+ (native-inputs
+ `(("pkg-config" ,pkg-config)
+ ("scdoc" ,scdoc)
+ ;; For tests
+ ("python" ,python)
+ ("coreutils" ,coreutils)))
+ (home-page "https://gitlab.freedesktop.org/mstoeckl/waypipe")
+ (synopsis "Proxy for Wayland protocol applications")
+ (description
+ "Waypipe is a proxy for Wayland clients, with the aim of
+supporting behavior like ssh -X.")
+ (license license:expat)))
--
2.33.0
Information forwarded
to
guix-patches <at> gnu.org
:
bug#50084
; Package
guix-patches
.
(Mon, 30 Aug 2021 02:00:02 GMT)
Full text and
rfc822 format available.
Message #35 received at 50084 <at> debbugs.gnu.org (full text, mbox):
I apologize for being messy with this patch. I realized after poking
around more that this package would probably fit better under the
freedesktop module. My most recent patch should be able to be applied
without any of the previous ones I sent. I hope this is good now!
Thanks,
Robby
Reply sent
to
Nicolas Goaziou <mail <at> nicolasgoaziou.fr>
:
You have taken responsibility.
(Mon, 06 Sep 2021 09:16:02 GMT)
Full text and
rfc822 format available.
Notification sent
to
Robby Zambito <contact <at> robbyzambito.me>
:
bug acknowledged by developer.
(Mon, 06 Sep 2021 09:16:02 GMT)
Full text and
rfc822 format available.
Message #40 received at 50084-done <at> debbugs.gnu.org (full text, mbox):
Hello,
Robby Zambito <contact <at> robbyzambito.me> writes:
> * gnu/packages/freedesktop.scm (waypipe): New variable.
Applied. Thank you.
Regards,
--
Nicolas Goaziou
Information forwarded
to
guix-patches <at> gnu.org
:
bug#50084
; Package
guix-patches
.
(Tue, 07 Sep 2021 21:14:01 GMT)
Full text and
rfc822 format available.
Message #43 received at 50084 <at> debbugs.gnu.org (full text, mbox):
[Message part 1 (text/plain, inline)]
Hi,
> + (arguments
> + `(#:phases
> + (modify-phases %standard-phases
> + (add-after 'unpack 'fix-sleep-path
> + (lambda* (#:key inputs #:allow-other-keys)
> + (let ((coreutils (assoc-ref inputs "coreutils")))
coreutils is in native-inputs, not inputs, so this needs to be:
(assoc-ref (or native-inputs inputs) "coreutils"). (native-inputs
and inputs are appended together when compiling natively, that's
why this didn't cause a build error).
> + (substitute* "./test/startup_failure.py"
> + (("sleep") (string-append coreutils "/bin/sleep")))))))))
You can write (("sleep") (which "sleep")) here.
> + (native-inputs
> + `(("pkg-config" ,pkg-config)
> + ("scdoc" ,scdoc)
> + ;; For tests
> + ("python" ,python)
> + ("coreutils" ,coreutils)))
FWIW, coreutils is an implicit native-input of meson-build-system,
so this input isn't necessary.
Greetings,
Maxime.
[signature.asc (application/pgp-signature, inline)]
bug archived.
Request was from
Debbugs Internal Request <help-debbugs <at> gnu.org>
to
internal_control <at> debbugs.gnu.org
.
(Wed, 06 Oct 2021 11:24:12 GMT)
Full text and
rfc822 format available.
This bug report was last modified 2 years and 202 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.