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 os: jammy
extra-args: "" extra-args: ""
- docker_image: zulip/ci:noble
name: Ubuntu 24.04 production install
os: noble
extra-args: ""
- docker_image: zulip/ci:bullseye - docker_image: zulip/ci:bullseye
name: Debian 11 production install with custom db name and user name: Debian 11 production install with custom db name and user
os: bullseye os: bullseye

View File

@@ -54,6 +54,12 @@ jobs:
os: bookworm os: bookworm
include_documentation_tests: false include_documentation_tests: false
include_frontend_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 runs-on: ubuntu-latest
name: ${{ matrix.name }} 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 host by following these instructions. Currently supported platforms
are: are:
- Ubuntu 20.04, 22.04 - Ubuntu 20.04, 22.04, 24.04
- Debian 11, 12 - Debian 11, 12
- CentOS 7 (beta) - CentOS 7 (beta)
- Fedora 38 (beta) - Fedora 38 (beta)

View File

@@ -50,7 +50,7 @@ a proxy to access the internet.)
- **All**: 2GB available RAM, Active broadband internet connection, - **All**: 2GB available RAM, Active broadband internet connection,
[GitHub account](#step-0-set-up-git--github). [GitHub account](#step-0-set-up-git--github).
- **macOS**: macOS (10.11 El Capitan or newer recommended) - **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 - **Debian**: 11 or 12
- **Fedora**: tested for 36 - **Fedora**: tested for 36
- **Windows**: Windows 64-bit (Windows 10 recommended), hardware - **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: - A supported OS:
- Ubuntu 20.04 - Ubuntu 20.04
- Ubuntu 22.04 - Ubuntu 22.04
- Ubuntu 24.04
- Debian 11 - Debian 11
- Debian 12 - Debian 12
- A supported CPU architecture: - A supported CPU architecture:
@@ -37,7 +38,7 @@ on issues you'll encounter](install-existing-server.md).
#### Operating system #### 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 are supported for running Zulip in production. You can also
run Zulip on other platforms that support Docker using run Zulip on other platforms that support Docker using
[docker-zulip][docker-zulip-homepage]. [docker-zulip][docker-zulip-homepage].

View File

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

View File

@@ -28,6 +28,11 @@ if [[ ! -e /usr/share/doc/groonga-apt-source/copyright ]]; then
read -r release read -r release
} <<<"$os_info" } <<<"$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 if [ "$distribution" = debian ] && [ "$release" = bookworm ]; then
# As of Debian 12, the Groonga repository depends on the # As of Debian 12, the Groonga repository depends on the
# Apache Arrow repository. # 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]}")" 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: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: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:11 --pull --tag=zulip/ci:bullseye
docker build . --build-arg=BASE_IMAGE=debian:12 --pull --tag=zulip/ci:bookworm 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" POSTGRESQL_VERSION = "13"
elif vendor == "ubuntu" and os_version == "22.04": # jammy elif vendor == "ubuntu" and os_version == "22.04": # jammy
POSTGRESQL_VERSION = "14" 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 elif vendor == "neon" and os_version == "20.04": # KDE Neon
POSTGRESQL_VERSION = "12" POSTGRESQL_VERSION = "12"
elif vendor == "fedora" and os_version == "38": elif vendor == "fedora" and os_version == "38":
@@ -126,11 +128,8 @@ UBUNTU_COMMON_APT_DEPENDENCIES = [
"default-jre-headless", # Required by vnu-jar "default-jre-headless", # Required by vnu-jar
# Puppeteer dependencies from here # Puppeteer dependencies from here
"fonts-freefont-ttf", "fonts-freefont-ttf",
"gconf-service",
"libappindicator1",
"libatk-bridge2.0-0", "libatk-bridge2.0-0",
"libgbm1", "libgbm1",
"libgconf-2-4",
"libgtk-3-0", "libgtk-3-0",
"libx11-xcb1", "libx11-xcb1",
"libxcb-dri3-0", "libxcb-dri3-0",
@@ -160,7 +159,7 @@ COMMON_YUM_DEPENDENCIES = [
BUILD_GROONGA_FROM_SOURCE = False BUILD_GROONGA_FROM_SOURCE = False
BUILD_PGROONGA_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 # For platforms without a PGroonga release, we need to build it
# from source. # from source.
BUILD_PGROONGA_FROM_SOURCE = True 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(): elif "debian" in os_families():
DEBIAN_DEPENDENCIES = UBUNTU_COMMON_APT_DEPENDENCIES 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, # If we are on an aarch64 processor, ninja will be built from source,
# so cmake is required # so cmake is required