X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?a=blobdiff_plain;f=src%2Ffunctions.sh;h=d783133224dd047528ae0b7574da19dc461b249f;hb=5d45b0a7ad695a66c522bcd039fddfffdf2cca46;hp=ed7833291722cb1b108c2ddf5c5e161f1ee03bb9;hpb=f73a1d013f3dc420c206d8ba3acb200de8c6df4f;p=carnet-upgrade.git diff --git a/src/functions.sh b/src/functions.sh index ed78332..d783133 100644 --- a/src/functions.sh +++ b/src/functions.sh @@ -861,17 +861,12 @@ pkgupgrade () { fi } -# make a silent upgrade to new libc6 -upgrade_libc () { - DEBIAN_FRONTEND=noninteractive pkgupgrade libc6 libc6-dev tzdata -} - # upgrade apache2/php5 upgrade_apache2 () { pkgrm apache-common # prevents installation of apache2-suexec pkgrm php5-suhosin # not available for wheezy pkgupgrade libapache2-mod-php5 php5-cli php5-cn apache2-cn \ - php5-odbc + php5-odbc mod-security-cn } upgrade_amavis () { @@ -891,35 +886,13 @@ upgrade_amavis () { /etc/init.d/amavisd-cn restart } -# handle freerdius upgrade -upgrade_freeradius () { - local password - - pkg freeradius-aai lt 2.1.12~srce1 || return 0 - - # 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 - - # sync localhost passwords - if pkg libpam-radius-auth && [ -f "/etc/pam_radius_auth.conf" ]; then - pkgadd libpam-radius-auth - password=$( - sed -n '/^[[:space:]]*client[[:space:]]\+localhost/,/^[[:space:]]*}/ { /^[[:space:]]*secret[[:space:]]*=[[:space:]]*\([^[:space:]]*\)/s//\1/p }' /etc/freeradius/clients.conf - ) - if [ "$password" ] \ - && ! grep -q "^127.0.0.1\(:[[:digit:]]\+\)\?[[:space:]]\+$password[[:space:]]\+" \ - /etc/pam_radius_auth.conf - then - sed -i.$backup_ext "s/^\(127.0.0.1\(:[[:digit:]]\+\)\?[[:space:]]\+\)[^[:space:]]\+\(.*\)/\1$password\3/" /etc/pam_radius_auth.conf - fi - fi -} - # handle mysql 5.0 to 5.1 upgrade upgrade_mysql () { + # libc6-dev prevents mysql upgrade + if pkg libc6-dev; then + pkgrm libc6-dev + fi + if pkg mysql-server || pkg mysql-server-5.1; then pkgadd mysql-server dpkg -P mysql-server-5.1 @@ -945,7 +918,15 @@ upgrade_postfix () { # upgrade the IMAP server upgrade_dovecot() { - if [ ! -f /etc/dovecot/conf.d/95-local ]; then + local local_conf=/etc/dovecot/conf.d/95-${backup_ext}.conf + + if [ -f /etc/dovecot/conf.d/95-local -a ! -f $local_conf ]; then + mv /etc/dovecot/conf.d/95-local $local_conf + sed -i 's/\/usr\/lib\/dovecot\/modules\/imap/\/usr\/lib\/dovecot\/modules/g' $local_conf + /etc/init.d/dovecot restart + fi + + if [ ! -f $local_conf ]; then pkgrm dovecot-cn # restore config @@ -975,7 +956,8 @@ upgrade_dovecot() { # install new version and restore local changes pkgadd dovecot-core - doveconf -n -c /etc/dovecot/dovecot.conf.$backup_ext > /etc/dovecot/conf.d/95-local + doveconf -n -c /etc/dovecot/dovecot.conf.$backup_ext > $local_conf + sed -i 's/\/user\/lib\/dovecot\/modules\/imap/\/usr\/lib\/dovecot\/modules/g' $local_conf pkgadd dovecot-cn fi @@ -998,6 +980,29 @@ upgrade_fail2ban() { fi } +# manual upgrade of mailman to avoid two copies of mailman running +# first started by python upgrade and second started by mailman itself +upgrade_mailman() { + if pkg mailman-cn lt 2:2.1.15~cn0; then + /etc/init.d/mailman stop || true + pkgadd python + pkgadd mailman mailman-cn + fi +} + +# manual upgrade of kernel due to new packet name +upgrade_kernel() { + if pkg kernel-2.6-cn; then + pkgrm kernel-2.6-cn + + if pkg grub-pc; then + pkgadd kernel-cn grub-pc + else + pkgadd kernel-cn + fi + fi +} + get_variable () { local name=$1 file=$2 val @@ -1040,24 +1045,6 @@ upgrade_munin () { dpkg-reconfigure munin-cn } -# try not to overwrite user modified issue files -fix_issue () { - if cmp /etc/issue $cnup/files/etc/issue.expect.new >/dev/null; then - cp -av /etc/issue /etc/issue.$backup_ext - cat > /etc/issue </dev/null; then - cp -av /etc/issue.net /etc/issue.net.$backup_ext - cat > /etc/issue.net </dev/null \ - | grep -q '^kernel-2.6-cn is already the newest version.$' + if LC_ALL=C apt-get -s install kernel-cn 2>/dev/null \ + | grep -q '^kernel-cn is already the newest version.$' then - log "Not checking free space in /: kernel-2.6-cn already installed" + log "Not checking free space in /: kernel-cn already installed" return fi