Bug#241395: libc6: preinst fails for kernel 2.4.23dual
GOTO Masanori <gotom@debian.or.jp> writes:
> At Mon, 12 Apr 2004 23:28:07 +0900,
> GOTO Masanori wrote:
>> At 03 Apr 2004 00:39:01 +0200,
>> Goswin von Brederlow wrote:
>> > > There are various ways to fix this situation, one example:
>> > >
>> > > kernel_rev=$(uname -r | awk -F '[.-]' '{print $3}' | sed 's/\([[:digit:]]*\).*/\1/' )
>> >
>> > kernel_rev=$(uname -r | sed 's/\([0-9]*\.[0-9]*\.\)\([0-9]*\)\(.*\)/\2/')
>> >
>> > Please don't use awk (see BTS for related bugs). awk requires a
>> > Pre-Depends since its an alternative and mawk (provides awk) is not
>> > even essential.
>> >
>> > sed on the other hand is essential.
>>
>> Thanks for your code, but I've put my version.
>>
>> Using awk is no problem.
>
> Ugh, I'm silly that I didn't check Bug#229461. Using awk is problem
> for some users (Note that AJ and Colin did not think it's problematic.
> I agreed with them, but in fact mawk is not essential).
Its not about users but about installing debian (be it real or for a
chroot). Using awk is a serious policy violation that just happens to
only matter when installing from scratch.
I think having the Debian Installer fail is problematic but thats just
me.
> However, Jeff already put such code into libc.preinst:
>
> if [ "$1" != abort-upgrade ] && [ "`uname -s`" = Linux ]
> then
> # Test to make sure z < 255, in x.y.z-n form of kernel version
> # Also make sure we don't trip on x.y.zFOO-n form
> kernel_rev=$(uname -r | tr -- - . | cut -d. -f3 | tr -d [:alpha:])
That will fail with "2.4.25,foo" but what the heck.
The problem with the code is that its missing a "":
mrvn@dual:~$ uname -r | tr -- - . | cut -d. -f3 | tr -d [:alpha:]
23dual
mrvn@dual:~$ uname -r | tr -- - . | cut -d. -f3 | tr -d "[:alpha:]"
23
> if [ "$kernel_rev" -ge 255 ]
> then
> echo WARNING: Your kernel version indicates a revision number
> echo of 255 or greater. Glibc has a number of built in
> echo assumptions that this revision number is less than 255.
> echo If you\'ve built your own kernel, please make sure that any
> echo custom version numbers are appended to the upstream
> echo kernel number with a dash or some other delimiter.
>
> exit 1
> fi
>
> And changelog said:
>
> - debian/debhelper.in/libc.preinst: Don't use awk except in
> upgrade mode. (Closes: #229461)
> Also make sure that it doesn't trip on words being added to the
> upstream revision number. Thanks to James Troup for
> mentioning this.
> Thanks to Bastian Blank <waldi@debian.org> for the fix.
>
> So it seems this #241395 is intentional behavior. But apparently the
> current code is failed under "2.4.23dual" kernel with message:
>
> bash: [: : integer expression expected
>
> It has to be fixed. I guess many user use "2.4.23dual" and so on. So
> go back to #229461, why should we ignore a version like "2.4.23dual"?
> Jeff, James?
>
> I would like to permit "2.4.23dual" and recognize as "2.4.23". I'll
> adopt Goswin's code if no one objects.
>
> Regards,
> -- gotom
MfG
Goswin
PS: Please fix that so I can update my kernel (which means I loose the
testcase). :)
Reply to: