all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [pbs-devel] [PATCH proxmox-backup] buildsys: make the build multi-arch
@ 2025-08-11  9:06 Kamil Trzcinski
  2025-09-03  8:58 ` Fabian Grünbichler
  0 siblings, 1 reply; 2+ messages in thread
From: Kamil Trzcinski @ 2025-08-11  9:06 UTC (permalink / raw)
  To: pbs-devel; +Cc: Kamil Trzcinski

- 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 <ayufan@ayufan.eu>
---
 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<String, Error> {
-    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


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2025-09-03  8:58 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-08-11  9:06 [pbs-devel] [PATCH proxmox-backup] buildsys: make the build multi-arch Kamil Trzcinski
2025-09-03  8:58 ` Fabian Grünbichler

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal