11da177e4SLinus Torvalds#!/bin/sh 21da177e4SLinus Torvalds# Before running this script please ensure that your PATH is 31da177e4SLinus Torvalds# typical as you use for compilation/istallation. I use 41da177e4SLinus Torvalds# /bin /sbin /usr/bin /usr/sbin /usr/local/bin, but it may 51da177e4SLinus Torvalds# differ on your system. 61da177e4SLinus Torvalds# 71da177e4SLinus Torvaldsecho 'If some fields are empty or look unusual you may have an old version.' 81da177e4SLinus Torvaldsecho 'Compare to the current minimal requirements in Documentation/Changes.' 91da177e4SLinus Torvaldsecho ' ' 101da177e4SLinus Torvalds 111da177e4SLinus Torvaldsuname -a 121da177e4SLinus Torvaldsecho ' ' 131da177e4SLinus Torvalds 14235024e5SAlexander Kapshukgcc -dumpversion 2>&1 | 15235024e5SAlexander Kapshukawk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{ 16235024e5SAlexander Kapshuk match($0, /[0-9]+([.]?[0-9]+)+/) 17235024e5SAlexander Kapshuk printf("GNU C\t\t\t%s\n", 18235024e5SAlexander Kapshuk substr($0,RSTART,RLENGTH)) 19235024e5SAlexander Kapshuk}' 201da177e4SLinus Torvalds 211d60b873SAlexander Kapshukmake --version 2>&1 | 221d60b873SAlexander Kapshukawk '/GNU Make/{ 231d60b873SAlexander Kapshuk match($0, /[0-9]+([.]?[0-9]+)+/) 241d60b873SAlexander Kapshuk printf("GNU Make\t\t%s\n", 251d60b873SAlexander Kapshuk substr($0,RSTART,RLENGTH)) 261d60b873SAlexander Kapshuk}' 271da177e4SLinus Torvalds 283e2f5cfbSAlexander Kapshukld -v 2>&1 | 293e2f5cfbSAlexander Kapshukawk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{ 303e2f5cfbSAlexander Kapshuk match($0, /[0-9]+([.]?[0-9]+)+/) 313e2f5cfbSAlexander Kapshuk printf("Binutils\t\t%s\n", 323e2f5cfbSAlexander Kapshuk substr($0,RSTART,RLENGTH)) 333e2f5cfbSAlexander Kapshuk}' 341da177e4SLinus Torvalds 3512b2732cSAlexander Kapshukmount --version 2>&1 | 3612b2732cSAlexander Kapshukawk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{ 3712b2732cSAlexander Kapshuk match($0, /[0-9]+([.]?[0-9]+)+/) 3812b2732cSAlexander Kapshuk $0 = substr($0,RSTART,RLENGTH) 3912b2732cSAlexander Kapshuk printf("Util-linux\t\t%s\nMount\t\t\t%s\n",$0,$0) 4012b2732cSAlexander Kapshuk}' 411da177e4SLinus Torvalds 421da177e4SLinus Torvaldsdepmod -V 2>&1 | awk 'NR==1 {print "module-init-tools ",$NF}' 431da177e4SLinus Torvalds 441da177e4SLinus Torvaldstune2fs 2>&1 | grep "^tune2fs" | sed 's/,//' | awk \ 451da177e4SLinus Torvalds'NR==1 {print "e2fsprogs ", $2}' 461da177e4SLinus Torvalds 471da177e4SLinus Torvaldsfsck.jfs -V 2>&1 | grep version | sed 's/,//' | awk \ 481da177e4SLinus Torvalds'NR==1 {print "jfsutils ", $3}' 491da177e4SLinus Torvalds 50ea88df9bSAlexey Dobriyanreiserfsck -V 2>&1 | grep ^reiserfsck | awk \ 511da177e4SLinus Torvalds'NR==1{print "reiserfsprogs ", $2}' 521da177e4SLinus Torvalds 53ea88df9bSAlexey Dobriyanfsck.reiser4 -V 2>&1 | grep ^fsck.reiser4 | awk \ 541da177e4SLinus Torvalds'NR==1{print "reiser4progs ", $2}' 551da177e4SLinus Torvalds 561da177e4SLinus Torvaldsxfs_db -V 2>&1 | grep version | awk \ 571da177e4SLinus Torvalds'NR==1{print "xfsprogs ", $3}' 581da177e4SLinus Torvalds 59319e799aSValdis Kletniekspccardctl -V 2>&1| grep pcmciautils | awk '{print "pcmciautils ", $2}' 60319e799aSValdis Kletnieks 611da177e4SLinus Torvaldscardmgr -V 2>&1| grep version | awk \ 621da177e4SLinus Torvalds'NR==1{print "pcmcia-cs ", $3}' 631da177e4SLinus Torvalds 641da177e4SLinus Torvaldsquota -V 2>&1 | grep version | awk \ 651da177e4SLinus Torvalds'NR==1{print "quota-tools ", $NF}' 661da177e4SLinus Torvalds 671da177e4SLinus Torvaldspppd --version 2>&1| grep version | awk \ 681da177e4SLinus Torvalds'NR==1{print "PPP ", $3}' 691da177e4SLinus Torvalds 701da177e4SLinus Torvaldsisdnctrl 2>&1 | grep version | awk \ 711da177e4SLinus Torvalds'NR==1{print "isdn4k-utils ", $NF}' 721da177e4SLinus Torvalds 731da177e4SLinus Torvaldsshowmount --version 2>&1 | grep nfs-utils | awk \ 741da177e4SLinus Torvalds'NR==1{print "nfs-utils ", $NF}' 751da177e4SLinus Torvalds 769cc3ef30SJesper Juhlecho -n "Linux C Library " 779cc3ef30SJesper Juhlsed -n -e '/^.*\/libc-\([^/]*\)\.so$/{s//\1/;p;q}' < /proc/self/maps 781da177e4SLinus Torvalds 791da177e4SLinus Torvaldsldd -v > /dev/null 2>&1 && ldd -v || ldd --version |head -n 1 | awk \ 801da177e4SLinus Torvalds'NR==1{print "Dynamic linker (ldd) ", $NF}' 811da177e4SLinus Torvalds 82bdefe35dSdann frazierls -l /usr/lib/libg++.so /usr/lib/libstdc++.so 2>/dev/null | awk -F. \ 831da177e4SLinus Torvalds '{print "Linux C++ Library " $4"."$5"."$6}' 841da177e4SLinus Torvalds 851da177e4SLinus Torvaldsps --version 2>&1 | grep version | awk \ 861da177e4SLinus Torvalds'NR==1{print "Procps ", $NF}' 871da177e4SLinus Torvalds 881da177e4SLinus Torvaldsifconfig --version 2>&1 | grep tools | awk \ 891da177e4SLinus Torvalds'NR==1{print "Net-tools ", $NF}' 901da177e4SLinus Torvalds 911da177e4SLinus Torvalds# Kbd needs 'loadkeys -h', 921da177e4SLinus Torvaldsloadkeys -h 2>&1 | awk \ 931da177e4SLinus Torvalds'(NR==1 && ($3 !~ /option/)) {print "Kbd ", $3}' 941da177e4SLinus Torvalds 951da177e4SLinus Torvalds# while console-tools needs 'loadkeys -V'. 961da177e4SLinus Torvaldsloadkeys -V 2>&1 | awk \ 971da177e4SLinus Torvalds'(NR==1 && ($2 ~ /console-tools/)) {print "Console-tools ", $3}' 981da177e4SLinus Torvalds 99319e799aSValdis Kletnieksoprofiled --version 2>&1 | awk \ 100319e799aSValdis Kletnieks'(NR==1 && ($2 == "oprofile")) {print "oprofile ", $3}' 101319e799aSValdis Kletnieks 1021da177e4SLinus Torvaldsexpr --v 2>&1 | awk 'NR==1{print "Sh-utils ", $NF}' 1031da177e4SLinus Torvalds 10416941458SSteven Coleudevinfo -V 2>&1 | grep version | awk '{print "udev ", $3}' 1051da177e4SLinus Torvalds 106319e799aSValdis Kletnieksiwconfig --version 2>&1 | awk \ 107319e799aSValdis Kletnieks'(NR==1 && ($3 == "version")) {print "wireless-tools ",$4}' 108319e799aSValdis Kletnieks 1091da177e4SLinus Torvaldsif [ -e /proc/modules ]; then 1101da177e4SLinus Torvalds X=`cat /proc/modules | sed -e "s/ .*$//"` 1111da177e4SLinus Torvalds echo "Modules Loaded "$X 1121da177e4SLinus Torvaldsfi 113