public inbox for pve-devel@lists.proxmox.com
 help / color / mirror / Atom feed
From: "Fabian Grünbichler" <f.gruenbichler@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH proxmox-offline-mirror v2 1/2] build: use cargo wrapper
Date: Wed, 10 Jul 2024 13:57:22 +0200	[thread overview]
Message-ID: <20240710115723.482206-1-f.gruenbichler@proxmox.com> (raw)

for package builds to ensure all common flags are actually set.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
---

Notes:
    v2: symlink wrapper config in place

 Makefile      |  9 +++++++--
 debian/rules  | 11 ++++++++---
 docs/Makefile |  4 ++--
 3 files changed, 17 insertions(+), 7 deletions(-)

diff --git a/Makefile b/Makefile
index c652bda..ab23b73 100644
--- a/Makefile
+++ b/Makefile
@@ -19,10 +19,15 @@ DEBS = $(DEB) $(HELPER_DEB) $(DBG_DEB) $(HELPER_DBG_DEB) $(DOC_DEB)
 ifeq ($(BUILD_MODE), release)
 CARGO_BUILD_ARGS += --release
 COMPILEDIR := target/release
+else ifeq ($(BUILD_MODE), release-deb)
+CARGO_BUILD_ARGS += --release
+COMPILEDIR := target/$(DEB_HOST_RUST_TYPE)/release
 else
 COMPILEDIR := target/debug
 endif
 
+CARGO ?= cargo
+
 USR_BIN := \
 	proxmox-offline-mirror \
 	proxmox-offline-mirror-helper
@@ -34,7 +39,7 @@ all: cargo-build $(SUBDIRS)
 
 .PHONY: cargo-build
 cargo-build:
-	cargo build $(CARGO_BUILD_ARGS)
+	$(CARGO) build $(CARGO_BUILD_ARGS)
 
 .PHONY: $(SUBDIRS)
 $(SUBDIRS): cargo-build
@@ -98,7 +103,7 @@ distclean: clean
 
 .PHONY: clean
 clean:
-	cargo clean
+	$(CARGO) clean
 	rm -f *.deb *.build *.buildinfo *.changes *.dsc rust-$(PACKAGE)*.tar*
 	rm -rf $(PACKAGE)-[0-9]*/
 	find . -name '*~' -exec rm {} ';'
diff --git a/debian/rules b/debian/rules
index 58b733f..5a34545 100644
--- a/debian/rules
+++ b/debian/rules
@@ -3,13 +3,13 @@
 include /usr/share/dpkg/pkg-info.mk
 include /usr/share/rustc/architecture.mk
 
-export BUILD_MODE=release
+export BUILD_MODE=release-deb
 
-CARGO=/usr/share/cargo/bin/cargo
+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 CARGO_HOME=$(CURDIR)/debian/cargo_home
 
 export DEB_CARGO_CRATE=proxmox-offline-mirror_$(DEB_VERSION_UPSTREAM)
 export DEB_CARGO_PACKAGE=proxmox-offline-mirror
@@ -24,6 +24,11 @@ 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 $(CURDIR)/.cargo
+	ln -s $(CARGO_HOME)/config.toml $(CURDIR)/.cargo/config.toml
 	dh_auto_configure
 
 override_dh_auto_test:
diff --git a/docs/Makefile b/docs/Makefile
index 973355a..fa52867 100644
--- a/docs/Makefile
+++ b/docs/Makefile
@@ -21,10 +21,10 @@ SPHINXBUILD   = sphinx-build
 BUILDDIR      = output
 
 ifeq ($(BUILD_MODE), release)
-COMPILEDIR := ../target/release
+COMPILEDIR := ../target/$release
 SPHINXOPTS    += -t release
 else ifeq ($(BUILD_MODE), release-deb)
-COMPILEDIR := ../target/$(DEB_TARGET_GNU_CPU)-unknown-$(DEB_TARGET_GNU_SYSTEM)/release
+COMPILEDIR := ../target/$(DEB_HOST_RUST_TYPE)/release
 SPHINXOPTS    += -t release
 else
 COMPILEDIR := ../target/debug
-- 
2.39.2



_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

             reply	other threads:[~2024-07-10 11:57 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-07-10 11:57 Fabian Grünbichler [this message]
2024-07-10 11:57 ` [pve-devel] [PATCH proxmox-offline-mirror v2 2/2] build: execute dh-cargo-built-using Fabian Grünbichler
2024-07-22 17:03 ` [pve-devel] applied-series: [PATCH proxmox-offline-mirror v2 1/2] build: use cargo wrapper Thomas Lamprecht

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20240710115723.482206-1-f.gruenbichler@proxmox.com \
    --to=f.gruenbichler@proxmox.com \
    --cc=pve-devel@lists.proxmox.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal