=== modified file 'debian/changelog' --- debian/changelog 2010-06-30 10:39:38 +0000 +++ debian/changelog 2010-06-30 10:40:39 +0000 @@ -2,6 +2,10 @@ * Update harmfully incorrect German translation of menu legend, which omitted mention of pressing Ctrl-x to boot (LP: #580178). + * Rearrange postinst install_devices logic so that preparatory code is run + only once and the while loop only encloses actual asking of questions, + and so that the question being asked is always marked for redisplay when + going round the while loop again (LP: #580408). -- Colin Watson Wed, 30 Jun 2010 11:37:43 +0100 === modified file 'debian/postinst.in' --- debian/postinst.in 2010-04-28 14:43:01 +0000 +++ debian/postinst.in 2010-06-30 10:40:39 +0000 @@ -219,7 +219,6 @@ touch /boot/grub/grub.cfg fi else - while :; do question=grub-pc/install_devices device_map="$(grub-mkdevicemap -m - | grep -v '^(fd[0-9]\+)' || true)" devices="$(echo "$device_map" | cut -f2)" @@ -295,6 +294,7 @@ fi fi + while :; do ids= descriptions= for device in $devices; do @@ -342,6 +342,7 @@ if [ "$RET" = true ]; then break else + db_fset "$question" seen false db_fset grub-pc/install_devices_failed seen false continue fi @@ -358,6 +359,7 @@ if [ "$RET" = true ]; then break else + db_fset "$question" seen false db_fset grub-pc/install_devices_empty seen false fi else