diff --git a/build.sh b/build.sh index 0e61f94..697c30c 100755 --- a/build.sh +++ b/build.sh @@ -357,23 +357,39 @@ fi [ "${BUILD_PACKAGE}" = "client" ] && exit 0 -PVE_XTERMJS_VER="4.16.0-3" -PVE_XTERMJS_GIT="99c9d214258a496227e15f0803fb163925be65c8" -PROXMOX_XTERMJS_GIT="2a070da0651677411a245f1714895235b1caf584" -if [ ! -e "${PACKAGES}/pve-xtermjs_${PVE_XTERMJS_VER}_${PACKAGE_ARCH}.deb" ]; then - git_clone_or_fetch https://git.proxmox.com/git/proxmox.git - git_clean_and_checkout ${PROXMOX_XTERMJS_GIT} proxmox +if [ "${PBSVERSION}" = "pbs2" ]; then + PVE_XTERMJS_VER="4.16.0-3" + PVE_XTERMJS_GIT="99c9d214258a496227e15f0803fb163925be65c8" + PROXMOX_XTERMJS_GIT="2a070da0651677411a245f1714895235b1caf584" +else + PVE_XTERMJS_VER="5.3.0-1" + PVE_XTERMJS_GIT="f451fe27686b21ef43d7521cb8136e683612422e" + PROXMOX_XTERMJS_GIT="04e2d0e5c329b59c4ece59d77079443e39029883" + PROXMOX_TERMPROXY_VER="1.0.0" +fi +if [ ! -e "${PACKAGES}/pve-xtermjs_${PVE_XTERMJS_VER}_"*".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}/${PBSVERSION}/pve-xtermjs-arm.patch" [[ "${BUILD_PROFILES}" =~ cross ]] && \ - patch -p1 -d pve-xtermjs/ < "${PATCHES}/pve-xtermjs-cross.patch" + patch -p1 -d pve-xtermjs/ < "${PATCHES}/${PBSVERSION}/pve-xtermjs-cross.patch" cd pve-xtermjs/ + git_clone_or_fetch https://git.proxmox.com/git/proxmox.git + git_clean_and_checkout ${PROXMOX_XTERMJS_GIT} proxmox + [ "${PBSVERSION}" = "pbs3" ] && cd termproxy set_package_info ${SUDO} apt -y -a${PACKAGE_ARCH} build-dep . BUILD_MODE=release make deb cd .. - cp -a pve-xtermjs_${PVE_XTERMJS_VER}_${PACKAGE_ARCH}.deb "${PACKAGES}" + if [ "${PBSVERSION}" = "pbs3" ]; then + cd xterm.js + make deb + cp -a pve-xtermjs_${PVE_XTERMJS_VER}_all.deb "${PACKAGES}" + cd .. + cp -a proxmox-termproxy_${PROXMOX_TERMPROXY_VER}_${PACKAGE_ARCH}.deb "${PACKAGES}" + else + cp -a pve-xtermjs_${PVE_XTERMJS_VER}_${PACKAGE_ARCH}.deb "${PACKAGES}" + fi else echo "pve-xtermjs up-to-date" fi diff --git a/patches/pve-xtermjs-arm.patch b/patches/pbs2/pve-xtermjs-arm.patch similarity index 95% rename from patches/pve-xtermjs-arm.patch rename to patches/pbs2/pve-xtermjs-arm.patch index 5f975b8..5b02399 100644 --- a/patches/pve-xtermjs-arm.patch +++ b/patches/pbs2/pve-xtermjs-arm.patch @@ -22,9 +22,9 @@ index b9479be..0d417f4 100644 + + +[patch.crates-io] -+proxmox-io = { path = "../proxmox/proxmox-io" } -+proxmox-lang = { path = "../proxmox/proxmox-lang" } -+proxmox-sys = { path = "../proxmox/proxmox-sys" } ++proxmox-io = { path = "./proxmox/proxmox-io" } ++proxmox-lang = { path = "./proxmox/proxmox-lang" } ++proxmox-sys = { path = "./proxmox/proxmox-sys" } diff --git a/Makefile b/Makefile index 01488d1..cb0ceb7 100644 --- a/Makefile diff --git a/patches/pve-xtermjs-cross.patch b/patches/pbs2/pve-xtermjs-cross.patch similarity index 100% rename from patches/pve-xtermjs-cross.patch rename to patches/pbs2/pve-xtermjs-cross.patch diff --git a/patches/pbs3/pve-xtermjs-arm.patch b/patches/pbs3/pve-xtermjs-arm.patch new file mode 100644 index 0000000..330be6b --- /dev/null +++ b/patches/pbs3/pve-xtermjs-arm.patch @@ -0,0 +1,127 @@ +diff --git a/.cargo/config b/.cargo/config +index 3b5b6e4..4df5be2 100644 +--- a/.cargo/config ++++ b/.cargo/config +@@ -1,5 +1,5 @@ + [source] +-[source.debian-packages] +-directory = "/usr/share/cargo/registry" ++[source.vendor] ++directory = "termproxy/vendor" + [source.crates-io] +-replace-with = "debian-packages" ++replace-with = "vendor" +diff --git a/termproxy/Cargo.toml b/termproxy/Cargo.toml +index dba3fbd..a67aacd 100644 +--- a/termproxy/Cargo.toml ++++ b/termproxy/Cargo.toml +@@ -22,3 +22,9 @@ clap = "4" + proxmox-io = "1" + proxmox-lang = "1.1" + proxmox-sys = "0.5" ++ ++ ++[patch.crates-io] ++proxmox-io = { path = "../proxmox/proxmox-io" } ++proxmox-lang = { path = "../proxmox/proxmox-lang" } ++proxmox-sys = { path = "../proxmox/proxmox-sys" } +diff --git a/termproxy/Makefile b/termproxy/Makefile +index d7655b9..b351396 100644 +--- a/termproxy/Makefile ++++ b/termproxy/Makefile +@@ -35,6 +35,13 @@ $(TERMPROXY_BIN): .do-cargo-build + $(CARGO) build $(CARGO_BUILD_ARGS) + touch .do-cargo-build + ++.PHONY: cargo-vendor ++cargo-vendor: ++ cargo vendor ++ rm -f vendor/endian_trait/rust-toolchain ++ rm -f vendor/endian_trait_derive/rust-toolchain ++ sed -i "s#\"rust-toolchain[^,]\+,##" vendor/endian_trait/.cargo-checksum.json ++ sed -i "s#\"rust-toolchain[^,]\+,##" vendor/endian_trait_derive/.cargo-checksum.json + + .PHONY: cargo-build + cargo-build: .do-cargo-build +@@ -54,9 +61,10 @@ $(ORIG_SRC_TAR): $(BUILDDIR) + .PHONY: deb + deb: $(DEB) + $(DBG_DEB): $(DEB) +-$(DEB): $(BUILDDIR) +- cd $(BUILDDIR); dpkg-buildpackage -b -uc -us +- lintian $(DEB) ++$(DEB): cargo-vendor ++ echo "git clone git://git.proxmox.com/git/pve-xtermjs.git\\ngit checkout ${GITVERSION}" > debian/SOURCE ++ DEB_CARGO_PACKAGE=$(PACKAGE) dpkg-buildpackage -b -uc -us --no-pre-clean ++ lintian ../$(DEB) + @echo $(DEB) + + .PHONY: dsc +diff --git a/termproxy/debian/control b/termproxy/debian/control +index 383bdbe..583a584 100644 +--- a/termproxy/debian/control ++++ b/termproxy/debian/control +@@ -1,20 +1,8 @@ + Source: proxmox-termproxy + Section: admin + Priority: optional +-Build-Depends: cargo:native, +- debhelper-compat (= 13), +- dh-cargo (>= 25), +- librust-anyhow-1+default-dev, +- librust-clap-4+default-dev, +- librust-mio-0.8+default-dev, +- librust-mio-0.8+net-dev, +- librust-mio-0.8+os-ext-dev, +- librust-proxmox-io-1+default-dev, +- librust-proxmox-lang-1+default-dev (>= 1.1-~~), +- librust-proxmox-sys-0.5+default-dev, +- librust-ureq-2+gzip-dev (>= 2.4-~~), ++Build-Depends: debhelper-compat (= 13), + libstd-rust-dev, +- rustc:native, + Maintainer: Proxmox Support Team + Standards-Version: 4.6.1 + Vcs-Git: git://git.proxmox.com/git/pve-xtermjs.git +@@ -26,7 +14,7 @@ Package: proxmox-termproxy + Architecture: any + Multi-Arch: allowed + Depends: ${misc:Depends}, ${shlibs:Depends}, +-Recommends: pve-xtermjs ++Recommends: pve-xtermjs:all + Breaks: pve-xtermjs (<< 5.3.0~) + Replaces: pve-xtermjs (<< 5.3.0~) + Description: Wrapper proxy for executing programs in the system terminal +diff --git a/termproxy/debian/rules b/termproxy/debian/rules +index add090b..7d25614 100755 +--- a/termproxy/debian/rules ++++ b/termproxy/debian/rules +@@ -4,7 +4,6 @@ + DH_VERBOSE = 1 + + include /usr/share/dpkg/pkg-info.mk +-include /usr/share/rustc/architecture.mk + + export BUILD_MODE=release + +@@ -23,7 +22,6 @@ export DEB_CARGO_PACKAGE=proxmox-termproxy + override_dh_auto_configure: + @perl -ne 'if (/^version\s*=\s*"(\d+(?:\.\d+)+)"/) { my $$v_cargo = $$1; my $$v_deb = "$(DEB_VERSION_UPSTREAM)"; \ + die "ERROR: d/changelog <-> Cargo.toml version mismatch: $$v_cargo != $$v_deb\n" if $$v_cargo ne $$v_deb; exit(0); }' Cargo.toml +- $(CARGO) prepare-debian $(CURDIR)/debian/cargo_registry --link-from-system + dh_auto_configure + + override_dh_missing: +diff --git a/xterm.js/debian/control b/xterm.js/debian/control +index 71cf01f..2b5c2f5 100644 +--- a/xterm.js/debian/control ++++ b/xterm.js/debian/control +@@ -11,7 +11,7 @@ Rules-Requires-Root: no + + Package: pve-xtermjs + Architecture: all +-Depends: ${misc:Depends}, proxmox-termproxy ++Depends: ${misc:Depends}, proxmox-termproxy:any + Description: HTML/TypeScript based fully-featured terminal for Proxmox projects + Provides the xterm.js frontend for the terminal feature in Proxmox projects' + web UI's, like for host administration or Proxmox VE containers shells. diff --git a/patches/pbs3/pve-xtermjs-cross.patch b/patches/pbs3/pve-xtermjs-cross.patch new file mode 100644 index 0000000..7622c3f --- /dev/null +++ b/patches/pbs3/pve-xtermjs-cross.patch @@ -0,0 +1,16 @@ +diff --git a/termproxy/Makefile b/termproxy/Makefile +index d7655b9..dd84a23 100644 +--- a/termproxy/Makefile ++++ b/termproxy/Makefile +@@ -13,9 +13,9 @@ DSC=$(PACKAGE)_$(DEB_VERSION).dsc + CARGO ?= cargo + ifeq ($(BUILD_MODE), release) + CARGO_BUILD_ARGS += --release +-COMPILEDIR := target/release ++COMPILEDIR := target/aarch64-unknown-linux-gnu/release + else +-COMPILEDIR := target/debug ++COMPILEDIR := target/aarch64-unknown-linux-gnu/debug + endif + + PREFIX = /usr diff --git a/patches/pve-xtermjs-fix_already_registered.patch b/patches/pve-xtermjs-fix_already_registered.patch deleted file mode 100644 index 2875d78..0000000 --- a/patches/pve-xtermjs-fix_already_registered.patch +++ /dev/null @@ -1,20 +0,0 @@ -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)); - } -