From fd0c4fa115da88c56d0706e7ffb0e82e1647adb8 Mon Sep 17 00:00:00 2001 From: Wolfgang Date: Wed, 24 Nov 2021 22:16:14 +0100 Subject: [PATCH] Buildscript for proxmox backup server 2.1.2 --- README.md | 18 ++ build.sh | 204 ++++++++++++++++++++++ patches/proxmox-backup-arm.patch | 212 +++++++++++++++++++++++ patches/proxmox-backup-compile.patch | 53 ++++++ patches/proxmox-mini-journalreader.patch | 18 ++ patches/pve-xtermjs-arm.patch | 94 ++++++++++ 6 files changed, 599 insertions(+) create mode 100755 build.sh create mode 100644 patches/proxmox-backup-arm.patch create mode 100644 patches/proxmox-backup-compile.patch create mode 100644 patches/proxmox-mini-journalreader.patch create mode 100644 patches/pve-xtermjs-arm.patch diff --git a/README.md b/README.md index 7b9672b..e0e72f1 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,20 @@ # proxmox-backup-arm64 Script for building Proxmox Backup Server for Armbian64 + +## Install build essentials and dependencies +``` + apt-get -y install \ + build-essential curl sudo git lintian \ + pkg-config libudev-dev libssl-dev libapt-pkg-dev libclang-dev \ + libnetaddr-ip-perl +``` +## Install ``rustup`` +``` +curl -sSf https://sh.rustup.rs -sSf | sh -s +source .cargo/env +``` + +## Start build script +``` +./build.sh +``` diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..2b07a46 --- /dev/null +++ b/build.sh @@ -0,0 +1,204 @@ +#!/bin/bash +# +# build script for proxmox backup server on arm64 +# https://github.com/wofferl/proxmox-backup-arm64 + +SUDO="sudo" + +[ ! -d packages ] && mkdir packages + +PVE_ESLINT_VERSION="7.28.0-1" +PVE_ESLINT_GIT="ef0a5638b025ec9b9e3aa4df61a5b3b6bd471439" + +if ! dpkg-query -W -f='${Version}' pve-eslint | grep -q ${PVE_ESLINT_VERSION}; then + if [ ! -d pve-eslint ]; then + git clone https://git.proxmox.com/git/pve-eslint.git + else + git -C pve-eslint fetch + fi + cd pve-eslint + git checkout ${PVE_ESLINT_GIT} + ${SUDO} apt -y build-dep . + make deb || exit 0 + ${SUDO} apt -y install ./pve-eslint_${PVE_ESLINT_VERSION}_all.deb + cd .. +else + echo "pve-eslint up-to-date" +fi + +PVE_COMMON_VERSION="7.0-14" +PVE_COMMON_GIT="3efa9ecd60825f2c95f3136bdaa3a258b13cdd38" + +if ! dpkg-query -W -f='${Version}' libpve-common-perl | grep -q ${PVE_COMMON_VERSION}; then + if [ ! -d pve-common ]; then + git clone https://git.proxmox.com/git/pve-common.git + else + git -C pve-common fetch + fi + cd pve-common/ + git checkout ${PVE_COMMON_GIT} + ${SUDO} apt -y build-dep . + make deb || exit 0 + ${SUDO} dpkg -i --force-depends ./libpve-common-perl_${PVE_COMMON_VERSION}_all.deb || exit 0 + cd .. +else + echo "libpve-common-perl up-to-date" +fi + +PROXMOX_ACME_VERSION="1.4.0" +PROXMOX_ACME_GIT="300242d78bd63e91d0bc452e6284dafbec1043b1" + +if ! dpkg-query -W -f='${Version}' libproxmox-acme-perl | grep -q ${PROXMOX_ACME_VERSION}; then + if [ ! -d proxmox-acme ]; then + git clone https://git.proxmox.com/git/proxmox-acme.git + else + git -C proxmox-acme fetch + fi + cd proxmox-acme/ + git checkout ${PROXMOX_ACME_GIT} + make deb || exit 0 + ${SUDO} apt -y --fix-broken install ./libproxmox-acme-perl_${PROXMOX_ACME_VERSION}_all.deb ./libproxmox-acme-plugins_${PROXMOX_ACME_VERSION}_all.deb + cd .. +else + echo "libproxmox-acme-perl up-to-date" +fi + +PROXMOX_WIDGETTOOLKIT_VERSION="3.4-1" +PROXMOX_WIDGETTOOLKIT_GIT="ceff5d3fc037d18c01a3c36acabc8c5713279f3d" + +if ! dpkg-query -W -f='${Version}' proxmox-widget-toolkit-dev | grep -q ${PROXMOX_WIDGETTOOLKIT_VERSION}; then + if [ ! -d proxmox-widget-toolkit ]; then + git clone https://git.proxmox.com/git/proxmox-widget-toolkit.git + else + git -C proxmox-widget-toolkit fetch + fi + cd proxmox-widget-toolkit/ + git checkout ${PROXMOX_WIDGETTOOLKIT_GIT} + ${SUDO} apt -y build-dep . + make deb || exit 0 + ${SUDO} apt -y install ./proxmox-widget-toolkit-dev_${PROXMOX_WIDGETTOOLKIT_VERSION}_all.deb + cd .. +else + echo "proxmox-widget-toolkit up-to-date" +fi + +PROXMOX_BACKUP_TAG="2.1.2" +PROXMOX_BACKUP_VERSION="2.1.2-1" +PROXMOX_GIT="c0312f3717bd00ace434929e7d3305b058f4aae9" +PROMXOX_FUSE_GIT="0e0966af8886c176d8decfe18cb7ead4db5a83a6" +PXAR_GIT="b203d38bcd399f852f898d24403f3d592e5f75f8" +PATHPATTERNS_GIT="916e41c50e75a718ab7b1b95dc770eed9cd7a403" +PROXMOX_ACME_RS_GIT="fb547f59352155bdc7a9738237e4df8fa0cda10d" +PROXMOX_APT_GIT="c7b17de1b5fec5807921efc9565917c3d6b09417" +PROXMOX_OPENID_GIT="d6e7e2599f5190d38dfab58426ebd0ce6a55dd1e" + +if [ ! -e packages/proxmox-backup-server_${PROXMOX_BACKUP_VERSION}_arm64.deb ]; then + [ ! -d proxmox ] && git clone https://git.proxmox.com/git/proxmox.git || git -C proxmox fetch + git -C proxmox checkout ${PROXMOX_GIT} + [ ! -d proxmox-fuse ] && git clone https://git.proxmox.com/git/proxmox-fuse.git || git -C proxmox-fuse fetch + git -C proxmox-fuse checkout ${PROMXOX_FUSE_GIT} + [ ! -d pxar ] && git clone https://git.proxmox.com/git/pxar.git || git -C pxar fetch + git -C pxar checkout ${PXAR_GIT} + [ ! -d pathpatterns ] && git clone https://git.proxmox.com/git/pathpatterns.git || git -C pathpatterns fetch + git -C pathpatterns checkout ${PATHPATTERNS_GIT} + [ ! -d proxmox-acme-rs ] && git clone https://git.proxmox.com/git/proxmox-acme-rs.git || git -C proxmox-acme-rs fetch + git -C proxmox-acme-rs checkout ${PROXMOX_ACME_RS_GIT} + [ ! -d proxmox-apt ] && git clone https://git.proxmox.com/git/proxmox-apt.git || git -C proxmox-apt fetch + git -C proxmox-apt checkout ${PROXMOX_APT_GIT} + [ ! -d proxmox-openid-rs ] && git clone https://git.proxmox.com/git/proxmox-openid-rs.git || git -C proxmox-openid-rs fetch + git -C proxmox-openid-rs checkout ${PROXMOX_OPENID_GIT} + + [ ! -d proxmox-backup ] && git clone https://git.proxmox.com/git/proxmox-backup.git || git -C proxmox-backup fetch + git -C proxmox-backup clean -f + git -C proxmox-backup checkout . + git -C proxmox-backup checkout ${PROXMOX_BACKUP_TAG} + patch -p1 -d proxmox-backup/ < patches/proxmox-backup-arm.patch + patch -p1 -d proxmox-backup/ < patches/proxmox-backup-compile.patch + cd proxmox-backup + cargo vendor || exit 0 + ${SUDO} apt -y build-dep . + dpkg-buildpackage -b -us -uc --no-pre-clean || exit 0 + cd .. + cp -a proxmox-backup-client_${PROXMOX_BACKUP_VERSION}_arm64.deb \ + proxmox-backup-docs_${PROXMOX_BACKUP_VERSION}_all.deb \ + proxmox-backup-file-restore_${PROXMOX_BACKUP_VERSION}_arm64.deb \ + proxmox-backup-server_${PROXMOX_BACKUP_VERSION}_arm64.deb \ + packages/ +else + echo "proxmox-backup up-to-date" +fi + +PROXMOX_XTERMJS_GIT="d3636d45d973e79a05a89c7e7e3d0fec73f6e067" +PVE_XTERMJS_VER="4.12.0-1" +PVE_XTERMJS_GIT="3b087ebf80621a39e2977cad327056ff4b425efe" +if [ ! -e packages/pve-xtermjs_${PVE_XTERMJS_VER}_arm64.deb ]; then + [ ! -d proxmox ] && git clone https://git.proxmox.com/git/proxmox.git || git -C proxmox fetch + git -C proxmox checkout ${PROXMOX_XTERMJS_GIT} + [ ! -d pve-xtermjs ] && git clone https://git.proxmox.com/git/pve-xtermjs.git || git -C pve-xtermjs fetch + git -C pve-xtermjs clean -f + git -C pve-xtermjs checkout . + git -C pve-xtermjs checkout ${PVE_XTERMJS_GIT} + patch -p1 -d pve-xtermjs/ < patches/pve-xtermjs-arm.patch + cd pve-xtermjs + make deb || exit 0 + cd .. + cp -a pve-xtermjs_${PVE_XTERMJS_VER}_arm64.deb packages/ +else + echo "pve-xtermjs up-to-date" +fi + +PROXMOX_JOURNALREADER_VER="1.2-1" +PROXMOX_JOURNALREADER_GIT="5ce05d16f63b5bddc0ffffa7070c490763eeda22" +if [ ! -e packages/proxmox-mini-journalreader_${PROXMOX_JOURNALREADER_VER}_arm64.deb ]; then + [ ! -d proxmox-mini-journalreader ] && git clone https://git.proxmox.com/git/proxmox-mini-journalreader.git || git -C proxmox-mini-journalreader fetch + git -C proxmox-mini-journalreader clean -f + git -C proxmox-mini-journalreader checkout . + git -C proxmox-mini-journalreader checkout ${PROXMOX_JOURNALREADER_GIT} + patch -p1 -d proxmox-mini-journalreader/ < patches/proxmox-mini-journalreader.patch + cd proxmox-mini-journalreader/ + make deb || exit 0 + cp -a proxmox-mini-journalreader_${PROXMOX_JOURNALREADER_VER}_arm64.deb ../packages + cd .. +else + echo "proxmox-mini-journalreader up-to-date" +fi + + +PBS_I18N_VER="2.6-2" +PBS_I18N_GIT="bc0fe9172658e0a203480834275472f120501148" +if [ ! -e packages/pbs-i18n_${PBS_I18N_VER}_all.deb ]; then + [ ! -d proxmox-i18n ] && git clone https://git.proxmox.com/git/proxmox-i18n.git || git -C proxmox-i18n fetch + git -C proxmox-i18n checkout ${PBS_I18N_GIT} + cd proxmox-i18n/ + make deb || exit 0 + cp -a pbs-i18n_${PBS_I18N_VER}_all.deb ../packages/ + cd .. +else + echo "pbs-i18n up-to-date" +fi + +EXTJS_VER="7.0.0-1" +EXTJS_GIT="58b59e2e04ae5cc29a12c10350db15cceb556277" +if [ ! -e packages/libjs-extjs_${EXTJS_VER}_all.deb ]; then + [ ! -d extjs ] && git clone https://git.proxmox.com/git/extjs.git || git -C extjs fetch + git -C extjs checkout ${EXTJS_GIT} + cd extjs/ + make deb || exit 0 + cp -a libjs-extjs_${EXTJS_VER}_all.deb ../packages/ + cd .. +else + echo "libjs-extjs up-to-date" +fi + +QRCODEJS_VER="1.20201119-pve1" +QRCODEJS_GIT="1cc4649f55853d7d890aa444a7a58a8466f10493" +if [ ! -e packages/libjs-qrcodejs_${QRCODEJS_VER}_all.deb ]; then + [ ! -d libjs-qrcodejs ] && git clone https://git.proxmox.com/git/libjs-qrcodejs.git || git -C libjs-qrcodejs fetch + git -C libjs-qrcodejs checkout ${QRCODEJS_GIT} + cd libjs-qrcodejs + make deb || exit 0 + cp -a libjs-qrcodejs_${QRCODEJS_VER}_all.deb ../packages/ + cd .. +else + echo "libjs-qrcodejs up-to-date" +fi diff --git a/patches/proxmox-backup-arm.patch b/patches/proxmox-backup-arm.patch new file mode 100644 index 0000000..5b945ec --- /dev/null +++ b/patches/proxmox-backup-arm.patch @@ -0,0 +1,212 @@ +diff --git a/.cargo/config b/.cargo/config +index 3b5b6e48..50908c05 100644 +--- a/.cargo/config ++++ b/.cargo/config +@@ -1,5 +1,17 @@ +-[source] +-[source.debian-packages] +-directory = "/usr/share/cargo/registry" + [source.crates-io] +-replace-with = "debian-packages" ++replace-with = "vendored-sources" ++ ++[source."git://git.proxmox.com/git/pathpatterns.git"] ++git = "git://git.proxmox.com/git/pathpatterns.git" ++replace-with = "vendored-sources" ++ ++[source."git://git.proxmox.com/git/proxmox-fuse.git"] ++git = "git://git.proxmox.com/git/proxmox-fuse.git" ++replace-with = "vendored-sources" ++ ++[source."git://git.proxmox.com/git/pxar.git"] ++git = "git://git.proxmox.com/git/pxar.git" ++replace-with = "vendored-sources" ++ ++[source.vendored-sources] ++directory = "vendor" +diff --git a/Cargo.toml b/Cargo.toml +index eed8f8f9..0169a1ed 100644 +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -130,6 +130,26 @@ pbs-tape = { path = "pbs-tape" } + #proxmox-tfa = { path = "../proxmox/proxmox-tfa" } + #proxmox-schema = { path = "../proxmox/proxmox-schema" } + #pxar = { path = "../pxar" } ++proxmox = { path = "../proxmox/proxmox", features = [ "sortable-macro", "api-macro", "cli", "router", "tfa" ] } ++proxmox-http = { path = "../proxmox/proxmox-http", features = [ "client", "http-helpers", "websocket" ] } ++proxmox-fuse = { path = "../proxmox-fuse" } ++proxmox-io = { path = "../proxmox/proxmox-io" } ++proxmox-lang = { path = "../proxmox/proxmox-lang" } ++proxmox-router = { path = "../proxmox/proxmox-router", features = [ "cli" ] } ++proxmox-schema = { path = "../proxmox/proxmox-schema", features = [ "api-macro" ] } ++proxmox-section-config = { path = "../proxmox/proxmox-section-config" } ++proxmox-tfa = { path = "../proxmox/proxmox-tfa", features = [ "u2f" ] } ++proxmox-time = { path = "../proxmox/proxmox-time" } ++proxmox-uuid = { path = "../proxmox/proxmox-uuid" } ++proxmox-borrow = { path = "../proxmox/proxmox-borrow" } ++proxmox-async = { path = "../proxmox/proxmox-async" } ++proxmox-sys = { path = "../proxmox/proxmox-sys" } ++proxmox-shared-memory = { path = "../proxmox/proxmox-shared-memory" } ++proxmox-apt = { path = "../proxmox-apt" } ++proxmox-openid = { path = "../proxmox-openid-rs" } ++proxmox-acme-rs = { path = "../proxmox-acme-rs" } ++pxar = { path = "../pxar", features = [ "tokio-io" ] } ++pathpatterns = { path = "../pathpatterns" } + + [features] + default = [] +diff --git a/debian/control b/debian/control +index 170009ab..f3298cbe 100644 +--- a/debian/control ++++ b/debian/control +@@ -6,106 +6,6 @@ Build-Depends: debhelper (>= 12), + cargo:native, + rustc:native, + libstd-rust-dev, +- librust-anyhow-1+default-dev, +- librust-apt-pkg-native-0.3+default-dev (>= 0.3.2-~~), +- librust-base64-0.13+default-dev, +- librust-bitflags-1+default-dev (>= 1.2.1-~~), +- librust-bytes-1+default-dev, +- librust-cidr-0.2+default-dev (>= 0.2.1-~~), +- librust-crc32fast-1+default-dev, +- librust-crossbeam-channel-0.5+default-dev, +- librust-endian-trait-0.6+arrays-dev, +- librust-endian-trait-0.6+default-dev, +- librust-env-logger-0.7+default-dev, +- librust-flate2-1+default-dev, +- librust-foreign-types-0.3+default-dev, +- librust-futures-0.3+default-dev, +- librust-h2-0.3+default-dev, +- librust-h2-0.3+stream-dev, +- librust-handlebars-3+default-dev, +- librust-hex-0.4+default-dev (>= 0.4.3-~~), +- librust-http-0.2+default-dev, +- librust-hyper-0.14+default-dev (>= 0.14.5-~~), +- librust-hyper-0.14+full-dev (>= 0.14.5-~~), +- librust-lazy-static-1+default-dev (>= 1.4-~~), +- librust-libc-0.2+default-dev, +- librust-log-0.4+default-dev, +- librust-nix-0.19+default-dev (>= 0.19.1-~~), +- librust-nom-5+default-dev (>= 5.1-~~), +- librust-num-traits-0.2+default-dev, +- librust-once-cell-1+default-dev (>= 1.3.1-~~), +- librust-openssl-0.10+default-dev, +- librust-pam-0.7+default-dev, +- librust-pam-sys-0.5+default-dev, +- librust-pathpatterns-0.1+default-dev (>= 0.1.2-~~), +- librust-percent-encoding-2+default-dev (>= 2.1-~~), +- librust-pin-project-lite-0.2+default-dev, +- librust-proxmox-0.15+default-dev (>= 0.15.3-~~), +- librust-proxmox-0.15+sortable-macro-dev (>= 0.15.3-~~), +- librust-proxmox-0.15+tokio-dev (>= 0.15.3-~~), +- librust-proxmox-acme-rs-0.3+default-dev, +- librust-proxmox-apt-0.8+default-dev, +- librust-proxmox-async-0.2+default-dev, +- librust-proxmox-borrow-1+default-dev, +- librust-proxmox-fuse-0.1+default-dev (>= 0.1.1-~~), +- librust-proxmox-http-0.5+client-dev (>= 0.5.4-~~), +- librust-proxmox-http-0.5+default-dev (>= 0.5.4-~~), +- librust-proxmox-http-0.5+http-helpers-dev (>= 0.5.4-~~), +- librust-proxmox-http-0.5+websocket-dev (>= 0.5.4-~~), +- librust-proxmox-io-1+default-dev, +- librust-proxmox-io-1+tokio-dev, +- librust-proxmox-lang-1+default-dev, +- librust-proxmox-openid-0.9+default-dev, +- librust-proxmox-router-1+cli-dev (>= 1.1-~~), +- librust-proxmox-router-1+default-dev (>= 1.1-~~), +- librust-proxmox-schema-1+api-macro-dev (>= 1.0.1-~~), +- librust-proxmox-schema-1+default-dev (>= 1.0.1-~~), +- librust-proxmox-schema-1+upid-api-impl-dev (>= 1.0.1-~~), +- librust-proxmox-section-config-1+default-dev, +- librust-proxmox-shared-memory-0.1+default-dev (>= 0.1.1-~~), +- librust-proxmox-sys-0.1+default-dev (>= 0.1.2-~~), +- librust-proxmox-tfa-1+api-dev (>= 1.3-~~), +- librust-proxmox-tfa-1+api-types-dev (>= 1.3-~~), +- librust-proxmox-tfa-1+default-dev (>= 1.3-~~), +- librust-proxmox-time-1+default-dev (>= 1.1-~~), +- librust-proxmox-uuid-1+default-dev, +- librust-proxmox-uuid-1+serde-dev, +- librust-pxar-0.10+default-dev (>= 0.10.1-~~), +- librust-pxar-0.10+tokio-io-dev (>= 0.10.1-~~), +- librust-regex-1+default-dev (>= 1.2-~~), +- librust-rustyline-7+default-dev, +- librust-serde-1+default-dev, +- librust-serde-1+derive-dev, +- librust-serde-cbor-0.11+default-dev (>= 0.11.1-~~), +- librust-serde-json-1+default-dev, +- librust-siphasher-0.3+default-dev, +- librust-syslog-4+default-dev, +- librust-thiserror-1+default-dev, +- librust-tokio-1+default-dev (>= 1.6-~~), +- librust-tokio-1+fs-dev (>= 1.6-~~), +- librust-tokio-1+io-std-dev (>= 1.6-~~), +- librust-tokio-1+io-util-dev (>= 1.6-~~), +- librust-tokio-1+macros-dev (>= 1.6-~~), +- librust-tokio-1+net-dev (>= 1.6-~~), +- librust-tokio-1+parking-lot-dev (>= 1.6-~~), +- librust-tokio-1+process-dev (>= 1.6-~~), +- librust-tokio-1+rt-dev (>= 1.6-~~), +- librust-tokio-1+rt-multi-thread-dev (>= 1.6-~~), +- librust-tokio-1+signal-dev (>= 1.6-~~), +- librust-tokio-1+sync-dev (>= 1.6-~~), +- librust-tokio-1+time-dev (>= 1.6-~~), +- librust-tokio-openssl-0.6+default-dev (>= 0.6.1-~~), +- librust-tokio-stream-0.1+default-dev, +- librust-tokio-util-0.6+codec-dev, +- librust-tokio-util-0.6+default-dev, +- librust-tokio-util-0.6+io-dev, +- librust-tower-service-0.3+default-dev, +- librust-udev-0.4+default-dev, +- librust-url-2+default-dev (>= 2.1-~~), +- librust-walkdir-2+default-dev, +- librust-xdg-2+default-dev (>= 2.2-~~), +- librust-zstd-0.6+bindgen-dev, +- librust-zstd-0.6+default-dev, + libacl1-dev, + libfuse3-dev, + libsystemd-dev (>= 246-~~), +diff --git a/debian/proxmox-backup-file-restore.install b/debian/proxmox-backup-file-restore.install +index d952836e..7e1bf2dd 100644 +--- a/debian/proxmox-backup-file-restore.install ++++ b/debian/proxmox-backup-file-restore.install +@@ -1,4 +1,4 @@ + usr/bin/proxmox-file-restore + usr/share/man/man1/proxmox-file-restore.1 + usr/share/zsh/vendor-completions/_proxmox-file-restore +-usr/lib/x86_64-linux-gnu/proxmox-backup/file-restore/proxmox-restore-daemon ++usr/lib/aarch64-linux-gnu/proxmox-backup/file-restore/proxmox-restore-daemon +diff --git a/debian/proxmox-backup-file-restore.postinst b/debian/proxmox-backup-file-restore.postinst +index feb0557b..9501d29b 100755 +--- a/debian/proxmox-backup-file-restore.postinst ++++ b/debian/proxmox-backup-file-restore.postinst +@@ -4,7 +4,7 @@ set -e + + update_initramfs() { + # regenerate initramfs for single file restore VM +- INST_PATH="/usr/lib/x86_64-linux-gnu/proxmox-backup/file-restore" ++ INST_PATH="/usr/lib/aarch64-linux-gnu/proxmox-backup/file-restore" + CACHE_PATH="/var/cache/proxmox-backup/file-restore-initramfs.img" + CACHE_PATH_DBG="/var/cache/proxmox-backup/file-restore-initramfs-debug.img" + +diff --git a/debian/proxmox-backup-server.install b/debian/proxmox-backup-server.install +index 6e2219b4..82954cdd 100644 +--- a/debian/proxmox-backup-server.install ++++ b/debian/proxmox-backup-server.install +@@ -4,11 +4,11 @@ etc/proxmox-backup-banner.service /lib/systemd/system/ + etc/proxmox-backup-daily-update.service /lib/systemd/system/ + etc/proxmox-backup-daily-update.timer /lib/systemd/system/ + etc/pbs-enterprise.list /etc/apt/sources.list.d/ +-usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-backup-api +-usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-backup-proxy +-usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-backup-banner +-usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-daily-update +-usr/lib/x86_64-linux-gnu/proxmox-backup/sg-tape-cmd ++usr/lib/aarch64-linux-gnu/proxmox-backup/proxmox-backup-api ++usr/lib/aarch64-linux-gnu/proxmox-backup/proxmox-backup-proxy ++usr/lib/aarch64-linux-gnu/proxmox-backup/proxmox-backup-banner ++usr/lib/aarch64-linux-gnu/proxmox-backup/proxmox-daily-update ++usr/lib/aarch64-linux-gnu/proxmox-backup/sg-tape-cmd + usr/sbin/proxmox-backup-debug + usr/sbin/proxmox-backup-manager + usr/bin/pmtx diff --git a/patches/proxmox-backup-compile.patch b/patches/proxmox-backup-compile.patch new file mode 100644 index 0000000..827e628 --- /dev/null +++ b/patches/proxmox-backup-compile.patch @@ -0,0 +1,53 @@ +diff --git a/src/api2/backup/environment.rs b/src/api2/backup/environment.rs +index 5906cb57..bdac20bd 100644 +--- a/src/api2/backup/environment.rs ++++ b/src/api2/backup/environment.rs +@@ -195,7 +195,7 @@ impl BackupEnvironment { + if size < data.chunk_size { + data.small_chunk_count += 1; + if data.small_chunk_count > 1 { +- bail!("fixed writer '{}' - detected multiple end chunks (chunk size too small)"); ++ bail!("fixed writer '{}' - detected multiple end chunks (chunk size too small)", data.name); + } + } + +diff --git a/src/tape/drive/mod.rs b/src/tape/drive/mod.rs +index 16845973..67b75557 100644 +--- a/src/tape/drive/mod.rs ++++ b/src/tape/drive/mod.rs +@@ -260,7 +260,7 @@ pub fn media_changer( + None => Ok(None), + } + } +- _ => bail!("unknown drive type '{}' - internal error"), ++ _ => bail!("unknown drive type '{}' - internal error", section_type_name), + } + } + None => { +@@ -308,7 +308,7 @@ pub fn open_drive( + let handle = open_lto_tape_drive(&tape)?; + Ok(Box::new(handle)) + } +- _ => bail!("unknown drive type '{}' - internal error"), ++ _ => bail!("unknown drive type '{}' - internal error", section_type_name), + } + } + None => { +@@ -498,7 +498,7 @@ pub fn request_and_load_media( + update_and_log_request_error(&mut last_error, request_error)?; + } + } +- _ => bail!("drive type '{}' not implemented!"), ++ _ => bail!("drive type '{}' not implemented!", section_type_name), + } + } + None => { +@@ -587,7 +587,7 @@ fn tape_device_path( + "lto" => { + LtoTapeDrive::deserialize(config)?.path + } +- _ => bail!("unknown drive type '{}' - internal error"), ++ _ => bail!("unknown drive type '{}' - internal error", section_type_name), + }; + Ok(path) + } diff --git a/patches/proxmox-mini-journalreader.patch b/patches/proxmox-mini-journalreader.patch new file mode 100644 index 0000000..68aaf28 --- /dev/null +++ b/patches/proxmox-mini-journalreader.patch @@ -0,0 +1,18 @@ +diff --git a/src/mini-journalreader.c b/src/mini-journalreader.c +index 92176ac..2e0cfa9 100644 +--- a/src/mini-journalreader.c ++++ b/src/mini-journalreader.c +@@ -214,10 +214,12 @@ int main(int argc, char *argv[]) { + uint64_t begin = 0; + uint64_t end = 0; + char c; ++ int opt = 0; + + progname = argv[0]; + +- while ((c = (char)getopt (argc, argv, "b:e:d:n:f:t:h")) != -1) { ++ while ((opt = getopt (argc, argv, "b:e:d:n:f:t:h")) != -1) { ++ c = (char) opt; + switch (c) { + case 'b': + begin = arg_to_uint64(optarg); diff --git a/patches/pve-xtermjs-arm.patch b/patches/pve-xtermjs-arm.patch new file mode 100644 index 0000000..5871f26 --- /dev/null +++ b/patches/pve-xtermjs-arm.patch @@ -0,0 +1,94 @@ +diff --git a/.cargo/config b/.cargo/config +index 3b5b6e4..b08ce29 100644 +--- a/.cargo/config ++++ b/.cargo/config +@@ -1,5 +1,5 @@ + [source] +-[source.debian-packages] +-directory = "/usr/share/cargo/registry" ++[source.vendor] ++directory = "vendor" + [source.crates-io] +-replace-with = "debian-packages" ++replace-with = "vendor" +diff --git a/Cargo.toml b/Cargo.toml +index ffd72b2..f808e7e 100644 +--- a/Cargo.toml ++++ b/Cargo.toml +@@ -1,5 +1,5 @@ + [package] +-name = "termproxy" ++name = "pve-xtermjs" + version = "4.12.0" + authors = [ + "Dominik Csapak ", +@@ -14,4 +14,5 @@ exclude = [ "build", "debian" ] + mio = { version = "0.7", features = [ "net", "os-ext" ] } + curl = "0.4" + clap = "2.33" +-proxmox = { version = "0.10.0", default-features = false } ++#proxmox = { version = "0.10.0", default-features = false } ++proxmox = { path = "../proxmox/proxmox", default-features = false } +diff --git a/Makefile b/Makefile +index 0cabc7d..18891c9 100644 +--- a/Makefile ++++ b/Makefile +@@ -35,6 +35,14 @@ $(SUBDIRS): + cargo-build: + cargo build $(CARGO_BUILD_ARGS) + ++.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: build + build: + rm -rf build +@@ -53,9 +61,10 @@ build: + + .PHONY: deb + deb: ${DEB} +-$(DEB): build +- cd build; dpkg-buildpackage -b -uc -us --no-pre-clean +- 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/debian/cargo-checksum.json b/debian/cargo-checksum.json +new file mode 100644 +index 0000000..e69de29 +diff --git a/debian/compat b/debian/compat +new file mode 100644 +index 0000000..f599e28 +--- /dev/null ++++ b/debian/compat +@@ -0,0 +1 @@ ++10 +diff --git a/debian/control b/debian/control +index d9612f8..29df636 100644 +--- a/debian/control ++++ b/debian/control +@@ -3,15 +3,6 @@ Section: admin + Priority: optional + Build-Depends: debhelper (>= 12), + dh-cargo (>= 24), +- cargo:native, +- rustc:native, +- libstd-rust-dev, +- librust-clap-2+default-dev (>= 2.33-~~), +- librust-curl-0.4+default-dev, +- librust-mio-0.7+default-dev, +- librust-mio-0.7+net-dev, +- librust-mio-0.7+os-ext-dev, +- librust-proxmox-0.10-dev + Maintainer: Proxmox Support Team + Standards-Version: 4.5.1 + Vcs-Git: git://git.proxmox.com/git/pve-xtermjs.git