mirror of
https://github.com/sol1/rustguac.git
synced 2026-09-10 01:26:06 +00:00
build(spice): vendor guacd SPICE protocol support (patch 008)
Vendors native SPICE protocol support (libguac-client-spice) from upstream PR apache/guacamole-server#688 (GUACAMOLE-261) as patch 008, on top of the pinned guacd (6719b20d) + existing patches. Wires --with-spice and the libspice-client-glib-2.0-dev build dep into build-deb.sh, install.sh, Dockerfile, and dev.sh. guacclip is kept in the source but not built (--disable-guacclip, like guacenc/guaclog); the PR's incidental non-SPICE terminal.c keyboard change is excluded. guacd builds green with libguac-client-spice on Debian 13 under -Werror. rustguac-side wiring (SessionType::Spice / SpiceParams) still to come.
This commit is contained in:
+3
-1
@@ -33,7 +33,7 @@ RUN apt-get update && apt-get install -y --no-install-recommends \
|
||||
libpango1.0-dev libpulse-dev \
|
||||
libavcodec-dev libavformat-dev libavutil-dev libswscale-dev \
|
||||
libcunit1-dev libtelnet-dev libwebsockets-dev \
|
||||
uuid-dev freerdp3-dev \
|
||||
uuid-dev freerdp3-dev libspice-client-glib-2.0-dev \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
WORKDIR /build
|
||||
@@ -58,10 +58,12 @@ RUN /build/guacamole-server/configure \
|
||||
--with-ssh \
|
||||
--with-vnc \
|
||||
--with-rdp \
|
||||
--with-spice \
|
||||
--without-telnet \
|
||||
--without-kubernetes \
|
||||
--disable-guacenc \
|
||||
--disable-guaclog \
|
||||
--disable-guacclip \
|
||||
--disable-static \
|
||||
&& make -j"$(nproc)" \
|
||||
&& make install \
|
||||
|
||||
@@ -103,10 +103,12 @@ build_guacd() {
|
||||
--with-ssh \
|
||||
--with-vnc \
|
||||
--with-rdp \
|
||||
--with-spice \
|
||||
--without-telnet \
|
||||
--without-kubernetes \
|
||||
--disable-guacenc \
|
||||
--disable-guaclog \
|
||||
--disable-guacclip \
|
||||
--disable-static
|
||||
|
||||
info "Compiling guacd..."
|
||||
|
||||
@@ -49,7 +49,7 @@ cmd_deps() {
|
||||
libpango1.0-dev libssh2-1-dev libssl-dev \
|
||||
libvncserver-dev libtelnet-dev libwebsockets-dev \
|
||||
libpulse-dev libwebp-dev libcunit1-dev \
|
||||
freerdp3-dev
|
||||
freerdp3-dev libspice-client-glib-2.0-dev
|
||||
|
||||
# uuid-dev is the standard package on Debian; fall back to libossp-uuid-dev
|
||||
sudo apt-get install -y uuid-dev 2>/dev/null || true
|
||||
@@ -108,10 +108,12 @@ cmd_build_guacd() {
|
||||
--with-ssh \
|
||||
--with-vnc \
|
||||
--with-rdp \
|
||||
--with-spice \
|
||||
--without-telnet \
|
||||
--without-kubernetes \
|
||||
--disable-guacenc \
|
||||
--disable-guaclog \
|
||||
--disable-guacclip \
|
||||
--disable-static
|
||||
fi
|
||||
|
||||
|
||||
+3
-1
@@ -74,7 +74,7 @@ install_deps() {
|
||||
libpango1.0-dev libpulse-dev \
|
||||
libavcodec-dev libavformat-dev libavutil-dev libswscale-dev \
|
||||
libcunit1-dev libtelnet-dev libwebsockets-dev \
|
||||
freerdp3-dev
|
||||
freerdp3-dev libspice-client-glib-2.0-dev
|
||||
|
||||
# uuid-dev (Debian standard) or fallback
|
||||
apt-get install -y uuid-dev 2>/dev/null || apt-get install -y libossp-uuid-dev || true
|
||||
@@ -177,10 +177,12 @@ build_guacd() {
|
||||
--with-ssh \
|
||||
--with-vnc \
|
||||
--with-rdp \
|
||||
--with-spice \
|
||||
--without-telnet \
|
||||
--without-kubernetes \
|
||||
--disable-guacenc \
|
||||
--disable-guaclog \
|
||||
--disable-guacclip \
|
||||
--disable-static
|
||||
|
||||
info "Compiling guacd..."
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
@@ -141,6 +141,14 @@ Ported from [pletch/guacamole-server@b28bdac](https://github.com/pletch/guacamol
|
||||
|------|-----|
|
||||
| `src/protocols/rdp/channels/disp.c` | Round display dimensions down to mod-16 in `guac_rdp_disp_set_size()` |
|
||||
|
||||
## 008-spice-protocol.patch
|
||||
|
||||
**Feature:** Adds native SPICE protocol support (`libguac-client-spice`), vendored from the upstream PR [apache/guacamole-server#688](https://github.com/apache/guacamole-server/pull/688) ([GUACAMOLE-261](https://issues.apache.org/jira/browse/GUACAMOLE-261)). Enables connecting to SPICE displays (e.g. Proxmox VE / QEMU consoles). Requires `libspice-client-glib-2.0-dev` (>= 0.38) at build time; guacd is configured `--with-spice`.
|
||||
|
||||
Vendored as the diff of the PR branch against its merge-base with our pinned guacd. The PR's incidental, non-SPICE change to `src/terminal/terminal.c` (SSH terminal keyboard-modifier handling) is **excluded** here: it is unrelated to SPICE and conflicted with our pinned base. The bundled `guacclip` tool is included in the source but not built (`--disable-guacclip`, matching how we treat guacenc/guaclog); see [sol1/rustguac#181](https://github.com/sol1/rustguac/issues/181) for a possible future clipboard-audit feature.
|
||||
|
||||
**Files patched:** new `src/protocols/spice/*` and `src/guacclip/*` trees, plus additive hooks in `configure.ac`, `Makefile.am`, `src/libguac/*` (protocol constants, user handlers, rect), and per-protocol `input.c`.
|
||||
|
||||
## Applying patches
|
||||
|
||||
Patches are applied automatically by all build scripts (`build-deb.sh`, `build-rpm.sh`, `install.sh`, `dev.sh`, `Dockerfile`). To apply manually:
|
||||
|
||||
Reference in New Issue
Block a user