123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229 |
- #!/bin/sh
- # postinst script for dolibarr
- set -e
- # summary of how this script can be called:
- # * <postinst> `configure' <most-recently-configured-version>
- # * <old-postinst> `abort-upgrade' <new version>
- # * <conflictor's-postinst> `abort-remove' `in-favour' <package>
- # <new-version>
- # * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
- # <failed-install-package> <version> `removing'
- # <conflicting-package> <version>
- # for details, see /usr/share/doc/packaging-manual/
- if [ -e /usr/share/apache2/apache2-maintscript-helper ] ; then
- # Needs to be run outside of functions to have access to parameters
- . /usr/share/apache2/apache2-maintscript-helper
- fi
- setup_empty_conf() {
- echo Create empty file $config
- mkdir -p /etc/dolibarr
- touch /etc/dolibarr/conf.php
- chown root:www-data /etc/dolibarr/conf.php
- chmod 660 /etc/dolibarr/conf.php
- }
- is_new_upstream_version() {
- # $1 can be empty (not installed) and will result in a true value
- # for the check
- old_version=$(echo "$1" | sed -e 's/-[^-]*$//' -e 's/^[0-9]*://')
- new_version=$(dpkg-query -f '${Version}' -W dolibarr | \
- sed -e 's/-[^-]*$//' -e 's/^[0-9]*://')
- test "$old_version" != "$new_version"
- }
- enable_install_upgrade_wizard() {
- echo Enable install wizard by removing install.lock file if present
- rm -f /var/lib/dolibarr/documents/install.lock
- }
- php_install() {
- if which php5enmod >/dev/null 2>&1 ;then
- # php5endmod exists for ubuntu only
- echo "Enable php module mysqli with php5enmod"
- php5enmod mysqli
- fi
- }
- apache_install() {
- webserver=$1
-
- # Enable Apache 2 alias module
- if which a2enmod >/dev/null 2>&1 ;then
- echo "Enable apache module alias with a2enmod"
- a2enmod alias
- fi
-
- # Enable dolibarr conf
- if which a2enconf >/dev/null 2>&1 ;then
- # a2enconf exists for ubuntu only
- echo "Enable link for Apache config file with a2enconf"
- a2enconf dolibarr
- else
- if [ -d /etc/$webserver/conf.d ] && [ ! -e /etc/$webserver/conf.d/dolibarr.conf ]; then
- echo "Add link for Apache config file"
- ln -s /etc/$webserver/conf-available/dolibarr.conf /etc/$webserver/conf.d/dolibarr.conf
- fi
- fi
- }
- lighttpd_install() {
- if which lighty-enable-mod >/dev/null 2>&1 ; then
- echo "Enable lighttpd link for dolibarr config file"
- lighty-enable-mod dolibarr fastcgi-php
- else
- echo "Lighttpd not installed, skipping"
- fi
- }
- . /usr/share/debconf/confmodule
- db_version 2.0
- echo Run the dolibarr postinst script
- # Define vars
- docdir='/var/lib/dolibarr/documents'
- installfileorig="/etc/dolibarr/install.forced.php.install"
- installconfig="/etc/dolibarr/install.forced.php"
- config="/etc/dolibarr/conf.php"
- case "$1" in
- configure)
- if [ -z "$2" ]; then
- echo First install
- #setup_empty_conf
- else
- echo This is not a first install
- fi
- php_install
- apache_install
- lighttpd_install
-
- # Remove lock file
- if is_new_upstream_version "$2"; then
- enable_install_upgrade_wizard
- fi
-
- # Create document directory for uploaded data files
- mkdir -p $docdir
- chown -R www-data:www-data $docdir
- chmod -R 775 $docdir
- chmod -R g+s $docdir
- # Copy install config file (with matching Debian values) into target directory
- superuserlogin=''
- superuserpassword=''
- if [ -f /etc/mysql/debian.cnf ] ; then
- # Load superuser login and pass
- superuserlogin=$(grep --max-count=1 "user" /etc/mysql/debian.cnf | sed -e 's/^user[ =]*//g')
- superuserpassword=$(grep --max-count=1 "password" /etc/mysql/debian.cnf | sed -e 's/^password[ =]*//g')
- fi
- echo Mysql superuser found to use is $superuserlogin
- if [ -z "$superuserlogin" ] ; then
- cat $installfileorig | sed -e 's/__SUPERUSERLOGIN__/root/g' | sed -e 's/__SUPERUSERPASSWORD__//g' > $installconfig
- else
- cat $installfileorig | sed -e 's/__SUPERUSERLOGIN__/'$superuserlogin'/g' | sed -e 's/__SUPERUSERPASSWORD__/'$superuserpassword'/g' > $installconfig
- fi
- chown -R root:www-data $installconfig
- chmod -R 660 $installconfig
- # If a conf already exists and its content was already completed by installer
- if [ ! -s $config ] || ! grep -q "File generated by" $config
- then
- # Create an empty conf.php with permission to web server
- setup_empty_conf
- #else
- # File already exist. We add params not found.
- #echo Add new params to overwrite path to use shared libraries/fonts
- ##grep -q -c "dolibarr_lib_GEOIP_PATH" $config || echo "<?php \$dolibarr_lib_GEOIP_PATH=''; ?>" >> $config
- #grep -q -c "dolibarr_lib_NUSOAP_PATH" $config || [ ! -d "/usr/share/php/nusoap" ] || echo "<?php \$dolibarr_lib_NUSOAP_PATH='/usr/share/php/nusoap'; ?>" >> $config
- #grep -q -c "dolibarr_lib_ODTPHP_PATHTOPCLZIP" $config || [ ! -d "/usr/share/php/libphp-pclzip" ] || echo "<?php \$dolibarr_lib_ODTPHP_PATHTOPCLZIP='/usr/share/php/libphp-pclzip'; ?>" >> $config
- ##grep -q -c "dolibarr_lib_TCPDF_PATH" $config || echo "<?php \$dolibarr_lib_TCPDF_PATH=''; ?>" >> $config
- #grep -q -c "dolibarr_js_CKEDITOR" $config || [ ! -d "/usr/share/javascript/ckeditor" ] || echo "<?php \$dolibarr_js_CKEDITOR='/javascript/ckeditor'; ?>" >> $config
- #grep -q -c "dolibarr_js_JQUERY" $config || [ ! -d "/usr/share/javascript/jquery" ] || echo "<?php \$dolibarr_js_JQUERY='/javascript/jquery'; ?>" >> $config
- #grep -q -c "dolibarr_js_JQUERY_UI" $config || [ ! -d "/usr/share/javascript/jquery-ui" ] || echo "<?php \$dolibarr_js_JQUERY_UI='/javascript/jquery-ui'; ?>" >> $config
- #grep -q -c "dolibarr_js_JQUERY_FLOT" $config || [ ! -d "/usr/share/javascript/flot" ] || echo "<?php \$dolibarr_js_JQUERY_FLOT='/javascript/flot'; ?>" >> $config
- #grep -q -c "dolibarr_font_DOL_DEFAULT_TTF_BOLD" $config || echo "<?php \$dolibarr_font_DOL_DEFAULT_TTF_BOLD='/usr/share/fonts/truetype/ttf-dejavu/DejaVuSans-Bold.ttf'; ?>" >> $config
- fi
-
- db_get dolibarr/reconfigure-webserver
-
- webservers="$RET"
-
- # Set up web server.
- for webserver in $webservers ; do
- webserver=${webserver%,}
- echo Complete config of server $webserver
-
- # Detect webuser and webgroup
- webuser=
- webgroup=
- if [ -z "$webuser" ] ; then
- webuser=www-data
- fi
- if [ -z "$webgroup" ] ; then
- webgroup=www-data
- fi
- echo Web user.group used is $webuser.$webgroup
- # Set permissions to web server
- chown -R $webuser:$webgroup /usr/share/dolibarr
- chown -R root:$webgroup $config
- done
- # Restart web server.
- for webserver in $webservers; do
- webserver=${webserver%,}
- if [ "$webserver" = "lighttpd" ] ; then
- lighttpd_install
- else
- apache_install $webserver
- fi
- # Reload webserver in any case, configuration might have changed
- # Redirection of 3 is needed because Debconf uses it and it might
- # be inherited by webserver. See bug #446324.
- if [ -f /etc/init.d/$webserver ] ; then
- if [ -x /usr/sbin/invoke-rc.d ]; then
- echo Restart web server $server using invoke-rc.d
- # This works with Debian (5.05,...) and Ubuntu (9.10,10.04,...)
- invoke-rc.d $webserver reload 3>/dev/null || true
- else
- echo Restart web server $server using $server reload
- /etc/init.d/$webserver reload 3>/dev/null || true
- fi
- fi
- done
-
- echo ----------
- echo "Call Dolibarr page http://localhost/dolibarr/ to complete the setup and use Dolibarr."
- echo ----------
- ;;
- abort-upgrade|abort-remove|abort-deconfigure)
- ;;
- *)
- echo "postinst called with unknown argument $1" >&2
- exit 0
- ;;
- esac
- #DEBHELPER#
- db_stop
- exit 0
|