forked from proxmox-mirrors/proxmox-backup
Fixes: https://bugzilla.proxmox.com/show_bug.cgi?id=4788 Build and package the a statically linked binary version of proxmox-backup-client to facilitate updates and distribution. This provides a mechanism to obtain and repackage the client for external parties and Linux distributions. The statically linked client is provided as dedicated package, conflicting with the regular package. Since the RUSTFLAGS env variables are not preserved when building with dpkg-buildpackage, invoke via `cargo rustc` instead which allows to set the recquried arguments. Credit goes also to Christoph Heiss, as this patch is loosely based on his pre-existing work for the proxmox-auto-install-assistant [0], which provided a good template. Also, place the libsystemd stub into its own subdirectory for cleaner separation from the compiled artifacts. [0] https://lore.proxmox.com/pve-devel/20240816161942.2044889-1-c.heiss@proxmox.com/ Suggested-by: Christoph Heiss <c.heiss@proxmox.com> Originally-by: Thomas Lamprecht <t.lamprecht@proxmox.com> Signed-off-by: Christian Ebner <c.ebner@proxmox.com> FG: fold in fixups Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
73 lines
2.4 KiB
Makefile
Executable File
73 lines
2.4 KiB
Makefile
Executable File
#!/usr/bin/make -f
|
|
# See debhelper(7) (uncomment to enable)
|
|
# output every command that modifies files on the build system.
|
|
DH_VERBOSE = 1
|
|
|
|
include /usr/share/dpkg/pkg-info.mk
|
|
include /usr/share/rustc/architecture.mk
|
|
|
|
export BUILD_MODE=release
|
|
|
|
export CARGO=/usr/share/cargo/bin/cargo
|
|
|
|
export CFLAGS CXXFLAGS CPPFLAGS LDFLAGS
|
|
export DEB_HOST_RUST_TYPE DEB_HOST_GNU_TYPE
|
|
export CARGO_HOME = $(CURDIR)/debian/cargo_home
|
|
|
|
export DEB_CARGO_CRATE=proxmox-backup_$(DEB_VERSION_UPSTREAM)
|
|
export DEB_CARGO_PACKAGE=proxmox-backup
|
|
|
|
ifneq ("$(wildcard .repoid)","")
|
|
export REPOID=$(shell cat .repoid)
|
|
endif
|
|
|
|
%:
|
|
dh $@ --with=bash-completion
|
|
|
|
override_dh_auto_configure:
|
|
@perl -ne 'if (/^version\s*=\s*"(\d+(?:\.\d+)+)"/) { my $$v_cargo = $$1; my $$v_deb = "$(DEB_VERSION_UPSTREAM)"; \
|
|
die "ERROR: d/changelog <-> Cargo.toml version mismatch: $$v_cargo != $$v_deb\n" if $$v_cargo ne $$v_deb; exit(0); }' Cargo.toml
|
|
$(CARGO) prepare-debian $(CURDIR)/debian/cargo_registry --link-from-system
|
|
# `cargo build` and `cargo install` have different config precedence, symlink
|
|
# the wrapper config into a place where `build` picks it up as well..
|
|
# https://doc.rust-lang.org/cargo/commands/cargo-install.html#configuration-discovery
|
|
mkdir -p .cargo
|
|
ln -s $(CARGO_HOME)/config.toml $(CURDIR)/.cargo/config.toml
|
|
dh_auto_configure
|
|
|
|
override_dh_auto_build:
|
|
dh_auto_build -- \
|
|
PROXY_USER=backup \
|
|
LIBDIR=/usr/lib/$(DEB_HOST_MULTIARCH)
|
|
|
|
override_dh_missing:
|
|
dh_missing --fail-missing
|
|
|
|
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
|
|
|
|
override_dh_installsystemd:
|
|
dh_installsystemd -pproxmox-backup-server proxmox-backup-daily-update.timer
|
|
# note: we start/try-reload-restart services manually in postinst
|
|
dh_installsystemd --no-start --no-restart-after-upgrade --no-stop-on-upgrade
|
|
|
|
override_dh_fixperms:
|
|
dh_fixperms --exclude sg-tape-cmd
|
|
|
|
override_dh_strip:
|
|
dh_strip
|
|
for exe in $$(find \
|
|
debian/proxmox-backup-client/usr \
|
|
debian/proxmox-backup-server/usr \
|
|
debian/proxmox-backup-file-restore \
|
|
-executable -type f); do \
|
|
debian/scripts/elf-strip-unused-dependencies.sh "$$exe" || true; \
|
|
done
|
|
|
|
override_dh_compress:
|
|
dh_compress -X.pdf
|