fi
}
+# if grsec is installed make sure it is fresh
+check_grsec_kernel () {
+ local ver=`uname -r`
+
+ log "Kernel version: $ver"
+ if [ "$ver" = "${ver%-grsec}" ]; then
+ # not grsec variant
+ return 0
+ fi
+
+ if [ "$ver" = "${ver#2.6.2[4-9]}" ]; then
+ # kernel too old
+ notice "
+Prije prelaska na Debian Etch potrebno je napraviti nadogradnju na najnoviji grsec kernel.
+
+Pokrenite:
+ # apt-get update
+ # apt-get install kernel-2.6-cn
+ # reboot
+
+Nakon toga ponovno pozovite ovu skriptu."
+ log "carnet-upgrade aborted, kernel upgrade needed."
+ exit 1
+ fi
+}
+
upgrade () {
local i to_install packages
case "$1" in
upgrade_amavis () {
local conf
- # remove init script diversion
- if [ -L /etc/init.d/amavis -a -f /etc/init.d/amavis.amavisd-new ]; then
- rm -vf /etc/init.d/amavis
- dpkg-divert --quiet --remove /etc/init.d/amavis
+ # remove init script diversion before upgrade
+ if pkg amavisd-cn lt 3:2.4.2-4; then
+ if [ -L /etc/init.d/amavis -a -f /etc/init.d/amavis.amavisd-new ]; then
+ rm -vf /etc/init.d/amavis
+ dpkg-divert --remove /etc/init.d/amavis
+ fi
fi
# move old config aside
's/^\(clamd.*\)5.clamav.log$/\14\tsocket/g' \
/etc/init.d/amavisd-cn || true
+ # check if link got lost
+ if pkg amavisd-cn && [ ! -L /etc/init.d/amavis ]; then
+ apt-get install --reinstall --yes amavisd-cn
+ fi
+
# start new packages
/etc/init.d/amavis restart
}
available_disk_space=$(free_space /var/cache/apt/archives/)
archives_size=$(download_size dist-upgrade)
+ if [ $? -ne 0 ]; then
+ log "Failed to get download size, skipping check."
+ return 0
+ fi
+
log "Archives space: ${available_disk_space}MB"
log "Download size: ${archives_size}MB"
available_disk_space=$(free_space /)
kernel_size=$(installed_size kernel-2.6-cn)
+ if [ $? -ne 0 ]; then
+ log "Failed to get installed size, skipping check."
+ return 0
+ fi
+
log "Free space in /: ${available_disk_space}MB"
log "Kernel size: ${kernel_size}MB"
download_size() {
local size
- size=$(LC_ALL=C apt-get --yes --print-uris "$@" \
- | sed -n '/^Need to get / {s///; s/B\/.*//; p}')
+ size=$(LC_ALL=C apt-get --yes --print-uris "$@" | grep '^Need to get ')
+
+ if [ $? -ne 0 ]; then
+ log "Failed to get download size for 'apt-get $@'."
+ return 1
+ fi
+
+ size=${size#Need to get }
+ size=${size%%B*}
size_to_mb "${size}B"
}
installed_size() {
local package size
package=$1
- size=$(apt-cache show $package \
- | awk '$1 == "Installed-Size:" {print $2; exit}')
+ size=$(apt-cache show $package | grep '^Installed-Size:')
+
+ if [ $? -ne 0 ]; then
+ log "Failed to get installed size for '$package'."
+ return 1
+ fi
+
+ size=${size#*: }
size_to_mb "${size}kB"
}