2 # SPDX-License-Identifier: GPL-2.0
3 # Before running this script please ensure that your PATH is
4 # typical as you use for compilation/installation. I use
5 # /bin /sbin /usr/bin /usr/sbin /usr/local/bin, but it may
6 # differ on your system.
9 usage =
"If some fields are empty or look unusual you may have an old version.\n"
10 usage = usage
"Compare to the current minimal requirements in Documentation/Changes.\n"
16 printversion
("GNU C", version
("gcc -dumpversion"))
17 printversion
("GNU Make", version
("make --version"))
18 printversion
("Binutils", version
("ld -v"))
19 printversion
("Util-linux", version
("mount --version"))
20 printversion
("Mount", version
("mount --version"))
21 printversion
("Module-init-tools", version
("depmod -V"))
22 printversion
("E2fsprogs", version
("tune2fs"))
23 printversion
("Jfsutils", version
("fsck.jfs -V"))
24 printversion
("Reiserfsprogs", version
("reiserfsck -V"))
25 printversion
("Reiser4fsprogs", version
("fsck.reiser4 -V"))
26 printversion
("Xfsprogs", version
("xfs_db -V"))
27 printversion
("Pcmciautils", version
("pccardctl -V"))
28 printversion
("Pcmcia-cs", version
("cardmgr -V"))
29 printversion
("Quota-tools", version
("quota -V"))
30 printversion
("PPP", version
("pppd --version"))
31 printversion
("Isdn4k-utils", version
("isdnctrl"))
32 printversion
("Nfs-utils", version
("showmount --version"))
34 while (getline <"/proc/self/maps" > 0) {
35 n =
split($
0, procmaps
, "/")
36 if (/libc.
*so$
/ && match(procmaps
[n
], /[0-9]+([.
]?
[0-9]+)+/)) {
37 ver =
substr(procmaps
[n
], RSTART, RLENGTH)
38 printversion
("Linux C Library", ver
)
43 printversion
("Dynamic linker (ldd)", version
("ldd --version"))
45 while ("ldconfig -p 2>/dev/null" | getline > 0) {
46 if (/(libg
|stdc
)[+]+\.so
/) {
51 printversion
("Linux C++ Library", version
("readlink " libcpp
))
52 printversion
("Procps", version
("ps --version"))
53 printversion
("Net-tools", version
("ifconfig --version"))
54 printversion
("Kbd", version
("loadkeys -V"))
55 printversion
("Console-tools", version
("loadkeys -V"))
56 printversion
("Oprofile", version
("oprofiled --version"))
57 printversion
("Sh-utils", version
("expr --v"))
58 printversion
("Udev", version
("udevadm --version"))
59 printversion
("Wireless-tools", version
("iwconfig --version"))
61 while ("sort /proc/modules" | getline > 0) {
65 printversion
("Modules Loaded", mods
)
68 function version
(cmd
, ver
) {
70 while (cmd
| getline > 0) {
71 if (!
/ver_linux
/ && match($
0, /[0-9]+([.
]?
[0-9]+)+/)) {
72 ver =
substr($
0, RSTART, RLENGTH)
80 function printversion
(name
, value
, ofmt) {
83 printf(ofmt, name
, value
)