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

Bug#397785: [debconf] Should warn if postinst doesn't understand argument "reconfigure"



Russ Allbery <rra@debian.org> wrote:

> Frank Küster <frank@debian.org> writes:
>
>> Package: lintian
>> Version: 1.5.8
>> Severity: wishlist
>
>> From debconf-devel(7):
>
>> ,----
>> | the right thing would be to pass $1 = "reconfigure", but doing so
>> | without breaking all the postinsts that use debconf is difficult.  The
>> | migration plan away from this hack is to encourage people to write
>> | postinsts that accept "reconfigure", and once they all do, begin
>> | passing that variable.
>> `----
>
>> To aid in that goal, it would be nice if lintian complained if
>> reconfigure is not accepted.
>
> Agreed, but I don't have any idea how to do that given that the tests in
> postinst can be written as case statements or if statements and in many
> different formats and syntaxes and simply missing the word "reconfigure"
> doesn't mean that the postinst is wrong.

Yes, this is hard and probably won't go without false positives and
negatives... 

One approach might be to

- find assignments of $1 to a variable name

- check all occurrences of 

case ['"]*\$(1|name_found)['"] 

  or analogous 

if (\[|test) ...

  whether there's an occurence of "reconfigure" before "esac" or before
  "then", respectively.  I'd say it's a feature not to allow
  "*configure" in case statements.

Even if this approach might give false positives, I still think it's
better to do such a check than none at all.  

Regards, Frank
-- 
Dr. Frank Küster
Single Molecule Spectroscopy, Protein Folding @ Inst. f. Biochemie, Univ. Zürich
Debian Developer (teTeX/TeXLive)



Reply to: