diff --git a/build.sh b/build.sh index 3226567..51bedc7 100755 --- a/build.sh +++ b/build.sh @@ -191,7 +191,7 @@ else echo "proxmox-backup up-to-date" fi -PVE_XTERMJS_VER="4.16.0-1" +PVE_XTERMJS_VER="4.16.0-2" PVE_XTERMJS_GIT="8dcff86a32c3ba8754b84e8aabb01369ef3de407" PROXMOX_XTERMJS_GIT="41862eeb95b70201c47dfd27fca37879e23be3ff" if [ ! -e "${PACKAGES}/pve-xtermjs_${PVE_XTERMJS_VER}_arm64.deb" ]; then @@ -200,9 +200,10 @@ if [ ! -e "${PACKAGES}/pve-xtermjs_${PVE_XTERMJS_VER}_arm64.deb" ]; then git_clone_or_fetch https://git.proxmox.com/git/pve-xtermjs.git git_clean_and_checkout ${PVE_XTERMJS_GIT} pve-xtermjs patch -p1 -d pve-xtermjs/ < "${PATCHES}/pve-xtermjs-arm.patch" + patch -p1 -d pve-xtermjs/ < "${PATCHES}/pve-xtermjs-fix_already_registered.patch" cd pve-xtermjs/ ${SUDO} apt -y build-dep . - make deb + BUILD_MODE=release make deb cd .. cp -a pve-xtermjs_${PVE_XTERMJS_VER}_arm64.deb "${PACKAGES}" else diff --git a/patches/pve-xtermjs-arm.patch b/patches/pve-xtermjs-arm.patch index 67b6e7a..4773f2a 100644 --- a/patches/pve-xtermjs-arm.patch +++ b/patches/pve-xtermjs-arm.patch @@ -25,7 +25,7 @@ index 60c3ae0..8464181 100644 +proxmox-io = { path = "../proxmox/proxmox-io" } +proxmox-sys = { path = "../proxmox/proxmox-sys" } diff --git a/Makefile b/Makefile -index cd583fb..42d62fe 100644 +index cd583fb..6c15792 100644 --- a/Makefile +++ b/Makefile @@ -35,6 +35,14 @@ $(SUBDIRS): @@ -60,6 +60,20 @@ index cd583fb..42d62fe 100644 diff --git a/debian/cargo-checksum.json b/debian/cargo-checksum.json new file mode 100644 index 0000000..e69de29 +diff --git a/debian/changelog b/debian/changelog +index 19bc1d1..1bd362a 100644 +--- a/debian/changelog ++++ b/debian/changelog +@@ -1,3 +1,9 @@ ++rust-termproxy (4.16.0-2) bullseye; urgency=medium ++ ++ * fix Connection closed (Code: 1000) error - WARN: I/O source already registered with a `Registry` ++ ++ -- Wolfgang Tue, 14 Mar 2023 21:01:43 +0100 ++ + rust-termproxy (4.16.0-1) bullseye; urgency=medium + + * upgrade xterm.js from 4.12.0 to 4.16.0 diff --git a/debian/compat b/debian/compat new file mode 100644 index 0000000..f599e28 @@ -103,6 +117,14 @@ index 0000000..d59a66c +Description: HTML/JS Shell client for Proxmox projects + This package provides an xterm.js client/proxy for Proxmoxprojects' Hosts, + Proxmox VE containers or Proxmox VE VM's serial-terminals. +diff --git a/debian/install b/debian/install +index 04be689..0e69d82 100644 +--- a/debian/install ++++ b/debian/install +@@ -1 +1,2 @@ +-src/www/* /usr/share/pve-xtermjs/ ++src/www/* /usr/share/pve-xtermjs/ ++target/release/termproxy /usr/bin/ diff --git a/debian/rules b/debian/rules index 2b62edd..436684e 100755 --- a/debian/rules diff --git a/patches/pve-xtermjs-fix_already_registered.patch b/patches/pve-xtermjs-fix_already_registered.patch new file mode 100644 index 0000000..2875d78 --- /dev/null +++ b/patches/pve-xtermjs-fix_already_registered.patch @@ -0,0 +1,20 @@ +diff --git a/src/main.rs b/src/main.rs +index 7896a9c..f5dd39f 100644 +--- a/src/main.rs ++++ b/src/main.rs +@@ -129,6 +129,7 @@ fn read_ticket_line( + io_bail!("timed out"); + } + } ++ poll.registry().deregister(stream)?; + + let newline_idx = &buf[..].iter().position(|&x| x == b'\n').unwrap(); + +@@ -217,6 +218,7 @@ fn listen_and_accept( + if !events.is_empty() { + let (stream, client) = listener.accept()?; + println!("client connection: {:?}", client); ++ poll.registry().deregister(&mut listener)?; + return Ok((stream, port)); + } +