diff options
Diffstat (limited to 'Makefile')
-rw-r--r-- | Makefile | 79 |
1 files changed, 60 insertions, 19 deletions
@@ -1,4 +1,6 @@ -# Copyright (C) 2014-2021 Daniel Baumann <daniel.baumann@open-infrastructure.net> +# Open Infrastructure: compute-tools + +# Copyright (C) 2014-2022 Daniel Baumann <daniel.baumann@open-infrastructure.net> # # SPDX-License-Identifier: GPL-3.0+ # @@ -23,6 +25,8 @@ PROGRAM = container SCRIPTS = bin/* libexec/*/* +VERSION := $(shell cat VERSION.txt) + all: build test: @@ -49,7 +53,7 @@ test: # FIXME: fail hard on shellcheck once all issues are fixed @echo -n "Checking with shellcheck... " - @if [ -x /usr/bin/checkbashisms ]; \ + @if [ -x /usr/bin/shellcheck ]; \ then \ for SCRIPT in $(SCRIPTS); \ do \ @@ -61,15 +65,17 @@ test: fi @echo " done." -build: share/man/*.txt +build: share/man/*.rst $(MAKE) -C share/man - sed -n '/^NAME/,$$p' share/man/$(SOFTWARE).7.txt > README.txt + sed -n '/^===/,$$p' share/man/$(SOFTWARE).7.rst > README.txt install: build mkdir -p $(DESTDIR)/etc/$(SOFTWARE)/config mkdir -p $(DESTDIR)/etc/$(SOFTWARE)/debconf mkdir -p $(DESTDIR)/etc/$(SOFTWARE)/hooks + mkdir -p $(DESTDIR)/etc/$(SOFTWARE)/keys + mkdir -p $(DESTDIR)/etc/${SOFTWARE}/container.conf.d mkdir -p $(DESTDIR)/usr/bin cp -r bin/* $(DESTDIR)/usr/bin @@ -79,7 +85,7 @@ install: build mkdir -p $(DESTDIR)/usr/share/$(SOFTWARE) cp -r VERSION.txt $(DESTDIR)/usr/share/$(SOFTWARE) - cp -r share/config share/hooks share/scripts $(DESTDIR)/usr/share/$(SOFTWARE) + cp -r share/config share/hooks share/keys share/build-scripts share/get-scripts $(DESTDIR)/usr/share/$(SOFTWARE) mkdir -p $(DESTDIR)/usr/share/bash-completion/completions cp -r share/bash-completion/* $(DESTDIR)/usr/share/bash-completion/completions @@ -87,6 +93,9 @@ install: build mkdir -p $(DESTDIR)/etc/logrotate.d cp -r share/logrotate/* $(DESTDIR)/etc/logrotate.d + mkdir -p $(DESTDIR)/etc/needrestart/conf.d + cp -r share/needrestart/* $(DESTDIR)/etc/needrestart/conf.d + mkdir -p $(DESTDIR)/etc/sysctl.d cp -r share/procps/* $(DESTDIR)/etc/sysctl.d @@ -112,23 +121,26 @@ install: build ln -sf container-shell.1 $(DESTDIR)/usr/share/man/man1/cntsh.1 ln -sf container $(DESTDIR)/usr/share/bash-completion/completions/cnt - ln -sf debconf $(DESTDIR)/usr/share/$(SOFTWARE)/scripts/debian - ln -sf debconf.d $(DESTDIR)/usr/share/$(SOFTWARE)/scripts/debian.d - ln -sf container-create-debconf.1 $(DESTDIR)/usr/share/man/man1/container-create-debian.1 - ln -sf debconf $(DESTDIR)/usr/share/$(SOFTWARE)/scripts/progress-linux - ln -sf debconf.d $(DESTDIR)/usr/share/$(SOFTWARE)/scripts/progress-linux.d - ln -sf container-create-debconf.1 $(DESTDIR)/usr/share/man/man1/container-create-progress-linux.1 - ln -sf debootstrap $(DESTDIR)/usr/share/$(SOFTWARE)/scripts/mmdebstrap - ln -sf container-create-debootstrap.1 $(DESTDIR)/usr/share/man/man1/container-create-mmdebstrap.1 - - ln -sf create $(DESTDIR)/usr/libexec/$(PROGRAM)/cr + ln -sf debconf $(DESTDIR)/usr/share/$(SOFTWARE)/build-scripts/debian + ln -sf debconf.d $(DESTDIR)/usr/share/$(SOFTWARE)/build-scripts/debian.d + ln -sf container-build-debconf.1 $(DESTDIR)/usr/share/man/man1/container-build-debian.1 + ln -sf debconf $(DESTDIR)/usr/share/$(SOFTWARE)/build-scripts/progress-linux + ln -sf debconf.d $(DESTDIR)/usr/share/$(SOFTWARE)/build-scripts/progress-linux.d + ln -sf container-build-debconf.1 $(DESTDIR)/usr/share/man/man1/container-build-progress-linux.1 + ln -sf debootstrap $(DESTDIR)/usr/share/$(SOFTWARE)/build-scripts/mmdebstrap + ln -sf container-build-debootstrap.1 $(DESTDIR)/usr/share/man/man1/container-build-mmdebstrap.1 + + ln -sf build $(DESTDIR)/usr/libexec/$(PROGRAM)/b + ln -sf get $(DESTDIR)/usr/libexec/$(PROGRAM)/g ln -sf list $(DESTDIR)/usr/libexec/$(PROGRAM)/ls ln -sf move $(DESTDIR)/usr/libexec/$(PROGRAM)/mv ln -sf remove $(DESTDIR)/usr/libexec/$(PROGRAM)/rm + ln -sf rebuild $(DESTDIR)/usr/libexec/$(PROGRAM)/rb ln -sf restart $(DESTDIR)/usr/libexec/$(PROGRAM)/rs ln -sf start $(DESTDIR)/usr/libexec/$(PROGRAM)/s ln -sf status $(DESTDIR)/usr/libexec/$(PROGRAM)/st ln -sf stop $(DESTDIR)/usr/libexec/$(PROGRAM)/t + ln -sf update $(DESTDIR)/usr/libexec/$(PROGRAM)/u mkdir -p $(DESTDIR)/lib/systemd/system cp -r share/systemd/* $(DESTDIR)/lib/systemd/system @@ -157,9 +169,9 @@ uninstall: rm -f $(DESTDIR)/usr/bin/cntsh rm -f $(DESTDIR)/usr/share/man/man1/cntsh.1 rm -f $(DESTDIR)/usr/share/bash-completion/completions/cnt - rm -f $(DESTDIR)/usr/share/man/man1/container-create-debian.1 - rm -f $(DESTDIR)/usr/share/man/man1/container-create-progress-linux.1 - rm -f $(DESTDIR)/usr/share/man/man1/container-create-mmdebstrap.1 + rm -f $(DESTDIR)/usr/share/man/man1/container-build-debian.1 + rm -f $(DESTDIR)/usr/share/man/man1/container-build-progress-linux.1 + rm -f $(DESTDIR)/usr/share/man/man1/container-build-mmdebstrap.1 for FILE in share/sudo/*; \ do \ @@ -171,6 +183,11 @@ uninstall: rm -f $(DESTDIR)/etc/sysctl.d/$$(basename $${FILE}); \ done + for FILE in share/needrestart/*; \ + do \ + rm -f $(DESTDIR)/etc/needrestart/conf.d/$$(basename $${FILE}); \ + done + for FILE in share/logrotate/*; \ do \ rm -f $(DESTDIR)/etc/logrotate.d/$$(basename $${FILE}); \ @@ -199,6 +216,8 @@ uninstall: rmdir --ignore-fail-on-non-empty --parents $(DESTDIR)/etc/$(SOFTWARE)/config || true rmdir --ignore-fail-on-non-empty --parents $(DESTDIR)/etc/$(SOFTWARE)/debconf || true rmdir --ignore-fail-on-non-empty --parents $(DESTDIR)/etc/$(SOFTWARE)/hooks || true + rmdir --ignore-fail-on-non-empty --parents $(DESTDIR)/etc/$(SOFTWARE)/keys || true + rmdir --ignore-fail-on-non-empty --parents $(DESTDIR)/etc/$(SOFTWARE)/container.conf.d || true rmdir --ignore-fail-on-non-empty --parents $(DESTDIR)/etc/$(SOFTWARE) || true rmdir --ignore-fail-on-non-empty --parents $(DESTDIR)/etc || true @@ -209,6 +228,28 @@ clean: rm -f README.txt -distclean: +distclean: clean + rm -rf $(SOFTWARE)-$(VERSION) reinstall: uninstall install + +release: distclean + git commit -a -s -S -m 'Releasing version $(VERSION).' || true + git tag -s -m 'Tagging version $(VERSION).' v$(VERSION) || true + + mkdir -p $(SOFTWARE)-$(VERSION) + find . -mindepth 1 -maxdepth 1 -and -not -name ".git*" -and -not -name debian -and -not -name $(SOFTWARE)-$(VERSION) -exec cp \-a {} $(SOFTWARE)-$(VERSION) \; + + for FORMAT in xz lzip; \ + do \ + EXTENSION=$$(echo $${FORMAT} | cut -b-2); \ + tar --$${FORMAT} -cf ../$(SOFTWARE)-$(VERSION).tar.$${EXTENSION} $(SOFTWARE)-$(VERSION); \ + sha512sum ../$(SOFTWARE)-$(VERSION).tar.$${EXTENSION} > ../$(SOFTWARE)-$(VERSION).tar.$${EXTENSION}.sha512; \ + gpg --default-key 0xB62C61A10B93195F --armor -b ../$(SOFTWARE)-$(VERSION).tar.$${EXTENSION}; \ + mv ../$(SOFTWARE)-$(VERSION).tar.$${EXTENSION}.asc ../$(SOFTWARE)-$(VERSION).tar.$${EXTENSION}.sig; \ + done + + rm -rf $(SOFTWARE)-$(VERSION) + +upload: + scp ../$(SOFTWARE)-$(VERSION).* get.open-infrastructure.net:/srv/get.open-infrastructure.net/software/$(SOFTWARE)/upstream |