X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?a=blobdiff_plain;f=src%2Ffunctions.sh;h=373422c6da006c9cbb254ff38ab5b6d5ae18ea76;hb=HEAD;hp=ed7833291722cb1b108c2ddf5c5e161f1ee03bb9;hpb=f73a1d013f3dc420c206d8ba3acb200de8c6df4f;p=carnet-upgrade.git diff --git a/src/functions.sh b/src/functions.sh index ed78332..2b4d743 100644 --- a/src/functions.sh +++ b/src/functions.sh @@ -1,5 +1,11 @@ # Ivan 'ico' Rako # Zoran 'jelly' Dzelajlija +# Zeljko Boros + +PHPVER="7.4" +MDB="10.5" +PINFILE="/etc/apt/preferences.d/99-carnet" + notice () { LC_MESSAGES=hr_HR dialog --backtitle "$title" --msgbox "$*" 18 75 @@ -13,6 +19,14 @@ first_warning () { fi } +second_warning () { + LC_MESSAGES=hr_HR dialog --backtitle "$title" --yesno "$msg_second_warning" 18 75 + if [ $? -ne 0 ]; then + log "Upgrade canceled." + exit 0 + fi +} + pkg() { local version dpkg -l "$1" 2> /dev/null | egrep -q "^.i" || return 1 @@ -154,6 +168,17 @@ remove_x() { } remove_bloat() { +### zelja 2023-07-06 +tempdelfile=$(mktemp /tmp/tempdelfile.XXXX) + +for a in $bloats; do echo apt-get -qq -y remove $a 2\> /dev/null ; done > $tempdelfile + +/bin/bash $tempdelfile +rm $tempdelfile + +return 0 + + local to_remove add_this i j n text to_show cmd tmpfile installed local update_selections pkgs_to_deselect pkgs_to_remove oldifs pkglist text="$msg_remove_bloat" @@ -212,6 +237,9 @@ remove_bloat() { } remove_cn_bloat() { +### Sve obrisano u remove_bloat() +return 0 + local installed pkg cn_pkgs dialog_list selection cn_del to_del del_pkgs # get installed packages @@ -338,7 +366,7 @@ Doslo je do greske prilikom izvrsavanja akcije '$action'. Detalje problema moguc Da bi dovrsili zapocete operacije nad paketima pokrenite: # dpkg --configure -a - # apt-get -f install + # apt -f install Nakon toga ponovno pozovite carnet-upgrade skriptu." } @@ -367,7 +395,7 @@ check_upgrade () { if [ "$upgrade" ]; then notice " -Prije prelaska na Debian Squeeze potrebno je napraviti nadogradnju ovih paketa: +Prije prelaska na Debian bullseye potrebno je napraviti nadogradnju ovih paketa: $upgrade Pokrenite: @@ -530,16 +558,18 @@ create_sources_list () { # backup old version if [ -f $sl -a ! -f $sl.$backup_ext ]; then - cp -av $sl $sl.$backup_ext + cp -v $sl $sl.$backup_ext fi # install new version - cp -av $sl_new $sl + cp -v $sl_new $sl notice "Novi sadrzaj datoteke /etc/apt/sources.list: `cat /etc/apt/sources.list`" fi + # make sure permissions are correct + chmod 0644 $sl rm $sl_new } @@ -744,6 +774,11 @@ restore_configs () { fi } +# load various debconf defaults +debconf_preload () { + echo libc6 libraries/restart-without-asking boolean true | debconf-set-selections +} + # temporary disable listchanges packages to reduce clutter during upgrade apt_listchanges () { local file command=$1 @@ -861,17 +896,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/php 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 +### ne treba od etcha +### pkgrm apache-common # prevents installation of apache2-suexec + pkgupgrade libapache2-mod-php$PHPVER php$PHPVER-cli php$PHPVER-cn apache2-cn \ + php$PHPVER-odbc mod-security-cn } upgrade_amavis () { @@ -884,46 +914,37 @@ upgrade_amavis () { fi done + # workaround for insserv complaining + if [ -x /sbin/insserv ]; then + if [ -r /etc/init.d/amavis.amavisd-new ]; then + /sbin/insserv amavis.amavisd-new + fi + fi + # install new packages pkgadd amavisd-cn amavisd-new - # start new packages - /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 + # workaround for insserv complaining + if [ -x /sbin/insserv ]; then + if [ -r /etc/init.d/amavis.amavisd-new ]; then + /sbin/insserv amavis.amavisd-new fi fi + + # start new packages + ### By zelja, nema vise amavisd-cn, vjerujemo systemd-u + ### /etc/init.d/amavisd-cn restart + /etc/init.d/amavis restart } -# handle mysql 5.0 to 5.1 upgrade +# handle mysql upgrade upgrade_mysql () { - if pkg mysql-server || pkg mysql-server-5.1; then - pkgadd mysql-server - dpkg -P mysql-server-5.1 - /etc/init.d/mysql restart + if pkg mysql-server || pkg mysql-server-5.5 || \ + pkg mariadb-server || pkg mariadb-server-$MDB + then + pkgadd default-mysql-server + dpkg -P mysql-server mysql-server-5.5 mariadb-server-$MDB + service mysql restart fi } @@ -943,9 +964,74 @@ upgrade_postfix () { fi } + +# pinning za baculu da se ne nadogradi sa 7.4.4 na 9.* u busteru +# istu stvar radi i bacula-cn.postinst + +fix_bacula() { + + echo "CN: Dodajem pinning bacule na inačicu 7.4.4..." + + test -f $PINFILE || touch $PINFILE + + cp-update bacula-cn $PINFILE < /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 +1085,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 @@ -1009,6 +1119,17 @@ get_variable () { echo $val } +# switch to rsyslog +upgrade_syslog() { + # libc6-dev prevents upgrade + if pkg libc6-dev; then + pkgrm libc6-dev + fi + + pkgadd rsyslog + dpkg -P sysklogd klogd > /dev/null 2>&1 +} + # restore munin configs for silent upgrade upgrade_munin () { local config backup hostname domain @@ -1040,24 +1161,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