X-Git-Url: http://ftp.carnet.hr/pub/carnet-debian/scm?a=blobdiff_plain;f=src%2Ffunctions.sh;h=7511bc2908664605644bf434db4b09165dcf7b9c;hb=3d86bafffc213b905aa72dfcaba045d22997e7c2;hp=466e7702259f063689d0d5f60c920ed669ab138a;hpb=34bbbf9ae392e67c2f8bc27e93b2e8d6f2eac369;p=carnet-upgrade.git diff --git a/src/functions.sh b/src/functions.sh index 466e770..7511bc2 100644 --- a/src/functions.sh +++ b/src/functions.sh @@ -447,23 +447,53 @@ check_my_version () { rm -f $packages } -# if apache is installed make sure it's version 2 -check_apache_version () { +# if php is installed make sure it's version 5 +check_php_version () { + + if pkg php4-cn && ! pkg php5-cn; then + # prepare for php upgrade by installing php5 extensions + install_php5_extensions - if pkg apache-cn && ! pkg apache2-cn; then notice " -Prije prelaska na Debian Etch potrebno je napraviti nadogradnju sa Apache 1.3 na Apache 2.0. +Prije prelaska na Debian Lenny potrebno je napraviti nadogradnju sa PHP 4 na PHP 5. Pokrenite: # apt-get update - # apt-get install apache2-cn + # apt-get install php5-cn -Nakon toga ponovno pozovite ovu skriptu." - log "carnet-upgrade aborted, upgrade to apache2-cn needed." +Nakon sto provjerite da sve web aplikacije rade ispravno, ponovno pozovite ovu skriptu." + log "carnet-upgrade aborted, upgrade to php5-cn needed." exit 1 fi } +# install php5 extensions based on installed php4 extensions +install_php5_extensions () { + local php4_list php5_pkg + + # get a list of installed php4 packages + php4_list=$(mktemp /var/lib/carnet-upgrade/php4_list.XXXXXX) + dpkg -l php4-\* | awk '/^ii/ { + pkg=$2; sub("^php4", "php5", pkg); print pkg }' > $php4_list + + # compare it with the list of available php5 packages + php5_pkg=$(apt-cache search -n ^php5- | cut -d' ' -f 1 \ + | grep -F -x -f $php4_list | grep -F -x -v php5-cn) + + # handle special cases + if pkg php4-xslt; then + php5_pkg="$php5_pkg php5-xsl" + fi + + # install the required php5 modules + if [ "$php5_pkg" ]; then + pkgadd $php5_pkg + fi + + # cleanup + rm -f $php4_list +} + # if grsec is installed make sure it is fresh check_grsec_kernel () { local ver=`uname -r` @@ -659,7 +689,7 @@ backup_slapd_db () { [ -x /etc/init.d/freeradius ] && /etc/init.d/freeradius start || true else log "slapd backup already at $ldap_backup, skipping." - notice "Backup slapd baze u $ldap_backup vec postoji!" + #notice "Backup slapd baze u $ldap_backup vec postoji!" fi } @@ -683,7 +713,7 @@ backup_etc_dir () { umask $old_umask else log "/etc backup already present in $etc_backup, skipping." - notice "Backup /etc direktorija u $etc_backup vec postoji!" + #notice "Backup /etc direktorija u $etc_backup vec postoji!" fi } @@ -786,6 +816,7 @@ restore_configs () { restore_config spamassassin-cn razor 1:2.85-1 /etc/razor/razor-agent.conf restore_config kernel-2.6-cn libpam-modules 1.0.1-5 /etc/security/limits.conf restore_config samba-cn samba-common 2:3.2.5-4lenny2 /etc/samba/smb.conf + restore_config '' base-files 5lenny2 /etc/issue /etc/issue.net # check if monitrc is template based if [ -f /etc/monit/monitrc -a ! -f /etc/monit/monitrc.$backup_ext ]; then @@ -810,8 +841,6 @@ restore_configs () { rm -f $config_new fi -# restore_config base-files 4 /etc/issue /etc/issue.net -# restore_config base-files 4 /etc/issue /etc/issue.net # restore_config login 1:4.0.18.1 /etc/pam.d/login # restore_config mysql-server 5.0.3 /etc/init.d/mysql \ # /etc/logrotate.d/mysql-server \ @@ -899,6 +928,12 @@ remove_skey () { fi } +# remove unsupported php version +remove_php4 () { + # leave the configuration just in case + pkgrm_only php4-common +} + # check if package is orphaned (nothing depends on it) is_orphaned () { local package deps @@ -941,7 +976,7 @@ disable_monit () { # make a silent upgrade to new libc6 upgrade_libc () { - DEBIAN_FRONTEND=noninteractive pkgadd libc6 + DEBIAN_FRONTEND=noninteractive pkgadd libc6 tzdata } # upgrade apache2 to etch @@ -1220,6 +1255,7 @@ comment_force_overwrite () { fix_issue () { cat > /etc/issue < /etc/issue.net <