#!/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.
#
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 ' '

gcc -dumpversion 2>&1 |
awk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{
	match($0, /[0-9]+([.]?[0-9]+)+/)
	printf("GNU C\t\t\t%s\n",
	substr($0,RSTART,RLENGTH))
}'

make --version 2>&1 |
awk '/GNU Make/{
	match($0, /[0-9]+([.]?[0-9]+)+/)
	printf("GNU Make\t\t%s\n",
	substr($0,RSTART,RLENGTH))
}'

ld -v 2>&1 |
awk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{
	match($0, /[0-9]+([.]?[0-9]+)+/)
	printf("Binutils\t\t%s\n",
	substr($0,RSTART,RLENGTH))
}'

mount --version 2>&1 |
awk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{
	match($0, /[0-9]+([.]?[0-9]+)+/)
	$0 = substr($0,RSTART,RLENGTH)
	printf("Util-linux\t\t%s\nMount\t\t\t%s\n",$0,$0)
}'

depmod -V  2>&1 |
awk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{
	match($0, /[0-9]+([.]?[0-9]+)+/)
	printf("Module-init-tools\t%s\n",
	substr($0,RSTART,RLENGTH))
}'

tune2fs 2>&1 |
awk '/^tune2fs/{
	match($0, /[0-9]+([.]?[0-9]+)+/)
	printf("E2fsprogs\t\t%s\n",
	substr($0,RSTART,RLENGTH))
}'

fsck.jfs -V 2>&1 |
awk '/version/{
	match($0, /[0-9]+([.]?[0-9]+)+/)
	printf("Jfsutils\t\t%s\n",
	substr($0,RSTART,RLENGTH))
}'

reiserfsck -V 2>&1 |
awk '/^reiserfsck/{
	match($0, /[0-9]+([.]?[0-9]+)+/)
	printf("Reiserfsprogs\t\t%s\n",
	substr($0,RSTART,RLENGTH))
}'

fsck.reiser4 -V 2>&1 | grep ^fsck.reiser4 | awk \
'NR==1{print "reiser4progs          ", $2}'

xfs_db -V 2>&1 |
awk '/version/{
	match($0, /[0-9]+([.]?[0-9]+)+/)
	printf("Xfsprogs\t\t%s\n",
	substr($0,RSTART,RLENGTH))
}'

pccardctl -V 2>&1 |
awk '/pcmciautils/{
	match($0, /[0-9]+([.]?[0-9]+)+/)
	printf("Pcmciautils\t\t%s\n",
	substr($0,RSTART,RLENGTH))
}'

cardmgr -V 2>&1| grep version | awk \
'NR==1{print "pcmcia-cs             ", $3}'

quota -V 2>&1 |
awk '/version/{
	match($0, /[0-9]+([.]?[0-9]+)+/)
	printf("Quota-tools\t\t%s\n",
	substr($0,RSTART,RLENGTH))
}'

pppd --version 2>&1 |
awk '/version/{
	match($0, /[0-9]+([.]?[0-9]+)+/)
	printf("PPP\t\t\t%s\n",
	substr($0,RSTART,RLENGTH))
}'

isdnctrl 2>&1 | grep version | awk \
'NR==1{print "isdn4k-utils          ", $NF}'

showmount --version 2>&1 | grep nfs-utils | awk \
'NR==1{print "nfs-utils             ", $NF}'

test -r /proc/self/maps &&
sed '
	/.*libc-\(.*\)\.so$/!d
	s//Linux C Library\t\t\1/
	q
' /proc/self/maps

ldd --version 2>&1 |
awk '/^ldd/{
	match($0, /[0-9]+([.]?[0-9]+)+/)
	printf("Dynamic linker (ldd)\t%s\n",
	substr($0,RSTART,RLENGTH))
}'

libcpp=`ldconfig -p 2>/dev/null |
	awk '/(libg|stdc)[+]+\.so/ {
	print $NF
	exit
	}
'`
test -r "$libcpp" &&
ls -l $libcpp |
sed '
	s!.*so\.!!
	s!^!Linux C++ Library\t!
'
ps --version 2>&1 |
awk '/version/{
	match($0, /[0-9]+([.]?[0-9]+)+/)
	printf("Procps\t\t\t%s\n",
	substr($0,RSTART,RLENGTH))
}'

ifconfig --version 2>&1 |
awk '/tools/{
	match($0, /[0-9]+([.]?[0-9]+)+/)
	printf("Net-tools\t\t%s\n",
	substr($0,RSTART,RLENGTH))
}'

loadkeys -V 2>&1 |
awk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{
	match($0, /[0-9]+([.]?[0-9]+)+/)
	$0 = substr($0,RSTART,RLENGTH)
	printf("Kbd\t\t\t%s\nConsole-tools\t\t%s\n",$0,$0)
}'

oprofiled --version 2>&1 | awk \
'(NR==1 && ($2 == "oprofile")) {print "oprofile              ", $3}'

expr --v 2>&1 |
awk '/^expr/{
	match($0, /[0-9]+([.]?[0-9]+)+/)
	printf("Sh-utils\t\t%s\n",
	substr($0,RSTART,RLENGTH))
}'

udevadm --version 2>&1 |
awk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{
	match($0, /[0-9]+([.]?[0-9]+)+/)
	printf("Udev\t\t\t%s\n",
	substr($0,RSTART,RLENGTH))
}'

iwconfig --version 2>&1 |
awk '/version/{
	match($0, /[0-9]+([.]?[0-9]+)+/)
	printf("Wireless-tools\t\t%s\n",
	substr($0,RSTART,RLENGTH))
}'

test -e /proc/modules &&
sort /proc/modules |
sed '
	s/ .*//
	H
${
	g
	s/^\n/Modules Loaded\t\t/
	y/\n/ /
	q
}
	d
'
