mirror of
				https://github.com/zulip/zulip.git
				synced 2025-11-04 05:53:43 +00:00 
			
		
		
		
	install: Support Ubuntu 24.04.
Signed-off-by: Anders Kaseorg <anders@zulip.com>
(cherry picked from commit 066ea3ebf9)
			
			
This commit is contained in:
		
				
					committed by
					
						
						Tim Abbott
					
				
			
			
				
	
			
			
			
						parent
						
							1a2a7a635b
						
					
				
				
					commit
					070b051273
				
			
							
								
								
									
										5
									
								
								.github/workflows/production-suite.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										5
									
								
								.github/workflows/production-suite.yml
									
									
									
									
										vendored
									
									
								
							@@ -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
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								.github/workflows/zulip-ci.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										6
									
								
								.github/workflows/zulip-ci.yml
									
									
									
									
										vendored
									
									
								
							@@ -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 }}
 | 
			
		||||
 
 | 
			
		||||
@@ -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)
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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].
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										2
									
								
								scripts/setup/apt-repos/zulip/noble.list
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								scripts/setup/apt-repos/zulip/noble.list
									
									
									
									
									
										Normal 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
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user