[Debconf-devel] Bug#956631: debconf-doc: error in debconf-devel(7) man page

Jameson Graef Rollins jrollins at finestructure.net
Mon Apr 13 20:07:05 BST 2020


Package: debconf-doc
Version: 1.5.73
Severity: normal

There appears to be an error in the debconf-devel(7) man page.  In the
'ADVANCED PROGRAMMING WITH DEBCONF'/'Config file handling' section there's the following example:

    ...
    cp -a -f $CONFIGFILE $CONFIGFILE.tmp
    
    # If the admin deleted or commented some variables but then set
    # them via debconf, (re-)add them to the conffile.
    test -z "$FOO" || grep -Eq '^ *FOO=' $CONFIGFILE || \
        echo "FOO=" >> $CONFIGFILE
    test -z "$BAR" || grep -Eq '^ *BAR=' $CONFIGFILE || \
        echo "BAR=" >> $CONFIGFILE
    
    sed -e "s/^ *FOO=.*/FOO=\"$FOO\"/" \
        -e "s/^ *BAR=.*/BAR=\"$BAR\"/" \
        < $CONFIGFILE > $CONFIGFILE.tmp
    mv -f $CONFIGFILE.tmp $CONFIGFILE
    ...

Note that in the second stanza it suggests writing to $CONFFILE, but
then $CONFILE is overwritten by the last 'mv ...' line, so those
changes will be overwritten.  I think the tests just need to look at
the temp file, not the main file, e.g.:

    ...
    cp -a -f $CONFIGFILE $CONFIGFILE.tmp
    
    # If the admin deleted or commented some variables but then set
    # them via debconf, (re-)add them to the conffile.
    test -z "$FOO" || grep -Eq '^ *FOO=' $CONFIGFILE.tmp || \
        echo "FOO=" >> $CONFIGFILE.tmp
    test -z "$BAR" || grep -Eq '^ *BAR=' $CONFIGFILE.tmp || \
        echo "BAR=" >> $CONFIGFILE.tmp
    
    sed -e "s/^ *FOO=.*/FOO=\"$FOO\"/" \
        -e "s/^ *BAR=.*/BAR=\"$BAR\"/" \
        < $CONFIGFILE > $CONFIGFILE.tmp
    mv -f $CONFIGFILE.tmp $CONFIGFILE
    ...

Thanks.

jamie.

-- System Information:
Debian Release: bullseye/sid
  APT prefers testing
  APT policy: (600, 'testing'), (500, 'stable'), (200, 'unstable'), (101, 'experimental')
Architecture: amd64 (x86_64)
Foreign Architectures: i386

Kernel: Linux 5.4.0-4-amd64 (SMP w/8 CPU cores)
Kernel taint flags: TAINT_WARN
Locale: LANG=en_US.UTF-8, LC_CTYPE=en_US.UTF-8 (charmap=UTF-8), LANGUAGE=en_US.UTF-8 (charmap=UTF-8)
Shell: /bin/sh linked to /bin/dash
Init: systemd (via /run/systemd/system)
LSM: AppArmor: enabled

debconf-doc depends on no packages.

debconf-doc recommends no packages.

Versions of packages debconf-doc suggests:
pn  debian-policy  <none>

-- no debconf information



More information about the Debconf-devel mailing list