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