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 2>&1"))
17 printversion
("GNU Make", version
("make --version 2>&1"))
18 printversion
("Binutils", version
("ld -v 2>&1"))
19 printversion
("Util-linux", version
("mount --version 2>&1"))
20 printversion
("Mount", version
("mount --version 2>&1"))
21 printversion
("Module-init-tools", version
("depmod -V 2>&1"))
22 printversion
("E2fsprogs", version
("tune2fs 2>&1"))
23 printversion
("Jfsutils", version
("fsck.jfs -V 2>&1"))
24 printversion
("Reiserfsprogs", version
("reiserfsck -V 2>&1"))
25 printversion
("Reiser4fsprogs", version
("fsck.reiser4 -V 2>&1"))
26 printversion
("Xfsprogs", version
("xfs_db -V 2>&1"))
27 printversion
("Pcmciautils", version
("pccardctl -V 2>&1"))
28 printversion
("Pcmcia-cs", version
("cardmgr -V 2>&1"))
29 printversion
("Quota-tools", version
("quota -V 2>&1"))
30 printversion
("PPP", version
("pppd --version 2>&1"))
31 printversion
("Isdn4k-utils", version
("isdnctrl 2>&1"))
32 printversion
("Nfs-utils", version
("showmount --version 2>&1"))
34 if (system("test -r /proc/self/maps") ==
0) {
35 while (getline <"/proc/self/maps" > 0) {
36 n =
split($
0, procmaps
, "/")
37 if (/libc.
*so$
/ && match(procmaps
[n
], /[0-9]+([.
]?
[0-9]+)+/)) {
38 ver =
substr(procmaps
[n
], RSTART, RLENGTH)
39 printversion
("Linux C Library", ver
)
45 printversion
("Dynamic linker (ldd)", version
("ldd --version 2>&1"))
47 while ("ldconfig -p 2>/dev/null" | getline > 0) {
48 if (/(libg
|stdc
)[+]+\.so
/) {
53 if (system("test -r " libcpp
) ==
0)
54 printversion
("Linux C++ Library", version
("readlink " libcpp
))
56 printversion
("Procps", version
("ps --version 2>&1"))
57 printversion
("Net-tools", version
("ifconfig --version 2>&1"))
58 printversion
("Kbd", version
("loadkeys -V 2>&1"))
59 printversion
("Console-tools", version
("loadkeys -V 2>&1"))
60 printversion
("Oprofile", version
("oprofiled --version 2>&1"))
61 printversion
("Sh-utils", version
("expr --v 2>&1"))
62 printversion
("Udev", version
("udevadm --version 2>&1"))
63 printversion
("Wireless-tools", version
("iwconfig --version 2>&1"))
65 if (system("test -r /proc/modules") ==
0) {
66 while ("sort /proc/modules" | getline > 0) {
70 printversion
("Modules Loaded", mods
)
74 function version
(cmd
, ver
) {
75 while (cmd
| getline > 0) {
76 if (!
/ver_linux
/ && match($
0, /[0-9]+([.
]?
[0-9]+)+/)) {
77 ver =
substr($
0, RSTART, RLENGTH)
85 function printversion
(name
, value
, ofmt) {
88 printf(ofmt, name
, value
)