X-Git-Url: http://ftp.carnet.hr/carnet-debian/scm?a=blobdiff_plain;f=src%2Ffunctions.sh;h=c51c2d29d150cd62332c9b421c4b53ef8779bf5d;hb=2373fadf91162cd602cbb0d0ad425f98809ac19a;hp=970d3db2f5fd6ebf841dbf72b3a0893f84ad6a87;hpb=34fae0d4853ef205525f1fc864652e3181117160;p=carnet-upgrade.git diff --git a/src/functions.sh b/src/functions.sh index 970d3db..c51c2d2 100644 --- a/src/functions.sh +++ b/src/functions.sh @@ -105,7 +105,7 @@ pkgadd () { pkgrm () { [ -n "$*" ] || return 0 - log "Removing $* ..." + log "Purging $* ..." apt-get -y$s --purge remove $* || { dpkg --configure -a apt-get -yf install @@ -113,6 +113,17 @@ pkgrm () { } } +pkgrm_only () { + [ -n "$*" ] || return 0 + log "Removing $* ..." + apt-get -y$s remove $* || { + dpkg --configure -a + apt-get -yf install + apt-get -y$s remove $* + } +} + + apt_update() { log "Running apt-get update ..." apt-get -y$s update || { @@ -202,6 +213,57 @@ remove_bloat() { eval pkgrm $pkgs_to_remove } +remove_cn_bloat() { + local installed pkg cn_pkgs dialog_list selection cn_del to_del del_pkgs + + # get installed packages + installed=$(mktemp /var/lib/carnet-upgrade/pkglist.XXXXXX) + COLUMNS=200 dpkg -l | awk '$1 ~ /^.i/ { print $2 }' >$installed + + # detect installed CN packagees + for pkg in $(echo "$cn_bloats" | cut -d' ' -f1); do + if grep -qx $pkg $installed; then + cn_pkgs="$cn_pkgs $pkg" + dialog_list="$dialog_list $pkg '' off" + fi + done + rm -f $installed + + # report status or finish if no CN packages found + if [ "$cn_pkgs" ]; then + log "Found CN packages:$cn_pkgs" + else + log "No CN packages found." + return + fi + + # user selects the packages to delete + selection=$(mktemp /var/lib/carnet-upgrade/selection.XXXXXX) + eval LC_MESSAGES=hr_HR dialog --nocancel --backtitle \""$title"\" \ + --checklist \""$msg_remove_cn_bloat"\" 20 75 6 $dialog_list 2>$selection + + # expand the package list to include the services + for pkg in $(cat $selection); do + pkg=${pkg%\"} + pkg=${pkg#\"} + cn_del="$cn_del $pkg" + to_del=$(echo "$cn_bloats" | grep ^$pkg) + del_pkgs="$del_pkgs $to_del" + done + rm -f $selection + + # report selection or finish if no service selected + if [ "$cn_del" ]; then + log "Removing CN services:$cn_del" + else + log "No CN services selected for removal." + return + fi + + # delete the cn packages and relevant services + pkgrm_only $del_pkgs +} + post_upgrade() { touch "$post_upgrade_queuetab" if ! grep -q "true $*" "$post_upgrade_queuetab"; then @@ -307,7 +369,7 @@ check_upgrade () { if [ "$upgrade" ]; then notice " -Prije prelaska na Debian Etch potrebno je napraviti nadogradnju ovih paketa: +Prije prelaska na Debian Lenny potrebno je napraviti nadogradnju ovih paketa: $upgrade Pokrenite: @@ -383,7 +445,7 @@ check_apache_version () { 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 Apache 1.3 na Apache 2.0. Pokrenite: # apt-get update @@ -408,7 +470,7 @@ check_grsec_kernel () { if [ "$ver" = "${ver#2.6.2[4-9]}" ] || reboot_required; then # kernel too old notice " -Prije prelaska na Debian Etch potrebno je napraviti nadogradnju na najnoviji grsec kernel. +Prije prelaska na Debian Lenny potrebno je napraviti nadogradnju na najnoviji kernel. Pokrenite: # apt-get update @@ -946,11 +1008,11 @@ comment_force_overwrite () { fix_issue () { cat > /etc/issue < /etc/issue.net <