LP#1708048: Add support for Debian 9 Stretch
authorBen Shum <ben@evergreener.net>
Tue, 1 Aug 2017 18:41:08 +0000 (14:41 -0400)
committerGalen Charlton <gmc@equinoxinitiative.org>
Wed, 20 Sep 2017 14:59:23 +0000 (10:59 -0400)
  - Add new make target "debian-stretch"
  - Add PG 9.6 options
  - Add Stretch references to README

Signed-off-by: Ben Shum <ben@evergreener.net>
Signed-off-by: Jason Stephenson <jason@sigio.com>
Signed-off-by: Galen Charlton <gmc@equinoxinitiative.org>

Open-ILS/src/extras/Makefile.install
Open-ILS/src/extras/install/Makefile.debian-stretch [new file with mode: 0644]
docs/installation/server_installation.adoc

index 311a2fb..43bebfe 100644 (file)
@@ -4,12 +4,14 @@
 #
 # Makefile to install prerequisites for OpenSRF and Evergreen
 #
-# Currently supports Debian (jessie, wheezy), Ubuntu (12.04), 
-# Ubuntu (14.04), Ubuntu (16.04), and Fedora (16 and 17).
+# Currently supports Debian (stretch, jessie, wheezy),
+# Ubuntu (14.04), Ubuntu (16.04).
 #
 # Installs Perl prereqs, libdbi, libdbi-drivers, and libyaz
 #
 # usage:
+#      make -f Makefile.install debian-stretch
+#      - or -
 #      make -f Makefile.install debian-jessie
 #      - or -
 #      make -f Makefile.install debian-wheezy
@@ -62,6 +64,8 @@ DIR = $(dir $(lastword $(MAKEFILE_LIST)))/install
 
 all:
        @echo "please specify an OS" && exit 0
+debian-stretch:
+       @make -f $(DIR)/Makefile.debian-stretch
 debian-jessie:
        @make -f $(DIR)/Makefile.debian-jessie
 debian-wheezy:
@@ -73,6 +77,8 @@ ubuntu-trusty:
 fedora:
        @make -f $(DIR)/Makefile.fedora
 
+postgres-server-debian-stretch:
+       @make -f $(DIR)/Makefile.debian-stretch install_postgres_server
 postgres-server-debian-jessie:
        @make -f $(DIR)/Makefile.debian-jessie install_postgres_server
 postgres-server-debian-wheezy:
@@ -88,6 +94,8 @@ ubuntu-xenial-developer:
        @make -f $(DIR)/Makefile.ubuntu-xenial install_developer
 ubuntu-trusty-developer:
        @make -f $(DIR)/Makefile.ubuntu-trusty install_developer
+debian-stretch-developer:
+       @make -f $(DIR)/Makefile.debian-stretch install_developer
 debian-jessie-developer:
        @make -f $(DIR)/Makefile.debian-jessie install_developer
 debian-wheezy-developer:
@@ -97,6 +105,8 @@ ubuntu-xenial-translator:
        @make -f $(DIR)/Makefile.ubuntu-xenial install_translator
 ubuntu-trusty-translator:
        @make -f $(DIR)/Makefile.ubuntu-trusty install_translator
+debian-stretch-translator:
+       @make -f $(DIR)/Makefile.debian-stretch install_translator
 debian-jessie-translator:
        @make -f $(DIR)/Makefile.debian-jessie install_translator
 debian-wheezy-translator:
@@ -106,6 +116,8 @@ ubuntu-xenial-packager:
        @make -f $(DIR)/Makefile.ubuntu-xenial install_packager
 ubuntu-trusty-packager:
        @make -f $(DIR)/Makefile.ubuntu-trusty install_packager
+debian-stretch-packager:
+       @make -f $(DIR)/Makefile.debian-stretch install_packager
 debian-jessie-packager:
        @make -f $(DIR)/Makefile.debian-jessie install_packager
 debian-wheezy-packager:
diff --git a/Open-ILS/src/extras/install/Makefile.debian-stretch b/Open-ILS/src/extras/install/Makefile.debian-stretch
new file mode 100644 (file)
index 0000000..bd15ce5
--- /dev/null
@@ -0,0 +1,162 @@
+# install files for Debian Stretch
+
+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\
+       libexcel-writer-xlsx-perl\
+       libgd-graph3d-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\
+       yaz
+
+export DEB_APACHE_MODS = \
+    expires\
+    include\
+    proxy\
+    proxy_http\
+    rewrite\
+    cgi\
+    perl
+
+export DEB_APACHE_DISMODS = \
+    deflate
+
+export DEB_APACHE_DISCONF = \
+    serve-cgi-bin
+
+export CPAN_MODULES = \
+       Business::OnlinePayment::PayPal \
+       Email::Send
+
+export CPAN_MODULES_FORCE = \
+       Business::Stripe \
+       Class::DBI::Frozen::301
+
+PGSQL_SERVER_DEBS_96 = \
+       $(DEB_PGSQL_COMMON_MODS) \
+       postgresql-9.6 \
+       postgresql-contrib-9.6 \
+       postgresql-plperl-9.6 \
+       postgresql-server-dev-9.6
+
+# 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.
+
+# nodejs-legacy creates a symlink for /usr/bin/node -> /usr/bin/nodejs
+# which is needed by our npm-installed packages
+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 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_SERVER_DEBS_96)"
+
+# 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:
index 1634e7a..59a4930 100644 (file)
@@ -56,8 +56,8 @@ Installing prerequisites
 
   * **PostgreSQL**: Version 9.4 is recommended. 
     The minimum supported version is 9.3.
-  * **Linux**: Evergreen 2.8 has been tested on Debian Jessie (8.0), 
-    Debian Wheezy (7.0), Ubuntu Xenial Xerus (16.04), 
+  * **Linux**: Evergreen has been tested on Debian Stretch (9), 
+    Debian Jessie (8), Debian Wheezy (7), Ubuntu Xenial Xerus (16.04), 
     and Ubuntu Trusty Tahr (14.04).
     If you are running an older version of these distributions, you may want 
     to upgrade before upgrading Evergreen. For instructions on upgrading these
@@ -77,12 +77,12 @@ before you can successfully configure, compile, and install Evergreen.
     PostgreSQL, so steps are taken to automatically utilize the 
     PostgreSQL community's apt sources. 
     (For complete details, see: https://wiki.postgresql.org/wiki/Apt)
-  * Debian (Jessie) and Ubuntu (Xenial) comes with PostgreSQL 9.4+,
+  * Debian (Jessie/Stretch) and Ubuntu (Xenial) comes with PostgreSQL 9.4+,
     so no additional steps are required.
 +
 3. Issue the following commands as the *root* Linux account to install
    prerequisites using the `Makefile.install` prerequisite installer,
-   substituting `debian-jessie`, `debian-wheezy`,
+   substituting `debian-stretch`, `debian-jessie`, `debian-wheezy`,
    `ubuntu-xenial`, or `ubuntu-trusty` for <osname> below:
 +
 [source, bash]
@@ -94,8 +94,8 @@ make -f Open-ILS/src/extras/Makefile.install <osname>
    issuing the following commands as the *root* Linux account:
 +
 [NOTE]
-You should skip this step if installing on Ubuntu Trusty, Ubuntu Xenial or Debian Jessie. The Ubuntu
-and Debian Jessie targets use libdbd-pgsql from packages.
+You should skip this step if installing on Ubuntu Trusty/Xenial or Debian Jessie/Stretch. The Ubuntu
+and Debian Jessie/Stretch targets use libdbd-pgsql from packages.
 +
 .Debian Wheezy
 [source, bash]
@@ -287,7 +287,7 @@ mkdir /etc/apache2/ssl
 cd /etc/apache2/ssl
 ------------------------------------------------------------------------------
 +
-.Ubuntu Trusty, Ubuntu Xenial, and Debian Jessie
+.Ubuntu Trusty/Xenial and Debian Jessie/Stretch
 [source,bash]
 ------------------------------------------------------------------------------------
 cp Open-ILS/examples/apache_24/eg_24.conf       /etc/apache2/sites-available/eg.conf
@@ -345,7 +345,7 @@ place.
 </IfModule>
 ------------------------------------------------------------------------------
 +
-.Ubuntu Trusty, Ubuntu Xenial, Debian Jessie (`/etc/apache2/mods-available/mpm_prefork.conf`)
+.Ubuntu Trusty/Xenial, Debian Jessie/Stretch (`/etc/apache2/mods-available/mpm_prefork.conf`)
 [source,bash]
 ------------------------------------------------------------------------------
 <IfModule mpm_prefork_module>
@@ -357,7 +357,7 @@ place.
 </IfModule>
 ------------------------------------------------------------------------------
 +
-. (Ubuntu Trusty, Ubuntu Xenial, Debian Jessie) As the *root* user,
+. (Ubuntu Trusty/Xenial, Debian Jessie/Stretch) As the *root* user,
     enable the mpm_prefork module:
 +
 [source,bash]
@@ -374,7 +374,7 @@ a2dissite default  # OPTIONAL: disable the default site (the "It Works" page)
 a2ensite eg.conf
 ------------------------------------------------------------------------------
 +
-(Ubuntu Trusty, Ubuntu Xenial, Debian Jessie):
+(Ubuntu Trusty/Xenial, Debian Jessie/Stretch):
 +
 [source,bash]
 ------------------------------------------------------------------------------
@@ -463,6 +463,7 @@ command below based on your operating system.
 
 [source, bash]
 ------------------------------------------------------------------------------
+make -f Open-ILS/src/extras/Makefile.install postgres-server-debian-stretch
 make -f Open-ILS/src/extras/Makefile.install postgres-server-debian-jessie
 make -f Open-ILS/src/extras/Makefile.install postgres-server-debian-wheezy
 make -f Open-ILS/src/extras/Makefile.install postgres-server-ubuntu-trusty
@@ -472,7 +473,7 @@ make -f Open-ILS/src/extras/Makefile.install postgres-server-ubuntu-xenial
 For a standalone PostgreSQL server, install the following Perl modules for your
 distribution as the *root* Linux account:
 
-.(Debian Wheezy, Ubuntu Trusty, and Ubuntu Xenial) 
+.(Debian and Ubuntu) 
 No extra modules required for these distributions.
 
 You need to create a PostgreSQL superuser to create and access the database.