root / tags / rel_1_2_0 / install.sh

Revision 7463, 6.9 kB (checked in by miker, 1 year ago)

Patch from Dan Scott:

Current SVN has libdbi hardcoded to a location of /usr/local/lib/dbd
but one of these days a distro is going to ship a version of libdbi
that's new enough _and_ that had libdbdpgsql.so linked to libdbi.so to
our satisfaction, and it won't be in /usr/local/lib/dbd -- so we might
as well prepare ourselves now.

  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
Line 
1#!/bin/bash
2# --------------------------------------------------------------------
3# Copyright (C) 2005  Georgia Public Library Service
4# Bill Erickson <highfalutin@gmail.com>
5#
6# This program is free software; you can redistribute it and/or
7# modify it under the terms of the GNU General Public License
8# as published by the Free Software Foundation; either version 2
9# of the License, or (at your option) any later version.
10#
11# This program is distributed in the hope that it will be useful,
12# but WITHOUT ANY WARRANTY; without even the implied warranty of
13# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14# GNU General Public License for more details.
15# --------------------------------------------------------------------
16
17
18# --------------------------------------------------------------------
19# ILS install script
20# --------------------------------------------------------------------
21CONFIG_FILE="install.conf";
22DEFAULT_CONFIG_FILE="install.conf.default";
23verbose="-s" #clear this to get full build output
24
25
26# --------------------------------------------------------------------
27# Loads all of the path information from the user setting
28# install variables as it goes
29# --------------------------------------------------------------------
30
31function fail {
32        MSG="$1";
33        echo "A build error occured: $MSG";
34        exit 99;
35}
36
37
38#function postMessage {
39
40#cat <<-WORDS
41#       --------------------------------------------------------------------
42
43
44#}
45
46
47
48# --------------------------------------------------------------------
49# Makes sure the install directories exist and are writable
50# --------------------------------------------------------------------
51
52function mkDir {
53        mkdir -p "$1";
54        [ "$?" != "0" ] && fail "Error creating $1";
55        [ ! -w "$1" ] && fail "We don't have write access to $1";
56}
57
58function mkInstallDirs {
59
60        installing      && mkDir "$PREFIX";
61        building        && mkDir "$TMP";
62        installing      && mkDir "$SOCK";
63        installing      && mkDir "$PID";
64        installing      && mkDir "$LOG";
65
66
67        # add the opensrf user and group
68         if installing; then
69                if [ ! $(grep "^opensrf:" /etc/group) ]; then groupadd opensrf; fi
70                if [ ! $(grep "^opensrf:" /etc/passwd) ]; then useradd -g opensrf opensrf; fi
71        fi;
72
73}
74
75function installing {
76        if [ -z "$INSTALLING" ]; then return 1; fi;
77        return 0;
78}
79
80function building {
81        if [ -z "$BUILDING" ]; then return 1; fi;
82        return 0;
83}
84
85
86
87# --------------------------------------------------------------------
88# Loads the config file.  If it can't fine CONFIG_FILE, it attempts to
89# use DEFAULT_CONFIG_FILE.  If it can't find that, it fails.
90# --------------------------------------------------------------------
91function loadConfig {
92        if [ ! -f "$CONFIG_FILE" ]; then
93                if [ -f "$DEFAULT_CONFIG_FILE" ]; then
94                        echo "+ + + Copying $DEFAULT_CONFIG_FILE to $CONFIG_FILE and using its settings...";
95                        cp "$DEFAULT_CONFIG_FILE" "$CONFIG_FILE";
96                else
97                        fail "config file \"$CONFIG_FILE\" cannot be found";
98                fi
99        fi
100        source "$CONFIG_FILE";
101}
102
103
104
105
106function runInstall {
107
108        # pass the collected variables to make
109        for target in ${TARGETS[@]:0}; do
110
111                echo ""
112                echo "-------------- [ $target ] -------------------------------------------";
113                echo ""
114
115                MAKE="make $verbose APXS2=$APXS2 PREFIX=$PREFIX TMP=$TMP APR_HEADERS=$APR_HEADERS \
116                        APACHE2_HEADERS=$APACHE2_HEADERS LIBXML2_HEADERS=$LIBXML2_HEADERS DBPORT=$DBPORT\
117                        BINDIR=$BINDIR DBI_LIBS=$DBI_LIBS LIBDIR=$LIBDIR PERLDIR=$PERLDIR INCLUDEDIR=$INCLUDEDIR \
118                        WEBDIR=$WEBDIR TEMPLATEDIR=$TEMPLATEDIR ETCDIR=$ETCDIR REPORTERDIR=$REPORTERDIR\
119                        OPENSRF_HEADERS=$OPENSRF_HEADERS OPENSRF_LIBS=$OPENSRF_LIBS OPENILSDIR=$OPENILSDIR EVERGREENDIR=$EVERGREENDIR \
120                        CIRCRULESDIR=$CIRCRULESDIR CATALOGSCRIPTDIR=$CATALOGSCRIPTDIR CGIDIR=$CGIDIR \
121                        DBDRVR=$DBDRVR DBHOST=$DBHOST DBVER=$DBVER DATADIR=$DATADIR ADMINDIR=$ADMINDIR\
122                        PENALTYRULESDIR=$PENALTYRULESDIR DBNAME=$DBNAME DBUSER=$DBUSER DBPW=$DBPW XSLDIR=$XSLDIR NEW_OPAC_URL=$NEW_OPAC_URL \
123                        NEW_XUL_PACKAGE_NAME=$NEW_XUL_PACKAGE_NAME NEW_XUL_PACKAGE_LABEL=$NEW_XUL_PACKAGE_LABEL";
124
125
126                case "$target" in
127       
128                        # OpenILS ---                   
129
130                        "openils_all" )
131                                if building;    then $MAKE -C "$OPENILSDIR" all; fi;
132                                if installing; then $MAKE -C "$OPENILSDIR" install; fi;
133                                ;;
134
135                        "openils_core" )
136                                if building; then $MAKE -C "$OPENILSDIR" "c_apps"; fi;
137                                if installing; then 
138                                        $MAKE -C "$OPENILSDIR" "perl-install";
139                                        $MAKE -C "$OPENILSDIR" "string-templates-install";
140                                        $MAKE -C "$OPENILSDIR" "xsl-install";
141                                        $MAKE -C "$OPENILSDIR" "c_apps-install";
142                                        $MAKE -C "$OPENILSDIR" "circ_rules-install";
143                                        $MAKE -C "$OPENILSDIR" "autojs-install";
144                                fi;
145                                ;;
146
147                        "openils_web" )
148                                if building; then $MAKE -C "$OPENILSDIR" "mod_xmlent"; fi;
149                                #if building; then $MAKE -C "$OPENILSDIR" "mod_ils_rest_gateway"; fi;
150                                if installing; then
151                                        $MAKE -C "$OPENILSDIR" "web-install";
152                                        $MAKE -C "$OPENILSDIR" "cgi-bootstrap";
153                                        $MAKE -C "$OPENILSDIR" "reporter-install";
154                                fi;
155                                ;;
156
157                        "openils_marcdumper" )
158                                if building;    then $MAKE -C "$OPENILSDIR" "marcdumper"; fi;
159                                if installing; then $MAKE -C "$OPENILSDIR" "marcdumper-install"; fi;
160                                ;;
161
162                        "openils_db" )
163                                if installing; then 
164                                        $MAKE -C "$OPENILSDIR" "storage-bootstrap";
165                                fi;
166                                ;;
167
168                        "openils_reporter" )
169                                if installing; then 
170                                        $MAKE -C "$OPENILSDIR" "reporter-install";
171                                fi;
172                                ;;
173
174                        "openils_client_xul" )
175                                if building; then
176                                        $MAKE -C "$OPENILSDIR" "client-xul";
177                                fi;
178                                ;;
179
180                        "openils_server_xul" )
181                                if installing; then
182                                        $MAKE -C "$OPENILSDIR" "server-xul";
183                                fi;
184                                ;;
185
186                        # Evergreen ---                         
187
188                        "evergreen_core" )
189                                if installing;  then $MAKE -C "$EVERGREENDIR" "install"; fi;
190                                ;;     
191
192                        "evergreen_xul_client" )
193                                if building;    then $MAKE -C "$EVERGREENDIR" xul; fi;
194                                ;;
195
196
197                        *) fail "Unknown target: $target";;
198
199                esac
200
201        done
202
203        if installing; then
204                echo -e "\nNow run: chown -R opensrf:opensrf $PREFIX"
205        fi
206}
207
208
209# --------------------------------------------------------------------
210# Checks command line parameters for special behavior
211# Supported params are:
212# clean - cleans all build files
213# build - builds the specified sources
214# install - installs the specified sources
215# --------------------------------------------------------------------
216function checkParams {
217
218        if [ -z "$1" ]; then usage; fi;
219
220        for arg in "$@"; do
221
222                lastArg="$arg";
223
224                case "$arg" in
225
226                        "clean")
227                                cleanMe;;
228
229                        "build")
230                                BUILDING="1";;
231
232                        "install")
233                                INSTALLING="1";;
234                       
235                        "verbose")
236                                verbose="";;
237
238                        *) fail "Unknown option => $arg";
239                esac
240        done
241
242        if [ "$lastArg" = "clean" ]; then exit 0; fi;
243}
244
245
246function cleanMe {
247        loadConfig;
248        make "TMP=$TMP" -s -C "$OPENILSDIR"  clean;
249        make "TMP=$TMP" -s -C "$EVERGREENDIR" clean;
250}
251
252function usage {
253        echo "usage: $0 [ build | install | clean ]";
254        exit;
255}
256
257checkParams "$@";
258
259if building; then echo "Building..."; fi;
260if installing; then echo "Installing..."; fi;
261
262
263# --------------------------------------------------------------------
264# Kick it off...
265# --------------------------------------------------------------------
266loadConfig;
267mkInstallDirs;
268runInstall;
269
270
Note: See TracBrowser for help on using the browser.