echo __--==2 20. Getting help
- echo __--== Miscellaneous
+ echo __--== Installing Evergreen
+ echo __--==2 1. Preamble: referenced user accounts
- get_opensrf_tip
+ stop_opensrf
+ cloning_evergreen_git_repos
- #setting_ldconfig_and_rsyslog_and_hosts_and_ejabberd
+ echo __--==2 2. Preamble: developer instructions
- exit 0;
+ eg_developer_steps
- # Evergreen install
+ echo __--==2 3. Installing prerequisites
+
+ eg_prereqs
+
+ echo __--==3 OPTIONAL: Developer additions
+
+ eg_dev_additions
+
+ echo __--==2 4. Extra steps for web staff client
+
+
+ echo __--==3 4.1. Install dependencies for web staff client
+
+ echo __--==3 4.2. Install AngularJS files for web staff client
+
+ eg_angularjs_web_build
+
+ echo __--==3 4.3. Install Angular files for web staff client
+
+ eg_angular_web_build
+
+ echo __--==2 5. Configuration and compilation instructions
+
+ build_eg
+ test_eg_build
+
+ echo __--==2 6. Installation instructions
+
+ install_eg
+
+ echo __--==2 7. Change ownership of the Evergreen files
+
+ eg_post_install1
+
+ echo __--==2 8. Run ldconfig
+
+ eg_post_install2
+
+ echo __--==2 9. Additional Instructions for Developers
+
+ eg_dojo_install
+
+ echo __--==2 10. Configure the Apache Web server
- cloning_evergreen_git_repos
- evergreen_prereqs
- evergreen_db_prereqs
- build_evergreen
- test_evergreen_build
- test_and_build_eg_browser_client
- install_evergreen
- configure_database
configure_apache
+
+ echo __--==2 11. Configure OpenSRF for the Evergreen application
+
+ eg_configure_opensrf
+
+ echo __--==2 12. Configure action triggers for the Evergreen application
+
+ eg_configure_action_trigger
+
+ echo __--==2 13. Creating the Evergreen database
+
+ echo __--==3 13.1. Setting up the PostgreSQL server
+
+ evergreen_db_prereqs
+ evergreen_db_superuser
+
+ echo __--==3 13.2. Creating the Evergreen database and schema
+
+ evergreen_db_create
+ evergreen_db_pgtap
+
+ echo __--==2 14. Starting Evergreen
+
+ if [ $AUTOSTART ]; then
+ start_opensrf
+ sleep 10
+ eg_autogen
+ sleep 10
+ eg_restart_apache
+ sleep 10
+ else
+ echo AUTOSTART not enabled
+ fi
+
+ echo __--==2 15. Testing connections to Evergreen
+
if [ $AUTOSTART ]; then
- start_evergreen
if [ $LIVETEST ]; then
+ eg_test_srfsh
test_evergreen_live
fi
+ else
+ echo AUTOSTART not enabled
fi
+
+ echo __--==2 16. Getting help
+
+ echo __--==2 17. License
+
+ echo __--== Miscellaneous
+
docs_builder_prereqs
build_the_docs
+ get_opensrf_tip
+ get_eg_tip
+
+ exit 0;
}
function init_variables {
echo End of configuring websockets =~-._
}
+function cloning_evergreen_git_repos {
+ echo _.-~= cloning Evergreen git repository
+ date
+ TEST_COMMAND="
+ cd /home/test;
+ git clone --depth 1 --branch $EVERGREEN_BRANCH $EVERGREEN_REPO Evergreen;
+ "
+ su - test sh -c "$TEST_COMMAND";
+ echo Return Value = $?
+
+ echo End of cloning Evergreen git repository =~-._
+}
+
+function eg_developer_steps {
+ echo _.-~= Evergreen developer steps
+ cd /home/test/Evergreen/
+ autoreconf -i
+ echo Return Value = $?
+ echo End of Evergreen developer steps =~-._
+}
+
+function eg_prereqs {
+ echo _.-~= Installing Evergreen pre-requisites
+ date
+ cd /home/test/Evergreen/
+ if [ $YES ]; then
+ yes | make -f Open-ILS/src/extras/Makefile.install ${EVERGREEN_PREREQ_TARGET}
+ else
+ make -f Open-ILS/src/extras/Makefile.install ${EVERGREEN_PREREQ_TARGET}
+ fi;
+ echo Return Value = $?
+ echo End of Installing Evergreen pre-requisites =~-._
+}
+
+function eg_dev_additions {
+ echo _.-~= Installing Evergreen pre-requisites
+ date
+ cd /home/test/Evergreen/
+ echo ${EVERGREEN_PREREQ_TARGET}-developer
+ if [ $YES ]; then
+ yes | make -f Open-ILS/src/extras/Makefile.install ${EVERGREEN_PREREQ_TARGET}-developer
+ else
+ make -f Open-ILS/src/extras/Makefile.install ${EVERGREEN_PREREQ_TARGET}-developer
+ fi;
+ echo ${EVERGREEN_PREREQ_TARGET}-translator
+ if [ $YES ]; then
+ yes | make -f Open-ILS/src/extras/Makefile.install ${EVERGREEN_PREREQ_TARGET}-translator
+ else
+ make -f Open-ILS/src/extras/Makefile.install ${EVERGREEN_PREREQ_TARGET}-translator
+ fi;
+ echo ${EVERGREEN_PREREQ_TARGET}-packager
+ if [ $YES ]; then
+ yes | make -f Open-ILS/src/extras/Makefile.install ${EVERGREEN_PREREQ_TARGET}-packager
+ else
+ make -f Open-ILS/src/extras/Makefile.install ${EVERGREEN_PREREQ_TARGET}-packager
+ fi;
+ echo Return Value = $?
+ echo End of Installing Evergreen pre-requisites =~-._
+}
+
+function eg_angularjs_web_build {
+ echo _.-~= Installing AngularJS web client
+ date
+ TEST_COMMAND='
+ cd /home/test/Evergreen/Open-ILS/web/js/ui/default/staff/ ;
+ echo Running npm install: ;
+ npm install ;
+ echo Return Value = $? ;
+ echo Running npm run build-prod: ;
+ npm run build-prod ;
+ echo Return Value = $? ;
+ echo Running npm run test: ;
+ npm run test ;
+ echo Return Value = $? ;
+ '
+ su - test sh -c "$TEST_COMMAND"
+ echo Return Value = $?
+ echo End of Installing AngularJS web client =~-._
+}
+
+function eg_angular_web_build {
+ echo _.-~= Installing Angular web client
+ date
+ TEST_COMMAND='
+ cd /home/test/Evergreen/Open-ILS/src/eg2/ ;
+ echo Running npm install: ;
+ npm install ;
+ echo Return Value = $? ;
+ echo "Running ng build --prod:" ;
+ ng build --prod ;
+ echo Return Value = $? ;
+ echo Running npm run test: ;
+ npm run test ;
+ echo Return Value = $? ;
+ '
+ su - test sh -c "$TEST_COMMAND"
+ echo Return Value = $?
+ echo End of Installing AngularJS web client =~-._
+}
+
+function build_eg {
+ echo _.-~= Building Evergreen
+ date
+ TEST_COMMAND='
+ cd /home/test/Evergreen;
+ PATH=/openils/bin:$PATH ./configure --prefix=/openils --sysconfdir=/openils/conf;
+ make;'
+ su - test sh -c "$TEST_COMMAND"
+ echo Return Value = $?
+ echo End of Building Evergreen =~-._
+}
+
+function test_eg_build {
+ echo _.-~= Running Evergreen tests
+ date
+ cd /home/test/Evergreen;
+ make check
+ echo Return Value = $?
+ echo End of Running Evergreen tests =~-._
+}
+
+function install_eg {
+ echo _.-~= Installing Evergreen
+ date
+ cd /home/test/Evergreen
+ make install
+ echo Return Value = $?
+ echo End of Installing Evergreen =~-._
+}
+
+function eg_post_install1 {
+ echo _.-~= Change File Ownership
+ date
+ chown -R opensrf:opensrf /openils
+ echo End of Change File Ownership =~-._
+}
+
+function eg_post_install2 {
+ echo _.-~= Run ldconfig
+ date
+ ldconfig
+ echo End of Run ldconfig =~-._
+}
+
+function eg_dojo_install {
+ echo _.-~= Installing Dojo
+ date
+ OSRF_COMMAND='
+ cd /home/opensrf/;
+ wget -N "http://download.dojotoolkit.org/release-'$DOJO_VERSION'/dojo-release-'$DOJO_VERSION'.tar.gz" \
+ || wget -N "http://evergreen-ils.org/~phasefx/download.dojotoolkit.org/dojo-release-'$DOJO_VERSION'.tar.gz"
+ tar -C /openils/var/web/js -xzf dojo-release-'$DOJO_VERSION'.tar.gz
+ cp -r /openils/var/web/js/dojo-release-'$DOJO_VERSION'/* /openils/var/web/js/dojo/.'
+ su - opensrf sh -c "$OSRF_COMMAND"
+ cd
+ echo End of Installing Dojo =~-._
+}
+
+function configure_apache {
+ echo _.-~= configure apache
+ date
+ echo Copy apache configs into place
+ cd /home/test/Evergreen/
+ cp Open-ILS/examples/apache_24/eg_24.conf /etc/apache2/sites-available/eg.conf
+ cp Open-ILS/examples/apache_24/eg_vhost_24.conf /etc/apache2/eg_vhost.conf
+ cp Open-ILS/examples/apache_24/eg_startup /etc/apache2/
+
+ echo SSL cert
+ /etc/init.d/apache2 stop
+ mkdir -p /etc/apache2/ssl/;
+ cd /etc/apache2/ssl/
+ if [ ! -f server.key ] ; then
+ echo -e "\n\nConfiguring a new temporary SSL certificate....\n";
+ if [ $YES ]; then
+ yes "" | openssl req -new -x509 -days 365 -nodes -out server.crt -keyout server.key
+ else
+ openssl req -new -x509 -days 365 -nodes -out server.crt -keyout server.key
+ fi;
+ else
+ echo -e "\nkeeping existing ssl/server.key file\n";
+ fi
+
+ echo Modifying APACHE_RUN_USER/APACHE_RUN_GROUP in /etc/apache2/envvars
+ sed -i 's/www-data/opensrf/g' /etc/apache2/envvars
+
+ echo Modifying KeepAliveTimeout in /etc/apache2/apache2.conf
+ echo Before:
+ grep KeepAliveTimeout /etc/apache2/apache2.conf
+ sed -i 's/KeepAliveTimeout .*/KeepAliveTimeout 1/' /etc/apache2/apache2.conf
+ echo After:
+ grep KeepAliveTimeout /etc/apache2/apache2.conf
+
+ echo Modifying KeepAliveMaxRequests in /etc/apache2/apache2.conf
+ echo Before:
+ grep KeepAliveMaxRequests /etc/apache2/apache2.conf
+ sed -i 's/KeepAliveMaxRequests .*/KeepAliveMaxRequests 100/' /etc/apache2/apache2.conf
+ echo After:
+ grep KeepAliveMaxRequests /etc/apache2/apache2.conf
+
+ echo Setting /etc/apache2/mods-available/mpm_prefork.conf
+ echo '<IfModule mpm_prefork_module>' > /etc/apache2/mods-available/mpm_prefork.conf
+ echo ' StartServers 15' >> /etc/apache2/mods-available/mpm_prefork.conf
+ echo ' MinSpareServers 5' >> /etc/apache2/mods-available/mpm_prefork.conf
+ echo ' MaxSpareServers 15' >> /etc/apache2/mods-available/mpm_prefork.conf
+ echo ' MaxRequestWorkers 75' >> /etc/apache2/mods-available/mpm_prefork.conf
+ echo ' MaxConnectionsPerChild 500' >> /etc/apache2/mods-available/mpm_prefork.conf
+ echo '</IfModule>' >> /etc/apache2/mods-available/mpm_prefork.conf
+
+ echo Ensuring mpm_prefork over mpm_event
+ a2dismod mpm_event
+ a2enmod mpm_prefork
+
+ echo Enable the EG site
+ a2dissite 000-default # OPTIONAL: disable the default site (the "It Works" page)
+ a2ensite eg.conf
+
+ echo Making sure /var/lock/apache2 is owned by opensrf
+ chown opensrf /var/lock/apache2
+
+ #a2enmod ssl
+ #echo Return Value = $?
+ #a2enmod rewrite
+ #echo Return Value = $?
+ #a2enmod expires
+ #echo Return Value = $?
+ #a2dissite 000-default
+ #echo Return Value = $?
+ #a2ensite eg.conf
+ #echo Return Value = $?
+
+ echo End of configure apache =~-._
+}
+
+function eg_configure_opensrf {
+ echo _.-~= configure EG OpenSRF
+ date
+ OSRF_COMMAND='cp -b /openils/conf/opensrf_core.xml.example /openils/conf/opensrf_core.xml;
+ cp -b /openils/conf/opensrf.xml.example /openils/conf/opensrf.xml;'
+ su - opensrf sh -c "$OSRF_COMMAND"
+ echo Return Value = $?
+ echo End of configure EG OpenSRF =~-._
+}
+
+function eg_configure_action_trigger {
+ echo _.-~= configure EG Action/Trigger
+ date
+ OSRF_COMMAND='cp -b /openils/conf/action_trigger_filters.json.example /openils/conf/action_trigger_filters.json'
+ su - opensrf sh -c "$OSRF_COMMAND"
+ echo Return Value = $?
+ echo End of configure EG Action/Trigger =~-._
+}
+
+function evergreen_db_prereqs {
+ echo _.-~= Installing Evergreen database pre-requisites
+ date
+ cd /home/test/Evergreen/
+ if [ $YES ]; then
+ yes | make -f Open-ILS/src/extras/Makefile.install ${EVERGREEN_DB_PREREQ_TARGET}
+ else
+ make -f Open-ILS/src/extras/Makefile.install ${EVERGREEN_DB_PREREQ_TARGET}
+ fi;
+ echo Return Value = $?
+ echo End of Installing Evergreen database pre-requisites =~-._
+}
+
+function evergreen_db_superuser {
+ echo _.-~= Create PostgreSQL superuser
+ date
+ if [ $YES ]; then
+ echo "Using password $PGPASSWORD for the $PGUSER database user."
+ echo -e "$PGPASSWORD\n$PGPASSWORD\n" | su - postgres sh -c "createuser -P -s $PGUSER;"
+ else
+ echo -e "\n\nPlease enter a password for the $PGUSER database user.\n If you do not want to edit configs, use \"$PGPASSWORD\"\n"
+ su - postgres sh -c "createuser -s -P $PGUSER;"
+ fi;
+ echo Return Value = $?
+ echo End of Create PostgreSQL superuser =~-._
+}
+
+function evergreen_db_create {
+ echo _.-~= Create Evergreen Database
+ date
+
+ echo Running eg_db_config:
+ cd /home/test/Evergreen
+ perl Open-ILS/src/support-scripts/eg_db_config \
+ --create-database \
+ --create-schema \
+ --create-offline \
+ --update-config $SAMPLEDATA \
+ --service all \
+ --user $PGUSER \
+ --password $PGPASSWORD \
+ --hostname $PGHOST \
+ --database $PGDATABASE \
+ --admin-user $ADMIN_USER \
+ --admin-pass $ADMIN_PASS;
+ echo Return Value = $?
+
+ echo Installing pgtap
+ PG_TAP_VER="0.97.0"
+ wget -N http://api.pgxn.org/dist/pgtap/$PG_TAP_VER/pgtap-$PG_TAP_VER.zip \
+ && unzip pgtap-$PG_TAP_VER.zip \
+ && cd pgtap-$PG_TAP_VER \
+ && make \
+ && make installcheck \
+ && make install
+ echo 'CREATE EXTENSION pgtap;' | su - postgres -c "psql evergreen"
+
+ echo End of Create Evergreen Database =~-._
+}
+
+function evergreen_db_pgtap {
+ echo _.-~= Running pgTAP tests
+ date
+ su - postgres -c 'cd /home/test/Evergreen ; pg_prove -vr -d evergreen Open-ILS/src/sql/Pg/t/ ; echo Return Value = $?'
+ echo End of pgTAP tests =~-._
+}
+
+function eg_restart_apache {
+ echo _.-~= Restarting Apache
+ date
+ #if [ -e /etc/init.d/apache2-websockets ]; then
+ # /etc/init.d/apache2-websockets stop
+ # echo Return Value = $?
+ #else
+ # systemctl stop apache2@websockets.service
+ # echo Return Value = $?
+ #fi
+ if [ -e /etc/init.d/apache2 ]; then
+ /etc/init.d/apache2 stop
+ echo Return Value = $?
+ else
+ systemctl stop apache2
+ echo Return Value = $?
+ fi
+ if [ -e /etc/init.d/apache2 ]; then
+ /etc/init.d/apache2 start
+ echo Return Value = $?
+ else
+ systemctl start apache2
+ echo Return Value = $?
+ fi
+ #if [ -e /etc/init.d/apache2-websockets ]; then
+ # /etc/init.d/apache2-websockets start
+ # echo Return Value = $?
+ #else
+ # systemctl start apache2@websockets.service
+ # echo Return Value = $?
+ #fi
+ echo End of Restarting Apache =~-._
+}
+
+function eg_autogen {
+ echo _.-~= Running autogen.sh
+ date
+ su - opensrf sh -c "PATH=$PATH:/openils/bin autogen.sh";
+ echo Return Value = $?
+ echo End of Running autogen.sh =~-._
+}
+
+function eg_test_srfsh {
+ echo _.-~= test EG opensrf
+ OSRF_COMMAND="echo login $ADMIN_USER $ADMIN_PASS | PATH=/openils/bin:\$PATH srfsh"
+ su - opensrf sh -c "$OSRF_COMMAND"
+ echo Return Value = $?
+ echo End of test EG opensrf =~-._
+}
+
function get_opensrf_tip {
cd /home/test/OpenSRF/
echo 'Tip of OpenSRF:' `git log --format=oneline | head -1`
}
+function get_eg_tip {
+ cd /home/test/Evergreen/
+ echo 'Tip of Evergreen:' `git log --format=oneline | head -1`
+}
+
function docs_builder_prereqs {
echo _.-~= Installing prereqs for building the documentation formats
date
echo End of Building the AsciiDoc output formats =~-._
}
-function cloning_evergreen_git_repos {
- echo _.-~= cloning Evergreen git repository
- date
- TEST_COMMAND="
- cd /home/test;
- git clone --depth 1 --branch $EVERGREEN_BRANCH $EVERGREEN_REPO Evergreen;
- "
- su - test sh -c "$TEST_COMMAND";
- echo Return Value = $?
-
- echo End of cloning Evergreen git repository =~-._
-}
-
function show_git_tips {
# Show tips
cd /home/test/OpenSRF/
}
-function evergreen_prereqs {
- echo _.-~= Installing Evergreen pre-requisites
- date
- if [ $YES ]; then
- yes | make -f /home/opensrf/Evergreen/Open-ILS/src/extras/Makefile.install ${EVERGREEN_PREREQ_TARGET}
- else
- make -f /home/opensrf/Evergreen/Open-ILS/src/extras/Makefile.install ${EVERGREEN_PREREQ_TARGET}
- fi;
- echo Return Value = $?
- echo End of Installing Evergreen pre-requisites =~-._
-}
-
-function evergreen_db_prereqs {
- echo _.-~= Installing Evergreen database pre-requisites
- date
- if [ $YES ]; then
- yes | make -f /home/opensrf/Evergreen/Open-ILS/src/extras/Makefile.install ${EVERGREEN_DB_PREREQ_TARGET}
- else
- make -f /home/opensrf/Evergreen/Open-ILS/src/extras/Makefile.install ${EVERGREEN_DB_PREREQ_TARGET}
- fi;
- echo Return Value = $?
- echo End of Installing Evergreen database pre-requisites =~-._
-}
-
function setting_ldconfig_and_rsyslog_and_hosts_and_ejabberd {
echo _.-~= setting ld.so.conf and rsyslog and /etc/hosts and ejabberd
date
echo configure database =~-._
}
-function configure_apache {
- echo _.-~= configure apache
- date
- /etc/init.d/apache2 stop
- # Copy apache configs into place and create SSL cert
- cd /home/opensrf/Evergreen/
- cp Open-ILS/examples/apache_24/eg_24.conf /etc/apache2/sites-available/eg.conf
- cp Open-ILS/examples/apache_24/eg_vhost_24.conf /etc/apache2/eg_vhost.conf
- cp Open-ILS/examples/apache_24/eg_startup /etc/apache2/
-
- mkdir -p /etc/apache2/ssl;
- if [ ! -f /etc/apache2/ssl/server.key ] ; then
- echo -e "\n\nConfiguring a new temporary SSL certificate....\n";
- if [ $YES ]; then
- yes "" | openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/server.crt -keyout /etc/apache2/ssl/server.key
- else
- openssl req -new -x509 -days 365 -nodes -out /etc/apache2/ssl/server.crt -keyout /etc/apache2/ssl/server.key
- fi;
- else
- echo -e "\nkeeping existing ssl/server.key file\n";
- fi
-
- a2enmod ssl
- echo Return Value = $?
- a2enmod rewrite
- echo Return Value = $?
- a2enmod expires
- echo Return Value = $?
- a2dissite 000-default
- echo Return Value = $?
- a2ensite eg.conf
- echo Return Value = $?
-
- echo Modifying APACHE_RUN_USER/APACHE_RUN_GROUP in /etc/apache2/envvars
- sed -i 's/www-data/opensrf/g' /etc/apache2/envvars
-
- echo Making sure /var/lock/apache2 is owned by opensrf
- chown opensrf:opensrf /var/lock/apache2
-
- echo Modifying KeepAliveTimeout in /etc/apache2/apache2.conf
- sed -i 's/KeepAliveTimeout .*/KeepAliveTimeout 1/' /etc/apache2/apache2.conf
-
- echo End of configure apache =~-._
-}
-
function start_evergreen {
echo _.-~= Starting Evergreen
date
function test_evergreen_live {
# TODO: Eventually move these tests into a Make target within Evergreen
- cd /home/opensrf/Evergreen
- echo _.-~= Running pgTAP tests
- date
- su - postgres -c 'cd /home/opensrf/Evergreen ; pg_prove -vr -d evergreen Open-ILS/src/sql/Pg/t/ ; echo Return Value = $?'
- echo End of pgTAP tests =~-._
+ cd /home/test/Evergreen
+ #echo _.-~= Running pgTAP tests
+ #date
+ #su - postgres -c 'cd /home/opensrf/Evergreen ; pg_prove -vr -d evergreen Open-ILS/src/sql/Pg/t/ ; echo Return Value = $?'
+ #echo End of pgTAP tests =~-._
echo _.-~= Running pgTAP live tests
date
- su - postgres -c 'cd /home/opensrf/Evergreen ; pg_prove -vr -d evergreen Open-ILS/src/sql/Pg/live_t/ ; echo Return Value = $?'
+ su - postgres -c 'cd /home/test/Evergreen ; pg_prove -vr -d evergreen Open-ILS/src/sql/Pg/live_t/ ; echo Return Value = $?'
echo End of pgTAP live tests =~-._
echo _.-~= Running settings-tester.pl
date
- su - opensrf sh -c 'export PATH=/openils/bin:$PATH ; cd /home/opensrf/Evergreen/Open-ILS/src/support-scripts/ ; ./settings-tester.pl ; echo Return Value = $?'
+ su - opensrf sh -c 'export PATH=/openils/bin:$PATH ; cd /home/test/Evergreen/Open-ILS/src/support-scripts/ ; ./settings-tester.pl ; echo Return Value = $?'
echo End of settings-tester.pl output =~-._
echo _.-~= Running perl live tests
date
- su - opensrf sh -c 'export PATH=/openils/bin:$PATH ; cd /home/opensrf/Evergreen/Open-ILS/src/perlmods/ ; make livecheck; echo Return Value = $?'
+ su - root sh -c 'export PATH=/openils/bin:$PATH ; cd /home/test/Evergreen/Open-ILS/src/perlmods/ ; make livecheck; echo Return Value = $?'
echo End of perl live tests =~-._
echo _.-~= Gathering log summary
date