all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [pbs-devel] [PATCH proxmox-backup] build: include pxar in static binary compilation and package
@ 2025-04-10 14:00 Christian Ebner
  2025-04-15 10:17 ` [pbs-devel] applied: " Fabian Grünbichler
  0 siblings, 1 reply; 2+ messages in thread
From: Christian Ebner @ 2025-04-10 14:00 UTC (permalink / raw)
  To: pbs-devel

The debian package providing the dynamically linked version of the
proxmox-backup-client is packaged together with the pxar executable.

To be in line and for user convenience, include a statically linked
version of pxar to the static package as well.

Renames STATIC_BIN env variable to STATIC_BINS to reflect that this
now covers multiple binaries and store rustc flags in its own
variable so they can be reused since `cargo rustc` does not allow
invocations with multiple `--package` arguments at once.

Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
---
 Makefile                                      | 19 ++++++++++++-------
 ...oxmox-backup-client-static.bash-completion |  1 +
 debian/proxmox-backup-client-static.install   |  2 ++
 debian/rules                                  |  1 +
 4 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/Makefile b/Makefile
index d74701462..2f81dc91d 100644
--- a/Makefile
+++ b/Makefile
@@ -50,6 +50,8 @@ COMPILEDIR := target/$(DEB_HOST_RUST_TYPE)/debug
 STATIC_COMPILEDIR := $(STATIC_TARGET_DIR)/$(DEB_HOST_RUST_TYPE)/debug
 endif
 
+STATIC_RUSTC_FLAGS := -C target-feature=+crt-static -L $(STATIC_COMPILEDIR)/deps-stubs/
+
 ifeq ($(valgrind), yes)
 CARGO_BUILD_ARGS += --features valgrind
 endif
@@ -59,8 +61,8 @@ CARGO ?= cargo
 COMPILED_BINS := \
 	$(addprefix $(COMPILEDIR)/,$(USR_BIN) $(USR_SBIN) $(SERVICE_BIN) $(RESTORE_BIN))
 
-STATIC_BIN := \
-	$(addprefix $(STATIC_COMPILEDIR)/,proxmox-backup-client-static)
+STATIC_BINS := \
+	$(addprefix $(STATIC_COMPILEDIR)/,proxmox-backup-client-static pxar-static)
 
 export DEB_VERSION DEB_VERSION_UPSTREAM
 
@@ -207,7 +209,7 @@ $(COMPILED_BINS) $(COMPILEDIR)/dump-catalog-shell-cli $(COMPILEDIR)/docgen: .do-
 lint:
 	cargo clippy -- -A clippy::all -D clippy::correctness
 
-install: $(COMPILED_BINS) $(STATIC_BIN)
+install: $(COMPILED_BINS) $(STATIC_BINS)
 	install -dm755 $(DESTDIR)$(BINDIR)
 	install -dm755 $(DESTDIR)$(ZSH_COMPL_DEST)
 	$(foreach i,$(USR_BIN), \
@@ -227,6 +229,7 @@ install: $(COMPILED_BINS) $(STATIC_BIN)
 	$(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
 	$(MAKE) -C www install
 	$(MAKE) -C docs install
 	$(MAKE) -C templates install
@@ -244,11 +247,13 @@ upload: $(SERVER_DEB) $(CLIENT_DEB) $(RESTORE_DEB) $(DOC_DEB) $(STATIC_CLIENT_DE
 
 .PHONY: proxmox-backup-client-static
 proxmox-backup-client-static:
-	rm -f $(STATIC_BIN)
-	$(MAKE) $(STATIC_BIN)
+	rm -f $(STATIC_BINS)
+	$(MAKE) $(STATIC_BINS)
 
-$(STATIC_BIN):
+$(STATIC_BINS):
 	mkdir -p $(STATIC_COMPILEDIR)/deps-stubs/ && \
           echo '!<arch>' > $(STATIC_COMPILEDIR)/deps-stubs/libsystemd.a # workaround for to greedy linkage and proxmox-systemd
+	$(CARGO) rustc $(CARGO_BUILD_ARGS) --package pxar-bin --bin pxar \
+	  --target-dir $(STATIC_TARGET_DIR) -- $(STATIC_RUSTC_FLAGS)
 	$(CARGO) rustc $(CARGO_BUILD_ARGS) --package proxmox-backup-client --bin proxmox-backup-client \
-          --target-dir $(STATIC_TARGET_DIR) -- -C target-feature=+crt-static -L $(STATIC_COMPILEDIR)/deps-stubs/
+	  --target-dir $(STATIC_TARGET_DIR) -- $(STATIC_RUSTC_FLAGS)
diff --git a/debian/proxmox-backup-client-static.bash-completion b/debian/proxmox-backup-client-static.bash-completion
index f8b9b4394..437360175 100644
--- a/debian/proxmox-backup-client-static.bash-completion
+++ b/debian/proxmox-backup-client-static.bash-completion
@@ -1 +1,2 @@
 debian/proxmox-backup-client.bc proxmox-backup-client
+debian/pxar.bc pxar
diff --git a/debian/proxmox-backup-client-static.install b/debian/proxmox-backup-client-static.install
index f8a681d0a..6a913b677 100644
--- a/debian/proxmox-backup-client-static.install
+++ b/debian/proxmox-backup-client-static.install
@@ -1,2 +1,4 @@
 usr/share/man/man1/proxmox-backup-client.1
+usr/share/man/man1/pxar.1
 usr/share/zsh/vendor-completions/_proxmox-backup-client
+usr/share/zsh/vendor-completions/_pxar
diff --git a/debian/rules b/debian/rules
index be7c93c2e..70cec4754 100755
--- a/debian/rules
+++ b/debian/rules
@@ -49,6 +49,7 @@ override_dh_auto_install:
 	    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
-- 
2.39.5



_______________________________________________
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

* [pbs-devel] applied: [PATCH proxmox-backup] build: include pxar in static binary compilation and package
  2025-04-10 14:00 [pbs-devel] [PATCH proxmox-backup] build: include pxar in static binary compilation and package Christian Ebner
@ 2025-04-15 10:17 ` Fabian Grünbichler
  0 siblings, 0 replies; 2+ messages in thread
From: Fabian Grünbichler @ 2025-04-15 10:17 UTC (permalink / raw)
  To: Proxmox Backup Server development discussion

with a small Make-related follow-up

On April 10, 2025 4:00 pm, Christian Ebner wrote:
> The debian package providing the dynamically linked version of the
> proxmox-backup-client is packaged together with the pxar executable.
> 
> To be in line and for user convenience, include a statically linked
> version of pxar to the static package as well.
> 
> Renames STATIC_BIN env variable to STATIC_BINS to reflect that this
> now covers multiple binaries and store rustc flags in its own
> variable so they can be reused since `cargo rustc` does not allow
> invocations with multiple `--package` arguments at once.
> 
> Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
> ---
>  Makefile                                      | 19 ++++++++++++-------
>  ...oxmox-backup-client-static.bash-completion |  1 +
>  debian/proxmox-backup-client-static.install   |  2 ++
>  debian/rules                                  |  1 +
>  4 files changed, 16 insertions(+), 7 deletions(-)
> 
> diff --git a/Makefile b/Makefile
> index d74701462..2f81dc91d 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -50,6 +50,8 @@ COMPILEDIR := target/$(DEB_HOST_RUST_TYPE)/debug
>  STATIC_COMPILEDIR := $(STATIC_TARGET_DIR)/$(DEB_HOST_RUST_TYPE)/debug
>  endif
>  
> +STATIC_RUSTC_FLAGS := -C target-feature=+crt-static -L $(STATIC_COMPILEDIR)/deps-stubs/
> +
>  ifeq ($(valgrind), yes)
>  CARGO_BUILD_ARGS += --features valgrind
>  endif
> @@ -59,8 +61,8 @@ CARGO ?= cargo
>  COMPILED_BINS := \
>  	$(addprefix $(COMPILEDIR)/,$(USR_BIN) $(USR_SBIN) $(SERVICE_BIN) $(RESTORE_BIN))
>  
> -STATIC_BIN := \
> -	$(addprefix $(STATIC_COMPILEDIR)/,proxmox-backup-client-static)
> +STATIC_BINS := \
> +	$(addprefix $(STATIC_COMPILEDIR)/,proxmox-backup-client-static pxar-static)
>  
>  export DEB_VERSION DEB_VERSION_UPSTREAM
>  
> @@ -207,7 +209,7 @@ $(COMPILED_BINS) $(COMPILEDIR)/dump-catalog-shell-cli $(COMPILEDIR)/docgen: .do-
>  lint:
>  	cargo clippy -- -A clippy::all -D clippy::correctness
>  
> -install: $(COMPILED_BINS) $(STATIC_BIN)
> +install: $(COMPILED_BINS) $(STATIC_BINS)
>  	install -dm755 $(DESTDIR)$(BINDIR)
>  	install -dm755 $(DESTDIR)$(ZSH_COMPL_DEST)
>  	$(foreach i,$(USR_BIN), \
> @@ -227,6 +229,7 @@ install: $(COMPILED_BINS) $(STATIC_BIN)
>  	$(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
>  	$(MAKE) -C www install
>  	$(MAKE) -C docs install
>  	$(MAKE) -C templates install
> @@ -244,11 +247,13 @@ upload: $(SERVER_DEB) $(CLIENT_DEB) $(RESTORE_DEB) $(DOC_DEB) $(STATIC_CLIENT_DE
>  
>  .PHONY: proxmox-backup-client-static
>  proxmox-backup-client-static:
> -	rm -f $(STATIC_BIN)
> -	$(MAKE) $(STATIC_BIN)
> +	rm -f $(STATIC_BINS)
> +	$(MAKE) $(STATIC_BINS)
>  
> -$(STATIC_BIN):
> +$(STATIC_BINS):
>  	mkdir -p $(STATIC_COMPILEDIR)/deps-stubs/ && \
>            echo '!<arch>' > $(STATIC_COMPILEDIR)/deps-stubs/libsystemd.a # workaround for to greedy linkage and proxmox-systemd
> +	$(CARGO) rustc $(CARGO_BUILD_ARGS) --package pxar-bin --bin pxar \
> +	  --target-dir $(STATIC_TARGET_DIR) -- $(STATIC_RUSTC_FLAGS)
>  	$(CARGO) rustc $(CARGO_BUILD_ARGS) --package proxmox-backup-client --bin proxmox-backup-client \
> -          --target-dir $(STATIC_TARGET_DIR) -- -C target-feature=+crt-static -L $(STATIC_COMPILEDIR)/deps-stubs/
> +	  --target-dir $(STATIC_TARGET_DIR) -- $(STATIC_RUSTC_FLAGS)
> diff --git a/debian/proxmox-backup-client-static.bash-completion b/debian/proxmox-backup-client-static.bash-completion
> index f8b9b4394..437360175 100644
> --- a/debian/proxmox-backup-client-static.bash-completion
> +++ b/debian/proxmox-backup-client-static.bash-completion
> @@ -1 +1,2 @@
>  debian/proxmox-backup-client.bc proxmox-backup-client
> +debian/pxar.bc pxar
> diff --git a/debian/proxmox-backup-client-static.install b/debian/proxmox-backup-client-static.install
> index f8a681d0a..6a913b677 100644
> --- a/debian/proxmox-backup-client-static.install
> +++ b/debian/proxmox-backup-client-static.install
> @@ -1,2 +1,4 @@
>  usr/share/man/man1/proxmox-backup-client.1
> +usr/share/man/man1/pxar.1
>  usr/share/zsh/vendor-completions/_proxmox-backup-client
> +usr/share/zsh/vendor-completions/_pxar
> diff --git a/debian/rules b/debian/rules
> index be7c93c2e..70cec4754 100755
> --- a/debian/rules
> +++ b/debian/rules
> @@ -49,6 +49,7 @@ override_dh_auto_install:
>  	    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
> -- 
> 2.39.5
> 
> 
> 
> _______________________________________________
> 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


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

end of thread, other threads:[~2025-04-15 10:17 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-04-10 14:00 [pbs-devel] [PATCH proxmox-backup] build: include pxar in static binary compilation and package Christian Ebner
2025-04-15 10:17 ` [pbs-devel] applied: " 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