From 8a61d5f57507596fdaafa1544f911d1c2ec7f434 Mon Sep 17 00:00:00 2001
From: Janne Koschinski <janne@kuschku.de>
Date: Mon, 5 Aug 2019 13:10:11 +0200
Subject: [PATCH] allow building different quassel versions

---
 Dockerfile | 13 ++++++++++---
 Makefile   | 46 +++++++++++++++++++++++++++++++++-------------
 build.sh   |  4 ++++
 3 files changed, 47 insertions(+), 16 deletions(-)
 create mode 100755 build.sh

diff --git a/Dockerfile b/Dockerfile
index 8a9ff02..f4e73cc 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -17,16 +17,22 @@ RUN apk add --no-cache \
   openldap-dev \
   ninja \
   paxmark \
+  boost-dev \
   qt5-qtbase-dev \
   qt5-qtscript-dev \
   qt5-qtbase-postgresql \
   qt5-qtbase-sqlite
 
+ARG QUASSEL_VERSION=""
+ARG QUASSEL_BRANCH="master"
+
 # setup repo
 RUN mkdir /quassel && \
-    git clone -b 0.13 --single-branch https://github.com/quassel/quassel /quassel/src && \
+    git clone -b "$QUASSEL_BRANCH" --single-branch https://github.com/quassel/quassel /quassel/src && \
     cd /quassel/src && \
-    git checkout 0.13.1
+    if [ ! -z "$QUASSEL_VERSION"]; then \
+      git checkout $QUASSEL_VERSION; \
+    fi
 
 # generate build files
 RUN mkdir /quassel/build && \
@@ -56,7 +62,8 @@ FROM $BASE
 RUN apk add --no-cache \
   icu-libs \
   libressl \
-  openldap \
+  libldap \
+  boost \
   qt5-qtbase \
   qt5-qtscript \
   qt5-qtbase-postgresql \
diff --git a/Makefile b/Makefile
index ff049f7..9750dd9 100644
--- a/Makefile
+++ b/Makefile
@@ -1,6 +1,11 @@
 NAME=k8r.eu/justjanne/quassel-docker
-QUASSEL_VERSION=v0.13.1
 ALPINE_VERSION=3.10
+QUASSEL_VERSION=
+ifeq ($(strip $(QUASSEL_VERSION)),)
+IMAGE_VERSION=trunk
+else
+IMAGE_VERSION=v$(QUASSEL_VERSION)
+endif
 
 .PHONY: all
 all: push
@@ -10,33 +15,48 @@ build: build_x86 build_aarch64 build_armhf
 
 .PHONY: build_x86
 build_x86: Dockerfile
-	docker build -t $(NAME):$(QUASSEL_VERSION) --build-arg BASE=alpine:$(ALPINE_VERSION) .
-	docker tag $(NAME):$(QUASSEL_VERSION) $(NAME):latest
+	docker build \
+		-t $(NAME):$(IMAGE_VERSION) \
+		--build-arg BASE=alpine:$(ALPINE_VERSION) \
+		--build-arg QUASSEL_VERSION=$(QUASSEL_VERSION) \
+		--build-arg QUASSEL_BRANCH=$(QUASSEL_BRANCH) \
+		.
+	if [ ! -z "$(QUASSEL_VERSION)" ]; then docker tag $(NAME):$(IMAGE_VERSION) $(NAME):latest; fi
 
 .PHONY: build_aarch64
 build_aarch64: Dockerfile
-	docker build -t $(NAME):$(QUASSEL_VERSION)-aarch64 --build-arg BASE=multiarch/alpine:aarch64-v$(ALPINE_VERSION) .
-	docker tag $(NAME):$(QUASSEL_VERSION)-aarch64 $(NAME):aarch64
+	docker build \
+		-t $(NAME):$(IMAGE_VERSION)-aarch64 \
+		--build-arg BASE=multiarch/alpine:aarch64-v$(ALPINE_VERSION) \
+		--build-arg QUASSEL_VERSION=$(QUASSEL_VERSION) \
+		--build-arg QUASSEL_BRANCH=$(QUASSEL_BRANCH) \
+		.
+	if [ ! -z "$(QUASSEL_VERSION)" ]; then docker tag $(NAME):$(IMAGE_VERSION)-aarch64 $(NAME):aarch64; fi
 
 .PHONY: build_armhf
 build_armhf: Dockerfile
-	docker build -t $(NAME):$(QUASSEL_VERSION)-armhf --build-arg BASE=multiarch/alpine:armhf-v$(ALPINE_VERSION) .
-	docker tag $(NAME):$(QUASSEL_VERSION)-armhf $(NAME):armhf
+	docker build \
+		-t $(NAME):$(IMAGE_VERSION)-armhf \
+		--build-arg BASE=multiarch/alpine:armhf-v$(ALPINE_VERSION) \
+		--build-arg QUASSEL_VERSION=$(QUASSEL_VERSION) \
+		--build-arg QUASSEL_BRANCH=$(QUASSEL_BRANCH) \
+		.
+	if [ ! -z "$(QUASSEL_VERSION)" ]; then docker tag $(NAME):$(IMAGE_VERSION)-armhf $(NAME):armhf; fi
 
 .PHONY: push
 push: push_x86 push_aarch64 push_armhf
 
 .PHONY: push_x86
 push_x86: build_x86
-	docker push $(NAME):$(QUASSEL_VERSION)
-	docker push $(NAME):latest
+	docker push $(NAME):$(IMAGE_VERSION)
+	if [ ! -z "$(QUASSEL_VERSION)" ]; then docker push $(NAME):latest; fi
 
 .PHONY: push_aarch64
 push_aarch64: build_aarch64
-	docker push $(NAME):$(QUASSEL_VERSION)-aarch64
-	docker push $(NAME):aarch64
+	docker push $(NAME):$(IMAGE_VERSION)-aarch64
+	if [ ! -z "$(QUASSEL_VERSION)" ]; then docker push $(NAME):aarch64; fi
 
 .PHONY: push_armhf
 push_armhf: build_armhf
-	docker push $(NAME):$(QUASSEL_VERSION)-armhf
-	docker push $(NAME):armhf
+	docker push $(NAME):$(IMAGE_VERSION)-armhf
+	if [ ! -z "$(QUASSEL_VERSION)" ]; then docker push $(NAME):armhf; fi
diff --git a/build.sh b/build.sh
new file mode 100755
index 0000000..2468cab
--- /dev/null
+++ b/build.sh
@@ -0,0 +1,4 @@
+#!/bin/sh
+
+make QUASSEL_BRANCH=0.13 QUASSEL_VERSION=0.13.1
+make QUASSEL_BRANCH=master
-- 
GitLab