Compare commits

...

2 Commits

Author SHA1 Message Date
Lierfang Support Team
e2bab5b49d Add crossbuild 2025-07-31 12:37:32 +00:00
Lierfang Support Team
406987a79c fix some error 2025-07-31 09:25:46 +00:00
7 changed files with 87 additions and 22 deletions

View File

@ -1,8 +1,32 @@
[source]
[source.debian-packages]
directory = "/usr/share/cargo/registry"
[source.crates-io]
replace-with = "debian-packages"
replace-with = "dh-cargo-registry"
[source.dh-cargo-registry]
directory = "/root/proxmox-backup/debian/cargo_registry"
[build]
rustflags = ['-C', 'debuginfo=2', '-C', 'strip=none', '--cap-lints', 'warn', '--remap-path-prefix', '/root/proxmox-backup=/usr/share/cargo/registry/proxmox-backup-4.0.6', '--remap-path-prefix', '/root/proxmox-backup/debian/cargo_registry=/usr/share/cargo/registry']
[profile.release]
debug = true
[target.x86_64-unknown-linux-gnu]
linker = "x86_64-linux-gnu-gcc"
ar = "x86_64-linux-gnu-ar"
rustflags = [
"-L", "/usr/lib/x86_64-linux-gnu",
]
[target.riscv64gc-unknown-linux-gnu]
linker = "riscv64-linux-gnu-gcc"
ar = "riscv64-linux-gnu-ar"
rustflags = [
"-L", "/usr/lib/riscv64-linux-gnu",
]
[target.aarch64-unknown-linux-gnu]
linker = "aarch64-linux-gnu-gcc"
ar = "aarch64-linux-gnu-ar"
rustflags = [
"-L", "/usr/lib/aarch64-linux-gnu",
]

View File

@ -90,7 +90,7 @@ DESTDIR=
tests ?= --workspace
all: proxmox-backup-client-static $(SUBDIRS)
all: $(SUBDIRS)
.PHONY: $(SUBDIRS)
$(SUBDIRS):
@ -129,21 +129,21 @@ build:
.PHONY: proxmox-backup-docs
$(DOC_DEB) $(DEBS): proxmox-backup-docs
proxmox-backup-docs: build
cd build; dpkg-buildpackage -b -us -uc --no-pre-clean
cd build; dpkg-buildpackage -b -us -uc --no-pre-clean -a$(ARCH)
lintian $(DOC_DEB)
.PHONY: deb dsc deb-nodoc deb-nostrip
deb-nodoc: build
cd build; dpkg-buildpackage -b -us -uc --no-pre-clean --build-profiles=nodoc
cd build; dpkg-buildpackage -b -us -uc --no-pre-clean --build-profiles=nodoc -a$(ARCH)
lintian $(DEBS)
deb-nostrip: build
cd build; DEB_BUILD_OPTIONS=nostrip dpkg-buildpackage -b -us -uc
cd build; DEB_BUILD_OPTIONS=nostrip dpkg-buildpackage -b -us -uc -a$(ARCH)
lintian $(DEBS) $(DOC_DEB)
$(DEBS): deb
deb: build
cd build; dpkg-buildpackage -b -us -uc
cd build; dpkg-buildpackage -b -us -uc -a$(ARCH)
lintian $(DEBS) $(DOC_DEB)
.PHONY: dsc
@ -212,6 +212,7 @@ $(COMPILED_BINS) $(COMPILEDIR)/dump-catalog-shell-cli $(COMPILEDIR)/docgen &:
.PHONY: proxmox-backup-client-static
proxmox-backup-client-static:
export CRATE_CC_NO_DEFAULTS=0
$(MAKE) $(STATIC_BINS)
$(STATIC_BINS) &:
@ -247,8 +248,8 @@ install: $(COMPILED_BINS) $(STATIC_BINS)
install -m4755 -o root -g root $(COMPILEDIR)/sg-tape-cmd $(DESTDIR)$(LIBEXECDIR)/proxmox-backup/sg-tape-cmd
$(foreach i,$(SERVICE_BIN), \
install -m755 $(COMPILEDIR)/$(i) $(DESTDIR)$(LIBEXECDIR)/proxmox-backup/ ;)
install -m755 $(STATIC_COMPILEDIR)/proxmox-backup-client $(DESTDIR)$(BINDIR)/proxmox-backup-client-static
install -m755 $(STATIC_COMPILEDIR)/pxar $(DESTDIR)$(BINDIR)/pxar-static
# install -m755 $(STATIC_COMPILEDIR)/proxmox-backup-client $(DESTDIR)$(BINDIR)/proxmox-backup-client-static
# install -m755 $(STATIC_COMPILEDIR)/pxar $(DESTDIR)$(BINDIR)/pxar-static
$(MAKE) -C www install
$(MAKE) -C docs install
$(MAKE) -C templates install

4
debian/control vendored
View File

@ -65,7 +65,7 @@ Build-Depends: bash-completion,
librust-proxmox-apt-0.99+default-dev,
librust-proxmox-apt-api-types-2+default-dev,
librust-proxmox-async-0.5+default-dev,
librust-proxmox-auth-api-1+api-dev (>= 1.0.2),
librust-proxmox-auth-api-1+api-dev ,
librust-proxmox-auth-api-1+default-dev,
librust-proxmox-auth-api-1+pam-authenticator-dev,
librust-proxmox-base64-1+default-dev,
@ -161,11 +161,9 @@ Build-Depends: bash-completion,
librust-zstd-0.13+default-dev,
librust-zstd-safe-7+default-dev,
libsgutils2-dev,
libstd-rust-dev,
libsystemd-dev (>= 246-~~),
patchelf,
proxmox-widget-toolkit-dev <!nodoc>,
proxmox-biome,
python3-docutils,
python3-pygments,
python3-sphinx <!nodoc>,

View File

@ -1,4 +1,4 @@
usr/bin/proxmox-file-restore
usr/lib/x86_64-linux-gnu/proxmox-backup/file-restore/proxmox-restore-daemon
usr/lib/riscv64-linux-gnu/proxmox-backup/file-restore/proxmox-restore-daemon
usr/share/man/man1/proxmox-file-restore.1
usr/share/zsh/vendor-completions/_proxmox-file-restore

47
debian/rules vendored
View File

@ -22,6 +22,50 @@ export CARGO=/usr/share/cargo/bin/cargo
export CFLAGS CXXFLAGS CPPFLAGS LDFLAGS
export DEB_HOST_RUST_TYPE DEB_HOST_GNU_TYPE
export CRATE_CC_NO_DEFAULTS=1
# Set cross-compilation environment variables for OpenSSL and C libraries
# ifeq ($(DEB_HOST_ARCH),riscv64)
# export CC_riscv64gc_unknown_linux_gnu=riscv64-linux-gnu-gcc
# export CXX_riscv64gc_unknown_linux_gnu=riscv64-linux-gnu-g++
# export AR_riscv64gc_unknown_linux_gnu=riscv64-linux-gnu-ar
# export CARGO_TARGET_RISCV64GC_UNKNOWN_LINUX_GNU_LINKER=riscv64-linux-gnu-gcc
# export CRATE_CC_NO_DEFAULTS=1
# export CFLAGS_riscv64gc_unknown_linux_gnu=-fPIC
# export CXXFLAGS_riscv64gc_unknown_linux_gnu=-fPIC
# export PKG_CONFIG_riscv64gc_unknown_linux_gnu=riscv64-linux-gnu-pkg-config
# export PKG_CONFIG_PATH_riscv64gc_unknown_linux_gnu=/usr/lib/riscv64-linux-gnu/pkgconfig
# export PKG_CONFIG_LIBDIR_riscv64gc_unknown_linux_gnu=/usr/lib/riscv64-linux-gnu/pkgconfig
# export RISCV64GC_UNKNOWN_LINUX_GNU_OPENSSL_LIB_DIR=/usr/lib/riscv64-linux-gnu
# export RISCV64GC_UNKNOWN_LINUX_GNU_OPENSSL_INCLUDE_DIR=/usr/include
# endif
# ifeq ($(DEB_HOST_ARCH),arm64)
# export CC_aarch64_unknown_linux_gnu=aarch64-linux-gnu-gcc
# export CXX_aarch64_unknown_linux_gnu=aarch64-linux-gnu-g++
# export AR_aarch64_unknown_linux_gnu=aarch64-linux-gnu-ar
# export CARGO_TARGET_AARCH64_UNKNOWN_LINUX_GNU_LINKER=aarch64-linux-gnu-gcc
# export CFLAGS_aarch64_unknown_linux_gnu=-fPIC
# export CXXFLAGS_aarch64_unknown_linux_gnu=-fPIC
# export PKG_CONFIG_aarch64_unknown_linux_gnu=aarch64-linux-gnu-pkg-config
# export PKG_CONFIG_PATH_aarch64_unknown_linux_gnu=/usr/lib/aarch64-linux-gnu/pkgconfig
# export PKG_CONFIG_LIBDIR_aarch64_unknown_linux_gnu=/usr/lib/aarch64-linux-gnu/pkgconfig
# export AARCH64_UNKNOWN_LINUX_GNU_OPENSSL_LIB_DIR=/usr/lib/aarch64-linux-gnu
# export AARCH64_UNKNOWN_LINUX_GNU_OPENSSL_INCLUDE_DIR=/usr/include
# endif
# ifeq ($(DEB_HOST_ARCH),loong64)
# export CC_loongarch64_unknown_linux_gnu=loongarch64-linux-gnu-gcc
# export CXX_loongarch64_unknown_linux_gnu=loongarch64-linux-gnu-g++
# export AR_loongarch64_unknown_linux_gnu=loongarch64-linux-gnu-ar
# export CARGO_TARGET_LOONGARCH64_UNKNOWN_LINUX_GNU_LINKER=loongarch64-linux-gnu-gcc
# export CFLAGS_loongarch64_unknown_linux_gnu=-fPIC
# export CXXFLAGS_loongarch64_unknown_linux_gnu=-fPIC
# export PKG_CONFIG_loongarch64_unknown_linux_gnu=loongarch64-linux-gnu-pkg-config
# export PKG_CONFIG_PATH_loongarch64_unknown_linux_gnu=/usr/lib/loongarch64-linux-gnu/pkgconfig
# export PKG_CONFIG_LIBDIR_loongarch64_unknown_linux_gnu=/usr/lib/loongarch64-linux-gnu/pkgconfig
# export LOONGARCH64_UNKNOWN_LINUX_GNU_OPENSSL_LIB_DIR=/usr/lib/loongarch64-linux-gnu
# export LOONGARCH64_UNKNOWN_LINUX_GNU_OPENSSL_INCLUDE_DIR=/usr/include
# endif
export CARGO_HOME = $(CURDIR)/debian/cargo_home
export DEB_CARGO_CRATE=proxmox-backup_$(DEB_VERSION_UPSTREAM)
@ -60,9 +104,6 @@ override_dh_auto_install:
dh_auto_install -- \
PROXY_USER=backup \
LIBDIR=/usr/lib/$(DEB_HOST_MULTIARCH)
mkdir -p debian/proxmox-backup-client-static/usr/bin
mv debian/tmp/usr/bin/proxmox-backup-client-static debian/proxmox-backup-client-static/usr/bin/proxmox-backup-client
mv debian/tmp/usr/bin/pxar-static debian/proxmox-backup-client-static/usr/bin/pxar
override_dh_installsystemd:
dh_installsystemd -pproxmox-backup-server proxmox-backup-daily-update.timer

View File

@ -301,7 +301,7 @@ pub async fn start_vm(
let bus = (id / 32) + 2;
if arch == "x86_64" {
if id % 32 == 0 {
rives.push("-device".to_owned());
drives.push("-device".to_owned());
drives.push(format!("pci-bridge,id=bridge{bus},chassis_nr={bus}"));
}
}
@ -342,7 +342,7 @@ pub async fn start_vm(
let qemu_bin = format!("qemu-system-{}", arch);
let mut attempts = 0;
loop {
let mut qemu_cmd = std::process::Command::new(qemu_bin);
let mut qemu_cmd = std::process::Command::new(&qemu_bin);
qemu_cmd.args(base_args.iter());
qemu_cmd.arg("-m");
qemu_cmd.arg(format!(

View File

@ -285,8 +285,9 @@ impl TapeDriver for LtoTapeHandle {
}
fn run_sg_tape_cmd(subcmd: &str, args: &[&str], fd: RawFd) -> Result<String, Error> {
let arch = std::env::consts::ARCH;
let mut command =
std::process::Command::new("/usr/lib/x86_64-linux-gnu/proxmox-backup/sg-tape-cmd");
std::process::Command::new(format!("/usr/lib/{arch}-linux-gnu/proxmox-backup/sg-tape-cmd"));
command.args([subcmd]);
command.args(["--stdin"]);
command.args(args);