From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id 6A5FA1FF170 for ; Thu, 21 Aug 2025 11:04:58 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 20EFA1A606; Thu, 21 Aug 2025 11:04:58 +0200 (CEST) From: Kamil Trzcinski To: pbs-devel@lists.proxmox.com Date: Mon, 11 Aug 2025 11:06:28 +0200 Message-ID: <20250811090628.184607-1-ayufan@ayufan.eu> X-Mailer: git-send-email 2.47.2 MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.057 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy FSL_HELO_NON_FQDN_1 0.001 - HELO_NO_DOMAIN 0.001 Relay reports its domain incorrectly KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment KAM_SHORT 0.001 Use of a URL Shortener for very short URL RDNS_DYNAMIC 0.982 Delivered to internal network by host with dynamic-looking rDNS SPF_SOFTFAIL 0.665 SPF: sender does not match SPF record (softfail) URIBL_SBL_A 0.1 Contains URL's A record listed in the Spamhaus SBL blocklist [199.167.66.2, 199.167.66.1] X-Mailman-Approved-At: Thu, 21 Aug 2025 11:04:56 +0200 Subject: [pbs-devel] [PATCH proxmox-backup] buildsys: make the build multi-arch X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Reply-To: Proxmox Backup Server development discussion Cc: Kamil Trzcinski Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" - fixes debian .install scripts to be `dh-exec` - fixes hardcoded .rs paths to be platform-dependent - fixes postinst to deduce architecture Signed-off-by: Kamil Trzcinski --- debian/proxmox-backup-file-restore.install | 3 ++- debian/proxmox-backup-file-restore.postinst | 10 +++++++++- debian/proxmox-backup-server.install | 11 ++++++----- debian/rules | 1 + pbs-buildcfg/src/lib.rs | 9 +++++++++ src/tape/drive/lto/mod.rs | 9 +++++++-- 6 files changed, 34 insertions(+), 9 deletions(-) mode change 100644 => 100755 debian/proxmox-backup-file-restore.install mode change 100644 => 100755 debian/proxmox-backup-server.install diff --git a/debian/proxmox-backup-file-restore.install b/debian/proxmox-backup-file-restore.install old mode 100644 new mode 100755 index 409988a3..8b4034bd --- a/debian/proxmox-backup-file-restore.install +++ b/debian/proxmox-backup-file-restore.install @@ -1,4 +1,5 @@ +#! /usr/bin/dh-exec usr/bin/proxmox-file-restore -usr/lib/x86_64-linux-gnu/proxmox-backup/file-restore/proxmox-restore-daemon +usr/lib/${DEB_HOST_MULTIARCH}/proxmox-backup/file-restore/proxmox-restore-daemon usr/share/man/man1/proxmox-file-restore.1 usr/share/zsh/vendor-completions/_proxmox-file-restore diff --git a/debian/proxmox-backup-file-restore.postinst b/debian/proxmox-backup-file-restore.postinst index c73893dd..86faf43a 100755 --- a/debian/proxmox-backup-file-restore.postinst +++ b/debian/proxmox-backup-file-restore.postinst @@ -3,8 +3,16 @@ set -e update_initramfs() { + case "$(dpkg --print-architecture)" in + amd64) INST_PATH="/usr/lib/x86_64-linux-gnu/proxmox-backup/file-restore" ;; + arm64) INST_PATH="/usr/lib/aarch64-linux-gnu/proxmox-backup/file-restore" ;; + *) + echo "proxmox-backup-file-restore: architecture not supported, skipping update." >&2 + exit 0 + ;; + esac + # regenerate initramfs for single file restore VM - INST_PATH="/usr/lib/x86_64-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 old mode 100644 new mode 100755 index d06f026c..f305af37 --- a/debian/proxmox-backup-server.install +++ b/debian/proxmox-backup-server.install @@ -1,3 +1,4 @@ +#! /usr/bin/dh-exec etc/pbs-enterprise.sources /etc/apt/sources.list.d/ etc/pbs-network-config-commit.service /usr/lib/systemd/system/ etc/proxmox-backup-banner.service /usr/lib/systemd/system/ @@ -9,11 +10,11 @@ etc/removable-device-attach@.service /usr/lib/systemd/system/ usr/bin/pmt usr/bin/pmtx usr/bin/proxmox-tape -usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-backup-api -usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-backup-banner -usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-backup-proxy -usr/lib/x86_64-linux-gnu/proxmox-backup/proxmox-daily-update -usr/lib/x86_64-linux-gnu/proxmox-backup/sg-tape-cmd +usr/lib/${DEB_HOST_MULTIARCH}/proxmox-backup/proxmox-backup-api +usr/lib/${DEB_HOST_MULTIARCH}/proxmox-backup/proxmox-backup-banner +usr/lib/${DEB_HOST_MULTIARCH}/proxmox-backup/proxmox-backup-proxy +usr/lib/${DEB_HOST_MULTIARCH}/proxmox-backup/proxmox-daily-update +usr/lib/${DEB_HOST_MULTIARCH}/proxmox-backup/sg-tape-cmd usr/sbin/pbs3to4 usr/sbin/proxmox-backup-debug usr/sbin/proxmox-backup-manager diff --git a/debian/rules b/debian/rules index ab48cce1..a5419da7 100755 --- a/debian/rules +++ b/debian/rules @@ -2,6 +2,7 @@ # See debhelper(7) (uncomment to enable) # output every command that modifies files on the build system. DH_VERBOSE = 1 +DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH) include /usr/share/dpkg/pkg-info.mk include /usr/share/rustc/architecture.mk diff --git a/pbs-buildcfg/src/lib.rs b/pbs-buildcfg/src/lib.rs index 3d087015..793d4cfd 100644 --- a/pbs-buildcfg/src/lib.rs +++ b/pbs-buildcfg/src/lib.rs @@ -52,12 +52,21 @@ macro_rules! PROXMOX_BACKUP_CACHE_DIR_M { } #[macro_export] +#[cfg(target_arch = "x86_64")] macro_rules! PROXMOX_BACKUP_FILE_RESTORE_BIN_DIR_M { () => { "/usr/lib/x86_64-linux-gnu/proxmox-backup/file-restore" }; } +#[macro_export] +#[cfg(target_arch = "aarch64")] +macro_rules! PROXMOX_BACKUP_FILE_RESTORE_BIN_DIR_M { + () => { + "/usr/lib/aarch64-linux-gnu/proxmox-backup/file-restore" + }; +} + /// namespaced directory for in-memory (tmpfs) run state pub const PROXMOX_BACKUP_RUN_DIR: &str = PROXMOX_BACKUP_RUN_DIR_M!(); diff --git a/src/tape/drive/lto/mod.rs b/src/tape/drive/lto/mod.rs index bd5ec8ae..0df15933 100644 --- a/src/tape/drive/lto/mod.rs +++ b/src/tape/drive/lto/mod.rs @@ -284,9 +284,14 @@ impl TapeDriver for LtoTapeHandle { } } +#[cfg(target_arch = "x86_64")] +const SG_TAPE_PATH: &str = "/usr/lib/x86_64-linux-gnu/proxmox-backup/sg-tape-cmd"; + +#[cfg(target_arch = "aarch64")] +const SG_TAPE_PATH: &str = "/usr/lib/aarch64-linux-gnu/proxmox-backup/sg-tape-cmd"; + fn run_sg_tape_cmd(subcmd: &str, args: &[&str], fd: RawFd) -> Result { - let mut command = - std::process::Command::new("/usr/lib/x86_64-linux-gnu/proxmox-backup/sg-tape-cmd"); + let mut command = std::process::Command::new(SG_TAPE_PATH); command.args([subcmd]); command.args(["--stdin"]); command.args(args); -- 2.47.2 _______________________________________________ pbs-devel mailing list pbs-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel