From df0fbf2554f048603c873fdef11b581f00b66a19 Mon Sep 17 00:00:00 2001 From: Cyril Rohr Date: Thu, 6 Jul 2023 20:40:10 +0200 Subject: [PATCH] CentOS / RHEL 9 and Debian 12 support (#13008) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * test centos9 * Upgrade ruby buildpack * Apache2::Reload is not supposed to be needed in prod * Enable all distros + debian-12 * Remove Apache2::Reload from repo manager (#13034) should fix support for centos9 and is not required * Ensure a default language is always set, especially in case of legacy installs * Support for debian 12 * Update documentation for CentOS 9 and Debian 12 --------- Co-authored-by: Oliver Günther --- .buildpacks | 2 +- .pkgr.yml | 7 +++ .../installation/packaged/README.md | 62 ++++++++++++++++++- .../system-requirements/README.md | 2 + .../addons/openproject-edition/bin/preinstall | 13 ++++ packaging/addons/openproject/bin/postinstall | 4 +- packaging/addons/repositories/bin/postinstall | 4 -- packaging/addons/repositories/bin/preinstall | 7 +-- 8 files changed, 87 insertions(+), 14 deletions(-) diff --git a/.buildpacks b/.buildpacks index 514f4803d1f..8bcd293cd50 100644 --- a/.buildpacks +++ b/.buildpacks @@ -1,2 +1,2 @@ https://github.com/heroku/heroku-buildpack-nodejs.git#v197 -https://github.com/pkgr/heroku-buildpack-ruby.git#v242-1 +https://github.com/pkgr/heroku-buildpack-ruby.git#v254-2 diff --git a/.pkgr.yml b/.pkgr.yml index 02a52efd26e..90058e6ef0d 100644 --- a/.pkgr.yml +++ b/.pkgr.yml @@ -17,6 +17,8 @@ targets: - imagemagick debian-11: <<: *debian + debian-12: + <<: *debian ubuntu-20.04: <<: *debian ubuntu-22.04: @@ -36,6 +38,11 @@ targets: env: - NODE_ENV=production - NPM_CONFIG_PRODUCTION=false + centos-9: + <<: *centos7 + env: + - NODE_ENV=production + - NPM_CONFIG_PRODUCTION=false sles-12: build_dependencies: - sqlite3-devel diff --git a/docs/installation-and-operations/installation/packaged/README.md b/docs/installation-and-operations/installation/packaged/README.md index decb1fd0260..0c86cc93872 100644 --- a/docs/installation-and-operations/installation/packaged/README.md +++ b/docs/installation-and-operations/installation/packaged/README.md @@ -30,8 +30,10 @@ The package is available for the following Linux distributions: |---------------------------------------------| | [Ubuntu 22.04 Jammy](#ubuntu-2204) | | [Ubuntu 20.04 Focal](#ubuntu-2004) | +| [Debian 12 Bookworm](#debian-12) | | [Debian 11 Bullseye](#debian-11) | | [Debian 10 Buster](#debian-10) | +| [CentOS/RHEL 9.x](#centos-9--rhel-9) | | [CentOS/RHEL 8.x](#centos-8--rhel-8) | | [CentOS/RHEL 7.x](#centos-7--rhel-7) | | [Suse Linux Enterprise Server 15](#sles-15) | @@ -114,7 +116,39 @@ Then finish the installation by reading the [*Initial configuration*](#initial-c ## Debian Installation -### Debian 11 "bullseye" +### Debian 12 + +As root update the `apt` package index and install packages to allow `apt` to use a repository over HTTPS: + +```bash +su - +apt update +apt install apt-transport-https ca-certificates wget +``` + +Import the PGP key used to sign our packages: + +```bash +wget -qO- https://dl.packager.io/srv/opf/openproject/key | gpg --dearmor > /etc/apt/trusted.gpg.d/packager-io.gpg +``` + +Add the OpenProject package source: + +```bash +wget -O /etc/apt/sources.list.d/openproject.list \ + https://dl.packager.io/srv/opf/openproject/stable/12/installer/debian/12.repo +``` + +Download the OpenProject package: + +```bash +apt update +apt install openproject +``` + +Then finish the installation by reading the [*Initial configuration*](#initial-configuration) section. + +### Debian 11 As root update the `apt` package index and install packages to allow `apt` to use a repository over HTTPS: @@ -179,6 +213,32 @@ Then finish the installation by reading the [*Initial configuration*](#initial-c ## CentOS Installation +### CentOS 9 / RHEL 9 + +Add the OpenProject package source: + +```bash +sudo wget -O /etc/yum.repos.d/openproject.repo \ + https://dl.packager.io/srv/opf/openproject/stable/12/installer/el/9.repo +``` + +If it is not already enabled, make sure to enable [Extra Packages for Enterprise Linux](https://fedoraproject.org/wiki/EPEL) (EPEL). + +```bash +sudo dnf install -y epel-release +``` + +Download the OpenProject package: + +```bash +sudo yum install openproject +``` + +Then finish the installation by reading the [*Initial configuration*](#initial-configuration) section. + +> **Note:** On this distribution full-text extraction for attachments [*is not supported*](#full-text-extraction-not-supported) by default. +> + ### CentOS 8 / RHEL 8 Add the OpenProject package source: diff --git a/docs/installation-and-operations/system-requirements/README.md b/docs/installation-and-operations/system-requirements/README.md index 5779fe8d575..0f149185355 100644 --- a/docs/installation-and-operations/system-requirements/README.md +++ b/docs/installation-and-operations/system-requirements/README.md @@ -69,8 +69,10 @@ The [package-based installation](../installation/packaged) requires one of the f | ------------------------------- | | Ubuntu 22.04 Jammy | | Ubuntu 20.04 Focal | +| Debian 12 Bookworm | | Debian 11 Bullseye | | Debian 10 Buster | +| CentOS/RHEL 9.x | | CentOS/RHEL 8.x | | CentOS/RHEL 7.x | | Suse Linux Enterprise Server 15 | diff --git a/packaging/addons/openproject-edition/bin/preinstall b/packaging/addons/openproject-edition/bin/preinstall index eac179e7df7..705c900f0ab 100755 --- a/packaging/addons/openproject-edition/bin/preinstall +++ b/packaging/addons/openproject-edition/bin/preinstall @@ -21,6 +21,11 @@ if [ "$edition" = "bim" ]; then case "$OSFAMILY" in "debian") case "$OSVERSION" in + "22.04") + wget -qO- https://packages.microsoft.com/keys/microsoft.asc | apt-key add - + wget -qO /etc/apt/sources.list.d/microsoft.list https://packages.microsoft.com/config/ubuntu/22.04/prod.list + apt-get update -qq + ;; "20.04") wget -qO- https://packages.microsoft.com/keys/microsoft.asc | apt-key add - wget -qO /etc/apt/sources.list.d/microsoft.list https://packages.microsoft.com/config/ubuntu/20.04/prod.list @@ -31,6 +36,11 @@ if [ "$edition" = "bim" ]; then wget -qO /etc/apt/sources.list.d/microsoft.list https://packages.microsoft.com/config/ubuntu/18.04/prod.list apt-get update -qq ;; + "12") + wget -qO- https://packages.microsoft.com/keys/microsoft.asc | apt-key add - + wget -qO /etc/apt/sources.list.d/microsoft.list https://packages.microsoft.com/config/debian/12/prod.list + apt-get update -qq + ;; "11") wget -qO- https://packages.microsoft.com/keys/microsoft.asc | apt-key add - wget -qO /etc/apt/sources.list.d/microsoft.list https://packages.microsoft.com/config/debian/11/prod.list @@ -46,6 +56,9 @@ if [ "$edition" = "bim" ]; then ;; "redhat") case "$(wiz_fact "osversion")" in + 9*) + dnf install -y dotnet-runtime-6.0 + ;; 8*) dnf install -y dotnet-runtime-6.0 ;; diff --git a/packaging/addons/openproject/bin/postinstall b/packaging/addons/openproject/bin/postinstall index 8637e093f06..c6c7cfab7c1 100755 --- a/packaging/addons/openproject/bin/postinstall +++ b/packaging/addons/openproject/bin/postinstall @@ -12,7 +12,7 @@ ${CLI} config:set RECOMPILE_RAILS_ASSETS="true" # Set the configured default language # Will be unset at installation postinstall before restart to ensure the setting is writable -${CLI} config:set OPENPROJECT_DEFAULT_LANGUAGE="$(wiz_get "openproject/default_language")" +${CLI} config:set OPENPROJECT_DEFAULT_LANGUAGE="$(wiz_get "openproject/default_language" || echo "en")" # Check for custom gems custom_gemfile=$(${CLI} config:get CUSTOM_PLUGIN_GEMFILE || echo "") @@ -77,7 +77,7 @@ ${CLI} config:unset RAILS_CACHE_STORE # create attachments folder attachments_path=$(${CLI} config:get OPENPROJECT_ATTACHMENTS__STORAGE__PATH || ${CLI} config:get ATTACHMENTS_STORAGE_PATH || echo "/var/db/${APP_NAME}/files") mkdir -p "${attachments_path}" -chown ${APP_USER}.${APP_GROUP} "${attachments_path}" +chown ${APP_USER}:${APP_GROUP} "${attachments_path}" ${CLI} config:set OPENPROJECT_ATTACHMENTS__STORAGE__PATH="${attachments_path}" ${CLI} config:unset ATTACHMENTS_STORAGE_PATH diff --git a/packaging/addons/repositories/bin/postinstall b/packaging/addons/repositories/bin/postinstall index 4a26585d4ea..9fb18995600 100755 --- a/packaging/addons/repositories/bin/postinstall +++ b/packaging/addons/repositories/bin/postinstall @@ -222,8 +222,6 @@ configure_apache2_server() { PerlSwitches -I/usr/lib/perl5 PerlLoadModule Apache::OpenProjectAuthentication PerlLoadModule Apache::OpenProjectRepoman -PerlInitHandler Apache2::Reload -PerlSetVar ReloadAll Off SERVER_CONF ;; "redhat") @@ -235,8 +233,6 @@ SERVER_CONF PerlSwitches -I/usr/lib64/perl5/vendor_perl PerlLoadModule Apache::OpenProjectAuthentication PerlLoadModule Apache::OpenProjectRepoman -PerlInitHandler Apache2::Reload -PerlSetVar ReloadAll Off SERVER_CONF ;; "suse") diff --git a/packaging/addons/repositories/bin/preinstall b/packaging/addons/repositories/bin/preinstall index ea49d396146..e4190bc944b 100755 --- a/packaging/addons/repositories/bin/preinstall +++ b/packaging/addons/repositories/bin/preinstall @@ -11,7 +11,7 @@ install_required_dependencies_for_apache2() { local dependencies="" case "$OSFAMILY" in "debian") - dependencies="subversion git libapache2-mod-perl2 libjson-perl libapache2-reload-perl" + dependencies="subversion git libapache2-mod-perl2 libjson-perl" for dependency in $dependencies ; do wiz_check_package "$dependency" || apt-get install -y "$dependency" done @@ -30,11 +30,6 @@ install_required_dependencies_for_apache2() { ;; "redhat") dependencies="mod_dav_svn subversion git mod_perl perl-Digest-SHA perl-libwww-perl perl-JSON" - case "$OSVERSION" in - 8*) - dependencies="$dependencies perl-Apache-Reload" - ;; - esac for dependency in $dependencies ; do wiz_check_package "$dependency" || yum install -y "$dependency" done