LP1940146: Debian Bullseye Installation Support
[OpenSRF.git] / src / extras / Makefile.install
1 # ---------------------------------------------------------------------
2 # Author: Bill Erickson <erickson@esilibrary.com>
3 # Author: Dan Scott <dscott@laurentian.ca>
4 #
5 # Makefile to install prerequisites for OpenSRF
6 #
7 # Currently supports Debian (stretch/bullseye) and Ubuntu
8 # (bionic/focal)
9 #
10 # Installs Perl prereqs, libjs with Perl wrapper
11 #
12 # usage:
13 #       make -f Makefile.install debian-bullseye
14 #       - or -
15 #       make -f Makefile.install debian-buster
16 #       - or -
17 #       make -f Makefile.install debian-stretch
18 #       - or -
19 #       make -f Makefile.install ubuntu-bionic
20 #       - or -
21 #       make -f Makefile.install ubuntu-focal
22 #       - or -
23 #       make -f Makefile.install fedora
24 #
25 # ---------------------------------------------------------------------
26
27 # Make any assumptions about the shell being used explicit
28 SHELL=/bin/bash 
29
30 # 64 or 32 bit os?
31 LBITS=$(shell getconf LONG_BIT)
32
33 APT_TOOL=apt-get -yq
34
35 # Debian dependencies
36 DEBS =  \
37         apache2 \
38         apache2-dev \
39         autoconf\
40         automake\
41         build-essential\
42         check\
43         ejabberd\
44         less\
45         libapache2-mod-perl2\
46         libcache-memcached-perl\
47         libclass-dbi-abstractsearch-perl\
48         libclass-dbi-sqlite-perl\
49         libdatetime-format-builder-perl\
50         libdatetime-format-iso8601-perl \
51         libdatetime-format-mail-perl\
52         libdatetime-perl\
53         libdatetime-timezone-perl\
54         liberror-perl\
55         libexpat1-dev\
56         libfile-find-rule-perl\
57         libgcrypt20-dev \
58         libgdbm-dev \
59         libjson-xs-perl \
60         liblog-log4perl-perl\
61         libmemcached-dev \
62         libmemcached-tools \
63         libmodule-build-perl\
64         libncurses5-dev \
65         libnet-dns-perl\
66         libnet-server-perl \
67         libperl-dev\
68         libreadline-dev\
69         libtemplate-perl\
70         libtest-pod-perl\
71         libtie-ixhash-perl\
72         libtool\
73         libuniversal-require-perl\
74         libunix-syslog-perl\
75         libwww-perl\
76         libxml2-dev\
77         libxml-libxml-perl\
78         libxml-libxslt-perl\
79         libxml-simple-perl\
80         libxslt1-dev\
81         memcached\
82         pkg-config\
83         psmisc\
84         tar\
85         unzip\
86         zip\
87         zlib1g-dev
88
89 FEDORAS = \
90         autoconf \
91         automake \
92         check \
93         check-devel \
94         ejabberd \
95         expat-devel \
96         gcc \
97         gdbm-devel \
98         httpd \
99         httpd-devel \
100         less \
101         libgcrypt-devel \
102         libmemcached \
103         libmemcached-devel \
104         libtool \
105         libxml-libxml-perl \
106         libxml-libxslt-perl \
107         libxml2-devel \
108         libxslt-devel \
109         make \
110         memcached \
111         mod_perl \
112         perl-Cache-Memcached \
113         perl-Class-DBI \
114         perl-Class-DBI-AbstractSearch \
115         perl-Class-DBI-SQLite \
116         perl-DateTime-Format-Builder \
117         perl-DateTime-Format-ISO8601 \
118         perl-DateTime-Format-Mail \
119         perl-DateTime-Set \
120         perl-devel \
121         perl-Error \
122         perl-File-Find-Rule \
123         perl-JSON-XS \
124         perl-libwww-perl \
125         perl-Log-Log4perl \
126         perl-Module-Build \
127         perl-Net-DNS \
128         perl-Net-Server \
129         perl-SQL-Abstract-Limit \
130         perl-Template-Toolkit \
131         perl-Test-Deep \
132         perl-Test-Exception \
133         perl-Test-Pod \
134         perl-Tie-IxHash \
135         perl-UNIVERSAL-require \
136         perl-Unix-Syslog \
137         perl-XML-LibXML \
138         perl-XML-LibXSLT \
139         perl-XML-Simple \
140         psmisc \
141         readline-devel \
142         tar
143
144 DEB_APACHE_MODS = \
145         ssl
146
147 # ----------------------------------------------------------------------------
148
149 all: 
150         @echo "please specify an OS" && exit 0
151
152
153 debian-bullseye: generic_debian
154 debian-buster: generic_debian
155 debian-stretch: generic_debian
156
157 generic_debian: install_debs debian_sys_config apache_mpm_prefork_mods apache_perl_mod
158
159 ubuntu-bionic: generic_ubuntu
160 ubuntu-focal: generic_ubuntu
161
162 generic_ubuntu: install_debs debian_sys_config apache_mpm_prefork_mods apache_perl_mod
163
164 fedora: install_fedora_rpms
165
166 # ------------------------------------------------------------------
167
168 # - DEBIAN ---------------------------------------------------------
169
170 debian_sys_config: 
171         # link the apache modules in
172         for m in $(DEB_APACHE_MODS); do a2enmod $$m; done;
173
174 # Install the debian-specific dependencies
175 install_debs:
176         $(APT_TOOL) install $(DEBS)
177
178 # Some OSes activate the Apache mpm_event module by default.
179 # OpenSRF requires prefork.
180 apache_mpm_prefork_mods:
181         a2dismod mpm_event
182         a2enmod mpm_prefork
183
184 # Need to activate mod_perl on some O/S.
185 apache_perl_mod:
186         a2enmod perl
187
188 # - FEDORA ---------------------------------------------------------
189 # Fedora
190 install_fedora_rpms:
191         yum -y install $(FEDORAS)
192
193 # vim:noet:sw=4:ts=4: