1 #!/usr/bin/awk -f !! 1 #!/bin/sh 2 # SPDX-License-Identifier: GPL-2.0 << 3 # Before running this script please ensure tha 2 # Before running this script please ensure that your PATH is 4 # typical as you use for compilation/installat !! 3 # typical as you use for compilation/istallation. I use 5 # /bin /sbin /usr/bin /usr/sbin /usr/local/bin 4 # /bin /sbin /usr/bin /usr/sbin /usr/local/bin, but it may 6 # differ on your system. 5 # differ on your system. 7 !! 6 # 8 BEGIN { !! 7 echo 'If some fields are empty or look unusual you may have an old version.' 9 usage = "If some fields are empty or l !! 8 echo 'Compare to the current minimal requirements in Documentation/Changes.' 10 usage = usage "Compare to the current !! 9 echo ' ' 11 print usage !! 10 12 !! 11 uname -a 13 system("uname -a") !! 12 echo ' ' 14 printf("\n") !! 13 15 !! 14 gcc -dumpversion 2>&1 | 16 vernum = "[0-9]+([.]?[0-9]+)+" !! 15 awk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{ 17 libc = "libc[.]so[.][0-9]+$" !! 16 match($0, /[0-9]+([.]?[0-9]+)+/) 18 libcpp = "(libg|stdc)[+]+[.]so([.][0-9 !! 17 printf("GNU C\t\t\t%s\n", 19 !! 18 substr($0,RSTART,RLENGTH)) 20 printversion("GNU C", version("gcc -du !! 19 }' 21 printversion("GNU Make", version("make !! 20 22 printversion("Binutils", version("ld - !! 21 make --version 2>&1 | 23 printversion("Util-linux", version("mo !! 22 awk '/GNU Make/{ 24 printversion("Mount", version("mount - !! 23 match($0, /[0-9]+([.]?[0-9]+)+/) 25 printversion("Module-init-tools", vers !! 24 printf("GNU Make\t\t%s\n", 26 printversion("E2fsprogs", version("tun !! 25 substr($0,RSTART,RLENGTH)) 27 printversion("Jfsutils", version("fsck !! 26 }' 28 printversion("Reiserfsprogs", version( !! 27 29 printversion("Reiser4fsprogs", version !! 28 ld -v 2>&1 | 30 printversion("Xfsprogs", version("xfs_ !! 29 awk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{ 31 printversion("Pcmciautils", version("p !! 30 match($0, /[0-9]+([.]?[0-9]+)+/) 32 printversion("Pcmcia-cs", version("car !! 31 printf("Binutils\t\t%s\n", 33 printversion("Quota-tools", version("q !! 32 substr($0,RSTART,RLENGTH)) 34 printversion("PPP", version("pppd --ve !! 33 }' 35 printversion("Isdn4k-utils", version(" !! 34 36 printversion("Nfs-utils", version("sho !! 35 mount --version 2>&1 | 37 printversion("Bison", version("bison - !! 36 awk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{ 38 printversion("Flex", version("flex --v !! 37 match($0, /[0-9]+([.]?[0-9]+)+/) 39 !! 38 $0 = substr($0,RSTART,RLENGTH) 40 while ("ldconfig -p 2>/dev/null" | get !! 39 printf("Util-linux\t\t%s\nMount\t\t\t%s\n",$0,$0) 41 if ($NF ~ libc || $NF ~ libcpp !! 40 }' 42 if (!seen[ver = versio !! 41 43 printversion(" !! 42 depmod -V 2>&1 | 44 !! 43 awk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{ 45 printversion("Dynamic linker (ldd)", v !! 44 match($0, /[0-9]+([.]?[0-9]+)+/) 46 printversion("Procps", version("ps --v !! 45 printf("Module-init-tools\t%s\n", 47 printversion("Net-tools", version("ifc !! 46 substr($0,RSTART,RLENGTH)) 48 printversion("Kbd", version("loadkeys !! 47 }' 49 printversion("Console-tools", version( !! 48 50 printversion("Sh-utils", version("expr !! 49 tune2fs 2>&1 | 51 printversion("Udev", version("udevadm !! 50 awk '/^tune2fs/{ 52 printversion("Wireless-tools", version !! 51 match($0, /[0-9]+([.]?[0-9]+)+/) 53 !! 52 printf("E2fsprogs\t\t%s\n", 54 while ("sort /proc/modules" | getline !! 53 substr($0,RSTART,RLENGTH)) 55 mods = mods sep $1 !! 54 }' 56 sep = " " !! 55 57 } !! 56 fsck.jfs -V 2>&1 | 58 printversion("Modules Loaded", mods) !! 57 awk '/version/{ 59 } !! 58 match($0, /[0-9]+([.]?[0-9]+)+/) 60 !! 59 printf("Jfsutils\t\t%s\n", 61 function version(cmd, ver) { !! 60 substr($0,RSTART,RLENGTH)) 62 cmd = cmd " 2>&1" !! 61 }' 63 while (cmd | getline > 0) { !! 62 64 if (match($0, vernum)) { !! 63 reiserfsck -V 2>&1 | 65 ver = substr($0, RSTAR !! 64 awk '/^reiserfsck/{ 66 break !! 65 match($0, /[0-9]+([.]?[0-9]+)+/) 67 } !! 66 printf("Reiserfsprogs\t\t%s\n", 68 } !! 67 substr($0,RSTART,RLENGTH)) 69 close(cmd) !! 68 }' 70 return ver !! 69 71 } !! 70 fsck.reiser4 -V 2>&1 | grep ^fsck.reiser4 | awk \ 72 !! 71 'NR==1{print "reiser4progs ", $2}' 73 function printversion(name, value, ofmt) { !! 72 74 if (value != "") { !! 73 xfs_db -V 2>&1 | 75 ofmt = "%-20s\t%s\n" !! 74 awk '/version/{ 76 printf(ofmt, name, value) !! 75 match($0, /[0-9]+([.]?[0-9]+)+/) >> 76 printf("Xfsprogs\t\t%s\n", >> 77 substr($0,RSTART,RLENGTH)) >> 78 }' >> 79 >> 80 pccardctl -V 2>&1 | >> 81 awk '/pcmciautils/{ >> 82 match($0, /[0-9]+([.]?[0-9]+)+/) >> 83 printf("Pcmciautils\t\t%s\n", >> 84 substr($0,RSTART,RLENGTH)) >> 85 }' >> 86 >> 87 cardmgr -V 2>&1| grep version | awk \ >> 88 'NR==1{print "pcmcia-cs ", $3}' >> 89 >> 90 quota -V 2>&1 | >> 91 awk '/version/{ >> 92 match($0, /[0-9]+([.]?[0-9]+)+/) >> 93 printf("Quota-tools\t\t%s\n", >> 94 substr($0,RSTART,RLENGTH)) >> 95 }' >> 96 >> 97 pppd --version 2>&1 | >> 98 awk '/version/{ >> 99 match($0, /[0-9]+([.]?[0-9]+)+/) >> 100 printf("PPP\t\t\t%s\n", >> 101 substr($0,RSTART,RLENGTH)) >> 102 }' >> 103 >> 104 isdnctrl 2>&1 | grep version | awk \ >> 105 'NR==1{print "isdn4k-utils ", $NF}' >> 106 >> 107 showmount --version 2>&1 | grep nfs-utils | awk \ >> 108 'NR==1{print "nfs-utils ", $NF}' >> 109 >> 110 test -r /proc/self/maps && >> 111 sed ' >> 112 /.*libc-\(.*\)\.so$/!d >> 113 s//Linux C Library\t\t\1/ >> 114 q >> 115 ' /proc/self/maps >> 116 >> 117 ldd --version 2>&1 | >> 118 awk '/^ldd/{ >> 119 match($0, /[0-9]+([.]?[0-9]+)+/) >> 120 printf("Dynamic linker (ldd)\t%s\n", >> 121 substr($0,RSTART,RLENGTH)) >> 122 }' >> 123 >> 124 libcpp=`ldconfig -p 2>/dev/null | >> 125 awk '/(libg|stdc)[+]+\.so/ { >> 126 print $NF >> 127 exit 77 } 128 } >> 129 '` >> 130 test -r "$libcpp" && >> 131 ls -l $libcpp | >> 132 sed ' >> 133 s!.*so\.!! >> 134 s!^!Linux C++ Library\t! >> 135 ' >> 136 ps --version 2>&1 | >> 137 awk '/version/{ >> 138 match($0, /[0-9]+([.]?[0-9]+)+/) >> 139 printf("Procps\t\t\t%s\n", >> 140 substr($0,RSTART,RLENGTH)) >> 141 }' >> 142 >> 143 ifconfig --version 2>&1 | >> 144 awk '/tools/{ >> 145 match($0, /[0-9]+([.]?[0-9]+)+/) >> 146 printf("Net-tools\t\t%s\n", >> 147 substr($0,RSTART,RLENGTH)) >> 148 }' >> 149 >> 150 loadkeys -V 2>&1 | >> 151 awk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{ >> 152 match($0, /[0-9]+([.]?[0-9]+)+/) >> 153 $0 = substr($0,RSTART,RLENGTH) >> 154 printf("Kbd\t\t\t%s\nConsole-tools\t\t%s\n",$0,$0) >> 155 }' >> 156 >> 157 oprofiled --version 2>&1 | awk \ >> 158 '(NR==1 && ($2 == "oprofile")) {print "oprofile ", $3}' >> 159 >> 160 expr --v 2>&1 | >> 161 awk '/^expr/{ >> 162 match($0, /[0-9]+([.]?[0-9]+)+/) >> 163 printf("Sh-utils\t\t%s\n", >> 164 substr($0,RSTART,RLENGTH)) >> 165 }' >> 166 >> 167 udevadm --version 2>&1 | >> 168 awk '/[0-9]+([.]?[0-9]+)+/ && !/not found$/{ >> 169 match($0, /[0-9]+([.]?[0-9]+)+/) >> 170 printf("Udev\t\t\t%s\n", >> 171 substr($0,RSTART,RLENGTH)) >> 172 }' >> 173 >> 174 iwconfig --version 2>&1 | >> 175 awk '/version/{ >> 176 match($0, /[0-9]+([.]?[0-9]+)+/) >> 177 printf("Wireless-tools\t\t%s\n", >> 178 substr($0,RSTART,RLENGTH)) >> 179 }' >> 180 >> 181 test -e /proc/modules && >> 182 sort /proc/modules | >> 183 sed ' >> 184 s/ .*// >> 185 H >> 186 ${ >> 187 g >> 188 s/^\n/Modules Loaded\t\t/ >> 189 y/\n/ / >> 190 q 78 } 191 } >> 192 d >> 193 '
Linux® is a registered trademark of Linus Torvalds in the United States and other countries.
TOMOYO® is a registered trademark of NTT DATA CORPORATION.