]> git.proxmox.com Git - proxmox-backup.git/blobdiff - Makefile
config: acme: use latest proxmox_sys::fs::ensure_dir_exists
[proxmox-backup.git] / Makefile
index 1d04eb65ea0a9c4f94ad37a3e673f39fc717a36c..03e938767ba28facd7b52bba1881d5d7d90bb674 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -4,7 +4,7 @@ include defines.mk
 PACKAGE := proxmox-backup
 ARCH := $(DEB_BUILD_ARCH)
 
-SUBDIRS := etc www docs
+SUBDIRS := etc www docs templates
 
 # Binaries usable by users
 USR_BIN := \
@@ -18,7 +18,7 @@ USR_BIN := \
 # Binaries usable by admins
 USR_SBIN := \
        proxmox-backup-manager \
-       proxmox-backup-debug \
+       proxmox-backup-debug
 
 # Binaries for services:
 SERVICE_BIN := \
@@ -33,7 +33,7 @@ RESTORE_BIN := \
 
 SUBCRATES != cargo metadata --no-deps --format-version=1 \
        | jq -r .workspace_members'[]' \
-       | awk '!/^proxmox-backup\s/ { printf "%s ", $$1 }'
+       | awk '!/^proxmox-backup[[:space:]]/ { printf "%s ", $$1 }'
 
 ifeq ($(BUILD_MODE), release)
 CARGO_BUILD_ARGS += --release
@@ -53,18 +53,18 @@ COMPILED_BINS := \
 
 export DEB_VERSION DEB_VERSION_UPSTREAM
 
-SERVER_DEB=${PACKAGE}-server_${DEB_VERSION}_${ARCH}.deb
-SERVER_DBG_DEB=${PACKAGE}-server-dbgsym_${DEB_VERSION}_${ARCH}.deb
-CLIENT_DEB=${PACKAGE}-client_${DEB_VERSION}_${ARCH}.deb
-CLIENT_DBG_DEB=${PACKAGE}-client-dbgsym_${DEB_VERSION}_${ARCH}.deb
-RESTORE_DEB=proxmox-backup-file-restore_${DEB_VERSION}_${ARCH}.deb
-RESTORE_DBG_DEB=proxmox-backup-file-restore-dbgsym_${DEB_VERSION}_${ARCH}.deb
-DOC_DEB=${PACKAGE}-docs_${DEB_VERSION}_all.deb
+SERVER_DEB=$(PACKAGE)-server_$(DEB_VERSION)_$(ARCH).deb
+SERVER_DBG_DEB=$(PACKAGE)-server-dbgsym_$(DEB_VERSION)_$(ARCH).deb
+CLIENT_DEB=$(PACKAGE)-client_$(DEB_VERSION)_$(ARCH).deb
+CLIENT_DBG_DEB=$(PACKAGE)-client-dbgsym_$(DEB_VERSION)_$(ARCH).deb
+RESTORE_DEB=proxmox-backup-file-restore_$(DEB_VERSION)_$(ARCH).deb
+RESTORE_DBG_DEB=proxmox-backup-file-restore-dbgsym_$(DEB_VERSION)_$(ARCH).deb
+DOC_DEB=$(PACKAGE)-docs_$(DEB_VERSION)_all.deb
 
-DEBS=${SERVER_DEB} ${SERVER_DBG_DEB} ${CLIENT_DEB} ${CLIENT_DBG_DEB} \
-     ${RESTORE_DEB} ${RESTORE_DBG_DEB} ${DEBUG_DEB} ${DEBUG_DBG_DEB}
+DEBS=$(SERVER_DEB) $(SERVER_DBG_DEB) $(CLIENT_DEB) $(CLIENT_DBG_DEB) \
+     $(RESTORE_DEB) $(RESTORE_DBG_DEB)
 
-DSC = rust-${PACKAGE}_${DEB_VERSION}.dsc
+DSC = rust-$(PACKAGE)_$(DEB_VERSION).dsc
 
 DESTDIR=
 
@@ -89,10 +89,11 @@ doc:
 build:
        rm -rf build
        mkdir build
+       git rev-parse HEAD > build/.repoid
        cp -a debian \
          Cargo.toml src \
          $(SUBCRATES) \
-         docs etc examples tests www zsh-completions \
+         docs etc examples tests www zsh-completions templates \
          defines.mk Makefile \
          ./build/
        rm -f build/Cargo.lock
@@ -119,10 +120,16 @@ deb: build
        lintian $(DEBS) $(DOC_DEB)
 
 .PHONY: dsc
-dsc: $(DSC)
+dsc:
+       rm -rf $(DSC) build/
+       $(MAKE) $(DSC)
+       lintian $(DSC)
+
 $(DSC): build
        cd build; dpkg-buildpackage -S -us -uc -d
-       lintian $(DSC)
+
+sbuild: $(DSC)
+       sbuild $<
 
 .PHONY: clean distclean deb clean
 distclean: clean
@@ -131,15 +138,14 @@ clean: clean-deb
            $(MAKE) -C $(i) clean ;)
        $(CARGO) clean
        rm -f .do-cargo-build
-       find . -name '*~' -exec rm {} ';'
 
-# allows one to avoid running cargo clean when one just wants to tidy up after a packgae build
+# allows one to avoid running cargo clean when one just wants to tidy up after a package build
 clean-deb:
-       rm -rf *.deb *.dsc *.tar.gz *.buildinfo *.changes build/
+       rm -rf build/
+       rm -f *.deb *.dsc *.tar.* *.buildinfo *.build *.changes
 
 .PHONY: dinstall
-dinstall: ${SERVER_DEB} ${SERVER_DBG_DEB} ${CLIENT_DEB} ${CLIENT_DBG_DEB} \
-  ${DEBUG_DEB} ${DEBUG_DBG_DEB}
+dinstall: $(SERVER_DEB) $(SERVER_DBG_DEB) $(CLIENT_DEB) $(CLIENT_DBG_DEB)
        dpkg -i $^
 
 # make sure we build binaries before docs
@@ -194,6 +200,7 @@ install: $(COMPILED_BINS)
        $(foreach i,$(USR_SBIN), \
            install -m755 $(COMPILEDIR)/$(i) $(DESTDIR)$(SBINDIR)/ ; \
            install -m644 zsh-completions/_$(i) $(DESTDIR)$(ZSH_COMPL_DEST)/ ;)
+       install -m755 $(COMPILEDIR)/pbs2to3 $(DESTDIR)$(SBINDIR)/
        install -dm755 $(DESTDIR)$(LIBEXECDIR)/proxmox-backup
        install -dm755 $(DESTDIR)$(LIBEXECDIR)/proxmox-backup/file-restore
        $(foreach i,$(RESTORE_BIN), \
@@ -204,13 +211,14 @@ install: $(COMPILED_BINS)
            install -m755 $(COMPILEDIR)/$(i) $(DESTDIR)$(LIBEXECDIR)/proxmox-backup/ ;)
        $(MAKE) -C www install
        $(MAKE) -C docs install
+       $(MAKE) -C templates install
 
 .PHONY: upload
-upload: ${SERVER_DEB} ${CLIENT_DEB} ${RESTORE_DEB} ${DOC_DEB} ${DEBUG_DEB}
+upload: UPLOAD_DIST ?= $(DEB_DISTRIBUTION)
+upload: $(SERVER_DEB) $(CLIENT_DEB) $(RESTORE_DEB) $(DOC_DEB)
        # check if working directory is clean
        git diff --exit-code --stat && git diff --exit-code --stat --staged
-       tar cf - ${SERVER_DEB} ${SERVER_DBG_DEB} ${DOC_DEB} ${CLIENT_DEB} \
-           ${CLIENT_DBG_DEB} ${DEBUG_DEB} ${DEBUG_DBG_DEB} \
-         | ssh -X repoman@repo.proxmox.com upload --product pbs --dist bullseye
-       tar cf - ${CLIENT_DEB} ${CLIENT_DBG_DEB} | ssh -X repoman@repo.proxmox.com upload --product "pve,pmg,pbs-client" --dist bullseye
-       tar cf - ${RESTORE_DEB} ${RESTORE_DBG_DEB} | ssh -X repoman@repo.proxmox.com upload --product "pve" --dist bullseye
+       tar cf - $(SERVER_DEB) $(SERVER_DBG_DEB) $(DOC_DEB) $(CLIENT_DEB) $(CLIENT_DBG_DEB) \
+         | ssh -X repoman@repo.proxmox.com upload --product pbs --dist $(UPLOAD_DIST)
+       tar cf - $(CLIENT_DEB) $(CLIENT_DBG_DEB) | ssh -X repoman@repo.proxmox.com upload --product "pve,pmg,pbs-client" --dist $(UPLOAD_DIST)
+       tar cf - $(RESTORE_DEB) $(RESTORE_DBG_DEB) | ssh -X repoman@repo.proxmox.com upload --product "pve" --dist $(UPLOAD_DIST)