PACKAGE := proxmox-backup
ARCH := $(DEB_BUILD_ARCH)
-SUBDIRS := etc www docs
+SUBDIRS := etc www docs templates
# Binaries usable by users
USR_BIN := \
# Binaries usable by admins
USR_SBIN := \
proxmox-backup-manager \
- proxmox-backup-debug \
+ proxmox-backup-debug
# Binaries for services:
SERVICE_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
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=
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
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
$(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
$(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), \
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)