From e6097bf5baa974940a083095bbddda1d8c15e448 Mon Sep 17 00:00:00 2001 From: Jason Stephenson Date: Thu, 19 Aug 2021 20:20:58 -0400 Subject: [PATCH] LP1940146: Debian Bullseye Installation Support Update documentation and prerequisite installation Makefiles to add support for Debian Bullseye (11.0). Use PKG_CHECK_MODULES instead of AC_CHECK_PROG to test for the presence of yaz. This is done because of the following Changelog entry: yaz-config and its man page are no longer packaged. Please switch to pkg-config (yaz, yaz-icu or yaz-server). This also makes the package reproducible. Closes: #955501 This change works on all currently supported Evergreen distros. You can test it by running autoreconf -f and then running the normal configure command. Signed-off-by: Jason Stephenson Signed-off-by: Chris Sharp --- Open-ILS/src/extras/Makefile.install | 16 +- .../src/extras/install/Makefile.debian-bullseye | 191 +++++++++++++++++++++ configure.ac | 2 +- .../installation/pages/server_installation.adoc | 10 +- .../modules/installation/pages/server_upgrade.adoc | 11 +- 5 files changed, 220 insertions(+), 10 deletions(-) create mode 100644 Open-ILS/src/extras/install/Makefile.debian-bullseye diff --git a/Open-ILS/src/extras/Makefile.install b/Open-ILS/src/extras/Makefile.install index 1dc509ca85..2906654a8e 100644 --- a/Open-ILS/src/extras/Makefile.install +++ b/Open-ILS/src/extras/Makefile.install @@ -4,12 +4,14 @@ # # Makefile to install prerequisites for OpenSRF and Evergreen # -# Currently supports Debian (buster, stretch), +# Currently supports Debian (bullseye, buster, stretch), # Ubuntu (16.04), Ubuntu (18.04). # # Installs Perl prereqs, libdbi, libdbi-drivers, and libyaz # # usage: +# make -f Makefile.install debian-bullseye +# - or - # make -f Makefile.install debian-buster # - or - # make -f Makefile.install debian-stretch @@ -62,6 +64,8 @@ DIR = $(dir $(lastword $(MAKEFILE_LIST)))/install all: @echo "please specify an OS" && exit 0 +debian-bullseye: + @make -f $(DIR)/Makefile.debian-bullseye debian-buster: @make -f $(DIR)/Makefile.debian-buster debian-stretch: @@ -73,6 +77,10 @@ ubuntu-focal: fedora: @make -f $(DIR)/Makefile.fedora +postgres-server-debian-bullseye: + @make -f $(DIR)/Makefile.debian-bullseye install_postgres_server +postgres-server-debian-bullseye-10: + @make -f $(DIR)/Makefile.debian-bullseye install_postgres_server_10 postgres-server-debian-buster: @make -f $(DIR)/Makefile.debian-buster install_postgres_server postgres-server-debian-buster-10: @@ -96,6 +104,8 @@ ubuntu-bionic-developer: @make -f $(DIR)/Makefile.ubuntu-bionic install_developer ubuntu-focal-developer: @make -f $(DIR)/Makefile.ubuntu-focal install_developer +debian-bullseye-developer: + @make -f $(DIR)/Makefile.debian-bullseye install_developer debian-buster-developer: @make -f $(DIR)/Makefile.debian-buster install_developer debian-stretch-developer: @@ -105,6 +115,8 @@ ubuntu-bionic-translator: @make -f $(DIR)/Makefile.ubuntu-bionic install_translator ubuntu-focal-translator: @make -f $(DIR)/Makefile.ubuntu-focal install_translator +debian-bullseye-translator: + @make -f $(DIR)/Makefile.debian-bullseye install_translator debian-buster-translator: @make -f $(DIR)/Makefile.debian-buster install_translator debian-stretch-translator: @@ -114,6 +126,8 @@ ubuntu-bionic-packager: @make -f $(DIR)/Makefile.ubuntu-bionic install_packager ubuntu-focal-packager: @make -f $(DIR)/Makefile.ubuntu-focal install_packager +debian-bullseye-packager: + @make -f $(DIR)/Makefile.debian-bullseye install_packager debian-buster-packager: @make -f $(DIR)/Makefile.debian-buster install_packager debian-stretch-packager: diff --git a/Open-ILS/src/extras/install/Makefile.debian-bullseye b/Open-ILS/src/extras/install/Makefile.debian-bullseye new file mode 100644 index 0000000000..f1fe3869e1 --- /dev/null +++ b/Open-ILS/src/extras/install/Makefile.debian-bullseye @@ -0,0 +1,191 @@ +# install files for Debian Bullseye + +DIR = $(dir $(lastword $(MAKEFILE_LIST))) + +export DEB_PGSQL_COMMON_MODS = \ + gcc \ + libbusiness-isbn-perl \ + libjson-xs-perl \ + liblibrary-callnumber-lc-perl \ + libmarc-record-perl \ + libmarc-xml-perl \ + librose-uri-perl \ + libuuid-tiny-perl \ + libxml-libxml-perl \ + libxml-libxslt-perl + +export DEBS = \ + $(DEB_PGSQL_COMMON_MODS) \ + apache2-dev\ + aspell\ + aspell-en\ + libapache2-mod-perl2\ + libbusiness-creditcard-perl\ + libbusiness-isbn-data-perl\ + libbusiness-issn-perl\ + libbusiness-onlinepayment-authorizenet-perl\ + libbusiness-onlinepayment-payflowpro-perl\ + libbusiness-onlinepayment-perl\ + libdate-manip-perl\ + libdatetime-format-builder-perl\ + libdatetime-format-iso8601-perl\ + libdatetime-format-mail-perl\ + libdatetime-perl\ + libdatetime-set-perl\ + libdatetime-timezone-perl\ + libdbd-pg-perl\ + libdbd-pgsql\ + libdbi-dev\ + libdbi1\ + libemail-simple-perl\ + libemail-mime-perl\ + libexcel-writer-xlsx-perl\ + libgd-graph3d-perl\ + libgeo-coder-osm-perl\ + liblocale-maketext-lexicon-perl\ + liblog-log4perl-perl\ + libmarc-charset-perl \ + libncurses5-dev\ + libnet-ip-perl\ + libnet-ldap-perl \ + libnet-server-perl\ + libnet-ssh2-perl\ + libnet-z3950-simple2zoom-perl\ + libnet-z3950-simpleserver-perl\ + libnet-z3950-zoom-perl \ + libnspr4-dev\ + libole-storage-lite-perl\ + libparent-perl\ + libpq5\ + libpq-dev\ + libpcre3-dev\ + librpc-xml-perl\ + libsru-perl\ + libssh2-1-dev\ + libtemplate-plugin-posix-perl\ + libtest-warn-perl\ + libtest-output-perl\ + libtext-aspell-perl\ + libtext-csv-perl\ + libuniversal-require-perl\ + libunix-syslog-perl\ + libyaz-dev\ + postgresql-client-9.6\ + libsoap-lite-perl\ + libbz2-dev\ + libparse-recdescent-perl\ + libhtml-defang-perl\ + libconfig-general-perl\ + yaz + +export DEB_APACHE_MODS = \ + expires\ + include\ + proxy\ + proxy_http\ + rewrite\ + cgi\ + perl\ + remoteip + +export DEB_APACHE_DISMODS = \ + deflate + +export DEB_APACHE_DISCONF = \ + serve-cgi-bin + +export CPAN_MODULES = \ + Geo::Coder::Google \ + Business::OnlinePayment::PayPal \ + String::KeyboardDistance \ + Text::Levenshtein::Damerau::XS \ + Email::Send \ + Locale::Country + +export CPAN_MODULES_FORCE = \ + Business::Stripe \ + Class::DBI::Frozen::301 + +export CPAN_MODULES_PGSQL = \ + String::KeyboardDistance \ + Text::Levenshtein::Damerau::XS + +PGSQL_SERVER_DEBS_96 = \ + $(DEB_PGSQL_COMMON_MODS) \ + postgresql-9.6 \ + postgresql-contrib-9.6 \ + postgresql-plperl-9.6 \ + postgresql-server-dev-9.6 + +PGSQL_SERVER_DEBS_10 = \ + $(DEB_PGSQL_COMMON_MODS) \ + postgresql-10 \ + postgresql-contrib-10 \ + postgresql-plperl-10 \ + postgresql-server-dev-10 + +# note: some prereqs are repeated in the developer/packager +# sections to support building Evergreen packages on servers +# where Evergreen and its prereqs are not installed. + +DEVELOPER_DEBS = \ + automake \ + autoconf \ + libtool + +PACKAGER_DEBS = \ + asciidoc \ + source-highlight \ + zip \ + unzip \ + nsis + +TRANSLATOR_DEBS = \ + libtemplate-perl \ + liblocale-maketext-lexicon-perl \ + translate-toolkit \ + python-dev \ + python-levenshtein \ + python-polib \ + python-setuptools \ + python-simplejson \ + python-lxml \ + bzr + +all: + make -f $(DIR)/Makefile.debian DEBS="$(PGSQL_APT_REPO_DEBS)" + make -f $(DIR)/Makefile.debian debian_postgresql_repo + make -f $(DIR)/Makefile.debian install_debs + make -f $(DIR)/Makefile.common install_cpan + make -f $(DIR)/Makefile.common install_cpan_force + make -f $(DIR)/Makefile.debian debian_sys_config + +install_postgres_server: + make -f $(DIR)/Makefile.debian DEBS="$(PGSQL_APT_REPO_DEBS)" + make -f $(DIR)/Makefile.debian debian_postgresql_repo + make -f $(DIR)/Makefile.debian DEBS="$(PGSQL_SERVER_DEBS_96)" + make -f $(DIR)/Makefile.common install_cpan_pgsql + +install_postgres_server_10: + make -f $(DIR)/Makefile.debian DEBS="$(PGSQL_APT_REPO_DEBS)" + make -f $(DIR)/Makefile.debian debian_postgresql_repo + make -f $(DIR)/Makefile.debian DEBS="$(PGSQL_SERVER_DEBS_10)" + make -f $(DIR)/Makefile.common install_cpan_pgsql + +# note: if/when grunt-cli is available as a +# package, use the packaged version instead. +install_developer: + make -f $(DIR)/Makefile.debian DEBS="$(DEVELOPER_DEBS)" + make -f $(DIR)/Makefile.common install_nodejs_from_source + +install_translator: install_developer + make -f $(DIR)/Makefile.debian DEBS="$(TRANSLATOR_DEBS)" + +install_packager: install_developer install_translator + make -f $(DIR)/Makefile.debian DEBS="$(PACKAGER_DEBS)" + +clean: + make -f $(DIR)/Makefile.common clean + make -f $(DIR)/Makefile.debian clean + +# vim:noet:sw=4:ts=4: diff --git a/configure.ac b/configure.ac index f7da01416f..53608d945b 100644 --- a/configure.ac +++ b/configure.ac @@ -249,7 +249,7 @@ if test "x$openils_core" = "xtrue"; then AC_MSG_ERROR([*** cpan not found, aborting]) fi - AC_CHECK_PROG([YAZ],yaz-config,yes,no) + PKG_CHECK_MODULES([YAZ],[yaz],[YAZ=yes],[YAZ=no]) if test $YAZ = "no"; then AC_MSG_ERROR([*** yaz not found, aborting]) fi diff --git a/docs/modules/installation/pages/server_installation.adoc b/docs/modules/installation/pages/server_installation.adoc index 4019afe7c2..05e16649a3 100644 --- a/docs/modules/installation/pages/server_installation.adoc +++ b/docs/modules/installation/pages/server_installation.adoc @@ -50,7 +50,8 @@ autoreconf -i == Installing prerequisites == * **PostgreSQL**: The minimum supported version is 9.6. - * **Linux**: Evergreen has been tested on + * **Linux**: Evergreen has been tested on + Debian Bullseye (11), Debian Buster (10), Debian Stretch (9), Ubuntu Focal Fossa (20.04), @@ -69,7 +70,7 @@ before you can successfully configure, compile, and install Evergreen. + 2. Issue the following commands as the *root* Linux account to install prerequisites using the `Makefile.install` prerequisite installer, - substituting `debian-buster`,`debian-stretch`,`ubuntu-focal`, + substituting `debian-bullseye`,`debian-buster`,`debian-stretch`,`ubuntu-focal`, or `ubuntu-bionic` for below: + [source, bash] @@ -250,7 +251,8 @@ chown -R opensrf:opensrf /openils == Run ldconfig == -On Ubuntu 18.04 / 20.04 or Debian Stretch / Buster, run the following command as the root user: +On Ubuntu 18.04 / 20.04 or Debian Stretch / Buster / Bullseye, run the +following command as the root user: [source, bash] ------------------------------------------------------------------------------ @@ -434,6 +436,7 @@ the minimum supported version. [source, bash] ------------------------------------------------------------------------------ +make -f Open-ILS/src/extras/Makefile.install postgres-server-debian-bullseye make -f Open-ILS/src/extras/Makefile.install postgres-server-debian-buster make -f Open-ILS/src/extras/Makefile.install postgres-server-debian-stretch make -f Open-ILS/src/extras/Makefile.install postgres-server-ubuntu-bionic @@ -445,6 +448,7 @@ system: [source, bash] ------------------------------------------------------------------------------ +make -f Open-ILS/src/extras/Makefile.install postgres-server-debian-bullseye-10 make -f Open-ILS/src/extras/Makefile.install postgres-server-debian-buster-10 make -f Open-ILS/src/extras/Makefile.install postgres-server-debian-stretch-10 make -f Open-ILS/src/extras/Makefile.install postgres-server-ubuntu-bionic-10 diff --git a/docs/modules/installation/pages/server_upgrade.adoc b/docs/modules/installation/pages/server_upgrade.adoc index f77d183207..3535d522e8 100644 --- a/docs/modules/installation/pages/server_upgrade.adoc +++ b/docs/modules/installation/pages/server_upgrade.adoc @@ -8,11 +8,11 @@ All of the steps in this chapter are to be completed from the command line. * **PostgreSQL**: The minimum supported version is 9.6. * **Linux**: Evergreen 3.X.X has been tested on Debian Stretch - (9.0), Debian Buster (10.0), Ubuntu Bionic Beaver (18.04), and - Ubuntu Focal Fossa (20.04). If you are running an older version - of these distributions, you may want to upgrade before upgrading - Evergreen. For instructions on upgrading these distributions, - visit the Debian or Ubuntu websites. + (9.0), Debian Buster (10.0), Debian Bullseye (11.0), Ubuntu + Bionic Beaver (18.04), and Ubuntu Focal Fossa (20.04). If you + are running an older version of these distributions, you may want + to upgrade before upgrading Evergreen. For instructions on upgrading + these distributions, visit the Debian or Ubuntu websites. * **OpenSRF**: The minimum supported version of OpenSRF is 3.2.0. @@ -69,6 +69,7 @@ indexterm:[Linux, Ubuntu] + * `debian-stretch` for Debian Stretch (9.0) (EDI compatibility in progress) * `debian-buster` for Debian Buster (10.0) + * `debian-bullseye` for Debian Bullseye (11.0) * `ubuntu-bionic` for Ubuntu Bionic Beaver (18.04) (EDI compatibility in progress) * `ubuntu-focal` for Ubuntu Focal Fossa (20.04) (EDI compatibility in progress) -- 2.11.0