From ae1a2462e2430cb9d3c8a1b92090448ecba24d99 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Fran=C3=A7ois-Simon=20Fauteux-Chapleau?=
 <francois-simon.fauteux-chapleau@savoirfairelinux.com>
Date: Tue, 15 Apr 2025 11:09:43 -0400
Subject: [PATCH] packaging: add Ubuntu 25.04

Change-Id: I19a0d3e5de48a4e85822d5fcd00f83af0da16e1a
---
 extras/packaging/gnu-linux/Makefile           |  1 +
 .../gnu-linux/docker/Dockerfile_ubuntu_25.04  | 29 +++++++++++++++++++
 .../gnu-linux/rules/debian/jami-all.postinst  |  2 ++
 .../gnu-linux/scripts/build-package-debian.sh |  6 +++-
 4 files changed, 37 insertions(+), 1 deletion(-)
 create mode 100644 extras/packaging/gnu-linux/docker/Dockerfile_ubuntu_25.04

diff --git a/extras/packaging/gnu-linux/Makefile b/extras/packaging/gnu-linux/Makefile
index 65053d0f..54a52a67 100644
--- a/extras/packaging/gnu-linux/Makefile
+++ b/extras/packaging/gnu-linux/Makefile
@@ -167,6 +167,7 @@ DISTRIBUTIONS := \
 	ubuntu_22.04 \
 	ubuntu_24.04 \
 	ubuntu_24.10 \
+	ubuntu_25.04 \
 	fedora_37 \
 	fedora_38 \
 	fedora_39 \
diff --git a/extras/packaging/gnu-linux/docker/Dockerfile_ubuntu_25.04 b/extras/packaging/gnu-linux/docker/Dockerfile_ubuntu_25.04
new file mode 100644
index 00000000..9651e519
--- /dev/null
+++ b/extras/packaging/gnu-linux/docker/Dockerfile_ubuntu_25.04
@@ -0,0 +1,29 @@
+FROM ubuntu:25.04
+
+ENV DEBIAN_FRONTEND=noninteractive
+
+RUN apt-get clean
+RUN apt-get update && \
+    apt-get install -y -o Acquire::Retries=10 \
+        devscripts \
+        equivs \
+        python-is-python3 \
+        wget
+
+ADD extras/packaging/gnu-linux/scripts/prebuild-package-debian.sh /opt/prebuild-package-debian.sh
+
+COPY extras/packaging/gnu-linux/rules/debian-qt/control /tmp/builddeps/debian/control
+RUN /opt/prebuild-package-debian.sh qt-deps
+
+COPY extras/packaging/gnu-linux/rules/debian/control /tmp/builddeps/debian/control
+RUN /opt/prebuild-package-debian.sh jami-deps
+
+# Remove the libre2-dev package in order to force Qt to build using the bundled
+# version of the RE2 library. This is necessary because the system version of the
+# library on Ubuntu 25.04 (libre2-11) is not compatible with the one used in
+# Qt 6.6.1 due to an API change:
+# https://codereview.qt-project.org/c/qt/qtwebengine/+/516094
+RUN apt-get remove -y libre2-dev libre2-11
+
+ADD extras/packaging/gnu-linux/scripts/build-package-debian.sh /opt/build-package-debian.sh
+CMD ["/opt/build-package-debian.sh"]
diff --git a/extras/packaging/gnu-linux/rules/debian/jami-all.postinst b/extras/packaging/gnu-linux/rules/debian/jami-all.postinst
index 6efa5bad..9df35312 100755
--- a/extras/packaging/gnu-linux/rules/debian/jami-all.postinst
+++ b/extras/packaging/gnu-linux/rules/debian/jami-all.postinst
@@ -103,6 +103,8 @@ if [ -f /etc/os-release ]; then
         ENDTAG="ubuntu_24.04"
     elif [ "${UBUNTU_CODENAME}" = "oracular" ] || [ "${ID}_${VERSION_ID}" = "ubuntu_24.10" ]; then
         ENDTAG="ubuntu_24.10"
+    elif [ "${UBUNTU_CODENAME}" = "plucky" ] || [ "${ID}_${VERSION_ID}" = "ubuntu_25.04" ]; then
+        ENDTAG="ubuntu_25.04"
     elif [ "${ID}" = "debian" ] && \
              [ "$(command -v lsb_release)" ] && \
              [ "$(lsb_release -rs)" = "testing" ]; then
diff --git a/extras/packaging/gnu-linux/scripts/build-package-debian.sh b/extras/packaging/gnu-linux/scripts/build-package-debian.sh
index ad76c7a3..21141314 100755
--- a/extras/packaging/gnu-linux/scripts/build-package-debian.sh
+++ b/extras/packaging/gnu-linux/scripts/build-package-debian.sh
@@ -47,7 +47,11 @@ if [ ! -f "${qt_deb_path}" ] || [ "${FORCE_REBUILD_QT}" = "true" ]; then
 
         # HACK: For now on ubuntu 24.04 there is no python3.10 package
         # So create a PyEnv environment to install the required packages
-        if cat /etc/os-release | grep -Eq "24.04"; then
+        # NOTE: We use this on Ubuntu 25.04 too because otherwise we get
+        # a ModuleNotFoundError when building Qt 6.6.1 (specifically the
+        # chromium submodule in QtWebEngine) due to the version of python
+        # used (3.13) being too recent.
+        if cat /etc/os-release | grep -Eq "24.04|25.04"; then
             apt-get install git gcc make python3-pip libssl-dev curl libreadline-dev -y
             curl https://pyenv.run | bash
             export PYENV_ROOT="$HOME/.pyenv"
-- 
GitLab