X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?a=blobdiff_plain;f=src%2Ffunctions.sh;h=f5a085903dcb37749cefd7b322267ba235bf2dbd;hb=f2f400649edabeafdef9e4782a4d327c3ec79a07;hp=27fa13d70be49857cf7237aa2cccd6a0183c0b21;hpb=593a505177247c3eedf76b9018b37c2b8be10789;p=carnet-upgrade.git diff --git a/src/functions.sh b/src/functions.sh index 27fa13d..f5a0859 100644 --- a/src/functions.sh +++ b/src/functions.sh @@ -128,6 +128,21 @@ apt_autoremove () { } } +# remove stale package information from available +# warning, in file '/var/lib/dpkg/available' +# near line 58185 package 'vim-cn': missing architecture +cleanup_available () { + log "Cleaning dpkg available file" + + available=$(mktemp /var/lib/carnet-upgrade/available.XXXXXX) + apt-cache dumpavail > $available + + dpkg --clear-avail + dpkg --update-avail $available + + rm -f $available +} + remove_x() { LC_MESSAGES=hr_HR dialog --backtitle "$title" --yesno "$msg_remove_x" 18 75 if [ $? -eq 0 ]; then @@ -500,7 +515,12 @@ install_new () { create_sources_list () { local sl sl_new sl=/etc/apt/sources.list - sl_new=/usr/share/carnet-upgrade/files/etc/apt/sources.list + sl_new=$( copy_template $sl ) + + # comment aai repository if not in use + if ! pkg srce-keyring; then + sed -i 's/^\(deb.*ftp.srce.hr\)/#\1/' $sl_new + fi # check if already installed if ! cmp $sl $sl_new >/dev/null; then @@ -516,8 +536,9 @@ create_sources_list () { `cat /etc/apt/sources.list`" fi -} + rm $sl_new +} # funkcija koja brise grupu proc remove_group_proc () { @@ -733,6 +754,10 @@ restore_configs () { restore_file /etc/issue.net fi + if pkg slapd lt 2.4.23-7.2; then + restore_file /etc/default/slapd + fi + # dovecot won't start with these options if pkg dovecot-cn && pkg dovecot-common lt 1:1.2.15-7; then sed -i 's/^\( *\)\(sieve\(_storage\)\?=.*\)/\1#\2/' \ @@ -762,14 +787,14 @@ apt_listchanges () { case $command in disable) if [ -f $file ]; then - dpkg-divert --local --rename --divert $file.$backup_ext \ + dpkg-divert --local --rename --divert $file.disabled \ --add $file || true fi ;; enable) - if [ -f $file.$backup_ext ]; then - dpkg-divert --remove $file || true + if [ -f $file.disabled ]; then + dpkg-divert --rename --remove $file || true fi ;; esac @@ -778,9 +803,14 @@ apt_listchanges () { # make a silent installation of carnet and srce keyrings install_keyrings () { - pkgadd carnet-keyring srce-keyring debian-archive-keyring + pkgadd carnet-keyring debian-archive-keyring + dpkg-reconfigure carnet-keyring debian-archive-keyring + + if pkg srce-keyring; then + pkgadd srce-keyring + dpkg-reconfigure srce-keyring + fi - dpkg-reconfigure carnet-keyring srce-keyring debian-archive-keyring apt_update } @@ -823,9 +853,19 @@ disable_monit () { apt-get remove --yes monit # stop the binary pkill -9 monit || true + # move away init for insserv to work + mv /etc/init.d/monit /var/lib/carnet-upgrade/ fi } +# allow monit to run again +enable_monit () { + if [ -f /var/lib/carnet-upgrade/monit ]; then + mv /var/lib/carnet-upgrade/monit /etc/init.d/monit + pkgadd monit-cn + fi +} + # check which of the given packages are installed grep_installed () { local package installed @@ -852,7 +892,7 @@ pkgupgrade () { # make a silent upgrade to new libc6 upgrade_libc () { - DEBIAN_FRONTEND=noninteractive pkgupgrade libc6 libc6-dev tzdata udev + DEBIAN_FRONTEND=noninteractive pkgupgrade libc6 libc6-dev tzdata } # upgrade apache2/php5 @@ -883,17 +923,20 @@ upgrade_amavis () { upgrade_freeradius () { pkg freeradius-aai lt 2.1.10-1 || return 0 - # aai team prevents a clean upgrade + # aai team prevents a normal upgrade cp -av /etc/freeradius /etc/freeradius.$backup_ext pkgrm freeradius-aai freeradius-ldap freeradius + rm -rf /etc/freeradius/certs pkgadd freeradius-aai } -# handle openldap upgrade -upgrade_openldap () { - # aai does not depend on the new openldap version - pkgadd slapd - pkgadd openldap-aai +# handle mysql 5.0 to 5.1 upgrade +upgrade_mysql () { + if pkg mysql-server || pkg mysql-server-5.0; then + pkgadd mysql-server + dpkg -P mysql-server-5.0 + /etc/init.d/mysql restart + fi } # fix postgresql deinstallation during upgrade @@ -934,6 +977,12 @@ get_variable () { upgrade_munin () { local config backup hostname domain + # new htmldir location + if [ -d /var/www/munin -a ! -e /var/cache/munin/www ]; then + mkdir -p /var/cache/munin + mv /var/www/munin /var/cache/munin/www + fi + for pkg_name in munin munin-node; do pkg $pkg_name lt '1.4.5-3' || continue