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

Bug#502850: debian-installer: D-I fails to process some correct (!) preseed files



reopen 502850
reassign 502850 preseed
severity 502850 important
thanks

On Tuesday 21 October 2008, Durk Strooisma wrote:
> bad.di stops really early when it's parsed by debconf-set-selections.
> It already stops parsing on the first lines and doesn't reach the
> pkgsel/include question. Which is weird, because this is the place
> where modifications helped to work-around the problem (see start post).

Thanks for the additional info.

I've taken a look at the two manual runs and it looks like there is some
weird issue in busybox.

The problem related to this definition:
d-i preseed/late_command    string	in-target sed -i '1ilarge-memory' /etc/lilo.conf ; \
                                        in-target lilo ; \
                                        echo 'APT::Install-Recommends "false";' > /target/etc/apt/apt.conf

In the "bad" case $package is correctly determined as "d-i", but after
that the following comparison in the script evaluates to true:
   [ "$line" != "${line#*$SPACE}" ]
I.e, it does not recognize that there are additional space-separated
fields in $line. The result of that is that $var never gets set which
results in the "incorrect number of arguments" error later.

Note that $line at that point is the three lines concatenated, minus the
line continuation character.

What we're now going to need is a simplified, reproducible testcase;
probably just a simple script that sets a variable to a "bad" value
and then executes the test above.
We should also try to identify what in the string makes the value "bad".

In debconf-set-selections we should add a sanity check that at least
$package, $var and $type are set and provide some meaningful log errors
if they are not.

Cheers,
FJP



Reply to: