Bug#381619: [Debconf-devel] Bug#381619: debconf 1.5.3 breaks apache install

Colin Watson cjwatson at debian.org
Mon Aug 7 16:11:14 UTC 2006


clone 381619 -1
reassign -1 apache
retitle -1 apache: does evil things with IFS in postinst
thanks

On Sat, Aug 05, 2006 at 03:39:58PM -0700, dean gaudet wrote:
> Package: debconf
> Version: 1.5.3
> 
> apache-1.3.34-2 package can't be configured when debconf 1.5.3 is on the 
> box... works fine when 1.5.2 is on the box...
> 
> tail of set -x output looks like so:
> 
> + db_set apache/server-name arctic.org
> + _db_cmd 'SET apache/server-name' arctic.org
> + printf '%s\n' 'SET apache/server-namearctic.org'
> + IFS='
> '
> + read -r _db_internal_line
> + RET='10 apache/server-namearctic.org doesn'\''t exist'
> + case ${_db_internal_line%%[   ]*} in
> + return 10
> 
> everything is fine if i revert the echo/printf change from #306134.

While I acknowledge that it's the debconf change that broke this, I
think apache is doing cruel and unusual things to the shell and has at
best a dubious right to expect things to keep on working. It does this
in three places:

  export IFS=`printf '\x07'`

... and never sets IFS back to a more normal value.

The only way I can see of avoiding this in debconf while still avoiding
echo's undesirable behaviour is to do something like this:

  _db_internal_IFS="$IFS"
  IFS=' '
  printf '%s\n' "$*" >&3
  # Set to newline to get whole line.
  IFS='
' read -r _db_internal_line
  IFS="$db_internal_IFS"
  ...

What do you think?

-- 
Colin Watson                                       [cjwatson at debian.org]




More information about the Debconf-devel mailing list