Update kernel space check.
[carnet-upgrade.git] / src / functions.sh
index 28d229a..776c5dd 100644 (file)
@@ -580,7 +580,7 @@ reboot_required () {
 
   if [ ! -e "$default_kernel" ]; then
       # /boot prefix might be missing
-      default_kernel="/boot/$default_kernel"
+      default_kernel="/boot/${default_kernel#/}"
       if [ ! -e "$default_kernel" ]; then
           log "Default kernel image doesn't exist!?"
           return 1
@@ -1254,11 +1254,15 @@ check_archives_space() {
 }
 
 check_kernel_space() {
-  local available_disk_space kernel_size linux_images pkg ret
+  local available_disk_space kernel_size linux_images metapkg pkg ret
   available_disk_space=$(free_space /)
   linux_images=$(apt-cache show kernel-2.6-cn | grep ^Depends: \
-    | grep -o 'linux-image[^ ]*')
-  for pkg in $linux_images; do
+    | grep -o 'linux-image[^, ]*')
+  for metapkg in $linux_images; do
+    pkg=$(apt-cache show $metapkg | grep ^Depends: \
+          | grep -o 'linux-image[^, ]*' | head -1)
+    [ "$pkg" ] || continue
+
     kernel_size=$(installed_size $pkg)
     ret=$?
     [ $ret -eq 0 ] && break