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 8D4BD1FF17C for ; Wed, 3 Sep 2025 10:58:58 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 8C64B2E7A0; Wed, 3 Sep 2025 10:59:13 +0200 (CEST) Date: Wed, 03 Sep 2025 10:58:37 +0200 From: Fabian =?iso-8859-1?q?Gr=FCnbichler?= To: Proxmox Backup Server development discussion References: <20250811090628.184607-1-ayufan@ayufan.eu> In-Reply-To: <20250811090628.184607-1-ayufan@ayufan.eu> MIME-Version: 1.0 User-Agent: astroid/0.17.0 (https://github.com/astroidmail/astroid) Message-Id: <1756888500.fn9sqjfb0t.astroid@yuna.none> X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1756889905136 X-SPAM-LEVEL: Spam detection results: 0 AWL -0.001 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 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 RCVD_IN_MSPIKE_H2 0.001 Average reputation (+2) SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record URIBL_SBL_A 0.1 Contains URL's A record listed in the Spamhaus SBL blocklist [199.167.66.1, 199.167.66.2] Subject: Re: [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" hi! thanks for this patch, some comments below to make this simpler/easier to maintain going forward.. On August 11, 2025 11:06 am, Kamil Trzcinski wrote: > - 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 this can instead use a * wildcard, since the package build should never install for more than one architecture anyway.. > 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 this is already available in $DPKG_MAINTSCRIPT_ARCH > + 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 same as above > 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) and then this could be skipped > > 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"; we could move the base dir to buildcfg above, then we only need a single #cfg-ed definition instead of repeating it for all paths.. > + > 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 > > > _______________________________________________ pbs-devel mailing list pbs-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel