diff --git a/extras/packaging/gnu-linux/Makefile b/extras/packaging/gnu-linux/Makefile index 65053d0fad6422f2e1aca5d45389268aab802a62..54a52a677ea7360a4a5d944d4db020dca7c27cc2 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 0000000000000000000000000000000000000000..9651e519e1529d58d23bcb43ba3f55119e258327 --- /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 6efa5bade4e8bf801a7fdc8ce0bb7a3c13be6cb9..9df35312d783d034a974faf4f4569930bfb77016 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 ad76c7a3507c58bb60ed0e5073d7acaaa30c7369..21141314801e37583ba051b54e56b0c74343fb70 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"