From 0955a630e3ee5607089782b12117fc6bbb493a77 Mon Sep 17 00:00:00 2001 From: Olivier Fourdan Date: Wed, 2 Nov 2022 11:12:14 +0100 Subject: [PATCH 01/29] Update to 0.8.4 Resolves: #2116194 --- .gitignore | 1 + sources | 2 +- waypipe.1 | 155 ++++++++++++++++++++++++++++++++++++++++----------- waypipe.spec | 7 ++- 4 files changed, 131 insertions(+), 34 deletions(-) diff --git a/.gitignore b/.gitignore index f3b5d93..195d446 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ /waypipe-v0.7.1.tar.gz /waypipe-v0.8.0.tar.gz /waypipe-v0.8.2.tar.gz +/waypipe-v0.8.4.tar.gz diff --git a/sources b/sources index 61607c4..38b180c 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (waypipe-v0.8.2.tar.gz) = c942b04a1f8cea60b226533b3c300120257d1264e3c0ed929cc79e35a3d8ba7ca215e52b46fc004a042016f5d492fa0291cec3a547b696fad4c99ae7bf5544bf +SHA512 (waypipe-v0.8.4.tar.gz) = f0b1091b396b19bde519f008ae15e68b566201a110d439172f4d328576af145b94d43caed4c8744dbd71ba253a9d2275c52933ae28be12c74939dfe2123b3966 diff --git a/waypipe.1 b/waypipe.1 index d989e95..cc0ec6b 100644 --- a/waypipe.1 +++ b/waypipe.1 @@ -1,11 +1,11 @@ -.\" Generated by scdoc 1.11.1 +.\" Generated by scdoc 1.11.2 .\" Complete documentation for this program is not available as a GNU info page .ie \n(.g .ds Aq \(aq .el .ds Aq ' .nh .ad l .\" Begin generated content: -.TH "waypipe" "1" "2021-02-19" +.TH "waypipe" "1" "2022-11-02" .P .SH NAME .P @@ -13,21 +13,32 @@ waypipe - A transparent proxy for Wayland applications .P .SH SYNOPSIS .P -\fBwaypipe\fR [options.\&.\&.\&] client +\fBwaypipe\fR [options.\&.\&.\&] \fBssh\fR [ssh options] \fIdestination\fR \fIcommand.\&.\&.\&\fR +.P +\fBwaypipe\fR [options.\&.\&.\&] \fBclient\fR .br -\fBwaypipe\fR [options.\&.\&.\&] server -- \fIcommand.\&.\&.\&\fR +\fBwaypipe\fR [options.\&.\&.\&] \fBserver\fR -- \fIcommand.\&.\&.\&\fR .br -\fBwaypipe\fR [options.\&.\&.\&] recon \fIcontrol_pipe\fR \fInew_socket_path\fR +\fBwaypipe\fR \fBrecon\fR \fIcontrol_pipe\fR \fInew_socket_path\fR .br -\fBwaypipe\fR [options.\&.\&.\&] ssh .\&.\&.\& +\fBwaypipe\fR \fBbench\fR \fIbandwidth\fR .br -\fBwaypipe\fR [options.\&.\&.\&] bench \fIbandwidth\fR +\fBwaypipe\fR [\fB--version\fR] [\fB-h\fR, \fB--help\fR] +.P +[options.\&.\&.\&] = [\fB-c\fR, \fB--compress\fR C] [\fB-d\fR, \fB--debug\fR] [\fB-n\fR, \fB--no-gpu\fR] [\fB-o\fR, \fB--oneshot\fR] [\fB-s\fR, \fB--socket\fR S] [\fB--allow-tiled\fR] [\fB--control\fR C] [\fB--display\fR D] [\fB--drm-node\fR R] [\fB--remote-node\fR R] [\fB--remote-bin\fR R] [\fB--login-shell\fR] [\fB--threads\fR T] [\fB--unlink-socket\fR] [\fB--video\fR[=V]] +.P .P .SH DESCRIPTION .P -waypipe is a proxy for Wayland clients, with the aim of supporting behavior +Waypipe is a proxy for Wayland clients, with the aim of supporting behavior like \fBssh -X\fR.\& .P +Prefixing an \fBssh .\&.\&.\&\fR command to become \fBwaypipe ssh .\&.\&.\&\fR will automatically +run \fBwaypipe\fR both locally and remotely, and modify the ssh command to set up +forwarding between the two instances of \fBwaypipe\fR.\& The remote instance +will act like a Wayland compositor, letting Wayland applications that are +run remotely be displayed locally.\& +.P When run as \fBwaypipe client\fR, it will open a socket (by default at \fI/tmp/waypipe-client.\&sock\fR) and will connect to the local Wayland compositor and forward all Wayland applications which were linked to it over the socket @@ -44,12 +55,7 @@ which has had a control pipe (option \fB--control\fR) set.\& The new socket path should indicate a Unix socket whose connections are forwarded to the \fBwaypipe client\fR that the \fBwaypipe server\fR was initially connected to.\& .P -Next, prefixing an \fBssh .\&.\&.\&\fR command to become \fBwaypipe ssh .\&.\&.\&\fR will -automatically set up local and remote copies of \fBwaypipe\fR, as well as -forwarding between their sockets, so that Wayland applications run remotely -will be displayed locally.\& -.P -Finally, the \fBwaypipe bench\fR mode can be used to estimate, given a specific +The \fBwaypipe bench\fR mode can be used to estimate, given a specific connection \fIbandwidth\fR in MB/sec, which compression options produce the lowest latency.\& It tests two synthetic images, one made to be roughly as compressible as images containing text, and one made to be roughly as @@ -61,10 +67,12 @@ compressible as images containing pictures.\& .RS 4 Select the compression method applied to data transfers.\& Options are \fInone\fR (for high-bandwidth networks), \fIlz4\fR (intermediate), \fIzstd\fR -(slow connection).\& The default compression is \fInone\fR.\& The compression +(slow connection).\& The default compression is \fInone\fR.\&† The compression level can be chosen by appending = followed by a number.\& For example, if \fBC\fR is \fIzstd=7\fR, waypipe will use level 7 Zstd compression.\& .P +† In a future version, the default will change to \fIlz4\fR.\& +.P .RE \fB-d, --debug\fR .RS 4 @@ -92,12 +100,16 @@ Only permit a single connection, and exit when it is closed.\& Use \fBS\fR as the path for the Unix socket.\& The default socket path for server mode is \fI/tmp/waypipe-server.\&sock\fR; for client mode, it is \fI/tmp/waypipe-client.\&sock\fR; and in ssh mode, \fBS\fR gives the prefix used by -both the client and the server for their socket paths.\& +both the client and the server for their socket paths.\& The default prefix +in ssh mode is \fI/tmp/waypipe\fR.\& .P .RE -\fB-v, --version\fR +\fB--version\fR .RS 4 -Print the version number and quit.\& +Briefly describe Waypipe'\&s version and the features it was built with, +then quit.\& Possible features: LZ4 compression support, ZSTD compression +support, ability to transfer DMABUFs, video compression support, VAAPI +hardware video de/encoding support.\& .P .RE \fB--allow-tiled\fR @@ -113,7 +125,7 @@ when they are available.\& .RS 4 For server or ssh mode, provide the path to the "control pipe" that will be created the the server.\& Writing (with \fBwaypipe recon C T\fR, or -'echo -n T > C') a new socket path to this pipe will make the server +\&'\&echo -n T > C'\&) a new socket path to this pipe will make the server instance replace all running connections with connections to the new Unix socket.\& The new socket should ultimately forward data to the same waypipe client that the server was connected to before.\& @@ -156,7 +168,9 @@ Only for server mode; if no command is being run, open a login shell.\& Set the number of total threads (including the main thread) which a \fBwaypipe\fR instance will create.\& These threads will be used to parallelize compression operations.\& This flag is passed on to \fBwaypipe server\fR when given to \fBwaypipe -ssh\fR.\& The flag also controls the thread count for \fBwaypipe bench\fR.\& +ssh\fR.\& The flag also controls the thread count for \fBwaypipe bench\fR.\& The default +behavior (choosable by setting \fBT\fR to \fI0\fR) is to use half as many threads +as the computer has hardware threads available.\& .P .RE \fB--unlink-socket\fR @@ -164,18 +178,46 @@ ssh\fR.\& The flag also controls the thread count for \fBwaypipe bench\fR.\& Only for server mode; on shutdown, unlink the Unix socket that waypipe connects to.\& .P .RE -\fB--video\fR +\fB--video[=V]\fR .RS 4 Compress specific DMABUF formats using a lossy video codec.\& Opaque, 10-bit, and -multiplanar formats, among others, are not supported.\& +multiplanar formats, among others, are not supported.\& \fBV\fR is a comma separated +list of options to control the video encoding.\& Using the \fB--video\fR flag without +setting any options is equivalent to using the default setting of: +\fB--video=sw,bpf=120000,h264\fR.\& Later options supersede earlier ones.\& .P +\fBsw\fR +.RS 4 +Use software encoding and decoding.\& +.P +.RE +\fBhw\fR +.RS 4 +Use hardware (VAAPI) encoding and decoding, if available.\& This can be finicky +and may only work with specific window buffer formats and sizes.\& +.P +.RE +\fBh264\fR +.RS 4 +Use H.\&264 encoded video.\& +.P +.RE +\fBvp9\fR +.RS 4 +Use VP9 encoded video.\& +.P +.RE +\fBbpf=B\fR +.RS 4 +Set the target bit rate of the video encoder, in units of bits per frame.\& +\fBB\fR can be written as an integer or with exponential notation; thus +\fB--video=bpf=7.\&5e5\fR is equivalent to \fB--video=bpf=750000\fR.\& +.P +.RE .RE \fB--hwvideo\fR .RS 4 -Sets the \fB--video\fR option, and also specifies that hardware video encoding and decoding -should be used if possible.\& Whether this option improves bandwidth use and latency -is hardware dependent.\& -.P +Deprecated option, equivalent to --video=hw .\& .P .RE .SH EXAMPLE @@ -200,7 +242,7 @@ One can obtain similar behavior by explicitly running waypipe and ssh: .fi .RE .P -Waypipe may be run locally without an ssh connection by specifying matching +Waypipe may be run locally without an SSH connection by specifying matching socket paths.\& For example: .P .nf @@ -212,10 +254,43 @@ socket paths.\& For example: .fi .RE .P +Using transports other than SSH is a bit more complicated.\& A recipe with ncat +to connect to \fIremote\fR from computer \fIlocal\fR: +.P +.nf +.RS 4 + $ waypipe --socket /tmp/waypipe-remote\&.sock client & + $ ncat --ssl -lk 12345 --sh-exec \&'ncat -U /tmp/waypipe-remote\&.sock\&' & + $ ssh user@remote + + > ncat -lkU /tmp/waypipe-local\&.sock --sh-exec \&'ncat --ssl local 12345\&' & + > waypipe --display wayland-local \\ + --socket /tmp/waypipe-local\&.sock server -- sleep inf & + > WAYLAND_DISPLAY=wayland-local application +.fi +.RE +.P +Given a certificate file, socat can also provide an encrypted connection +(remove '\&verify=0'\& to check certificates): +.P +.nf +.RS 4 + $ waypipe --socket /tmp/waypipe-remote\&.sock client & + $ socat openssl-listen:12345,reuseaddr,cert=certificate\&.pem,verify=0,fork \\ + unix-connect:/tmp/waypipe-remote\&.sock + $ ssh user@remote + + > socat unix-listen:/tmp/waypipe-local\&.sock,reuseaddr,fork \\ + openssl-connect:local:12345,verify=0 & + > waypipe --socket /tmp/waypipe-local\&.sock server -- application +.fi +.RE +.P Many applications require specific environment variables to use Wayland instead -of X11.\& If ssh isn't configured to support loading \fI~/.\&ssh/environment\fR, -one can use \fIenv\fR to set the needed variables each time; or run waypipe without -a command, to use the login shell environment.\& +of X11.\& If ssh isn'\&t configured to support loading \fI~/.\&ssh/environment\fR, or +to allow specific variables to be set with \fIAcceptEnv\fR/\fISetEnv\fR, one can run +\fBwaypipe ssh\fR without a command (and thereby open a login shell), or use \fBenv\fR +to set the needed variables each time: .P .nf .RS 4 @@ -223,6 +298,13 @@ a command, to use the login shell environment.\& .fi .RE .P +In some cases, one may wish to set environment variables for the \fBwaypipe +server\fR process itself; the above trick with \fBenv\fR will not do this, because the +\fBenv\fR process will be a child of \fBwaypipe server\fR, not the other way around.\& +Instead, one can use \fI~/.\&ssh/environment\fR, or use the \fB--remote-bin\fR option to +change the remote Waypipe instance to a shell script that sets the environment +before running the actual \fBwaypipe\fR program.\& +.P Waypipe has support for reconnecting a \fBwaypipe client\fR and a \fBwaypipe server\fR instance when whatever was used to transfer data between their sockets fails.\& For this to work, waypipe must still be running on both sides of the connection.\& @@ -273,6 +355,17 @@ of their initialization, and will not work correctly with this flag.\& \fBwaypipe ssh\fR will exit with the exit status code from the remote command, or with return code 1 if there has been an error.\& .P +.SH BUGS +.P +File bug reports at: https://gitlab.\&freedesktop.\&org/mstoeckl/waypipe/ +.P +Some programs (gnome-terminal, firefox, kate, among others) have special +mechanisms to ensure that only one process is running at a time.\& Starting +those programs under Waypipe while they are running under a different +Wayland compositor may silently open a window or tab in the original +instance of the program.\& Such programs may have a command line argument +to create a new instance.\& +.P .SH SEE ALSO .P -\fBweston\fR(1), \fBssh\fR(1) +\fBweston\fR(1), \fBssh\fR(1), \fBsocat(1)\fR, \fBncat(1)\fR diff --git a/waypipe.spec b/waypipe.spec index 5f1071c..26494e4 100644 --- a/waypipe.spec +++ b/waypipe.spec @@ -1,6 +1,6 @@ Name: waypipe -Version: 0.8.2 -Release: 2%{?dist} +Version: 0.8.4 +Release: 1%{?dist} Summary: Wayland forwarding proxy License: MIT @@ -59,6 +59,9 @@ install -m 644 %{SOURCE1} %{buildroot}%{_mandir}/man1/ %changelog +* Wed Nov 02 2022 Olivier Fourdan - 0.8.4-1 +- Update to 0.8.4 + * Sat Jul 23 2022 Fedora Release Engineering - 0.8.2-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild From 1778998d1fabf8d0432dcddde3fcaf476407d22a Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 21 Jan 2023 06:39:22 +0000 Subject: [PATCH 02/29] Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- waypipe.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/waypipe.spec b/waypipe.spec index 26494e4..59a24b3 100644 --- a/waypipe.spec +++ b/waypipe.spec @@ -1,6 +1,6 @@ Name: waypipe Version: 0.8.4 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Wayland forwarding proxy License: MIT @@ -59,6 +59,9 @@ install -m 644 %{SOURCE1} %{buildroot}%{_mandir}/man1/ %changelog +* Sat Jan 21 2023 Fedora Release Engineering - 0.8.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + * Wed Nov 02 2022 Olivier Fourdan - 0.8.4-1 - Update to 0.8.4 From 9ab8438c8ce3f7afd0e7a62bd1519d2834f936ec Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Sun, 9 Apr 2023 06:02:44 +0900 Subject: [PATCH 03/29] Update to 0.8.6 Resolves: 2177407 --- .gitignore | 1 + sources | 2 +- waypipe.spec | 7 +++++-- 3 files changed, 7 insertions(+), 3 deletions(-) diff --git a/.gitignore b/.gitignore index 195d446..edc3759 100644 --- a/.gitignore +++ b/.gitignore @@ -5,3 +5,4 @@ /waypipe-v0.8.0.tar.gz /waypipe-v0.8.2.tar.gz /waypipe-v0.8.4.tar.gz +/waypipe-v0.8.6.tar.gz diff --git a/sources b/sources index 38b180c..77013cd 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (waypipe-v0.8.4.tar.gz) = f0b1091b396b19bde519f008ae15e68b566201a110d439172f4d328576af145b94d43caed4c8744dbd71ba253a9d2275c52933ae28be12c74939dfe2123b3966 +SHA512 (waypipe-v0.8.6.tar.gz) = c3f20040d4dde1ae16f71a5c437a612915d09f0a0328bb184b068a38131c37c0c04bf42acbdc775f167da3cf10f49209a3226136629e001ea724518b70944c68 diff --git a/waypipe.spec b/waypipe.spec index 59a24b3..4f08a52 100644 --- a/waypipe.spec +++ b/waypipe.spec @@ -1,6 +1,6 @@ Name: waypipe -Version: 0.8.4 -Release: 2%{?dist} +Version: 0.8.6 +Release: 1%{?dist} Summary: Wayland forwarding proxy License: MIT @@ -59,6 +59,9 @@ install -m 644 %{SOURCE1} %{buildroot}%{_mandir}/man1/ %changelog +* Sun Apr 09 2023 Dominique Martinet - 0.8.6-1 +- Update to 0.8.6 + * Sat Jan 21 2023 Fedora Release Engineering - 0.8.4-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild From b117b3a1209365f1778839cc09858c7409579f0c Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 22 Jul 2023 18:01:34 +0000 Subject: [PATCH 04/29] Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild Signed-off-by: Fedora Release Engineering --- waypipe.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/waypipe.spec b/waypipe.spec index 4f08a52..976c218 100644 --- a/waypipe.spec +++ b/waypipe.spec @@ -1,6 +1,6 @@ Name: waypipe Version: 0.8.6 -Release: 1%{?dist} +Release: 2%{?dist} Summary: Wayland forwarding proxy License: MIT @@ -59,6 +59,9 @@ install -m 644 %{SOURCE1} %{buildroot}%{_mandir}/man1/ %changelog +* Sat Jul 22 2023 Fedora Release Engineering - 0.8.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + * Sun Apr 09 2023 Dominique Martinet - 0.8.6-1 - Update to 0.8.6 From 0323b3a8bcdb5346b8fa9f0c2089f7143e43d35b Mon Sep 17 00:00:00 2001 From: Olivier Fourdan Date: Mon, 11 Sep 2023 11:24:00 +0200 Subject: [PATCH 05/29] migrated to SPDX license --- waypipe.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/waypipe.spec b/waypipe.spec index 976c218..580c6ea 100644 --- a/waypipe.spec +++ b/waypipe.spec @@ -1,6 +1,6 @@ Name: waypipe Version: 0.8.6 -Release: 2%{?dist} +Release: 3%{?dist} Summary: Wayland forwarding proxy License: MIT @@ -59,6 +59,9 @@ install -m 644 %{SOURCE1} %{buildroot}%{_mandir}/man1/ %changelog +* Mon Sep 11 2023 Olivier Fourdan - 0.8.6-3 +- migrated to SPDX license + * Sat Jul 22 2023 Fedora Release Engineering - 0.8.6-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild From c96811c60f9ec616e17ee90defb6ce789c4860b8 Mon Sep 17 00:00:00 2001 From: Neal Gompa Date: Sat, 30 Sep 2023 20:37:32 -0400 Subject: [PATCH 06/29] Enable video support for non-RHEL (#2241572) This enables video support for non-RHEL platforms. Video support remains disabled for RHEL platforms because it is currently assumed that FFmpeg is unwanted in Red Hat Enterprise Linux through the lack of its presence in Red Hat-managed ELN workloads. --- waypipe.spec | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/waypipe.spec b/waypipe.spec index 580c6ea..010fef9 100644 --- a/waypipe.spec +++ b/waypipe.spec @@ -1,6 +1,6 @@ Name: waypipe Version: 0.8.6 -Release: 3%{?dist} +Release: 4%{?dist} Summary: Wayland forwarding proxy License: MIT @@ -16,6 +16,11 @@ BuildRequires: meson BuildRequires: scdoc %endif BuildRequires: pkgconfig(gbm) +%if !0%{?rhel} +BuildRequires: pkgconfig(libavcodec) +BuildRequires: pkgconfig(libavutil) +BuildRequires: pkgconfig(libswscale) +%endif BuildRequires: pkgconfig(libdrm) BuildRequires: pkgconfig(liblz4) BuildRequires: pkgconfig(libzstd) @@ -31,11 +36,11 @@ application forwarding similar to "ssh -X" feasible. %prep -%setup -q -n %{name}-v%{version} +%autosetup -n %{name}-v%{version} %build -%meson -Dwith_video=disabled -Dwerror=false %{?rhel:-Dman-pages=disabled} +%meson -Dwerror=false %{?rhel:-Dwith_video=disabled -Dman-pages=disabled} %meson_build @@ -59,6 +64,9 @@ install -m 644 %{SOURCE1} %{buildroot}%{_mandir}/man1/ %changelog +* Sat Sep 30 2023 Neal Gompa - 0.8.6-4 +- Enable video support for non-RHEL (#2241572) + * Mon Sep 11 2023 Olivier Fourdan - 0.8.6-3 - migrated to SPDX license From 67aa80e8c4e2c19a3e7b978672740258f935c909 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 27 Jan 2024 08:28:33 +0000 Subject: [PATCH 07/29] Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild --- waypipe.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/waypipe.spec b/waypipe.spec index 010fef9..f4ec93b 100644 --- a/waypipe.spec +++ b/waypipe.spec @@ -1,6 +1,6 @@ Name: waypipe Version: 0.8.6 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Wayland forwarding proxy License: MIT @@ -64,6 +64,9 @@ install -m 644 %{SOURCE1} %{buildroot}%{_mandir}/man1/ %changelog +* Sat Jan 27 2024 Fedora Release Engineering - 0.8.6-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + * Sat Sep 30 2023 Neal Gompa - 0.8.6-4 - Enable video support for non-RHEL (#2241572) From ace79c15965d77aeb1b9ac8d5f51a23a9073de26 Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Sat, 8 Jun 2024 05:19:52 +0900 Subject: [PATCH 08/29] Convert to %autorelease and %autochangelog [skip changelog] --- changelog | 72 +++++++++++++++++++++++++++++++++++++++++++++++++ waypipe.spec | 75 ++-------------------------------------------------- 2 files changed, 74 insertions(+), 73 deletions(-) create mode 100644 changelog diff --git a/changelog b/changelog new file mode 100644 index 0000000..a9f9ad0 --- /dev/null +++ b/changelog @@ -0,0 +1,72 @@ +* Sat Jan 27 2024 Fedora Release Engineering - 0.8.6-5 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild + +* Sat Sep 30 2023 Neal Gompa - 0.8.6-4 +- Enable video support for non-RHEL (#2241572) + +* Mon Sep 11 2023 Olivier Fourdan - 0.8.6-3 +- migrated to SPDX license + +* Sat Jul 22 2023 Fedora Release Engineering - 0.8.6-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild + +* Sun Apr 09 2023 Dominique Martinet - 0.8.6-1 +- Update to 0.8.6 + +* Sat Jan 21 2023 Fedora Release Engineering - 0.8.4-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild + +* Wed Nov 02 2022 Olivier Fourdan - 0.8.4-1 +- Update to 0.8.4 + +* Sat Jul 23 2022 Fedora Release Engineering - 0.8.2-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild + +* Tue Apr 05 2022 Olivier Fourdan - 0.8.2-1 +- Update to 0.8.2 + +* Sat Jan 22 2022 Fedora Release Engineering - 0.8.0-3 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild + +* Fri Jul 23 2021 Fedora Release Engineering - 0.8.0-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild + +* Sat Apr 03 2021 Dominique Martinet - 0.8.0-1 +- Update to 0.8.0 + +* Fri Feb 19 2021 Olivier Fourdan - 0.7.1-3 +- Provide a pre-built man page on RHEL to avoid pulling scdoc + +* Wed Jan 27 2021 Fedora Release Engineering - 0.7.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild + +* Fri Nov 06 2020 Dominique Martinet - 0.7.1-1 +- Update to 0.7.1 + +* Tue Nov 03 2020 Dominique Martinet - 0.7.0-1 +- Update to version 0.7.0 + +* Mon Sep 28 2020 Jeff Law - 0.6.1-7 +- Re-enable LTO as upstream GCC target/96939 has been fixed + +* Mon Aug 10 2020 Jeff Law - 0.6.1-6 +- Disable LTO for now. + +* Sat Aug 01 2020 Fedora Release Engineering - 0.6.1-5 +- Second attempt - Rebuilt for + https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Wed Jul 29 2020 Fedora Release Engineering - 0.6.1-4 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild + +* Mon May 11 2020 Dominique Martinet - 0.6.1-3 +- Fix FTBS (test failure) + +* Fri Jan 31 2020 Fedora Release Engineering - 0.6.1-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild + +* Wed Aug 28 2019 Lubomir Rintel - 0.6.1-1 +- Update to version 0.6.1 + +* Thu Aug 22 2019 Lubomir Rintel - 0.6.0-1 +- Initial packaging diff --git a/waypipe.spec b/waypipe.spec index f4ec93b..8a6054b 100644 --- a/waypipe.spec +++ b/waypipe.spec @@ -1,6 +1,6 @@ Name: waypipe Version: 0.8.6 -Release: 5%{?dist} +Release: %autorelease Summary: Wayland forwarding proxy License: MIT @@ -64,75 +64,4 @@ install -m 644 %{SOURCE1} %{buildroot}%{_mandir}/man1/ %changelog -* Sat Jan 27 2024 Fedora Release Engineering - 0.8.6-5 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild - -* Sat Sep 30 2023 Neal Gompa - 0.8.6-4 -- Enable video support for non-RHEL (#2241572) - -* Mon Sep 11 2023 Olivier Fourdan - 0.8.6-3 -- migrated to SPDX license - -* Sat Jul 22 2023 Fedora Release Engineering - 0.8.6-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild - -* Sun Apr 09 2023 Dominique Martinet - 0.8.6-1 -- Update to 0.8.6 - -* Sat Jan 21 2023 Fedora Release Engineering - 0.8.4-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild - -* Wed Nov 02 2022 Olivier Fourdan - 0.8.4-1 -- Update to 0.8.4 - -* Sat Jul 23 2022 Fedora Release Engineering - 0.8.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_37_Mass_Rebuild - -* Tue Apr 05 2022 Olivier Fourdan - 0.8.2-1 -- Update to 0.8.2 - -* Sat Jan 22 2022 Fedora Release Engineering - 0.8.0-3 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_36_Mass_Rebuild - -* Fri Jul 23 2021 Fedora Release Engineering - 0.8.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_35_Mass_Rebuild - -* Sat Apr 03 2021 Dominique Martinet - 0.8.0-1 -- Update to 0.8.0 - -* Fri Feb 19 2021 Olivier Fourdan - 0.7.1-3 -- Provide a pre-built man page on RHEL to avoid pulling scdoc - -* Wed Jan 27 2021 Fedora Release Engineering - 0.7.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_34_Mass_Rebuild - -* Fri Nov 06 2020 Dominique Martinet - 0.7.1-1 -- Update to 0.7.1 - -* Tue Nov 03 2020 Dominique Martinet - 0.7.0-1 -- Update to version 0.7.0 - -* Mon Sep 28 2020 Jeff Law - 0.6.1-7 -- Re-enable LTO as upstream GCC target/96939 has been fixed - -* Mon Aug 10 2020 Jeff Law - 0.6.1-6 -- Disable LTO for now. - -* Sat Aug 01 2020 Fedora Release Engineering - 0.6.1-5 -- Second attempt - Rebuilt for - https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Wed Jul 29 2020 Fedora Release Engineering - 0.6.1-4 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_33_Mass_Rebuild - -* Mon May 11 2020 Dominique Martinet - 0.6.1-3 -- Fix FTBS (test failure) - -* Fri Jan 31 2020 Fedora Release Engineering - 0.6.1-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_32_Mass_Rebuild - -* Wed Aug 28 2019 Lubomir Rintel - 0.6.1-1 -- Update to version 0.6.1 - -* Thu Aug 22 2019 Lubomir Rintel - 0.6.0-1 -- Initial packaging +%autochangelog From b5fc8c217b1d4c5e01c644ae251f1f0f92a7ae14 Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Sat, 8 Jun 2024 05:27:47 +0900 Subject: [PATCH 09/29] Update to 0.9.0 - fix fd leak (probably #2290715) - enable lz4 compression by default - add supprt for av1 software encoding/decoding - add support for vsock transport - fix build with gcc-14 --- .gitignore | 1 + sources | 2 +- waypipe.spec | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index edc3759..256f3e8 100644 --- a/.gitignore +++ b/.gitignore @@ -6,3 +6,4 @@ /waypipe-v0.8.2.tar.gz /waypipe-v0.8.4.tar.gz /waypipe-v0.8.6.tar.gz +/waypipe-v0.9.0.tar.gz diff --git a/sources b/sources index 77013cd..cc0e0c0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (waypipe-v0.8.6.tar.gz) = c3f20040d4dde1ae16f71a5c437a612915d09f0a0328bb184b068a38131c37c0c04bf42acbdc775f167da3cf10f49209a3226136629e001ea724518b70944c68 +SHA512 (waypipe-v0.9.0.tar.gz) = 07af1fd5fb05483e7efa2c11abc2eae8ccf6c46bdeb4be34821441c8f90cf1d799471dbcf040d5a35a59ca51815317b554d4255f99b8fc86b3832fec73325e2d diff --git a/waypipe.spec b/waypipe.spec index 8a6054b..d237605 100644 --- a/waypipe.spec +++ b/waypipe.spec @@ -1,5 +1,5 @@ Name: waypipe -Version: 0.8.6 +Version: 0.9.0 Release: %autorelease Summary: Wayland forwarding proxy From e4ccfddf1e0262ea7d146e90ad45f471f1909c95 Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Mon, 10 Jun 2024 05:20:26 +0900 Subject: [PATCH 10/29] Update to 0.9.1 - don't abort on double-^C (#2262447) - fix for compositors using drm_syncobj protocol --- .gitignore | 1 + sources | 2 +- waypipe.spec | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 256f3e8..d7c3da2 100644 --- a/.gitignore +++ b/.gitignore @@ -7,3 +7,4 @@ /waypipe-v0.8.4.tar.gz /waypipe-v0.8.6.tar.gz /waypipe-v0.9.0.tar.gz +/waypipe-v0.9.1.tar.gz diff --git a/sources b/sources index cc0e0c0..be1fc89 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (waypipe-v0.9.0.tar.gz) = 07af1fd5fb05483e7efa2c11abc2eae8ccf6c46bdeb4be34821441c8f90cf1d799471dbcf040d5a35a59ca51815317b554d4255f99b8fc86b3832fec73325e2d +SHA512 (waypipe-v0.9.1.tar.gz) = aa9f43f12ce8ae9107c8bb9967d6b4cef1540bacdac13604624272e5257d8892df2690809f4a5b03f051536960da29ffff7cfd1f7ac6eb1aeef4b437fa277ef1 diff --git a/waypipe.spec b/waypipe.spec index d237605..99b7614 100644 --- a/waypipe.spec +++ b/waypipe.spec @@ -1,5 +1,5 @@ Name: waypipe -Version: 0.9.0 +Version: 0.9.1 Release: %autorelease Summary: Wayland forwarding proxy From 751e3dcaadf86460e5421db31ff28c2018a3f0bc Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 20 Jul 2024 09:10:39 +0000 Subject: [PATCH 11/29] Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild --- waypipe.spec | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/waypipe.spec b/waypipe.spec index f4ec93b..38f96a6 100644 --- a/waypipe.spec +++ b/waypipe.spec @@ -1,6 +1,6 @@ Name: waypipe Version: 0.8.6 -Release: 5%{?dist} +Release: 6%{?dist} Summary: Wayland forwarding proxy License: MIT @@ -64,6 +64,9 @@ install -m 644 %{SOURCE1} %{buildroot}%{_mandir}/man1/ %changelog +* Sat Jul 20 2024 Fedora Release Engineering - 0.8.6-6 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild + * Sat Jan 27 2024 Fedora Release Engineering - 0.8.6-5 - Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild From b378501a4ba132ecf9cc018073a8614800238177 Mon Sep 17 00:00:00 2001 From: Fabio Valentini Date: Mon, 23 Sep 2024 17:02:23 +0200 Subject: [PATCH 12/29] Rebuild for ffmpeg 7 From b582df45ee3f6d90044817a1117a358965b9aa23 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sun, 19 Jan 2025 14:49:08 +0000 Subject: [PATCH 13/29] Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild From dfaab2e207cfe0521d1d2d4399fd6a04603889f6 Mon Sep 17 00:00:00 2001 From: Michel Lind Date: Mon, 24 Feb 2025 12:00:34 -0600 Subject: [PATCH 14/29] Do not conditionalize waypipe.1 - Fixes: RHBZ#2347348 Signed-off-by: Michel Lind --- waypipe.spec | 2 -- 1 file changed, 2 deletions(-) diff --git a/waypipe.spec b/waypipe.spec index 99b7614..7014b2f 100644 --- a/waypipe.spec +++ b/waypipe.spec @@ -6,9 +6,7 @@ Summary: Wayland forwarding proxy License: MIT URL: https://gitlab.freedesktop.org/mstoeckl/%{name} Source0: https://gitlab.freedesktop.org/mstoeckl/%{name}/-/archive/v%{version}/%{name}-v%{version}.tar.gz -%if 0%{?rhel} Source1: waypipe.1 -%endif BuildRequires: gcc BuildRequires: meson From fd5b6f80a47ee2327edc6fd823571bb7731b07ef Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 25 Jul 2025 20:19:18 +0000 Subject: [PATCH 15/29] Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild From 4c9bf86fc5bc0ac050191961a752b8cc872b08d7 Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Fri, 15 Aug 2025 22:35:13 +0900 Subject: [PATCH 16/29] Update to 0.10.5 - switch to rust-based version --- .gitignore | 2 + license.patch | 19 +++ sources | 2 +- waypipe.1 | 320 +++++++++++++++++++++++++++++--------------------- waypipe.spec | 113 +++++++++++------- 5 files changed, 282 insertions(+), 174 deletions(-) create mode 100644 license.patch diff --git a/.gitignore b/.gitignore index d7c3da2..2c3f348 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,5 @@ /waypipe-v0.8.6.tar.gz /waypipe-v0.9.0.tar.gz /waypipe-v0.9.1.tar.gz +/waypipe-v0.10.4.tar.gz +/waypipe-v0.10.5.tar.gz diff --git a/license.patch b/license.patch new file mode 100644 index 0000000..b43abb6 --- /dev/null +++ b/license.patch @@ -0,0 +1,19 @@ +From 2c16f24a53f79b010a677288d0c91ea4a8683a4a Mon Sep 17 00:00:00 2001 +From: Dominique Martinet +Date: Fri, 15 Aug 2025 21:05:34 +0900 +Subject: [PATCH] license + +Merged in https://gitlab.freedesktop.org/mstoeckl/waypipe/-/merge_requests/33 + +diff --git a/Cargo.toml b/Cargo.toml +index 8674dfab1f62..5d627e37ae23 100644 +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -6,6 +6,7 @@ version = "0.10.4" + edition = "2021" + rust-version = "1.77.0" + default-run = "waypipe" ++license = "GPL-3.0-or-later" + + [[bin]] + name = "waypipe" diff --git a/sources b/sources index be1fc89..5041244 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (waypipe-v0.9.1.tar.gz) = aa9f43f12ce8ae9107c8bb9967d6b4cef1540bacdac13604624272e5257d8892df2690809f4a5b03f051536960da29ffff7cfd1f7ac6eb1aeef4b437fa277ef1 +SHA512 (waypipe-v0.10.5.tar.gz) = 1a9cf484d55adef247c63eccb8de7979eb0d5deabb3c0a0f64e476ab6cf47038cec8c6146690c446ba6070d3e0638d73359f1e84bcfe812cc0968157cae7d8d2 diff --git a/waypipe.1 b/waypipe.1 index cc0ec6b..bb65250 100644 --- a/waypipe.1 +++ b/waypipe.1 @@ -1,99 +1,93 @@ -.\" Generated by scdoc 1.11.2 +.\" Generated by scdoc 1.11.3 .\" Complete documentation for this program is not available as a GNU info page .ie \n(.g .ds Aq \(aq .el .ds Aq ' .nh .ad l .\" Begin generated content: -.TH "waypipe" "1" "2022-11-02" -.P +.TH "waypipe" "1" "2025-08-15" +.PP .SH NAME -.P +.PP waypipe - A transparent proxy for Wayland applications -.P +.PP .SH SYNOPSIS -.P +.PP \fBwaypipe\fR [options.\&.\&.\&] \fBssh\fR [ssh options] \fIdestination\fR \fIcommand.\&.\&.\&\fR -.P +.PP \fBwaypipe\fR [options.\&.\&.\&] \fBclient\fR .br \fBwaypipe\fR [options.\&.\&.\&] \fBserver\fR -- \fIcommand.\&.\&.\&\fR .br -\fBwaypipe\fR \fBrecon\fR \fIcontrol_pipe\fR \fInew_socket_path\fR -.br -\fBwaypipe\fR \fBbench\fR \fIbandwidth\fR +\fBwaypipe\fR \fBbench\fR .br \fBwaypipe\fR [\fB--version\fR] [\fB-h\fR, \fB--help\fR] -.P -[options.\&.\&.\&] = [\fB-c\fR, \fB--compress\fR C] [\fB-d\fR, \fB--debug\fR] [\fB-n\fR, \fB--no-gpu\fR] [\fB-o\fR, \fB--oneshot\fR] [\fB-s\fR, \fB--socket\fR S] [\fB--allow-tiled\fR] [\fB--control\fR C] [\fB--display\fR D] [\fB--drm-node\fR R] [\fB--remote-node\fR R] [\fB--remote-bin\fR R] [\fB--login-shell\fR] [\fB--threads\fR T] [\fB--unlink-socket\fR] [\fB--video\fR[=V]] -.P -.P +.PP +[options.\&.\&.\&] = [\fB-c\fR, \fB--compress\fR C] [\fB-d\fR, \fB--debug\fR] [\fB-n\fR, \fB--no-gpu\fR] [\fB-o\fR, \fB--oneshot\fR] [\fB-s\fR, \fB--socket\fR S] [\fB--display\fR D] [\fB--drm-node\fR R] [\fB--remote-node\fR R] [\fB--remote-bin\fR R] [\fB--login-shell\fR] [\fB--threads\fR T] [\fB--title-prefix\fR P] [\fB--unlink-socket\fR] [\fB--video\fR V] [\fB--vsock\fR] [\fB--secctx S\fR] +.PP +.PP .SH DESCRIPTION -.P +.PP Waypipe is a proxy for Wayland clients, with the aim of supporting behavior like \fBssh -X\fR.\& -.P +.PP Prefixing an \fBssh .\&.\&.\&\fR command to become \fBwaypipe ssh .\&.\&.\&\fR will automatically run \fBwaypipe\fR both locally and remotely, and modify the ssh command to set up forwarding between the two instances of \fBwaypipe\fR.\& The remote instance will act like a Wayland compositor, letting Wayland applications that are run remotely be displayed locally.\& -.P +.PP When run as \fBwaypipe client\fR, it will open a socket (by default at \fI/tmp/waypipe-client.\&sock\fR) and will connect to the local Wayland compositor and forward all Wayland applications which were linked to it over the socket by a matching \fBwaypipe server\fR instance.\& -.P +.PP When run as \fBwaypipe server\fR, it will run the command that follows in its command line invocation, set up its own Wayland compositor socket, and try to connect to its matching \fBwaypipe client\fR socket (by default \fI/tmp/waypipe-server.\&sock\fR) and try to forward all the Wayland clients that connect to fake compositor socket to the matching \fBwaypipe client\fR.\& -.P -The \fBwaypipe recon\fR mode is used to reconnect a \fBwaypipe server\fR instance -which has had a control pipe (option \fB--control\fR) set.\& The new socket path -should indicate a Unix socket whose connections are forwarded to the \fBwaypipe -client\fR that the \fBwaypipe server\fR was initially connected to.\& -.P -The \fBwaypipe bench\fR mode can be used to estimate, given a specific -connection \fIbandwidth\fR in MB/sec, which compression options produce the -lowest latency.\& It tests two synthetic images, one made to be roughly as +.PP +The \fBwaypipe bench\fR mode can be used to estimate which compression options +produce the lowest latency, for a given connection bandwidth and number of +threads.\& It tests two synthetic images, one made to be roughly as compressible as images containing text, and one made to be roughly as compressible as images containing pictures.\& -.P +.PP .SH OPTIONS -.P +.PP \fB-c C, --compress C\fR .RS 4 Select the compression method applied to data transfers.\& Options are \fInone\fR (for high-bandwidth networks), \fIlz4\fR (intermediate), \fIzstd\fR -(slow connection).\& The default compression is \fInone\fR.\&† The compression +(slow connection).\& The default compression is \fIlz4\fR.\&† The compression level can be chosen by appending = followed by a number.\& For example, if \fBC\fR is \fIzstd=7\fR, waypipe will use level 7 Zstd compression.\& -.P -† In a future version, the default will change to \fIlz4\fR.\& -.P +.PP +† Unless \fBwaypipe\fR is built without LZ4 support, in which case the default +compression will be \fInone\fR.\& +.PP .RE \fB-d, --debug\fR .RS 4 Print debug log messages.\& -.P +.PP .RE \fB-h, --help\fR .RS 4 Show help message and quit.\& -.P +.PP .RE \fB-n, --no-gpu\fR .RS 4 Block protocols like wayland-drm and linux-dmabuf which require access to e.\&g.\& render nodes.\& -.P +.PP .RE \fB-o, --oneshot\fR .RS 4 Only permit a single connection, and exit when it is closed.\& -.P +.PP .RE \fB-s S, --socket S\fR .RS 4 @@ -102,34 +96,16 @@ server mode is \fI/tmp/waypipe-server.\&sock\fR; for client mode, it is \fI/tmp/waypipe-client.\&sock\fR; and in ssh mode, \fBS\fR gives the prefix used by both the client and the server for their socket paths.\& The default prefix in ssh mode is \fI/tmp/waypipe\fR.\& -.P +.PP +When vsock is enabled use \fBS\fR to specify a CID and a port number.\& +.PP .RE \fB--version\fR .RS 4 Briefly describe Waypipe'\&s version and the features it was built with, then quit.\& Possible features: LZ4 compression support, ZSTD compression -support, ability to transfer DMABUFs, video compression support, VAAPI -hardware video de/encoding support.\& -.P -.RE -\fB--allow-tiled\fR -.RS 4 -By default, waypipe filters out all advertised DMABUF formats which have -format layout modifiers, as CPU access to these formats may be very slow.\& -Setting this flag disables the filtering.\& Since tiled images often permit -faster GPU operations, most OpenGL applications will select tiling modifiers -when they are available.\& -.P -.RE -\fB--control C\fR -.RS 4 -For server or ssh mode, provide the path to the "control pipe" that will -be created the the server.\& Writing (with \fBwaypipe recon C T\fR, or -\&'\&echo -n T > C'\&) a new socket path to this pipe will make the server -instance replace all running connections with connections to the new -Unix socket.\& The new socket should ultimately forward data to the same -waypipe client that the server was connected to before.\& -.P +support, ability to transfer DMABUFs, video compression support.\& +.PP .RE \fB--display D\fR .RS 4 @@ -137,31 +113,31 @@ For server or ssh mode, provide \fIWAYLAND_DISPLAY\fR and let waypipe configure its Wayland display socket to have a matching path.\& (If \fBD\fR is not an absolute path, the socket will be created in the folder given by the environment variable \fIXDG_RUNTIME_DIR\fR.\&) -.P +.PP .RE \fB--drm-node R\fR .RS 4 Specify the path \fBR\fR to the drm device that this instance of waypipe should use and (in server mode) notify connecting applications about.\& -.P +.PP .RE \fB--remote-node R\fR .RS 4 In ssh mode, specify the path \fBR\fR to the drm device that the remote instance of waypipe (running in server mode) should use.\& -.P +.PP .RE \fB--remote-bin R\fR .RS 4 In ssh mode, specify the path \fBR\fR to the waypipe binary on the remote computer, or its name if it is available in \fIPATH\fR.\& It defaults to \fBwaypipe\fR if this option isn’t passed.\& -.P +.PP .RE \fB--login-shell\fR .RS 4 Only for server mode; if no command is being run, open a login shell.\& -.P +.PP .RE \fB--threads T\fR .RS 4 @@ -171,68 +147,100 @@ operations.\& This flag is passed on to \fBwaypipe server\fR when given to \fBwa ssh\fR.\& The flag also controls the thread count for \fBwaypipe bench\fR.\& The default behavior (choosable by setting \fBT\fR to \fI0\fR) is to use half as many threads as the computer has hardware threads available.\& -.P +.PP +.RE +\fB--title-prefix P\fR +.RS 4 +Prepend \fBP\fR to any window titles specified using the XDG shell protocol.\& In +ssh mode, the prefix is applied only on the client side.\& +.PP .RE \fB--unlink-socket\fR .RS 4 Only for server mode; on shutdown, unlink the Unix socket that waypipe connects to.\& -.P +.PP .RE -\fB--video[=V]\fR +\fB--video V\fR .RS 4 Compress specific DMABUF formats using a lossy video codec.\& Opaque, 10-bit, and multiplanar formats, among others, are not supported.\& \fBV\fR is a comma separated -list of options to control the video encoding.\& Using the \fB--video\fR flag without -setting any options is equivalent to using the default setting of: -\fB--video=sw,bpf=120000,h264\fR.\& Later options supersede earlier ones.\& -.P -\fBsw\fR +list of options to control the video encoding.\& (For example: \fB--video av1,hw\fR.\&) +Later options supersede earlier ones.\& +.PP +\fBnone\fR .RS 4 -Use software encoding and decoding.\& -.P -.RE -\fBhw\fR -.RS 4 -Use hardware (VAAPI) encoding and decoding, if available.\& This can be finicky -and may only work with specific window buffer formats and sizes.\& -.P +Do not use video encoding.\& +.PP .RE \fBh264\fR .RS 4 Use H.\&264 encoded video.\& -.P +.PP .RE \fBvp9\fR .RS 4 Use VP9 encoded video.\& -.P +.PP +.RE +\fBav1\fR +.RS 4 +Use VP9 encoded video.\& +.PP +.RE +\fBsw\fR, \fBswenc\fR, \fBswdec\fR +.RS 4 +Use software encoding or decoding, when available.\& +.PP +.RE +\fBhw\fR, \fBhwenc\fR, \fBhwdec\fR +.RS 4 +Use hardware encoding or decoding, when available.\& +.PP .RE \fBbpf=B\fR .RS 4 Set the target bit rate of the video encoder, in units of bits per frame.\& \fBB\fR can be written as an integer or with exponential notation; thus \fB--video=bpf=7.\&5e5\fR is equivalent to \fB--video=bpf=750000\fR.\& -.P +.PP .RE .RE -\fB--hwvideo\fR +\fB--vsock\fR .RS 4 -Deprecated option, equivalent to --video=hw .\& -.P +Use vsock instead of unix sockets.\& This is used when waypipe is running in +virtual machines.\& With this option enabled specify a CID and a port number in \fBS\fR.\& +CID is only used in the server mode and can be omitted when connecting from a +guest virtual machine to host.\& +.PP +.RE +\fB--secctx S\fR +.RS 4 +Enable the Wayland security context protocol (client or ssh modes).\& Specify +an application ID \fBS\fR that will be attached to the security context.\& +.PP +.RE +\fB--control C\fR +.br +\fB--hwvideo\fR +.br +\fB--allow-tiled\fR +.RS 4 +Options present in older versions of Waypipe that were removed.\& +.PP .RE .SH EXAMPLE -.P +.PP The following \fBwaypipe ssh\fR subcommand will attempt to run \fBweston-flower\fR on the server \fIexserv\fR, displaying the result on the local system.\& -.P +.PP .nf .RS 4 waypipe ssh user@exserv weston-flower .fi .RE -.P +.PP One can obtain similar behavior by explicitly running waypipe and ssh: -.P +.PP .nf .RS 4 waypipe --socket /tmp/socket-client client & @@ -241,10 +249,10 @@ One can obtain similar behavior by explicitly running waypipe and ssh: kill %1 .fi .RE -.P +.PP Waypipe may be run locally without an SSH connection by specifying matching socket paths.\& For example: -.P +.PP .nf .RS 4 waypipe --socket /tmp/waypipe\&.sock client & @@ -253,10 +261,10 @@ socket paths.\& For example: rm /tmp/waypipe\&.sock .fi .RE -.P +.PP Using transports other than SSH is a bit more complicated.\& A recipe with ncat to connect to \fIremote\fR from computer \fIlocal\fR: -.P +.PP .nf .RS 4 $ waypipe --socket /tmp/waypipe-remote\&.sock client & @@ -269,10 +277,10 @@ to connect to \fIremote\fR from computer \fIlocal\fR: > WAYLAND_DISPLAY=wayland-local application .fi .RE -.P +.PP Given a certificate file, socat can also provide an encrypted connection (remove '\&verify=0'\& to check certificates): -.P +.PP .nf .RS 4 $ waypipe --socket /tmp/waypipe-remote\&.sock client & @@ -285,87 +293,133 @@ Given a certificate file, socat can also provide an encrypted connection > waypipe --socket /tmp/waypipe-local\&.sock server -- application .fi .RE -.P +.PP Many applications require specific environment variables to use Wayland instead of X11.\& If ssh isn'\&t configured to support loading \fI~/.\&ssh/environment\fR, or to allow specific variables to be set with \fIAcceptEnv\fR/\fISetEnv\fR, one can run \fBwaypipe ssh\fR without a command (and thereby open a login shell), or use \fBenv\fR to set the needed variables each time: -.P +.PP .nf .RS 4 waypipe ssh user@host env XDG_SESSION_TYPE=wayland dolphin .fi .RE -.P +.PP In some cases, one may wish to set environment variables for the \fBwaypipe server\fR process itself; the above trick with \fBenv\fR will not do this, because the \fBenv\fR process will be a child of \fBwaypipe server\fR, not the other way around.\& Instead, one can use \fI~/.\&ssh/environment\fR, or use the \fB--remote-bin\fR option to change the remote Waypipe instance to a shell script that sets the environment before running the actual \fBwaypipe\fR program.\& -.P -Waypipe has support for reconnecting a \fBwaypipe client\fR and a \fBwaypipe server\fR -instance when whatever was used to transfer data between their sockets fails.\& -For this to work, waypipe must still be running on both sides of the connection.\& -As the \fBwaypipe ssh\fR wrapper will automatically close both the \fBwaypipe client\fR -and the \fBwaypipe server\fR when the connection fails, the client and server modes -must be run seprately.\& For example, to persistently forward applications running -on server \fIrserv\fR to a local Wayland compositor running on \fIlserv\fR, one would -first set up a waypipe client instance on \fIlserv\fR, -.P +.PP +.SS Running waypipe in virtual machines +.PP +When running waypipe in virtual machines on the same host it is possible to use vsock +for efficient inter-vm communication.\& The following scenarios are supported: +.PP +.PD 0 +.IP \(bu 4 +Running applications on host from guest.\& +.PD +.PP .nf .RS 4 - waypipe -s /tmp/waypipe\&.sock client & + host> waypipe --vsock -s 1234 client + guest> waypipe --vsock -s 1234 server weston-terminal .fi .RE -.P -and on server \fIrserv\fR, establish socket forwarding and run the server -.P +.PP +.PD 0 +.IP \(bu 4 +Running applications in a guest virtual machine from host.\& +.PD +.PP .nf .RS 4 - ssh -fN -L /tmp/waypipe-lserv\&.sock:/tmp/waypipe\&.sock user@lserv - waypipe -s /tmp/waypipe-lserv\&.sock --control /tmp/ctrl-lserv\&.pipe \\ - --display wayland-lserv server -- sleep inf & + guest> waypipe --vsock -s 1234 client + host> waypipe --vsock -s 3:1234 server weston-terminal .fi .RE -.P -then set \fIWAYLAND_DISPLAY=wayland-lserv\fR and run the desired applications.\& -When the ssh forwarding breaks, on \fIrserv\fR, reconnect with -.P +.PP +In this example waypipe server connects to a virtual machine with CID 3 on port 1234.\& +.PP +.PD 0 +.IP \(bu 4 +Running applications in a guest virtual machine from other guest virtual machines.\& +.PD +When running both client and server in virtual machines it is possble to enable the +VMADDR_FLAG_TO_HOST flag for sibling communication by prefixing the CID with an s: +.PP .nf .RS 4 - ssh -fN -L /tmp/waypipe-lserv-2\&.sock:/tmp/waypipe\&.sock user@lserv - waypipe recon /tmp/ctrl-lserv\&.pipe /tmp/waypipe-lserv-2\&.sock + guest> waypipe --vsock -s 1234 client + guest> waypipe --vsock -s s3:1234 server weston-terminal .fi .RE -.P +.PP +In this case all packets will be routed to host where they can be forwarded to another +virtual machine with a vhost-device-vsock device or some other utility.\& +.PP .SH ENVIRONMENT -.P +.PP When running as a server, by default \fIWAYLAND_DISPLAY\fR will be set for the invoked process.\& -.P +.PP If the \fB--oneshot\fR flag is set, waypipe will instead set \fIWAYLAND_SOCKET\fR and inherit an already connected socketpair file descriptor to the invoked (child) process.\& Some programs open and close a Wayland connection repeatedly as part of their initialization, and will not work correctly with this flag.\& -.P +.PP .SH EXIT STATUS -.P +.PP \fBwaypipe ssh\fR will exit with the exit status code from the remote command, or with return code 1 if there has been an error.\& -.P +.PP +.SH SECURITY +.PP +Waypipe does not provide any strong security guarantees, and connecting to +untrusted servers is not recommended.\& It does not filter which Wayland +protocols the compositor makes available to the client (with a few exceptions +for protocols that require file descriptors which Waypipe cannot yet handle).\& +For example, if a Wayland compositor gives all its clients access to a +screenshot or lock-screen protocol, then proxied clients run under Waypipe +can also make screenshots or lock the screen.\& +.PP +In general, applications are not well tested against malicious compositors, +and compositors are not well tested against malicious clients.\& Waypipe can +connect the two, and may blindly forward denial-of-service and other attacks.\& +.PP +Waypipe itself is written in C and links to compression, graphics, and video +libraries; both it and these libraries may have security bugs.\& Some risk +can be avoided by building Waypipe with DMABUF support turned off, or +running Waypipe with the \fB--no-gpu\fR flag so that it does not expose graphics +libraries.\& +.PP +\fBwaypipe ssh\fR has no explicit protections against timing attacks; an observer +to the resulting network traffic may, by studying the size and timing of +packets, learn information about the user'\&s interaction with a Wayland client +proxied through \fBwaypipe ssh\fR.\& For example: a lack of activity suggests the +user is not currently using the application, while an intermittant stream of +messages from the compositor to the client may indicate mouse movement (or +maybe something else: the contents of the messages are protected by \fBssh\fR.\&) +.PP +The memory used by Waypipe processes may, at a given time, include Wayland +messages encoding user input, and the contents of current and recent frames +drawn for application windows.\& Swap should be encrypted to prevent this data +from being leaked to disk.\& +.PP .SH BUGS -.P +.PP File bug reports at: https://gitlab.\&freedesktop.\&org/mstoeckl/waypipe/ -.P +.PP Some programs (gnome-terminal, firefox, kate, among others) have special mechanisms to ensure that only one process is running at a time.\& Starting those programs under Waypipe while they are running under a different Wayland compositor may silently open a window or tab in the original instance of the program.\& Such programs may have a command line argument to create a new instance.\& -.P +.PP .SH SEE ALSO -.P +.PP \fBweston\fR(1), \fBssh\fR(1), \fBsocat(1)\fR, \fBncat(1)\fR diff --git a/waypipe.spec b/waypipe.spec index 7014b2f..54a4fa1 100644 --- a/waypipe.spec +++ b/waypipe.spec @@ -1,65 +1,98 @@ -Name: waypipe -Version: 0.9.1 -Release: %autorelease -Summary: Wayland forwarding proxy +# Generated by rust2rpm 27 +%bcond check 1 -License: MIT -URL: https://gitlab.freedesktop.org/mstoeckl/%{name} -Source0: https://gitlab.freedesktop.org/mstoeckl/%{name}/-/archive/v%{version}/%{name}-v%{version}.tar.gz -Source1: waypipe.1 +# prevent library files from being installed +%global cargo_install_lib 0 -BuildRequires: gcc -BuildRequires: meson +Name: waypipe +Version: 0.10.5 +Release: %autorelease +Summary: Wayland forwarding proxy + +SourceLicense: GPL-3.0-or-later +# GPL-3.0-or-later +# ISC +# MIT +# MIT OR Apache-2.0 +# (also MIT for the protocols/ directory) +License: GPL-3.0-or-later AND (Apache-2.0 OR MIT) AND ISC AND MIT +# LICENSE.dependencies contains a full license breakdown + +URL: https://gitlab.freedesktop.org/mstoeckl/waypipe +Source0: https://gitlab.freedesktop.org/mstoeckl/waypipe/-/archive/v%{version}/%{name}-v%{version}.tar.gz +Source1: waypipe.1 +Patch1: license.patch + +BuildRequires: cargo-rpm-macros >= 26 +BuildRequires: bindgen-cli +BuildRequires: gcc +# required for bindgen to resolve some include paths.. +BuildRequires: clang +BuildRequires: meson %if !0%{?rhel} -BuildRequires: scdoc +BuildRequires: scdoc %endif -BuildRequires: pkgconfig(gbm) +BuildRequires: pkgconfig(gbm) %if !0%{?rhel} -BuildRequires: pkgconfig(libavcodec) -BuildRequires: pkgconfig(libavutil) -BuildRequires: pkgconfig(libswscale) +BuildRequires: pkgconfig(libavcodec) +BuildRequires: pkgconfig(libavutil) +BuildRequires: pkgconfig(libswscale) +# not sure if needed without ffmpeg? +BuildRequires: glslc +BuildRequires: vulkan-headers %endif -BuildRequires: pkgconfig(libdrm) -BuildRequires: pkgconfig(liblz4) -BuildRequires: pkgconfig(libzstd) -BuildRequires: pkgconfig(libva) -BuildRequires: pkgconfig(wayland-protocols) -BuildRequires: pkgconfig(wayland-client) -BuildRequires: pkgconfig(wayland-server) +BuildRequires: pkgconfig(libdrm) +BuildRequires: pkgconfig(liblz4) +BuildRequires: pkgconfig(libzstd) +BuildRequires: pkgconfig(libva) +BuildRequires: pkgconfig(wayland-protocols) +BuildRequires: pkgconfig(wayland-client) +BuildRequires: pkgconfig(wayland-server) +# This one is not automatically detected properly... +BuildRequires: rust-pkg-config+default-devel -%description -Waypipe is a proxy for Wayland clients. It forwards Wayland messages and -serializes changes to shared memory buffers over a single socket. This makes -application forwarding similar to "ssh -X" feasible. +%global _description %{expand: +%{summary}.} +%description %{_description} %prep -%autosetup -n %{name}-v%{version} +%autosetup -n waypipe-v%{version} -p1 +%cargo_prep +%generate_buildrequires +%cargo_generate_buildrequires %build -%meson -Dwerror=false %{?rhel:-Dwith_video=disabled -Dman-pages=disabled} -%meson_build - - -%install -%meson_install -%if 0%{?rhel} -mkdir -p %{buildroot}%{_mandir}/man1/ -install -m 644 %{SOURCE1} %{buildroot}%{_mandir}/man1/ +%cargo_build +%{cargo_license_summary} +%{cargo_license} > LICENSE.dependencies +%if !0%{?rhel} +scdoc < waypipe.scd > waypipe.1 %endif +%install +%cargo_install +# Is there a better way to build only `--bin waypipe` ? +rm -f %{buildroot}%{_bindir}/test_proto +%if !0%{?rhel} +install -D -p -m 0644 waypipe.1 %{buildroot}%{_mandir}/man1/waypipe.1 +%else +install -D -p -m 0644 %{SOURCE1} %{buildroot}%{_mandir}/man1/waypipe.1 +%endif +%if %{with check} %check -%meson_test - +%cargo_test +%endif %files %{_bindir}/waypipe %{_mandir}/man1/waypipe.1* %doc CONTRIBUTING.md README.md -%license COPYING - +%license LICENSE.GPLv3 +%license LICENSE.MIT +%license LICENSE.dependencies %changelog %autochangelog From dfc5e157a7bed55ac3a82d8aeb05a0d45bb8d0af Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Mon, 13 Oct 2025 05:07:30 +0900 Subject: [PATCH 17/29] update waypipe.1 for rhel --- waypipe.1 | 24 ++++++++++++++++++++---- waypipe.spec | 2 +- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/waypipe.1 b/waypipe.1 index bb65250..6c9f676 100644 --- a/waypipe.1 +++ b/waypipe.1 @@ -5,7 +5,7 @@ .nh .ad l .\" Begin generated content: -.TH "waypipe" "1" "2025-08-15" +.TH "waypipe" "1" "2025-10-12" .PP .SH NAME .PP @@ -23,7 +23,7 @@ waypipe - A transparent proxy for Wayland applications .br \fBwaypipe\fR [\fB--version\fR] [\fB-h\fR, \fB--help\fR] .PP -[options.\&.\&.\&] = [\fB-c\fR, \fB--compress\fR C] [\fB-d\fR, \fB--debug\fR] [\fB-n\fR, \fB--no-gpu\fR] [\fB-o\fR, \fB--oneshot\fR] [\fB-s\fR, \fB--socket\fR S] [\fB--display\fR D] [\fB--drm-node\fR R] [\fB--remote-node\fR R] [\fB--remote-bin\fR R] [\fB--login-shell\fR] [\fB--threads\fR T] [\fB--title-prefix\fR P] [\fB--unlink-socket\fR] [\fB--video\fR V] [\fB--vsock\fR] [\fB--secctx S\fR] +[options.\&.\&.\&] = [\fB-c\fR, \fB--compress\fR C] [\fB-d\fR, \fB--debug\fR] [\fB-n\fR, \fB--no-gpu\fR] [\fB-o\fR, \fB--oneshot\fR] [\fB-s\fR, \fB--socket\fR S] [\fB--display\fR D] [\fB--drm-node\fR R] [\fB--remote-node\fR R] [\fB--remote-bin\fR R] [\fB--remote-socket\fR S] [\fB--login-shell\fR] [\fB--threads\fR T] [\fB--title-prefix\fR P] [\fB--unlink-socket\fR] [\fB--video\fR V] [\fB--vsock\fR] [\fB--secctx S\fR] .PP .PP .SH DESCRIPTION @@ -94,8 +94,9 @@ Only permit a single connection, and exit when it is closed.\& Use \fBS\fR as the path for the Unix socket.\& The default socket path for server mode is \fI/tmp/waypipe-server.\&sock\fR; for client mode, it is \fI/tmp/waypipe-client.\&sock\fR; and in ssh mode, \fBS\fR gives the prefix used by -both the client and the server for their socket paths.\& The default prefix -in ssh mode is \fI/tmp/waypipe\fR.\& +both the client and the server for their socket paths.\& (The actual socket +paths in ssh mode add a randomized suffix to \fBS\fR.\&) The default prefix in ssh +mode is \fI/tmp/waypipe\fR.\& .PP When vsock is enabled use \fBS\fR to specify a CID and a port number.\& .PP @@ -134,6 +135,13 @@ computer, or its name if it is available in \fIPATH\fR.\& It defaults to \fBwaypipe\fR if this option isn’t passed.\& .PP .RE +\fB--remote-socket R\fR +.RS 4 +In ssh mode, specify the prefix used by the remote \fBwaypipe server\fR for +its socket path.\& This overrides the \fB--socket\fR option, on the server side +only.\& +.PP +.RE \fB--login-shell\fR .RS 4 Only for server mode; if no command is being run, open a login shell.\& @@ -413,6 +421,8 @@ from being leaked to disk.\& .PP File bug reports at: https://gitlab.\&freedesktop.\&org/mstoeckl/waypipe/ .PP +.SS Common issues +.PP Some programs (gnome-terminal, firefox, kate, among others) have special mechanisms to ensure that only one process is running at a time.\& Starting those programs under Waypipe while they are running under a different @@ -420,6 +430,12 @@ Wayland compositor may silently open a window or tab in the original instance of the program.\& Such programs may have a command line argument to create a new instance.\& .PP +The \fBwaypipe ssh\fR command requires that the \fBssh\fR executable supports Unix +socket forwarding; this is only supported in OpenSSH since version 6.\&7 (from +2014), and may require specific configuration.\& Other implementations of SSH may +not be able to forward Unix sockets; see the EXAMPLE section above for how to +use non-SSH transports.\& +.PP .SH SEE ALSO .PP \fBweston\fR(1), \fBssh\fR(1), \fBsocat(1)\fR, \fBncat(1)\fR diff --git a/waypipe.spec b/waypipe.spec index 54a4fa1..9ede503 100644 --- a/waypipe.spec +++ b/waypipe.spec @@ -21,7 +21,7 @@ License: GPL-3.0-or-later AND (Apache-2.0 OR MIT) AND ISC AND MIT URL: https://gitlab.freedesktop.org/mstoeckl/waypipe Source0: https://gitlab.freedesktop.org/mstoeckl/waypipe/-/archive/v%{version}/%{name}-v%{version}.tar.gz Source1: waypipe.1 -Patch1: license.patch +Patch1: license.patch BuildRequires: cargo-rpm-macros >= 26 BuildRequires: bindgen-cli From 11b9fb2dfe7aadc0ce2e67f29f4191f0af726526 Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Tue, 14 Oct 2025 21:59:14 +0900 Subject: [PATCH 18/29] Properly handle pkg-config dep through workspace [skip changelog] (not interesting for users) --- cargo-workspace.patch | 308 ++++++++++++++++++++++++++++++++++++++++++ waypipe.spec | 3 +- 2 files changed, 309 insertions(+), 2 deletions(-) create mode 100644 cargo-workspace.patch diff --git a/cargo-workspace.patch b/cargo-workspace.patch new file mode 100644 index 0000000..2699ed2 --- /dev/null +++ b/cargo-workspace.patch @@ -0,0 +1,308 @@ +From d8b4426ff54ea2f19f142a1513ed9b8f07e1fe18 Mon Sep 17 00:00:00 2001 +From: Dominique Martinet +Date: Tue, 14 Oct 2025 22:16:32 +0900 +Subject: [PATCH] Cargo.toml: define a workspace for helper crates + +This has multiple benefits: +- Cargo.lock are now all shared between crates, making dependency +updates easier to manage +- This could also allow managing all versions or some properties in +lockstep, e.g. writing 'rust-version.workspace = true' in members +Cargo.toml (supported props: +https://doc.rust-lang.org/cargo/reference/workspaces.html#the-package-table +) +- some tools like cargo2rpm used by fedora packaging use 'cargo +metadata' under the hood, and this did not properly pick up +wrapper dependencies automatically +--- +Merged in https://gitlab.freedesktop.org/mstoeckl/waypipe/-/merge_requests/35 + + Cargo.toml | 3 ++ + shaders/Cargo.lock | 7 --- + wrap-ffmpeg/Cargo.lock | 97 ------------------------------------------ + wrap-gbm/Cargo.lock | 97 ------------------------------------------ + wrap-lz4/Cargo.lock | 16 ------- + wrap-zstd/Cargo.lock | 16 ------- + 6 files changed, 3 insertions(+), 233 deletions(-) + delete mode 100644 shaders/Cargo.lock + delete mode 100644 wrap-ffmpeg/Cargo.lock + delete mode 100644 wrap-gbm/Cargo.lock + delete mode 100644 wrap-lz4/Cargo.lock + delete mode 100644 wrap-zstd/Cargo.lock + +diff --git a/Cargo.toml b/Cargo.toml +index aeb7bea7e426..ecba518d49ee 100644 +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -1,3 +1,6 @@ ++[workspace] ++ + [package] + name = "waypipe" + version = "0.10.5" +diff --git a/shaders/Cargo.lock b/shaders/Cargo.lock +deleted file mode 100644 +index 33f0e02785e4..000000000000 +--- a/shaders/Cargo.lock ++++ /dev/null +@@ -1,7 +0,0 @@ +-# This file is automatically @generated by Cargo. +-# It is not intended for manual editing. +-version = 3 +- +-[[package]] +-name = "waypipe-shaders" +-version = "0.1.0" +diff --git a/wrap-ffmpeg/Cargo.lock b/wrap-ffmpeg/Cargo.lock +deleted file mode 100644 +index ec7f892fba1b..000000000000 +--- a/wrap-ffmpeg/Cargo.lock ++++ /dev/null +@@ -1,97 +0,0 @@ +-# This file is automatically @generated by Cargo. +-# It is not intended for manual editing. +-version = 3 +- +-[[package]] +-name = "cfg-if" +-version = "1.0.0" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +- +-[[package]] +-name = "libloading" +-version = "0.8.5" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" +-dependencies = [ +- "cfg-if", +- "windows-targets", +-] +- +-[[package]] +-name = "pkg-config" +-version = "0.3.31" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" +- +-[[package]] +-name = "waypipe-ffmpeg-wrapper" +-version = "0.1.0" +-dependencies = [ +- "libloading", +- "pkg-config", +-] +- +-[[package]] +-name = "windows-targets" +-version = "0.52.6" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +-dependencies = [ +- "windows_aarch64_gnullvm", +- "windows_aarch64_msvc", +- "windows_i686_gnu", +- "windows_i686_gnullvm", +- "windows_i686_msvc", +- "windows_x86_64_gnu", +- "windows_x86_64_gnullvm", +- "windows_x86_64_msvc", +-] +- +-[[package]] +-name = "windows_aarch64_gnullvm" +-version = "0.52.6" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +- +-[[package]] +-name = "windows_aarch64_msvc" +-version = "0.52.6" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +- +-[[package]] +-name = "windows_i686_gnu" +-version = "0.52.6" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +- +-[[package]] +-name = "windows_i686_gnullvm" +-version = "0.52.6" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +- +-[[package]] +-name = "windows_i686_msvc" +-version = "0.52.6" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +- +-[[package]] +-name = "windows_x86_64_gnu" +-version = "0.52.6" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +- +-[[package]] +-name = "windows_x86_64_gnullvm" +-version = "0.52.6" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +- +-[[package]] +-name = "windows_x86_64_msvc" +-version = "0.52.6" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +diff --git a/wrap-gbm/Cargo.lock b/wrap-gbm/Cargo.lock +deleted file mode 100644 +index f361ece261e8..000000000000 +--- a/wrap-gbm/Cargo.lock ++++ /dev/null +@@ -1,97 +0,0 @@ +-# This file is automatically @generated by Cargo. +-# It is not intended for manual editing. +-version = 3 +- +-[[package]] +-name = "cfg-if" +-version = "1.0.0" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +- +-[[package]] +-name = "libloading" +-version = "0.8.5" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" +-dependencies = [ +- "cfg-if", +- "windows-targets", +-] +- +-[[package]] +-name = "pkg-config" +-version = "0.3.31" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" +- +-[[package]] +-name = "waypipe-gbm-wrapper" +-version = "0.1.0" +-dependencies = [ +- "libloading", +- "pkg-config", +-] +- +-[[package]] +-name = "windows-targets" +-version = "0.52.6" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" +-dependencies = [ +- "windows_aarch64_gnullvm", +- "windows_aarch64_msvc", +- "windows_i686_gnu", +- "windows_i686_gnullvm", +- "windows_i686_msvc", +- "windows_x86_64_gnu", +- "windows_x86_64_gnullvm", +- "windows_x86_64_msvc", +-] +- +-[[package]] +-name = "windows_aarch64_gnullvm" +-version = "0.52.6" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" +- +-[[package]] +-name = "windows_aarch64_msvc" +-version = "0.52.6" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" +- +-[[package]] +-name = "windows_i686_gnu" +-version = "0.52.6" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" +- +-[[package]] +-name = "windows_i686_gnullvm" +-version = "0.52.6" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" +- +-[[package]] +-name = "windows_i686_msvc" +-version = "0.52.6" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" +- +-[[package]] +-name = "windows_x86_64_gnu" +-version = "0.52.6" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" +- +-[[package]] +-name = "windows_x86_64_gnullvm" +-version = "0.52.6" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" +- +-[[package]] +-name = "windows_x86_64_msvc" +-version = "0.52.6" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" +diff --git a/wrap-lz4/Cargo.lock b/wrap-lz4/Cargo.lock +deleted file mode 100644 +index 8405819dc511..000000000000 +--- a/wrap-lz4/Cargo.lock ++++ /dev/null +@@ -1,16 +0,0 @@ +-# This file is automatically @generated by Cargo. +-# It is not intended for manual editing. +-version = 3 +- +-[[package]] +-name = "pkg-config" +-version = "0.3.31" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" +- +-[[package]] +-name = "waypipe-lz4-wrapper" +-version = "0.1.0" +-dependencies = [ +- "pkg-config", +-] +diff --git a/wrap-zstd/Cargo.lock b/wrap-zstd/Cargo.lock +deleted file mode 100644 +index 47777ffaa8ca..000000000000 +--- a/wrap-zstd/Cargo.lock ++++ /dev/null +@@ -1,16 +0,0 @@ +-# This file is automatically @generated by Cargo. +-# It is not intended for manual editing. +-version = 3 +- +-[[package]] +-name = "pkg-config" +-version = "0.3.31" +-source = "registry+https://github.com/rust-lang/crates.io-index" +-checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" +- +-[[package]] +-name = "waypipe-zstd-wrapper" +-version = "0.1.0" +-dependencies = [ +- "pkg-config", +-] +-- +2.51.0 + diff --git a/waypipe.spec b/waypipe.spec index 9ede503..de13549 100644 --- a/waypipe.spec +++ b/waypipe.spec @@ -22,6 +22,7 @@ URL: https://gitlab.freedesktop.org/mstoeckl/waypipe Source0: https://gitlab.freedesktop.org/mstoeckl/waypipe/-/archive/v%{version}/%{name}-v%{version}.tar.gz Source1: waypipe.1 Patch1: license.patch +Patch2: cargo-workspace.patch BuildRequires: cargo-rpm-macros >= 26 BuildRequires: bindgen-cli @@ -48,8 +49,6 @@ BuildRequires: pkgconfig(libva) BuildRequires: pkgconfig(wayland-protocols) BuildRequires: pkgconfig(wayland-client) BuildRequires: pkgconfig(wayland-server) -# This one is not automatically detected properly... -BuildRequires: rust-pkg-config+default-devel %global _description %{expand: %{summary}.} From 20fd833d5198916963e7163a19bf05a143d7d4d3 Mon Sep 17 00:00:00 2001 From: Yaakov Selkowitz Date: Wed, 29 Oct 2025 19:50:37 -0400 Subject: [PATCH 19/29] Use cargo features (fix RHEL build) RHEL does not include ffmpeg for the video feature, and test_proto is only needed during %check. Therefore, we should not rely on the default features, and instead specify them when calling cargo. --- waypipe.spec | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/waypipe.spec b/waypipe.spec index de13549..7263d43 100644 --- a/waypipe.spec +++ b/waypipe.spec @@ -4,6 +4,12 @@ # prevent library files from being installed %global cargo_install_lib 0 +# Default features in Cargo.toml, except: +# video: requires ffmpeg (not included in RHEL) +# test_proto: only needed in %%check +%global features %{!?rhel:video,}dmabuf,lz4,zstd,gbmfallback +%global test_features test_proto + Name: waypipe Version: 0.10.5 Release: %autorelease @@ -38,7 +44,6 @@ BuildRequires: pkgconfig(gbm) BuildRequires: pkgconfig(libavcodec) BuildRequires: pkgconfig(libavutil) BuildRequires: pkgconfig(libswscale) -# not sure if needed without ffmpeg? BuildRequires: glslc BuildRequires: vulkan-headers %endif @@ -60,10 +65,10 @@ BuildRequires: pkgconfig(wayland-server) %cargo_prep %generate_buildrequires -%cargo_generate_buildrequires +%cargo_generate_buildrequires -n -f %{features},%{test_features} %build -%cargo_build +%cargo_build -n -f %{features} %{cargo_license_summary} %{cargo_license} > LICENSE.dependencies %if !0%{?rhel} @@ -71,9 +76,7 @@ scdoc < waypipe.scd > waypipe.1 %endif %install -%cargo_install -# Is there a better way to build only `--bin waypipe` ? -rm -f %{buildroot}%{_bindir}/test_proto +%cargo_install -n -f %{features} %if !0%{?rhel} install -D -p -m 0644 waypipe.1 %{buildroot}%{_mandir}/man1/waypipe.1 %else @@ -82,7 +85,7 @@ install -D -p -m 0644 %{SOURCE1} %{buildroot}%{_mandir}/man1/waypipe.1 %if %{with check} %check -%cargo_test +%cargo_test -n -f %{features},%{test_features} %endif %files From 79b8092a6d8ea0329cd797d859951d467663490a Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Thu, 30 Oct 2025 22:56:37 +0900 Subject: [PATCH 20/29] fix cargo-workspace.patch diff was edited manually incorrectly.. woops. [skip changelog] --- cargo-workspace.patch | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cargo-workspace.patch b/cargo-workspace.patch index 2699ed2..8f6b19c 100644 --- a/cargo-workspace.patch +++ b/cargo-workspace.patch @@ -34,7 +34,7 @@ diff --git a/Cargo.toml b/Cargo.toml index aeb7bea7e426..ecba518d49ee 100644 --- a/Cargo.toml +++ b/Cargo.toml -@@ -1,3 +1,6 @@ +@@ -1,3 +1,5 @@ +[workspace] + [package] From 9f56196bff4d1a0228e66b8474a76419b6228558 Mon Sep 17 00:00:00 2001 From: Dominik 'Rathann' Mierzejewski Date: Thu, 6 Nov 2025 13:12:51 +0100 Subject: [PATCH 21/29] Rebuilt for FFmpeg 8 From 2d31a300b04f5411fb07289eba39f02265dd3420 Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Sun, 7 Dec 2025 12:21:48 +0000 Subject: [PATCH 22/29] replace feature list with Cargo.toml patch This should allow detecting if the feature list changes in the future unlike the current approach, as suggested in [1] Link: https://src.fedoraproject.org/rpms/waypipe/pull-request/7 [1] --- ...ures-remove-test_proto-from-defaults.patch | 25 ++++++++++++++++++ ...res-remove-video-from-defaults-for-r.patch | 26 +++++++++++++++++++ waypipe.spec | 17 ++++++------ 3 files changed, 60 insertions(+), 8 deletions(-) create mode 100644 0001-Cargo.toml-features-remove-test_proto-from-defaults.patch create mode 100644 0002-Cargo.toml-features-remove-video-from-defaults-for-r.patch diff --git a/0001-Cargo.toml-features-remove-test_proto-from-defaults.patch b/0001-Cargo.toml-features-remove-test_proto-from-defaults.patch new file mode 100644 index 0000000..1dfcada --- /dev/null +++ b/0001-Cargo.toml-features-remove-test_proto-from-defaults.patch @@ -0,0 +1,25 @@ +From fa4d12296de749eafb06f8dfb7e53a7ce8699876 Mon Sep 17 00:00:00 2001 +From: Dominique Martinet +Date: Sun, 7 Dec 2025 11:57:55 +0000 +Subject: [PATCH 1/2] Cargo.toml: features: remove test_proto from defaults + +--- + Cargo.toml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Cargo.toml b/Cargo.toml +index 9213b3a94500..4d5fb42494b9 100644 +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -20,7 +20,7 @@ path = "src/test_proto.rs" + required-features = ["test_proto"] + + [features] +-default = ["video", "dmabuf", "lz4", "zstd", "gbmfallback", "test_proto"] ++default = ["video", "dmabuf", "lz4", "zstd", "gbmfallback"] + video = ["dep:waypipe-ffmpeg-wrapper", "dep:waypipe-shaders", "dmabuf"] + dmabuf = ["dep:ash"] + lz4 = ["dep:waypipe-lz4-wrapper"] +-- +2.52.0 + diff --git a/0002-Cargo.toml-features-remove-video-from-defaults-for-r.patch b/0002-Cargo.toml-features-remove-video-from-defaults-for-r.patch new file mode 100644 index 0000000..2d0c62e --- /dev/null +++ b/0002-Cargo.toml-features-remove-video-from-defaults-for-r.patch @@ -0,0 +1,26 @@ +From eed41ad0ef6ae0784b30df8e20b7293846610f23 Mon Sep 17 00:00:00 2001 +From: Dominique Martinet +Date: Sun, 7 Dec 2025 11:58:21 +0000 +Subject: [PATCH 2/2] Cargo.toml: features: remove video from defaults (for + rhel) + +--- + Cargo.toml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/Cargo.toml b/Cargo.toml +index 4d5fb42494b9..75e4845750af 100644 +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -20,7 +20,7 @@ path = "src/test_proto.rs" + required-features = ["test_proto"] + + [features] +-default = ["video", "dmabuf", "lz4", "zstd", "gbmfallback"] ++default = ["dmabuf", "lz4", "zstd", "gbmfallback"] + video = ["dep:waypipe-ffmpeg-wrapper", "dep:waypipe-shaders", "dmabuf"] + dmabuf = ["dep:ash"] + lz4 = ["dep:waypipe-lz4-wrapper"] +-- +2.52.0 + diff --git a/waypipe.spec b/waypipe.spec index 7263d43..599e094 100644 --- a/waypipe.spec +++ b/waypipe.spec @@ -4,10 +4,7 @@ # prevent library files from being installed %global cargo_install_lib 0 -# Default features in Cargo.toml, except: -# video: requires ffmpeg (not included in RHEL) -# test_proto: only needed in %%check -%global features %{!?rhel:video,}dmabuf,lz4,zstd,gbmfallback +# test_proto is only needed in %%check %global test_features test_proto Name: waypipe @@ -29,6 +26,10 @@ Source0: https://gitlab.freedesktop.org/mstoeckl/waypipe/-/archive/v%{ver Source1: waypipe.1 Patch1: license.patch Patch2: cargo-workspace.patch +Patch3: 0001-Cargo.toml-features-remove-test_proto-from-defaults.patch +%if 0%{?rhel} +Patch4: 0002-Cargo.toml-features-remove-video-from-defaults-for-r.patch +%endif BuildRequires: cargo-rpm-macros >= 26 BuildRequires: bindgen-cli @@ -65,10 +66,10 @@ BuildRequires: pkgconfig(wayland-server) %cargo_prep %generate_buildrequires -%cargo_generate_buildrequires -n -f %{features},%{test_features} +%cargo_generate_buildrequires -f %{test_features} %build -%cargo_build -n -f %{features} +%cargo_build %{cargo_license_summary} %{cargo_license} > LICENSE.dependencies %if !0%{?rhel} @@ -76,7 +77,7 @@ scdoc < waypipe.scd > waypipe.1 %endif %install -%cargo_install -n -f %{features} +%cargo_install %if !0%{?rhel} install -D -p -m 0644 waypipe.1 %{buildroot}%{_mandir}/man1/waypipe.1 %else @@ -85,7 +86,7 @@ install -D -p -m 0644 %{SOURCE1} %{buildroot}%{_mandir}/man1/waypipe.1 %if %{with check} %check -%cargo_test -n -f %{features},%{test_features} +%cargo_test -f %{test_features} %endif %files From 0bd31dde9f5853bfd9428b1bd6e512c4b168f57d Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Sun, 7 Dec 2025 12:24:56 +0000 Subject: [PATCH 23/29] Update to 0.10.6 --- .gitignore | 1 + sources | 2 +- waypipe.spec | 8 +++----- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 2c3f348..660842d 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ /waypipe-v0.9.1.tar.gz /waypipe-v0.10.4.tar.gz /waypipe-v0.10.5.tar.gz +/waypipe-v0.10.6.tar.gz diff --git a/sources b/sources index 5041244..c4a7c56 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (waypipe-v0.10.5.tar.gz) = 1a9cf484d55adef247c63eccb8de7979eb0d5deabb3c0a0f64e476ab6cf47038cec8c6146690c446ba6070d3e0638d73359f1e84bcfe812cc0968157cae7d8d2 +SHA512 (waypipe-v0.10.6.tar.gz) = d74ae79cc18319952b131c78e5551a06636e88d7b434762c5a8f9d18e64b886996b26204b3952c096d79c7823f65e82992a9bc24f7c114a14b0aa70633596f52 diff --git a/waypipe.spec b/waypipe.spec index 599e094..0384589 100644 --- a/waypipe.spec +++ b/waypipe.spec @@ -8,7 +8,7 @@ %global test_features test_proto Name: waypipe -Version: 0.10.5 +Version: 0.10.6 Release: %autorelease Summary: Wayland forwarding proxy @@ -24,11 +24,9 @@ License: GPL-3.0-or-later AND (Apache-2.0 OR MIT) AND ISC AND MIT URL: https://gitlab.freedesktop.org/mstoeckl/waypipe Source0: https://gitlab.freedesktop.org/mstoeckl/waypipe/-/archive/v%{version}/%{name}-v%{version}.tar.gz Source1: waypipe.1 -Patch1: license.patch -Patch2: cargo-workspace.patch -Patch3: 0001-Cargo.toml-features-remove-test_proto-from-defaults.patch +Patch1: 0001-Cargo.toml-features-remove-test_proto-from-defaults.patch %if 0%{?rhel} -Patch4: 0002-Cargo.toml-features-remove-video-from-defaults-for-r.patch +Patch2: 0002-Cargo.toml-features-remove-video-from-defaults-for-r.patch %endif BuildRequires: cargo-rpm-macros >= 26 From 91c0d46b9fd6b813bd5486a50fcb0c496a967b65 Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Sun, 7 Dec 2025 12:30:45 +0000 Subject: [PATCH 24/29] Remove unused patches [skip changelog] --- cargo-workspace.patch | 308 ------------------------------------------ license.patch | 19 --- 2 files changed, 327 deletions(-) delete mode 100644 cargo-workspace.patch delete mode 100644 license.patch diff --git a/cargo-workspace.patch b/cargo-workspace.patch deleted file mode 100644 index 8f6b19c..0000000 --- a/cargo-workspace.patch +++ /dev/null @@ -1,308 +0,0 @@ -From d8b4426ff54ea2f19f142a1513ed9b8f07e1fe18 Mon Sep 17 00:00:00 2001 -From: Dominique Martinet -Date: Tue, 14 Oct 2025 22:16:32 +0900 -Subject: [PATCH] Cargo.toml: define a workspace for helper crates - -This has multiple benefits: -- Cargo.lock are now all shared between crates, making dependency -updates easier to manage -- This could also allow managing all versions or some properties in -lockstep, e.g. writing 'rust-version.workspace = true' in members -Cargo.toml (supported props: -https://doc.rust-lang.org/cargo/reference/workspaces.html#the-package-table -) -- some tools like cargo2rpm used by fedora packaging use 'cargo -metadata' under the hood, and this did not properly pick up -wrapper dependencies automatically ---- -Merged in https://gitlab.freedesktop.org/mstoeckl/waypipe/-/merge_requests/35 - - Cargo.toml | 3 ++ - shaders/Cargo.lock | 7 --- - wrap-ffmpeg/Cargo.lock | 97 ------------------------------------------ - wrap-gbm/Cargo.lock | 97 ------------------------------------------ - wrap-lz4/Cargo.lock | 16 ------- - wrap-zstd/Cargo.lock | 16 ------- - 6 files changed, 3 insertions(+), 233 deletions(-) - delete mode 100644 shaders/Cargo.lock - delete mode 100644 wrap-ffmpeg/Cargo.lock - delete mode 100644 wrap-gbm/Cargo.lock - delete mode 100644 wrap-lz4/Cargo.lock - delete mode 100644 wrap-zstd/Cargo.lock - -diff --git a/Cargo.toml b/Cargo.toml -index aeb7bea7e426..ecba518d49ee 100644 ---- a/Cargo.toml -+++ b/Cargo.toml -@@ -1,3 +1,5 @@ -+[workspace] -+ - [package] - name = "waypipe" - version = "0.10.5" -diff --git a/shaders/Cargo.lock b/shaders/Cargo.lock -deleted file mode 100644 -index 33f0e02785e4..000000000000 ---- a/shaders/Cargo.lock -+++ /dev/null -@@ -1,7 +0,0 @@ --# This file is automatically @generated by Cargo. --# It is not intended for manual editing. --version = 3 -- --[[package]] --name = "waypipe-shaders" --version = "0.1.0" -diff --git a/wrap-ffmpeg/Cargo.lock b/wrap-ffmpeg/Cargo.lock -deleted file mode 100644 -index ec7f892fba1b..000000000000 ---- a/wrap-ffmpeg/Cargo.lock -+++ /dev/null -@@ -1,97 +0,0 @@ --# This file is automatically @generated by Cargo. --# It is not intended for manual editing. --version = 3 -- --[[package]] --name = "cfg-if" --version = "1.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" -- --[[package]] --name = "libloading" --version = "0.8.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" --dependencies = [ -- "cfg-if", -- "windows-targets", --] -- --[[package]] --name = "pkg-config" --version = "0.3.31" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" -- --[[package]] --name = "waypipe-ffmpeg-wrapper" --version = "0.1.0" --dependencies = [ -- "libloading", -- "pkg-config", --] -- --[[package]] --name = "windows-targets" --version = "0.52.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" --dependencies = [ -- "windows_aarch64_gnullvm", -- "windows_aarch64_msvc", -- "windows_i686_gnu", -- "windows_i686_gnullvm", -- "windows_i686_msvc", -- "windows_x86_64_gnu", -- "windows_x86_64_gnullvm", -- "windows_x86_64_msvc", --] -- --[[package]] --name = "windows_aarch64_gnullvm" --version = "0.52.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -- --[[package]] --name = "windows_aarch64_msvc" --version = "0.52.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -- --[[package]] --name = "windows_i686_gnu" --version = "0.52.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" -- --[[package]] --name = "windows_i686_gnullvm" --version = "0.52.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" -- --[[package]] --name = "windows_i686_msvc" --version = "0.52.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -- --[[package]] --name = "windows_x86_64_gnu" --version = "0.52.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" -- --[[package]] --name = "windows_x86_64_gnullvm" --version = "0.52.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" -- --[[package]] --name = "windows_x86_64_msvc" --version = "0.52.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" -diff --git a/wrap-gbm/Cargo.lock b/wrap-gbm/Cargo.lock -deleted file mode 100644 -index f361ece261e8..000000000000 ---- a/wrap-gbm/Cargo.lock -+++ /dev/null -@@ -1,97 +0,0 @@ --# This file is automatically @generated by Cargo. --# It is not intended for manual editing. --version = 3 -- --[[package]] --name = "cfg-if" --version = "1.0.0" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" -- --[[package]] --name = "libloading" --version = "0.8.5" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "4979f22fdb869068da03c9f7528f8297c6fd2606bc3a4affe42e6a823fdb8da4" --dependencies = [ -- "cfg-if", -- "windows-targets", --] -- --[[package]] --name = "pkg-config" --version = "0.3.31" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" -- --[[package]] --name = "waypipe-gbm-wrapper" --version = "0.1.0" --dependencies = [ -- "libloading", -- "pkg-config", --] -- --[[package]] --name = "windows-targets" --version = "0.52.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" --dependencies = [ -- "windows_aarch64_gnullvm", -- "windows_aarch64_msvc", -- "windows_i686_gnu", -- "windows_i686_gnullvm", -- "windows_i686_msvc", -- "windows_x86_64_gnu", -- "windows_x86_64_gnullvm", -- "windows_x86_64_msvc", --] -- --[[package]] --name = "windows_aarch64_gnullvm" --version = "0.52.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -- --[[package]] --name = "windows_aarch64_msvc" --version = "0.52.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -- --[[package]] --name = "windows_i686_gnu" --version = "0.52.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" -- --[[package]] --name = "windows_i686_gnullvm" --version = "0.52.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" -- --[[package]] --name = "windows_i686_msvc" --version = "0.52.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -- --[[package]] --name = "windows_x86_64_gnu" --version = "0.52.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" -- --[[package]] --name = "windows_x86_64_gnullvm" --version = "0.52.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" -- --[[package]] --name = "windows_x86_64_msvc" --version = "0.52.6" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" -diff --git a/wrap-lz4/Cargo.lock b/wrap-lz4/Cargo.lock -deleted file mode 100644 -index 8405819dc511..000000000000 ---- a/wrap-lz4/Cargo.lock -+++ /dev/null -@@ -1,16 +0,0 @@ --# This file is automatically @generated by Cargo. --# It is not intended for manual editing. --version = 3 -- --[[package]] --name = "pkg-config" --version = "0.3.31" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" -- --[[package]] --name = "waypipe-lz4-wrapper" --version = "0.1.0" --dependencies = [ -- "pkg-config", --] -diff --git a/wrap-zstd/Cargo.lock b/wrap-zstd/Cargo.lock -deleted file mode 100644 -index 47777ffaa8ca..000000000000 ---- a/wrap-zstd/Cargo.lock -+++ /dev/null -@@ -1,16 +0,0 @@ --# This file is automatically @generated by Cargo. --# It is not intended for manual editing. --version = 3 -- --[[package]] --name = "pkg-config" --version = "0.3.31" --source = "registry+https://github.com/rust-lang/crates.io-index" --checksum = "953ec861398dccce10c670dfeaf3ec4911ca479e9c02154b3a215178c5f566f2" -- --[[package]] --name = "waypipe-zstd-wrapper" --version = "0.1.0" --dependencies = [ -- "pkg-config", --] --- -2.51.0 - diff --git a/license.patch b/license.patch deleted file mode 100644 index b43abb6..0000000 --- a/license.patch +++ /dev/null @@ -1,19 +0,0 @@ -From 2c16f24a53f79b010a677288d0c91ea4a8683a4a Mon Sep 17 00:00:00 2001 -From: Dominique Martinet -Date: Fri, 15 Aug 2025 21:05:34 +0900 -Subject: [PATCH] license - -Merged in https://gitlab.freedesktop.org/mstoeckl/waypipe/-/merge_requests/33 - -diff --git a/Cargo.toml b/Cargo.toml -index 8674dfab1f62..5d627e37ae23 100644 ---- a/Cargo.toml -+++ b/Cargo.toml -@@ -6,6 +6,7 @@ version = "0.10.4" - edition = "2021" - rust-version = "1.77.0" - default-run = "waypipe" -+license = "GPL-3.0-or-later" - - [[bin]] - name = "waypipe" From 43a89ed836aabcdce95498333fb1350615cd1e6b Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Sat, 20 Dec 2025 06:02:15 +0000 Subject: [PATCH 25/29] Update to 0.11.0 (identical to 0.10.6) --- .gitignore | 1 + sources | 2 +- waypipe.spec | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 660842d..1b4b62e 100644 --- a/.gitignore +++ b/.gitignore @@ -11,3 +11,4 @@ /waypipe-v0.10.4.tar.gz /waypipe-v0.10.5.tar.gz /waypipe-v0.10.6.tar.gz +/waypipe-v0.11.0.tar.gz diff --git a/sources b/sources index c4a7c56..17bd915 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (waypipe-v0.10.6.tar.gz) = d74ae79cc18319952b131c78e5551a06636e88d7b434762c5a8f9d18e64b886996b26204b3952c096d79c7823f65e82992a9bc24f7c114a14b0aa70633596f52 +SHA512 (waypipe-v0.11.0.tar.gz) = 02f723ec553c530378649ece93b2ee38d2c39c6087043566204150254f7234277dca477eb4402fe2d311d1554efbfd28652079c2d1db66e7291ea9ad30f10fa4 diff --git a/waypipe.spec b/waypipe.spec index 0384589..59dde18 100644 --- a/waypipe.spec +++ b/waypipe.spec @@ -8,7 +8,7 @@ %global test_features test_proto Name: waypipe -Version: 0.10.6 +Version: 0.11.0 Release: %autorelease Summary: Wayland forwarding proxy From 5d1e990678c3f7b8f36ac6226297a463d8170ce9 Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Sat, 17 Jan 2026 20:08:55 +0000 Subject: [PATCH 26/29] Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild From 86540dc31878177b44ceedd62129e904ad960dcf Mon Sep 17 00:00:00 2001 From: Fedora Release Engineering Date: Fri, 17 Jul 2026 08:43:16 +0000 Subject: [PATCH 27/29] Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild From a787f50d30da3fb2c720c83391f6a03396dad961 Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Mon, 17 Aug 2026 00:40:42 +0000 Subject: [PATCH 28/29] Update to 0.11.1 --- .gitignore | 1 + sources | 2 +- waypipe.spec | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 1b4b62e..8b3a6a3 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ /waypipe-v0.10.5.tar.gz /waypipe-v0.10.6.tar.gz /waypipe-v0.11.0.tar.gz +/waypipe-v0.11.1.tar.gz diff --git a/sources b/sources index 17bd915..34597e0 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (waypipe-v0.11.0.tar.gz) = 02f723ec553c530378649ece93b2ee38d2c39c6087043566204150254f7234277dca477eb4402fe2d311d1554efbfd28652079c2d1db66e7291ea9ad30f10fa4 +SHA512 (waypipe-v0.11.1.tar.gz) = 2bb2eeb46f165b96ed843c0a20431d2404d08e0e1f3b5e580f849f07ab7b5cc96c6fbb76ed81beb4f26c0c7e4d0c4d655adf2729e9f141685523bcb4697ce64b diff --git a/waypipe.spec b/waypipe.spec index 59dde18..eb51dac 100644 --- a/waypipe.spec +++ b/waypipe.spec @@ -8,7 +8,7 @@ %global test_features test_proto Name: waypipe -Version: 0.11.0 +Version: 0.11.1 Release: %autorelease Summary: Wayland forwarding proxy From e8d34c4bbab2bf68eac2e1fcdc05463acf85bd28 Mon Sep 17 00:00:00 2001 From: Dominique Martinet Date: Thu, 27 Aug 2026 00:05:25 +0000 Subject: [PATCH 29/29] Update to 0.11.2 Prepare for ffmpeg 9 update --- .gitignore | 1 + sources | 2 +- waypipe.spec | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/.gitignore b/.gitignore index 8b3a6a3..9ecf52e 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,4 @@ /waypipe-v0.10.6.tar.gz /waypipe-v0.11.0.tar.gz /waypipe-v0.11.1.tar.gz +/waypipe-v0.11.2.tar.gz diff --git a/sources b/sources index 34597e0..1bddf05 100644 --- a/sources +++ b/sources @@ -1 +1 @@ -SHA512 (waypipe-v0.11.1.tar.gz) = 2bb2eeb46f165b96ed843c0a20431d2404d08e0e1f3b5e580f849f07ab7b5cc96c6fbb76ed81beb4f26c0c7e4d0c4d655adf2729e9f141685523bcb4697ce64b +SHA512 (waypipe-v0.11.2.tar.gz) = e1b475f6c4b41cdc15ac1765a6a0dbb865f1bdc384d7f7393660e39baf38a375a501d7ec7493a82cd8aaeef9faba67422164e26d56f19737949f8578495ca5f1 diff --git a/waypipe.spec b/waypipe.spec index eb51dac..0b54f35 100644 --- a/waypipe.spec +++ b/waypipe.spec @@ -8,7 +8,7 @@ %global test_features test_proto Name: waypipe -Version: 0.11.1 +Version: 0.11.2 Release: %autorelease Summary: Wayland forwarding proxy