From f925996d4a3962a122a8c2e61813db68b0e06929 Mon Sep 17 00:00:00 2001 From: Eli Uriegas Date: Thu, 15 Mar 2018 23:31:46 +0000 Subject: [PATCH 1/2] Move same parts to common variables There was a lot of repeated parts in this Makefile, I moved them to a common variable so that if / when we decide to change how things are run then it's easy to do so. Signed-off-by: Eli Uriegas Upstream-commit: c869c9fcf510d1a6c4e25c1a14ea6cb0bb3e6aa4 Component: packaging --- components/packaging/deb/Makefile | 121 ++++++++---------------------- 1 file changed, 30 insertions(+), 91 deletions(-) diff --git a/components/packaging/deb/Makefile b/components/packaging/deb/Makefile index d42b1b8bec..fc1910fc61 100644 --- a/components/packaging/deb/Makefile +++ b/components/packaging/deb/Makefile @@ -4,10 +4,21 @@ ENGINE_DIR:=$(CURDIR)/../../engine CLI_DIR:=$(CURDIR)/../../cli GITCOMMIT?=$(shell cd $(ENGINE_DIR) && git rev-parse --short HEAD) VERSION?=0.0.0-dev -DEB_VERSION=$(shell ./gen-deb-ver $(ENGINE_DIR) $(VERSION)) +DEB_VERSION=$(shell ./gen-deb-ver $(ENGINE_DIR) "$(VERSION)") DOCKER_EXPERIMENTAL:=0 CHOWN:=docker run --rm -v $(CURDIR):/v -w /v alpine chown +BUILD=docker build -t debbuild-$@/$(ARCH) -f $(CURDIR)/$@/Dockerfile.$(ARCH) . +RUN=docker run --rm -i \ + -e DEB_VERSION=$(DEB_VERSION) \ + -e VERSION=$(VERSION) \ + -e DOCKER_GITCOMMIT=$(GITCOMMIT) \ + -v $(CURDIR)/debbuild/$@:/build \ + -v $(ENGINE_DIR):/engine \ + -v $(CLI_DIR):/cli \ + -v $(CURDIR)/systemd:/root/build-deb/systemd \ + debbuild-$@/$(ARCH) + .PHONY: help help: ## show make targets @awk 'BEGIN {FS = ":.*?## "} /^[a-zA-Z_-]+:.*?## / {sub("\\\\n",sprintf("\n%22c"," "), $$2);printf " \033[36m%-20s\033[0m %s\n", $$1, $$2}' $(MAKEFILE_LIST) @@ -31,126 +42,54 @@ raspbian: raspbian-stretch debian-jessie ## build all raspbian deb packages .PHONY: ubuntu-xenial ubuntu-xenial: ## build ubuntu xenial deb packages - docker build -t debbuild-$@/$(ARCH) -f $(CURDIR)/$@/Dockerfile.$(ARCH) . - docker run --rm -i \ - -e DEB_VERSION=$(DEB_VERSION) \ - -e VERSION=$(VERSION) \ - -e DOCKER_GITCOMMIT=$(GITCOMMIT) \ - -v $(CURDIR)/debbuild/$@:/build \ - -v $(ENGINE_DIR):/engine \ - -v $(CLI_DIR):/cli \ - -v $(CURDIR)/systemd:/root/build-deb/systemd \ - debbuild-$@/$(ARCH) + $(BUILD) + $(RUN) $(CHOWN) -R $(shell id -u):$(shell id -g) debbuild/$@ .PHONY: ubuntu-trusty ubuntu-trusty: ## build ubuntu trusty deb packages - docker build -t debbuild-$@/$(ARCH) -f $(CURDIR)/$@/Dockerfile.$(ARCH) . - docker run --rm -i \ - -e DEB_VERSION=$(DEB_VERSION) \ - -e VERSION=$(VERSION) \ - -e DOCKER_GITCOMMIT=$(GITCOMMIT) \ - -v $(CURDIR)/debbuild/$@:/build \ - -v $(ENGINE_DIR):/engine \ - -v $(CLI_DIR):/cli \ - -v $(CURDIR)/systemd:/root/build-deb/systemd \ - debbuild-$@/$(ARCH) + $(BUILD) + $(RUN) $(CHOWN) -R $(shell id -u):$(shell id -g) debbuild/$@ .PHONY: ubuntu-artful ubuntu-artful: ## build ubuntu artful deb packages - docker build -t debbuild-$@/$(ARCH) -f $(CURDIR)/$@/Dockerfile.$(ARCH) . - docker run --rm -i \ - -e DEB_VERSION=$(DEB_VERSION) \ - -e VERSION=$(VERSION) \ - -e DOCKER_GITCOMMIT=$(GITCOMMIT) \ - -v $(CURDIR)/debbuild/$@:/build \ - -v $(ENGINE_DIR):/engine \ - -v $(CLI_DIR):/cli \ - -v $(CURDIR)/systemd:/root/build-deb/systemd \ - debbuild-$@/$(ARCH) + $(BUILD) + $(RUN) $(CHOWN) -R $(shell id -u):$(shell id -g) debbuild/$@ .PHONY: debian-buster debian-buster: ## build debian buster deb packages - docker build -t debbuild-$@/$(ARCH) -f $(CURDIR)/$@/Dockerfile.$(ARCH) . - docker run --rm -i \ - -e DEB_VERSION=$(DEB_VERSION) \ - -e VERSION=$(VERSION) \ - -e DOCKER_GITCOMMIT=$(GITCOMMIT) \ - -v $(CURDIR)/debbuild/$@:/build \ - -v $(ENGINE_DIR):/engine \ - -v $(CLI_DIR):/cli \ - -v $(CURDIR)/systemd:/root/build-deb/systemd \ - debbuild-$@/$(ARCH) + $(BUILD) + $(RUN) $(CHOWN) -R $(shell id -u):$(shell id -g) debbuild/$@ .PHONY: debian-jessie debian-jessie: ## build debian jessie deb packages - docker build -t debbuild-$@/$(ARCH) -f $(CURDIR)/$@/Dockerfile.$(ARCH) . - docker run --rm -i \ - -e DEB_VERSION=$(DEB_VERSION) \ - -e VERSION=$(VERSION) \ - -e DOCKER_GITCOMMIT=$(GITCOMMIT) \ - -v $(CURDIR)/debbuild/$@:/build \ - -v $(ENGINE_DIR):/engine \ - -v $(CLI_DIR):/cli \ - -v $(CURDIR)/systemd:/root/build-deb/systemd \ - debbuild-$@/$(ARCH) + $(BUILD) + $(RUN) $(CHOWN) -R $(shell id -u):$(shell id -g) debbuild/$@ .PHONY: debian-stretch debian-stretch: ## build debian stretch deb packages - docker build -t debbuild-$@/$(ARCH) -f $(CURDIR)/$@/Dockerfile.$(ARCH) . - docker run --rm -i \ - -e DEB_VERSION=$(DEB_VERSION) \ - -e VERSION=$(VERSION) \ - -e DOCKER_GITCOMMIT=$(GITCOMMIT) \ - -v $(CURDIR)/debbuild/$@:/build \ - -v $(ENGINE_DIR):/engine \ - -v $(CLI_DIR):/cli \ - -v $(CURDIR)/systemd:/root/build-deb/systemd \ - debbuild-$@/$(ARCH) + $(BUILD) + $(RUN) $(CHOWN) -R $(shell id -u):$(shell id -g) debbuild/$@ .PHONY: debian-wheezy debian-wheezy: ## build debian wheezy deb packages - docker build -t debbuild-$@/$(ARCH) -f $(CURDIR)/$@/Dockerfile.$(ARCH) . - docker run --rm -i \ - -e DEB_VERSION=$(DEB_VERSION) \ - -e VERSION=$(VERSION) \ - -e DOCKER_GITCOMMIT=$(GITCOMMIT) \ - -v $(CURDIR)/debbuild/$@:/build \ - -v $(ENGINE_DIR):/engine \ - -v $(CLI_DIR):/cli \ - -v $(CURDIR)/systemd:/root/build-deb/systemd \ - debbuild-$@/$(ARCH) + $(BUILD) + $(RUN) $(CHOWN) -R $(shell id -u):$(shell id -g) debbuild/$@ .PHONY: raspbian-jessie raspbian-jessie: ## build raspbian jessie deb packages - docker build -t debbuild-$@/$(ARCH) -f $(CURDIR)/$@/Dockerfile.$(ARCH) . - docker run --rm -i \ - -e DEB_VERSION=$(DEB_VERSION) \ - -e VERSION=$(VERSION) \ - -e DOCKER_GITCOMMIT=$(GITCOMMIT) \ - -v $(CURDIR)/debbuild/$@:/build \ - -v $(ENGINE_DIR):/engine \ - -v $(CLI_DIR):/cli \ - -v $(CURDIR)/systemd:/root/build-deb/systemd \ - debbuild-$@/$(ARCH) + $(BUILD) + $(RUN) $(CHOWN) -R $(shell id -u):$(shell id -g) debbuild/$@ .PHONY: raspbian-stretch raspbian-stretch: ## build raspbian stretch deb packages - docker build -t debbuild-$@/$(ARCH) -f $(CURDIR)/$@/Dockerfile.$(ARCH) . - docker run --rm -i \ - -e DEB_VERSION=$(DEB_VERSION) \ - -e VERSION=$(VERSION) \ - -e DOCKER_GITCOMMIT=$(GITCOMMIT) \ - -v $(CURDIR)/debbuild/$@:/build \ - -v $(ENGINE_DIR):/engine \ - -v $(CLI_DIR):/cli \ - -v $(CURDIR)/systemd:/root/build-deb/systemd \ - debbuild-$@/$(ARCH) + $(BUILD) + $(RUN) $(CHOWN) -R $(shell id -u):$(shell id -g) debbuild/$@ From ca5f3626a13b9eebafe0982793b9e72a49c6b831 Mon Sep 17 00:00:00 2001 From: Eli Uriegas Date: Thu, 15 Mar 2018 23:33:02 +0000 Subject: [PATCH 2/2] Allow epoch to be changed by a make variable Signed-off-by: Eli Uriegas Upstream-commit: bf9bb7e74e692a829c2058dbcca81349d7d42005 Component: packaging --- components/packaging/deb/Makefile | 2 ++ components/packaging/deb/build-deb | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/components/packaging/deb/Makefile b/components/packaging/deb/Makefile index fc1910fc61..fdea8c8922 100644 --- a/components/packaging/deb/Makefile +++ b/components/packaging/deb/Makefile @@ -7,9 +7,11 @@ VERSION?=0.0.0-dev DEB_VERSION=$(shell ./gen-deb-ver $(ENGINE_DIR) "$(VERSION)") DOCKER_EXPERIMENTAL:=0 CHOWN:=docker run --rm -v $(CURDIR):/v -w /v alpine chown +EPOCH?= BUILD=docker build -t debbuild-$@/$(ARCH) -f $(CURDIR)/$@/Dockerfile.$(ARCH) . RUN=docker run --rm -i \ + -e EPOCH='$(EPOCH)' \ -e DEB_VERSION=$(DEB_VERSION) \ -e VERSION=$(VERSION) \ -e DOCKER_GITCOMMIT=$(GITCOMMIT) \ diff --git a/components/packaging/deb/build-deb b/components/packaging/deb/build-deb index a0c651952c..283c1114a6 100755 --- a/components/packaging/deb/build-deb +++ b/components/packaging/deb/build-deb @@ -2,6 +2,12 @@ set -x set -e +EPOCH="${EPOCH:-}" +EPOCH_SEP="" +if [[ ! -z "$EPOCH" ]]; then + EPOCH_SEP=":" +fi + if [[ -z "$DEB_VERSION" ]]; then echo "DEB_VERSION is required to build deb packages" exit 1 @@ -27,7 +33,7 @@ debMaintainer="$(awk -F ': ' '$1 == "Maintainer" { print $2; exit }' debian/cont debDate="$(date --rfc-2822)" cat > "debian/changelog" <<-EOF -$debSource (${DEB_VERSION}-0~${DISTRO}) $SUITE; urgency=low +$debSource (${EPOCH}${EPOCH_SEP}${DEB_VERSION}-0~${DISTRO}) $SUITE; urgency=low * Version: $VERSION -- $debMaintainer $debDate EOF