modify ver_linux to check e2fsprogs and more.
PATCH 1/1 modify ver_linux to check e2fsprogs and more.
I have modified the scripts/ver_linux script to provide the following:
1) The order of version checks is now the same as the list in the Current Minimal Requirements section of Documentation/Changes for easier comparison.
2) Made capitalization consistent with the list in Changes.
3) Added version check for ext2 utils (e2fsprogs).
4) Added version check for pcmcia utils (pcmcia-cs).
5) Added version check for pppd (PPP).
6) Added version check for isdn utils (isdn4k-utils).
7) Added whitespace for better readability.
Due to the extensive rewriting, the patch against 2.4.1-ac6 is larger than the ver_linux script itself. I will include the proposed new version of ver_linux here inline, and I will attach the patch itself, which isn't as readable. This patch should apply against -ac5 and -ac7 also.
Here is the output of the current ver_linux for my system:
[root@localhost scripts]# ./ver_linux.orig
-- Versions installed: (if some fields are empty or look
-- unusual then possibly you have very old versions)
Linux localhost.localdomain 2.4.1-ac6 #1 Thu Feb 8 06:30:46 MST 2001 i686 unknown
Kernel modules 2.4.2 Gnu C 2.95.3 Gnu Make 3.79.1 Binutils 2.10.0.24 Linux C Library 2.1.3 Dynamic linker ldd (GNU libc) 2.1.3 Procps 2.0.7 Mount 2.10o Net-tools 1.57 Console-tools 0.2.3 Reiserfsprogs 3.x.0b Sh-utils 2.0
Modules Loaded
Here is the output of the new ver_linux:
[root@localhost scripts]# ./ver_linux
If some fields are empty or look unusual you may have an old version. Compare to the current minimal requirements in Documentation/Changes.
Linux localhost.localdomain 2.4.1-ac6 #1 Thu Feb 8 06:30:46 MST 2001 i686 unknown
Gnu C 2.95.3 Gnu make 3.79.1 binutils 2.10.0.24 util-linux 2.10o modutils 2.4.2 e2fsprogs 1.19 reiserfsprogs 3.x.0b pcmcia-cs 3.1.24 PPP 2.4.0 isdn4k-utils 3.1beta7 Linux C Library 2.1.3 Dynamic linker (ldd) 2.1.3 Procps 2.0.7 Net-tools 1.57 Console-tools 0.2.3 Sh-utils 2.0
Modules Loaded
This output can be compared with the list in Documentation/Changes:
o Gnu C 2.91.66 # gcc --version o Gnu make 3.77 # make --version o binutils 2.9.1.0.25 # ld -v o util-linux 2.10o # fdformat --version o modutils 2.4.2 # insmod -V o e2fsprogs 1.19 # tune2fs o reiserfsprogs 3.x.0b # reiserfsck 2>&1|grep reiserfsprogs o pcmcia-cs 3.1.21 # cardmgr -V o PPP 2.4.0 # pppd --version o isdn4k-utils 3.1pre1 # isdnctrl 2>&1|grep version
Here is the proposed new version of ver_linux, patch against 2.4.1-ac6 attached.
#!/bin/sh
# Before running this script please ensure that your PATH is
# typical as you use for compilation/istallation. I use # /bin /sbin /usr/bin /usr/sbin /usr/local/bin, but it may # differ on your system. # PATH=/sbin:/usr/sbin:/bin:/usr/bin:$PATH echo 'If some fields are empty or look unusual you may have an old version.' echo 'Compare to the current minimal requirements in Documentation/Changes.' echo ' '
uname -a
echo ' '
echo "Gnu C " gcc --version
make --version 2>&1 | awk -F, '{print $1}' | awk \
'/GNU Make/{print "Gnu make ",$NF}'
ld -v 2>&1 | awk -F\) '{print $1}' | awk \
'/BFD/{print "binutils ",$NF}'
mount --version | awk -F\- '{print "util-linux ", $NF}'
insmod -V 2>&1 | awk 'NR==1 {print "modutils ",$NF}'
tune2fs 2>&1 | grep tune2fs | sed 's/,//' | awk \
'NR==1 {print "e2fsprogs ", $2}'
reiserfsck 2>&1 | grep reiserfsprogs | awk \
'NR==1{print "reiserfsprogs ", $NF}'
cardmgr -V 2>&1| grep version | awk \
'NR==1{print "pcmcia-cs ", $3}'
pppd --version 2>&1| grep version | awk \
'NR==1{print "PPP ", $3}'
isdnctrl 2>&1 | grep version | awk \
'NR==1{print "isdn4k-utils ", $NF}'
ls -l ldd /bin/sh | awk '/libc/{print $3}' | sed \
-e 's/\.so$//' | awk -F'[.-]' '{print "Linux C Library " \
$(NF-2)"."$(NF-1)"."$NF}'
ldd -v > /dev/null 2>&1 && ldd -v || ldd --version |head -1 | awk \
'NR==1{print "Dynamic linker (ldd) ", $NF}'
ls -l /usr/lib/lib{g,stdc}++.so 2>/dev/null | awk -F. \
'{print "Linux C++ Library " $4"."$5"."$6}'ps --version 2>&1 | awk 'NR==1{print "Procps ", $NF}'
hostname -V 2>&1 | awk 'NR==1{print "Net-tools ", $NF}'
# Kbd needs 'loadkeys -h',
loadkeys -h 2>&1 | awk \
'(NR==1 && ($3 !~ /option/)) {print "Kbd ", $3}'
# while console-tools needs 'loadkeys -V'.
loadkeys -V 2>&1 | awk \
'(NR==1 && ($2 ~ /console-tools/)) {print "Console-tools ", $3}'expr --v 2>&1 | awk 'NR==1{print "Sh-utils ", $NF}'
X=cat /proc/modules | sed -e "s/ .*$//"
echo "Modules Loaded "$X
scripts/ver_linux renamed from scripts/ver_linux.orig +43 -12
@@ -5,32 +5,63 @@ # differ on your system. # PATH=/sbin:/usr/sbin:/bin:/usr/bin:$PATH -echo '-- Versions installed: (if some fields are empty or look' -echo '-- unusual then possibly you have very old versions)' +echo 'If some fields are empty or look unusual you may have an old version.' +echo 'Compare to the current minimal requirements in Documentation/Changes.' +echo ' ' + uname -a -insmod -V 2>&1 | awk 'NR==1 {print "Kernel modules ",$NF}' +echo ' ' + echo "Gnu C " `gcc --version` + make --version 2>&1 | awk -F, '{print $1}' | awk \ - '/GNU Make/{print "Gnu Make ",$NF}' + '/GNU Make/{print "Gnu make ",$NF}' + ld -v 2>&1 | awk -F\) '{print $1}' | awk \ - '/BFD/{print "Binutils ",$NF}' -ls -l `ldd /bin/sh | awk '/libc/{print $3}'` | sed -e 's/\.so$//' \ - | awk -F'[.-]' '{print "Linux C Library " $(NF-2)"."$(NF-1)"."$NF}' -echo -n "Dynamic linker " -ldd -v > /dev/null 2>&1 && ldd -v || ldd --version |head -1 + '/BFD/{print "binutils ",$NF}' + +mount --version | awk -F\- '{print "util-linux ", $NF}' + +insmod -V 2>&1 | awk 'NR==1 {print "modutils ",$NF}' + +tune2fs 2>&1 | grep tune2fs | sed 's/,//' | awk \ +'NR==1 {print "e2fsprogs ", $2}' + +reiserfsck 2>&1 | grep reiserfsprogs | awk \ +'NR==1{print "reiserfsprogs ", $NF}' + +cardmgr -V 2>&1| grep version | awk \ +'NR==1{print "pcmcia-cs ", $3}' + +pppd --version 2>&1| grep version | awk \ +'NR==1{print "PPP ", $3}' + +isdnctrl 2>&1 | grep version | awk \ +'NR==1{print "isdn4k-utils ", $NF}' + +ls -l `ldd /bin/sh | awk '/libc/{print $3}'` | sed \ +-e 's/\.so$//' | awk -F'[.-]' '{print "Linux C Library " \ +$(NF-2)"."$(NF-1)"."$NF}' + +ldd -v > /dev/null 2>&1 && ldd -v || ldd --version |head -1 | awk \ +'NR==1{print "Dynamic linker (ldd) ", $NF}' + ls -l /usr/lib/lib{g,stdc}++.so 2>/dev/null | awk -F. \ '{print "Linux C++ Library " $4"."$5"."$6}' + ps --version 2>&1 | awk 'NR==1{print "Procps ", $NF}' -mount --version | awk -F\- '{print "Mount ", $NF}' + hostname -V 2>&1 | awk 'NR==1{print "Net-tools ", $NF}' + # Kbd needs 'loadkeys -h', loadkeys -h 2>&1 | awk \ '(NR==1 && ($3 !~ /option/)) {print "Kbd ", $3}' + # while console-tools needs 'loadkeys -V'. loadkeys -V 2>&1 | awk \ '(NR==1 && ($2 ~ /console-tools/)) {print "Console-tools ", $3}' -reiserfsck --bogusarg 2>&1 | grep reiserfsprogs | awk \ -'NR==1{print "Reiserfsprogs ", $NF}' + expr --v 2>&1 | awk 'NR==1{print "Sh-utils ", $NF}' + X=`cat /proc/modules | sed -e "s/ .*$//"` echo "Modules Loaded "$X
Hi,
Quoted 2 lines · Steven Cole
I have modified the
scripts/ver_linuxscript to provide the following:
[...]
Quoted 2 lines
hostname -V 2>&1 | awk 'NR==1{print "Net-tools ", $NF}'
*Please* consider modifying this. There might be a problem:
tolot:/root # hostname -V
tolot:/root # hostname
-V
tolot:/root # hostname --version
hostname (GNU sh-utils) 2.0.11
Written by Jim Meyering.
Copyright (C) 2000 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
Greetings from Germany,
Jochen Striepe
Signature · 2 lines
The number of UNIX installations has grown to 10, with more expected.
- Dennis Ritchie and Ken Thompson, June 1972Quoted 12 lines · Jochen Striepe
Quoted 1 line
Hi,Quoted 1 line · Steven Cole
I have modified the
scripts/ver_linuxscript to provide the following:[...]
Quoted 1 line
hostname -V 2>&1 | awk 'NR==1{print "Net-tools ", $NF}'
*Please* consider modifying this. There might be a problem:
Quoted 6 lines
tolot:/root # hostname -V
tolot:/root # hostname
-V
tolot:/root # hostname --version
hostname (GNU sh-utils) 2.0.11
Written by Jim Meyering.
Hmm, I guess the newer verion of hostname broke the old behaviour:
[root@localhost scripts]# hostname -V
net-tools 1.57
hostname 1.99 (2000-02-13)
But, there is an easy solution:
[root@localhost scripts]# ifconfig --version
net-tools 1.57
ifconfig 1.40 (2000-05-21)
I replaced the old code for Net-tools with this:
ifconfig --version 2>&1 | grep tools | awk \
'NR==1{print "Net-tools ", $NF}'
That should work. I hope. Try it please.
A new patch, still against 2.4.1-ac6 is attached.
It should work with 2.4.1-ac5,6,7.
Steven
scripts/ver_linux renamed from scripts/ver_linux.orig +45 -13
@@ -5,32 +5,64 @@ # differ on your system. # PATH=/sbin:/usr/sbin:/bin:/usr/bin:$PATH -echo '-- Versions installed: (if some fields are empty or look' -echo '-- unusual then possibly you have very old versions)' +echo 'If some fields are empty or look unusual you may have an old version.' +echo 'Compare to the current minimal requirements in Documentation/Changes.' +echo ' ' + uname -a -insmod -V 2>&1 | awk 'NR==1 {print "Kernel modules ",$NF}' +echo ' ' + echo "Gnu C " `gcc --version` + make --version 2>&1 | awk -F, '{print $1}' | awk \ - '/GNU Make/{print "Gnu Make ",$NF}' + '/GNU Make/{print "Gnu make ",$NF}' + ld -v 2>&1 | awk -F\) '{print $1}' | awk \ - '/BFD/{print "Binutils ",$NF}' -ls -l `ldd /bin/sh | awk '/libc/{print $3}'` | sed -e 's/\.so$//' \ - | awk -F'[.-]' '{print "Linux C Library " $(NF-2)"."$(NF-1)"."$NF}' -echo -n "Dynamic linker " -ldd -v > /dev/null 2>&1 && ldd -v || ldd --version |head -1 + '/BFD/{print "binutils ",$NF}' + +mount --version | awk -F\- '{print "util-linux ", $NF}' + +insmod -V 2>&1 | awk 'NR==1 {print "modutils ",$NF}' + +tune2fs 2>&1 | grep tune2fs | sed 's/,//' | awk \ +'NR==1 {print "e2fsprogs ", $2}' + +reiserfsck 2>&1 | grep reiserfsprogs | awk \ +'NR==1{print "reiserfsprogs ", $NF}' + +cardmgr -V 2>&1| grep version | awk \ +'NR==1{print "pcmcia-cs ", $3}' + +pppd --version 2>&1| grep version | awk \ +'NR==1{print "PPP ", $3}' + +isdnctrl 2>&1 | grep version | awk \ +'NR==1{print "isdn4k-utils ", $NF}' + +ls -l `ldd /bin/sh | awk '/libc/{print $3}'` | sed \ +-e 's/\.so$//' | awk -F'[.-]' '{print "Linux C Library " \ +$(NF-2)"."$(NF-1)"."$NF}' + +ldd -v > /dev/null 2>&1 && ldd -v || ldd --version |head -1 | awk \ +'NR==1{print "Dynamic linker (ldd) ", $NF}' + ls -l /usr/lib/lib{g,stdc}++.so 2>/dev/null | awk -F. \ '{print "Linux C++ Library " $4"."$5"."$6}' + ps --version 2>&1 | awk 'NR==1{print "Procps ", $NF}' -mount --version | awk -F\- '{print "Mount ", $NF}' -hostname -V 2>&1 | awk 'NR==1{print "Net-tools ", $NF}' + +ifconfig --version 2>&1 | grep tools | awk \ +'NR==1{print "Net-tools ", $NF}' + # Kbd needs 'loadkeys -h', loadkeys -h 2>&1 | awk \ '(NR==1 && ($3 !~ /option/)) {print "Kbd ", $3}' + # while console-tools needs 'loadkeys -V'. loadkeys -V 2>&1 | awk \ '(NR==1 && ($2 ~ /console-tools/)) {print "Console-tools ", $3}' -reiserfsck --bogusarg 2>&1 | grep reiserfsprogs | awk \ -'NR==1{print "Reiserfsprogs ", $NF}' + expr --v 2>&1 | awk 'NR==1{print "Sh-utils ", $NF}' + X=`cat /proc/modules | sed -e "s/ .*$//"` echo "Modules Loaded "$X
Hi,
Quoted 6 lines · Steven Cole
But, there is an easy solution:
[root@localhost scripts]# ifconfig --version
net-tools 1.57
ifconfig 1.40 (2000-05-21)
Quoted 6 lines
I replaced the old code for Net-tools with this:
ifconfig --version 2>&1 | grep tools | awk \
'NR==1{print "Net-tools ", $NF}'That should work. I hope. Try it please.
This works great for me. Thanks!
Greetings from Germany,
Jochen Striepe.
Signature · 3 lines
"Gosh that takes me back ... or forward. That's the trouble with time
travel, you never can tell."
-- Dr. Who