From 94aaa833435cf41b56d7743c1aa0612385c0cd86 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?S=C3=A9bastien=20Blin?=
 <sebastien.blin@savoirfairelinux.com>
Date: Fri, 19 Apr 2019 14:04:38 -0400
Subject: [PATCH] packaging: prepare packaging for Ubuntu 19.04

Change-Id: I4953f10bce3bbecd960dbaa8edd8928992af7d2f
Gitlab: #598
---
 Makefile.packaging                            |  4 ++
 docker/Dockerfile_ubuntu_19.04                | 71 +++++++++++++++++++
 docker/Dockerfile_ubuntu_19.04_i386           | 71 +++++++++++++++++++
 .../rules/debian-one-click-install/rules      |  3 +
 packaging/rules/debian/rules                  |  3 +
 scripts/build-package-debian.sh               |  2 +-
 scripts/make-packaging-target.py              | 28 ++++++++
 7 files changed, 181 insertions(+), 1 deletion(-)
 create mode 100644 docker/Dockerfile_ubuntu_19.04
 create mode 100644 docker/Dockerfile_ubuntu_19.04_i386

diff --git a/Makefile.packaging b/Makefile.packaging
index bfd46d1d..be397929 100644
--- a/Makefile.packaging
+++ b/Makefile.packaging
@@ -91,6 +91,10 @@ package-all: package-debian_9 \
              package-ubuntu_18.10_i386 \
              package-ubuntu_18.10_oci \
              package-ubuntu_18.10_i386_oci \
+             package-ubuntu_19.04 \
+             package-ubuntu_19.04_i386 \
+             package-ubuntu_19.04_oci \
+             package-ubuntu_19.04_i386_oci \
              package-fedora_27 \
              package-fedora_27_i386 \
              package-fedora_28 \
diff --git a/docker/Dockerfile_ubuntu_19.04 b/docker/Dockerfile_ubuntu_19.04
new file mode 100644
index 00000000..3cbad041
--- /dev/null
+++ b/docker/Dockerfile_ubuntu_19.04
@@ -0,0 +1,71 @@
+FROM ubuntu:19.04
+
+ENV DEBIAN_FRONTEND noninteractive
+
+RUN apt-get clean
+RUN apt-get update && \
+    apt-get install -y devscripts equivs
+
+# Speed up mk-build-deps
+RUN apt-get clean
+RUN apt-get update && \
+    apt-get install -y -o Acquire::Retries=10 \
+        git \
+        autoconf \
+        automake \
+        autopoint \
+        cmake \
+        libtool \
+        libdbus-1-dev \
+        libdbus-c++-dev \
+        libupnp-dev \
+        libgnutls28-dev \
+        libargon2-0-dev \
+        libebook1.2-dev \
+        libcanberra-gtk3-dev \
+        libclutter-gtk-1.0-dev \
+        libclutter-1.0-dev \
+        libglib2.0-dev \
+        libgtk-3-dev \
+        libnotify-dev \
+        qtbase5-dev \
+        qttools5-dev \
+        qttools5-dev-tools \
+        yasm \
+        nasm \
+        autotools-dev \
+        gettext \
+        libpulse-dev \
+        libasound2-dev \
+        libexpat1-dev \
+        libpcre3-dev \
+        libyaml-cpp-dev \
+        libboost-dev \
+        libxext-dev \
+        libxfixes-dev \
+        libspeex-dev \
+        libspeexdsp-dev \
+        uuid-dev \
+        libavcodec-dev \
+        libavutil-dev \
+        libavformat-dev \
+        libswscale-dev \
+        libavdevice-dev \
+        libopus-dev \
+        libudev-dev \
+        libgsm1-dev \
+        libjsoncpp-dev \
+        libmsgpack-dev \
+        libnatpmp-dev \
+        libayatana-appindicator3-dev \
+        libqrencode-dev \
+        libnm-dev \
+        libwebkit2gtk-4.0-dev \
+        libcrypto++-dev \
+        libva-dev \
+        libvdpau-dev \
+        libssl-dev
+
+ADD scripts/build-package-debian.sh /opt/build-package-debian.sh
+
+CMD /opt/build-package-debian.sh
diff --git a/docker/Dockerfile_ubuntu_19.04_i386 b/docker/Dockerfile_ubuntu_19.04_i386
new file mode 100644
index 00000000..2bc1f302
--- /dev/null
+++ b/docker/Dockerfile_ubuntu_19.04_i386
@@ -0,0 +1,71 @@
+FROM i386/ubuntu:19.04
+
+ENV DEBIAN_FRONTEND noninteractive
+
+RUN apt-get clean
+RUN apt-get update && \
+    apt-get install -y devscripts equivs
+
+# Speed up mk-build-deps
+RUN apt-get clean
+RUN apt-get update && \
+    apt-get install -y -o Acquire::Retries=10 \
+        git \
+        autoconf \
+        automake \
+        autopoint \
+        cmake \
+        libtool \
+        libdbus-1-dev \
+        libdbus-c++-dev \
+        libupnp-dev \
+        libgnutls28-dev \
+        libargon2-0-dev \
+        libebook1.2-dev \
+        libcanberra-gtk3-dev \
+        libclutter-gtk-1.0-dev \
+        libclutter-1.0-dev \
+        libglib2.0-dev \
+        libgtk-3-dev \
+        libnotify-dev \
+        qtbase5-dev \
+        qttools5-dev \
+        qttools5-dev-tools \
+        yasm \
+        nasm \
+        autotools-dev \
+        gettext \
+        libpulse-dev \
+        libasound2-dev \
+        libexpat1-dev \
+        libpcre3-dev \
+        libyaml-cpp-dev \
+        libboost-dev \
+        libxext-dev \
+        libxfixes-dev \
+        libspeex-dev \
+        libspeexdsp-dev \
+        uuid-dev \
+        libavcodec-dev \
+        libavutil-dev \
+        libavformat-dev \
+        libswscale-dev \
+        libavdevice-dev \
+        libopus-dev \
+        libudev-dev \
+        libgsm1-dev \
+        libjsoncpp-dev \
+        libmsgpack-dev \
+        libnatpmp-dev \
+        libayatana-appindicator3-dev \
+        libqrencode-dev \
+        libnm-dev \
+        libwebkit2gtk-4.0-dev \
+        libcrypto++-dev \
+        libva-dev \
+        libvdpau-dev \
+        libssl-dev
+
+ADD scripts/build-package-debian.sh /opt/build-package-debian.sh
+
+CMD /opt/build-package-debian.sh
diff --git a/packaging/rules/debian-one-click-install/rules b/packaging/rules/debian-one-click-install/rules
index a4690171..a57b5bd8 100755
--- a/packaging/rules/debian-one-click-install/rules
+++ b/packaging/rules/debian-one-click-install/rules
@@ -179,6 +179,9 @@ get-orig-source:
 	rm ${tmpdir}/*.tar.gz
 
 	# Unpack all of the orig tarballs into tarballs-unpacked
+	if [ -d "${tmpdir}/ring/" ]; then \
+		mv ${tmpdir}/ring/ ${tmpdir}/ring-project/; \
+	fi
 	mkdir ${tmpdir}/ring-project/daemon/contrib/tarballs-unpacked
 	for i in `find ${tmpdir}/ring-project/daemon/contrib/tarballs/ -name "*.tar.*"`; do \
 		projectname=`basename $$i` && \
diff --git a/packaging/rules/debian/rules b/packaging/rules/debian/rules
index 31ce2d1e..7b289ef4 100755
--- a/packaging/rules/debian/rules
+++ b/packaging/rules/debian/rules
@@ -208,6 +208,9 @@ get-orig-source:
 	rm ${tmpdir}/*.tar.gz
 
 	# Unpack all of the orig tarballs into tarballs-unpacked
+	if [ -d "${tmpdir}/ring/" ]; then \
+		mv ${tmpdir}/ring/ ${tmpdir}/ring-project/; \
+	fi
 	mkdir ${tmpdir}/ring-project/daemon/contrib/tarballs-unpacked
 	for i in `find ${tmpdir}/ring-project/daemon/contrib/tarballs/ -name "*.tar.*"`; do \
 		projectname=`basename $$i` && \
diff --git a/scripts/build-package-debian.sh b/scripts/build-package-debian.sh
index 6f2bebd2..699baaef 100755
--- a/scripts/build-package-debian.sh
+++ b/scripts/build-package-debian.sh
@@ -52,7 +52,7 @@ DEBEMAIL="The Ring project <ring@gnu.org>" dch --create --package ring --newvers
 DEBEMAIL="The Ring project <ring@gnu.org>" dch --release --distribution "unstable" debian/changelog
 
 # create orig tarball
-mk-origtargz ${RELEASE_TARBALL_FILENAME}
+mk-origtargz --compression gzip ${RELEASE_TARBALL_FILENAME}
 rm --verbose ${RELEASE_TARBALL_FILENAME}
 
 GET_ORIG_SOURCE_OVERRIDE_USCAN_TARBALL=$(readlink -f ../ring_*.orig.tar.gz) debian/rules get-orig-source
diff --git a/scripts/make-packaging-target.py b/scripts/make-packaging-target.py
index c05f3be5..aeccc83f 100755
--- a/scripts/make-packaging-target.py
+++ b/scripts/make-packaging-target.py
@@ -206,6 +206,34 @@ def run_generate_all(parsed_args):
             "options": "-e OVERRIDE_PACKAGING_DIR=$(DEBIAN_OCI_PKG_DIR) --privileged --security-opt apparmor=docker-default",
             "version": "$(DEBIAN_OCI_VERSION)",
         },
+        {
+            "distribution": "ubuntu_19.04",
+            "debian_packaging_override": "",
+            "output_file": "$(DEBIAN_DSC_FILENAME)",
+            "options": "--privileged --security-opt apparmor=docker-default",
+        },
+        {
+            "distribution": "ubuntu_19.04_i386",
+            "debian_packaging_override": "",
+            "output_file": "$(DEBIAN_DSC_FILENAME)",
+            "options": "--privileged --security-opt apparmor=docker-default",
+        },
+        {
+            "distribution": "ubuntu_19.04_oci",
+            "docker_image": "ubuntu_19.04",
+            "debian_packaging_override": "",
+            "output_file": "$(DEBIAN_OCI_DSC_FILENAME)",
+            "options": "-e OVERRIDE_PACKAGING_DIR=$(DEBIAN_OCI_PKG_DIR) --privileged --security-opt apparmor=docker-default",
+            "version": "$(DEBIAN_OCI_VERSION)",
+        },
+        {
+            "distribution": "ubuntu_19.04_i386_oci",
+            "docker_image": "ubuntu_19.04_i386",
+            "debian_packaging_override": "",
+            "output_file": "$(DEBIAN_OCI_DSC_FILENAME)",
+            "options": "-e OVERRIDE_PACKAGING_DIR=$(DEBIAN_OCI_PKG_DIR) --privileged --security-opt apparmor=docker-default",
+            "version": "$(DEBIAN_OCI_VERSION)",
+        },
         # Fedora
         {
             "distribution": "fedora_27",
-- 
GitLab