install: Support Ubuntu 24.04.

Signed-off-by: Anders Kaseorg <anders@zulip.com>
This commit is contained in:
Anders Kaseorg 2024-02-26 15:57:25 -08:00 committed by Tim Abbott
parent 59b0548433
commit 066ea3ebf9
10 changed files with 28 additions and 16 deletions

View File

@ -145,6 +145,11 @@ jobs:
os: jammy
extra-args: ""
- docker_image: zulip/ci:noble
name: Ubuntu 24.04 production install
os: noble
extra-args: ""
- docker_image: zulip/ci:bullseye
name: Debian 11 production install with custom db name and user
os: bullseye

View File

@ -54,6 +54,12 @@ jobs:
os: bookworm
include_documentation_tests: false
include_frontend_tests: false
# Ubuntu 24.04 ships with Python 3.12.2.
- docker_image: zulip/ci:noble
name: Ubuntu 24.04 (Python 3.12, backend)
os: noble
include_documentation_tests: false
include_frontend_tests: false
runs-on: ubuntu-latest
name: ${{ matrix.name }}

View File

@ -19,7 +19,7 @@ One can install the Zulip development environment directly on a Linux
host by following these instructions. Currently supported platforms
are:
- Ubuntu 20.04, 22.04
- Ubuntu 20.04, 22.04, 24.04
- Debian 11, 12
- CentOS 7 (beta)
- Fedora 38 (beta)

View File

@ -50,7 +50,7 @@ a proxy to access the internet.)
- **All**: 2GB available RAM, Active broadband internet connection,
[GitHub account](#step-0-set-up-git--github).
- **macOS**: macOS (10.11 El Capitan or newer recommended)
- **Ubuntu LTS**: 20.04 or 22.04
- **Ubuntu LTS**: 20.04, 22.04, or 24.04
- **Debian**: 11 or 12
- **Fedora**: tested for 36
- **Windows**: Windows 64-bit (Windows 10 recommended), hardware

View File

@ -6,6 +6,7 @@ To run a Zulip server, you will need:
- A supported OS:
- Ubuntu 20.04
- Ubuntu 22.04
- Ubuntu 24.04
- Debian 11
- Debian 12
- A supported CPU architecture:
@ -37,7 +38,7 @@ on issues you'll encounter](install-existing-server.md).
#### Operating system
Ubuntu 20.04, Ubuntu 22.04, Debian 11, and Debian 12
Ubuntu 20.04, Ubuntu 22.04, Ubuntu 24.04, Debian 11, and Debian 12
are supported for running Zulip in production. You can also
run Zulip on other platforms that support Docker using
[docker-zulip][docker-zulip-homepage].

View File

@ -231,7 +231,7 @@ if [ -f /etc/os-release ]; then
fi
case "$os_id $os_version_id" in
'debian 11' | 'debian 12' | 'ubuntu 20.04' | 'ubuntu 22.04') ;;
'debian 11' | 'debian 12' | 'ubuntu 20.04' | 'ubuntu 22.04' | 'ubuntu 24.04') ;;
*)
system_requirements_failure <<EOF
Unsupported OS release: $os_id $os_version_id
@ -241,6 +241,7 @@ Zulip in production is supported only on:
- Debian 12
- Ubuntu 20.04 LTS
- Ubuntu 22.04 LTS
- Ubuntu 24.04 LTS
EOF
;;
esac

View File

@ -28,6 +28,11 @@ if [[ ! -e /usr/share/doc/groonga-apt-source/copyright ]]; then
read -r release
} <<<"$os_info"
if [ "$distribution" = ubuntu ] && [ "$release" = noble ]; then
# PGroonga binaries are not yet provided for Ubuntu 24.04.
exit
fi
if [ "$distribution" = debian ] && [ "$release" = bookworm ]; then
# As of Debian 12, the Groonga repository depends on the
# Apache Arrow repository.

View File

@ -0,0 +1,2 @@
deb http://apt.postgresql.org/pub/repos/apt/ noble-pgdg main
deb-src http://apt.postgresql.org/pub/repos/apt/ noble-pgdg main

View File

@ -3,5 +3,6 @@ set -eux
cd "$(dirname "${BASH_SOURCE[0]}")"
docker build . --build-arg=BASE_IMAGE=ubuntu:20.04 --pull --tag=zulip/ci:focal
docker build . --build-arg=BASE_IMAGE=ubuntu:22.04 --pull --tag=zulip/ci:jammy
docker build . --build-arg=BASE_IMAGE=ubuntu:24.04 --pull --tag=zulip/ci:noble
docker build . --build-arg=BASE_IMAGE=debian:11 --pull --tag=zulip/ci:bullseye
docker build . --build-arg=BASE_IMAGE=debian:12 --pull --tag=zulip/ci:bookworm

View File

@ -86,6 +86,8 @@ elif vendor == "ubuntu" and os_version == "21.10": # impish
POSTGRESQL_VERSION = "13"
elif vendor == "ubuntu" and os_version == "22.04": # jammy
POSTGRESQL_VERSION = "14"
elif vendor == "ubuntu" and os_version == "24.04": # noble
POSTGRESQL_VERSION = "16"
elif vendor == "neon" and os_version == "20.04": # KDE Neon
POSTGRESQL_VERSION = "12"
elif vendor == "fedora" and os_version == "38":
@ -126,11 +128,8 @@ UBUNTU_COMMON_APT_DEPENDENCIES = [
"default-jre-headless", # Required by vnu-jar
# Puppeteer dependencies from here
"fonts-freefont-ttf",
"gconf-service",
"libappindicator1",
"libatk-bridge2.0-0",
"libgbm1",
"libgconf-2-4",
"libgtk-3-0",
"libx11-xcb1",
"libxcb-dri3-0",
@ -160,7 +159,7 @@ COMMON_YUM_DEPENDENCIES = [
BUILD_GROONGA_FROM_SOURCE = False
BUILD_PGROONGA_FROM_SOURCE = False
if (vendor == "debian" and os_version in []) or (vendor == "ubuntu" and os_version in []):
if (vendor == "debian" and os_version in []) or (vendor == "ubuntu" and os_version in ["24.04"]):
# For platforms without a PGroonga release, we need to build it
# from source.
BUILD_PGROONGA_FROM_SOURCE = True
@ -176,14 +175,6 @@ if (vendor == "debian" and os_version in []) or (vendor == "ubuntu" and os_versi
]
elif "debian" in os_families():
DEBIAN_DEPENDENCIES = UBUNTU_COMMON_APT_DEPENDENCIES
# The below condition is required since libappindicator is
# not available for Debian 11. "libgroonga1" is an
# additional dependency for postgresql-13-pgdg-pgroonga.
#
# See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=895037
if vendor == "debian":
DEBIAN_DEPENDENCIES.remove("libappindicator1")
DEBIAN_DEPENDENCIES.append("libgroonga0")
# If we are on an aarch64 processor, ninja will be built from source,
# so cmake is required