[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Bug#427104: still apears to be broken with d-i



Hi Stable-RMs,

This is an e-mail to ask if the patch below would be acceptable for a
point release. If so I believe I have to upload to
stable-proposed-updates, right?

This is about bug 427104, a summary of the bug: 
D-I in etch uses devfs-style naming for devices. This means that
discovering the swap-device and writing it to a file will result in
having the wrong file name. Luckily the installer writes a file with a
`correct' device filename.

This was discovered quite close to the release. I thought I fixed the
issue with an upload during the freeze. That fix just uses the device
file name from the file the installer wrote and disables a check for
the existence of the swap-file for one pass.

Unfortunately the tests I performed (installing the fixed package with
dpkg -i) didn't capture the normal use case. If the install goes
through apt the package will be pre-configured, which means that the
package gets configured twice. The second run the normal check is on 
again, which results in a confusing message to the user. 

In other words: everybody who installs the laptop task gets a useless
and confusing question. In joeys words:

> ... the laptop task is broken, and something has to be done about this. 

> It's sort of on the edge between a cosmetic problem and a serious bug, 
> so the best way to make sure it's accepted will be to have a good and 
> clear patch.

The patch below will set a flag on a debconf question to signal we disabled 
the check in d-i and we should not ask the question. In posinst the flag is
cleared so that in the further life of the package the test will be done.

Index: uswsusp.config
===================================================================
--- uswsusp.config      (revision 490)
+++ uswsusp.config      (working copy)
@@ -85,8 +85,11 @@
     # found to the list of valid swaps without checking. This is because
     # what is in /proc/swaps uses devfs style naming...
     if [ -n "$USERSWAP" ] && ! echo "$SWAPLIST" | grep -q -e '\(^\|, \)'$USERSWAP'\(,\|$\)'; then
-       SWAPLIST=${SWAPLIST}${KOMMA}${USERSWAP}
-       SWAPDEFAULT=${USERSWAP}
+       # We do that by making sure we skip the continue_without_swap question.
+       # We'll clear this in postinst.
+       db_set uswsusp/continue_without_swap true
+       db_fset uswsusp/continue_without_swap seen true
+       db_fset uswsusp/continue_without_swap d_i true
     fi
 fi
 
@@ -98,6 +101,8 @@
        SWAPLIST=${SWAPLIST}${KOMMA}${USERSWAP} ;
        SWAPDEFAULT=${USERSWAP}
     fi
+elif [ -n "$USERSWAP" ]; then
+    SWAPDEFAULT=${USERSWAP}
 fi
 
 # We had to move this untill after the config file parsing, because
Index: uswsusp.postinst
===================================================================
--- uswsusp.postinst    (revision 490)
+++ uswsusp.postinst    (working copy)
@@ -24,6 +24,15 @@
        [ "$RET" = "false" ] || exit 0;
        db_fget uswsusp/no_snapshot seen
        [ "$RET" = "false" ] || exit 0;
+
+       # If we've set this under d-i to skip the sanity checks, reset it
+       db_fget uswsusp/continue_without_swap d_i
+       if [ "$RET" = "true" ]; then
+           db_fset uswsusp/continue_without_swap seen false
+           db_fset uswsusp/continue_without_swap d_i false
+           db_reset uswsusp/continue_without_swap
+       fi
+
        # If we don't have /proc or /sys we can't work, this will probably
        # be a chroot or so.
        mountpoint -q /sys || exit 0;

Attachment: signature.asc
Description: PGP signature


Reply to: