On Sat, Nov 19, 2005 at 02:23:18AM +0100, Markus Kolb wrote: >As someone has already posted before $relmajor should become $release in >the $relmajor assignment. > >This patch fixes it: > >====================================================================== >--- /etc/dhclient-script.orig 2005-11-15 23:39:23.000000000 +0100 >+++ /etc/dhclient-script 2005-11-19 02:13:42.000000000 +0100 >@@ -73,7 +73,7 @@ > > release=`uname -r` > relminor=`echo $release | sed 's/^[0-9]*\.[0-9]*\.\([0-9]*\).*/\1/'` >-relmajor=`echo $relmajor | sed 's/^[0-9]*\.\([0-9]*\)\..*/\1/'` >+relmajor=`echo $release | sed 's/^[0-9]*\.\([0-9]*\)\..*/\1/'` > release=`echo $release | sed 's/\([0-9]*\)\..*/\1/'` > > if [ x$new_broadcast_address != x ]; then >===================================================================== > >++ uname -r >+ release=2.4.27-2-686 >++ echo 2.4.27-2-686 >++ sed 's/^[0-9]*\.[0-9]*\.\([0-9]*\).*/\1/' >+ relminor=27 >++ echo 2.4.27-2-686 >++ sed 's/^[0-9]*\.\([0-9]*\)\..*/\1/' >+ relmajor=4 >++ echo 2.4.27-2-686 >++ sed 's/\([0-9]*\)\..*/\1/' >+ release=2 > >As it should be, shouldn't it?
Actually, I don't believe so. Given the way these variables are actually used, I suspect that the correct fix is: release=`uname -r` relmajor=`echo $release | sed 's/^\([0-9]*\).*/\1/'` relminor=`echo $release | sed 's/^[0-9]*\.\([0-9]*\).*/\1/'` release=`echo $release | sed 's/^[0-9]*\.[0-9]*\.\([0-9]*\).*/\1/'` i.e. for your example, 2.4.27-2-686 should map to relmajor=2, relminor=4 and release=27. Note that the script tests these variables like so: if [ $relmajor -lt 2 ] || ( [ $relmajor -eq 2 ] && [ $relminor -eq 0 ] ) which I would interpret as testing for 1.X.X or 2.0.X, rather than X.1.X or X.2.0 . --bod -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]