Handle error in CN kernel detection.
[carnet-upgrade.git] / src / functions.sh
index 6f16290..9d074be 100644 (file)
@@ -1019,6 +1019,7 @@ upgrade_libc () {
 
 # upgrade apache2/php5 to lenny
 upgrade_apache2 () {
+  pkgrm apache-common # prevents installation of apache2-suexec
   pkgadd_if_installed libapache2-mod-php5 php5-cli php5-cn apache2-cn \
     php5-odbc php5-suhosin php-suhosin-cn
 }
@@ -1296,19 +1297,26 @@ check_archives_space() {
 }
 
 check_kernel_space() {
-  local available_disk_space kernel_size
+  local available_disk_space kernel_size linux_images pkg ret
   available_disk_space=$(free_space /)
-  kernel_size=$(installed_size kernel-2.6-cn)
+  linux_images=$(apt-cache show kernel-2.6-cn | grep ^Depends: \
+    | grep -o 'linux-image[^ ]*')
+  for pkg in $linux_images; do
+    kernel_size=$(installed_size $pkg)
+    ret=$?
+    [ $ret -eq 0 ] && break
+  done
 
-  if [ $? -ne 0 ]; then
+  if [ $ret -ne 0 ]; then
     log "Failed to get installed size, skipping check."
     return 0
   fi
 
   log "Free space in /: ${available_disk_space}MB"
+  log "Kernel package: $pkg"
   log "Kernel size: ${kernel_size}MB"
 
-  if LC_ALL=C apt-get --yes --print-uris install kernel-2.6-cn \
+  if LC_ALL=C apt-get -s install kernel-2.6-cn \
      | grep -q '^kernel-2.6-cn is already the newest version.$'
   then
      log "Not checking free space in /: kernel-2.6-cn already installed"