Bug#241395: libc6: preinst fails for kernel 2.4.23dual
At Thu, 01 Apr 2004 07:10:50 +0200,
Goswin Brederlow wrote:
> running cdebootstrap I see the following error:
>
> O: /var/lib/dpkg/tmp.ci/preinst: line 184: [: 23dual: integer expression expected
>
> Looking at the preinst
> ----------------------------------------------------------------------
> if [ "$1" != abort-upgrade ] && [ "`uname -s`" = Linux ]
> then
> # Test to make sure z < 255, in x.y.z-n form of kernel version
> kernel_rev=$(uname -r | awk -F '[.-]' '{print $3}')
> 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
> ----------------------------------------------------------------------
> the problem becomes clear.
>
> % uname -r
> 2.4.23dual
You didn't use make-kpkg?
> I have seen no ill effects from this in month so I guess glibc does a
> scanf and gets 23 as revision number or I'm just plain lucky. Maybe I
> should have used 2.4.23-dual but I didn't and glibc should cope with
> that.
>
> I guess the 'if [ "$kernel_rev" -ge 255 ]' should be true in this case
> too, i.e. display the warning and exit 1, but giving an error on [ is
> startling (Thats what I mean with cope. Doesn't have to work, just
> give a helpfull message).
There are various ways to fix this situation, one example:
kernel_rev=$(uname -r | awk -F '[.-]' '{print $3}' | sed 's/\([[:digit:]]*\).*/\1/' )
Could someone who is shell script god suggest us the nice way to fix
it?
Regards,
-- gotom
Reply to: