274b0c7bb7
Modeled after the one from PVE, but using rust instead of perl for resolving the nodename and writing to /etc/issue Behavior differs a bit. We write all non-loopback addresses to this file, as the gui accepts connections from them all, so limiting it to the first one is not really sensible. Further an error to resolve, or only getting loopback addresses won't write out an empty /etc/issue file, but a note about the error at the place where the address would be displayed. Named it "pbsbanner", not "proxmox-backup-banner" as it's rather an internal tool anyway and mirrors pvebanner, pmgbanner Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
138 lines
3.3 KiB
Makefile
138 lines
3.3 KiB
Makefile
include /usr/share/dpkg/default.mk
|
|
include defines.mk
|
|
|
|
PACKAGE := proxmox-backup
|
|
ARCH := $(DEB_BUILD_ARCH)
|
|
|
|
SUBDIRS := etc www docs
|
|
|
|
# Binaries usable by users
|
|
USR_BIN := \
|
|
proxmox-backup-client \
|
|
pxar
|
|
|
|
# Binaries usable by admins
|
|
USR_SBIN := proxmox-backup-manager \
|
|
pbsbanner
|
|
|
|
# Binaries for services:
|
|
SERVICE_BIN := \
|
|
proxmox-backup-api \
|
|
proxmox-backup-proxy
|
|
|
|
ifeq ($(BUILD_MODE), release)
|
|
CARGO_BUILD_ARGS += --release
|
|
COMPILEDIR := target/release
|
|
else
|
|
COMPILEDIR := target/debug
|
|
endif
|
|
|
|
ifeq ($(valgrind), yes)
|
|
CARGO_BUILD_ARGS += --features valgrind
|
|
endif
|
|
|
|
CARGO ?= cargo
|
|
|
|
COMPILED_BINS := \
|
|
$(addprefix $(COMPILEDIR)/,$(USR_BIN) $(USR_SBIN) $(SERVICE_BIN))
|
|
|
|
DEBS= ${PACKAGE}-server_${DEB_VERSION}_${ARCH}.deb ${PACKAGE}-client_${DEB_VERSION}_${ARCH}.deb
|
|
|
|
DOC_DEB=${PACKAGE}-docs_${DEB_VERSION}_all.deb
|
|
|
|
DSC = rust-${PACKAGE}_${DEB_VERSION}.dsc
|
|
|
|
DESTDIR=
|
|
|
|
all: cargo-build $(SUBDIRS)
|
|
|
|
.PHONY: $(SUBDIRS)
|
|
$(SUBDIRS):
|
|
$(MAKE) -C $@
|
|
|
|
test:
|
|
#cargo test test_broadcast_future
|
|
#cargo test $(CARGO_BUILD_ARGS)
|
|
$(CARGO) test $(tests) $(CARGO_BUILD_ARGS)
|
|
|
|
doc:
|
|
$(CARGO) doc --no-deps $(CARGO_BUILD_ARGS)
|
|
|
|
# always re-create this dir
|
|
.PHONY: build
|
|
build:
|
|
rm -rf build
|
|
debcargo package --config debian/debcargo.toml --changelog-ready --no-overlay-write-back --directory build proxmox-backup $(shell dpkg-parsechangelog -l debian/changelog -SVersion | sed -e 's/-.*//')
|
|
sed -e '1,/^$$/ ! d' build/debian/control > build/debian/control.src
|
|
cat build/debian/control.src build/debian/control.in > build/debian/control
|
|
rm build/debian/control.in build/debian/control.src
|
|
rm build/Cargo.lock
|
|
find build/debian -name "*.hint" -delete
|
|
$(foreach i,$(SUBDIRS), \
|
|
$(MAKE) -C build/$(i) clean ;)
|
|
|
|
|
|
.PHONY: proxmox-backup-docs
|
|
proxmox-backup-docs: $(DOC_DEB)
|
|
$(DOC_DEB): build
|
|
cd build; dpkg-buildpackage -b -us -uc --no-pre-clean
|
|
lintian $(DOC_DEB)
|
|
|
|
# copy the local target/ dir as a build-cache
|
|
.PHONY: deb
|
|
deb: $(DEBS)
|
|
$(DEBS): build
|
|
cd build; dpkg-buildpackage -b -us -uc --no-pre-clean --build-profiles=nodoc
|
|
lintian $(DEBS)
|
|
|
|
.PHONY: dsc
|
|
dsc: $(DSC)
|
|
$(DSC): build
|
|
cd build; dpkg-buildpackage -S -us -uc -d -nc
|
|
lintian $(DSC)
|
|
|
|
distclean: clean
|
|
|
|
clean:
|
|
$(foreach i,$(SUBDIRS), \
|
|
$(MAKE) -C $(i) clean ;)
|
|
$(CARGO) clean
|
|
rm -rf *.deb *.dsc *.tar.gz *.buildinfo *.changes build
|
|
find . -name '*~' -exec rm {} ';'
|
|
|
|
.PHONY: dinstall
|
|
dinstall: ${DEBS}
|
|
dpkg -i ${DEBS}
|
|
|
|
# make sure we build binaries before docs
|
|
docs: cargo-build
|
|
|
|
.PHONY: cargo-build
|
|
cargo-build:
|
|
$(CARGO) build $(CARGO_BUILD_ARGS)
|
|
|
|
$(COMPILED_BINS): cargo-build
|
|
|
|
.PHONY: lint
|
|
lint:
|
|
cargo clippy -- -A clippy::all -D clippy::correctness
|
|
|
|
install: $(COMPILED_BINS)
|
|
install -dm755 $(DESTDIR)$(BINDIR)
|
|
$(foreach i,$(USR_BIN), \
|
|
install -m755 $(COMPILEDIR)/$(i) $(DESTDIR)$(BINDIR)/ ;)
|
|
install -dm755 $(DESTDIR)$(SBINDIR)
|
|
$(foreach i,$(USR_SBIN), \
|
|
install -m755 $(COMPILEDIR)/$(i) $(DESTDIR)$(SBINDIR)/ ;)
|
|
install -dm755 $(DESTDIR)$(LIBEXECDIR)/proxmox-backup
|
|
$(foreach i,$(SERVICE_BIN), \
|
|
install -m755 $(COMPILEDIR)/$(i) $(DESTDIR)$(LIBEXECDIR)/proxmox-backup/ ;)
|
|
$(MAKE) -C www install
|
|
$(MAKE) -C docs install
|
|
|
|
.PHONY: upload
|
|
upload: ${DEBS}
|
|
# check if working directory is clean
|
|
git diff --exit-code --stat && git diff --exit-code --stat --staged
|
|
tar cf - ${DEBS} | ssh -X repoman@repo.proxmox.com upload --product pbs --dist buster
|