From ddb9b7ea814588080d3e59a8f6dd8e99f96df491 Mon Sep 17 00:00:00 2001
From: Amin Bandali <amin.bandali@savoirfairelinux.com>
Date: Tue, 11 May 2021 13:37:26 -0400
Subject: [PATCH] debian: build and package our own Qt and client-qt for Debian
 Testing

Change-Id: I33f13231006e568a8de9b0e067db4aaf6f15739c
---
 docker/Dockerfile_debian_testing         | 33 ++++++++++++++++++++++++
 docker/Dockerfile_debian_testing_qt      | 26 +++++++++++++++++++
 packaging/rules/debian/jami-all.postinst |  2 ++
 scripts/make-packaging-target.py         | 11 ++++++++
 4 files changed, 72 insertions(+)
 create mode 100644 docker/Dockerfile_debian_testing
 create mode 100644 docker/Dockerfile_debian_testing_qt

diff --git a/docker/Dockerfile_debian_testing b/docker/Dockerfile_debian_testing
new file mode 100644
index 00000000..9ddb8efe
--- /dev/null
+++ b/docker/Dockerfile_debian_testing
@@ -0,0 +1,33 @@
+FROM debian:testing
+
+ENV DEBIAN_FRONTEND=noninteractive
+
+RUN apt-get clean
+RUN apt-get update && \
+    apt-get install -y -o Acquire::Retries=10 \
+        ca-certificates \
+        devscripts \
+        dirmngr \
+        gnupg \
+        wget
+
+RUN wget -O - https://dl.jami.net/public-key.gpg | \
+    tee /usr/share/keyrings/jami-archive-keyring.gpg > /dev/null
+RUN sh -c "echo 'deb [signed-by=/usr/share/keyrings/jami-archive-keyring.gpg] https://dl.jami.net/nightly/debian_testing_qt/ jami main' > /etc/apt/sources.list.d/libqt-jami.list"
+
+# add deb-src entries (needed for next step)
+RUN sed -n '/^deb\s/s//deb-src /p' /etc/apt/sources.list > /etc/apt/sources.list.d/deb-src.list
+RUN apt-get clean && apt-get update
+
+COPY packaging/rules/debian/* /tmp/builddeps/debian/
+RUN cd /tmp/builddeps && \
+    apt-get update; \
+    mk-build-deps \
+        --remove --install \
+        --tool "apt-get -y --no-install-recommends -o Acquire::Retries=10" \
+        "debian/control"; \
+    cd / && rm -rf /tmp/builddeps
+
+ADD scripts/build-package-debian.sh /opt/build-package-debian.sh
+
+CMD /opt/build-package-debian.sh
diff --git a/docker/Dockerfile_debian_testing_qt b/docker/Dockerfile_debian_testing_qt
new file mode 100644
index 00000000..e06d03da
--- /dev/null
+++ b/docker/Dockerfile_debian_testing_qt
@@ -0,0 +1,26 @@
+FROM debian:testing
+
+ENV DEBIAN_FRONTEND=noninteractive
+
+RUN apt-get clean
+RUN apt-get update && \
+    apt-get install -y -o Acquire::Retries=10 \
+        devscripts \
+        wget
+
+# add/enable src repos (needed for next step)
+RUN sed -n '/^deb\s/s//deb-src /p' /etc/apt/sources.list > /etc/apt/sources.list.d/deb-src.list
+
+RUN apt-get clean && apt-get update
+COPY packaging/rules/debian-qt/* /tmp/builddeps/debian/
+RUN cd /tmp/builddeps && \
+    apt-get update; \
+    mk-build-deps \
+        --remove --install \
+        --tool "apt-get -y --no-install-recommends -o Acquire::Retries=10" \
+        "debian/control"; \
+    cd / && rm -rf /tmp/builddeps
+
+ADD scripts/build-package-debian-qt.sh /opt/build-package-debian-qt.sh
+
+CMD /opt/build-package-debian-qt.sh
diff --git a/packaging/rules/debian/jami-all.postinst b/packaging/rules/debian/jami-all.postinst
index b2ce6a31..6f49cce2 100755
--- a/packaging/rules/debian/jami-all.postinst
+++ b/packaging/rules/debian/jami-all.postinst
@@ -106,6 +106,8 @@ if [ -f /etc/os-release ]; then
         ENDTAG="ubuntu_20.10"
     elif [ "${UBUNTU_CODENAME}" = "hirsute" ] || [ "${ID}_${VERSION_ID}" = "ubuntu_21.04" ]; then
         ENDTAG="ubuntu_21.04"
+    elif [ "${ID}" = "debian" ] && [ "$(command -v lsb_release)" ] && [ "$(lsb_release -rs)" = "testing" ]; then
+        ENDTAG="debian_testing"
     else
         # Distribution is not supported. Don't provide automatic updates.
         CAN_ADD_DEB_SOURCE=false
diff --git a/scripts/make-packaging-target.py b/scripts/make-packaging-target.py
index 63d8bdd7..8c9b63e5 100755
--- a/scripts/make-packaging-target.py
+++ b/scripts/make-packaging-target.py
@@ -153,6 +153,17 @@ def run_generate_all(parsed_args):
             "options": DPKG_BASED_SYSTEMS_DOCKER_RUN_OPTIONS_QT,
             "version": "$(DEBIAN_QT_VERSION)",
         },
+        {
+            "distribution": "debian_testing",
+            "output_file": "$(DEBIAN_DSC_FILENAME)",
+            "options": "-e QT_JAMI_PREFIX=$(QT_JAMI_PREFIX) --privileged --security-opt apparmor=docker-default",
+        },
+        {
+            "distribution": "debian_testing_qt",
+            "output_file": "$(DEBIAN_QT_DSC_FILENAME)",
+            "options": DPKG_BASED_SYSTEMS_DOCKER_RUN_OPTIONS_QT,
+            "version": "$(DEBIAN_QT_VERSION)",
+        },
         # Raspbian
         {
             "distribution": "raspbian_10_armhf",
-- 
GitLab