diff --git a/.circleci/config.yml b/.circleci/config.yml index b4d8d1a2e..7af63f349 100644 --- a/.circleci/config.yml +++ b/.circleci/config.yml @@ -161,6 +161,33 @@ jobs: command: | poetry run make test + ci-ubuntu-mantic: + machine: + image: ubuntu-2004:202111-01 + steps: + - checkout + - run: *install-podman + + - run: + name: Prepare cache directory + command: | + sudo mkdir -p /caches + sudo chown -R $USER:$USER /caches + - run: *calculate-cache-key + - restore_cache: *restore-cache + - run: *copy-image + + - run: + name: Prepare Dangerzone environment + command: | + ./dev_scripts/env.py --distro ubuntu --version 23.10 build-dev + + - run: + name: Run CI tests + command: | + ./dev_scripts/env.py --distro ubuntu --version 23.10 run --dev \ + bash -c 'cd dangerzone; poetry run make test' + ci-ubuntu-lunar: machine: image: ubuntu-2004:202111-01 @@ -410,9 +437,21 @@ jobs: ./dev_scripts/env.py --distro debian --version bullseye run --dev \ bash -c 'cd dangerzone; poetry run make test' + build-ubuntu-mantic: + docker: + - image: ubuntu:23.10 + resource_class: medium+ + steps: + - run: *install-dependencies-deb + - checkout + - run: *calculate-cache-key + - restore_cache: *restore-cache + - run: *copy-image + - run: *build-deb + build-ubuntu-lunar: docker: - - image: ubuntu:22.04 + - image: ubuntu:23.04 resource_class: medium+ steps: - run: *install-dependencies-deb @@ -519,6 +558,9 @@ workflows: - convert-test-docs: requires: - build-container-image + - ci-ubuntu-mantic: + requires: + - build-container-image - ci-ubuntu-lunar: requires: - build-container-image @@ -543,6 +585,9 @@ workflows: - ci-fedora-37: requires: - build-container-image + - build-ubuntu-mantic: + requires: + - build-container-image - build-ubuntu-lunar: requires: - build-container-image diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 278836672..4ac8c0488 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -92,6 +92,9 @@ jobs: - target: ubuntu-23.04 distro: ubuntu version: "23.04" + - target: ubuntu-23.10 + distro: ubuntu + version: "23.10" - target: debian-bullseye distro: debian version: bullseye diff --git a/CHANGELOG.md b/CHANGELOG.md index 6940881e3..ef0cb1cbe 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,6 +12,7 @@ since 0.4.1, and this project adheres to [Semantic Versioning](https://semver.or ### Added - Platform support: Beta integration with Qubes OS ([issue #412](https://github.com/freedomofpress/dangerzone/issues/412)) +- Platform support: Ubuntu 23.10 (Mantic Minotaur) ([issue #601](https://github.com/freedomofpress/dangerzone/issues/601)) - Add client-side timeouts in Qubes ([issue #446](https://github.com/freedomofpress/dangerzone/issues/446)) - Add installation instructions for Qubes ([issue #431](https://github.com/freedomofpress/dangerzone/issues/431)) - Development: Add tests that run Dangerzone against a pool of roughly 11K documents ([PR #386](https://github.com/freedomofpress/dangerzone/pull/386)) diff --git a/INSTALL.md b/INSTALL.md index 6dadf6af2..b2b239ee3 100644 --- a/INSTALL.md +++ b/INSTALL.md @@ -9,6 +9,7 @@ On Linux, Dangerzone uses [Podman](https://podman.io/) instead of Docker Desktop an isolated environment. It will be installed automatically when installing Dangerzone. Dangerzone is available for: +- Ubuntu 23.10 (mantic) - Ubuntu 23.04 (lunar) - Ubuntu 22.04 (jammy) - Ubuntu 20.04 (focal) diff --git a/dev_scripts/env.py b/dev_scripts/env.py index 588bac37b..bec9ea544 100755 --- a/dev_scripts/env.py +++ b/dev_scripts/env.py @@ -73,7 +73,7 @@ # XXX: overcome the fact that ubuntu images (starting on 23.04) ship with the 'ubuntu' # user by default https://bugs.launchpad.net/cloud-images/+bug/2005129 # Related issue https://github.com/freedomofpress/dangerzone/pull/461 -DOCKERFILE_UBUNTU_2304_REM_USER = r""" +DOCKERFILE_UBUNTU_REM_USER = r""" RUN touch /var/mail/ubuntu && chown ubuntu /var/mail/ubuntu && userdel -r ubuntu """ @@ -432,9 +432,14 @@ def build_dev(self, show_dockerfile=DEFAULT_SHOW_DOCKERFILE): # Ubuntu Jammy misses a dependency to `libxkbcommon-x11-0`, which we can # install indirectly via `qt6-qpa-plugins`. qt_deps += " qt6-qpa-plugins" - elif self.distro == "ubuntu" and self.version in ("23.04", "lunar"): + elif self.distro == "ubuntu" and self.version in ( + "23.04", + "23.10", + "lunar", + "mantic", + ): install_deps = ( - DOCKERFILE_UBUNTU_2304_REM_USER + DOCKERFILE_BUILD_DEV_DEBIAN_DEPS + DOCKERFILE_UBUNTU_REM_USER + DOCKERFILE_BUILD_DEV_DEBIAN_DEPS ) elif self.distro == "debian" and self.version in ("bullseye-backports",): # Debian Bullseye misses a dependency to libgl1. @@ -479,9 +484,7 @@ def build(self, show_dockerfile=DEFAULT_SHOW_DOCKERFILE): DOCKERFILE_UBUNTU_2004_DEPS + DOCKERFILE_BUILD_DEBIAN_DEPS ) elif self.distro == "ubuntu" and self.version in ("23.04", "lunar"): - install_deps = ( - DOCKERFILE_UBUNTU_2304_REM_USER + DOCKERFILE_BUILD_DEBIAN_DEPS - ) + install_deps = DOCKERFILE_UBUNTU_REM_USER + DOCKERFILE_BUILD_DEBIAN_DEPS package = f"dangerzone_{version}-1_all.deb" package_src = git_root() / "deb_dist" / package package_dst = build_dir / package diff --git a/dev_scripts/qa.py b/dev_scripts/qa.py index 81e877180..d88bcf594 100755 --- a/dev_scripts/qa.py +++ b/dev_scripts/qa.py @@ -860,6 +860,11 @@ class QAUbuntu2304(QADebianBased): VERSION = "23.04" +class QAUbuntu2310(QADebianBased): + DISTRO = "ubuntu" + VERSION = "23.10" + + class QAFedora(QALinux): """Base class for Fedora distros.