Source
6
6
# differ on your system.
7
7
8
8
BEGIN {
9
9
usage = "If some fields are empty or look unusual you may have an old version.\n"
10
10
usage = usage "Compare to the current minimal requirements in Documentation/Changes.\n"
11
11
print usage
12
12
13
13
system("uname -a")
14
14
printf("\n")
15
15
16
+
vernum = "[0-9]+([.]?[0-9]+)+"
17
+
16
18
printversion("GNU C", version("gcc -dumpversion"))
17
19
printversion("GNU Make", version("make --version"))
18
20
printversion("Binutils", version("ld -v"))
19
21
printversion("Util-linux", version("mount --version"))
20
22
printversion("Mount", version("mount --version"))
21
23
printversion("Module-init-tools", version("depmod -V"))
22
24
printversion("E2fsprogs", version("tune2fs"))
23
25
printversion("Jfsutils", version("fsck.jfs -V"))
24
26
printversion("Reiserfsprogs", version("reiserfsck -V"))
25
27
printversion("Reiser4fsprogs", version("fsck.reiser4 -V"))
27
29
printversion("Pcmciautils", version("pccardctl -V"))
28
30
printversion("Pcmcia-cs", version("cardmgr -V"))
29
31
printversion("Quota-tools", version("quota -V"))
30
32
printversion("PPP", version("pppd --version"))
31
33
printversion("Isdn4k-utils", version("isdnctrl"))
32
34
printversion("Nfs-utils", version("showmount --version"))
33
35
34
36
while (getline <"/proc/self/maps" > 0) {
35
37
if (/libc.*\.so$/) {
36
38
n = split($0, procmaps, "/")
37
-
if (match(procmaps[n], /[0-9]+([.]?[0-9]+)+/)) {
39
+
if (match(procmaps[n], vernum)) {
38
40
ver = substr(procmaps[n], RSTART, RLENGTH)
39
41
printversion("Linux C Library", ver)
40
42
break
41
43
}
42
44
}
43
45
}
44
46
45
47
printversion("Dynamic linker (ldd)", version("ldd --version"))
46
48
47
49
while ("ldconfig -p 2>/dev/null" | getline > 0) {
63
65
while ("sort /proc/modules" | getline > 0) {
64
66
mods = mods sep $1
65
67
sep = " "
66
68
}
67
69
printversion("Modules Loaded", mods)
68
70
}
69
71
70
72
function version(cmd, ver) {
71
73
cmd = cmd " 2>&1"
72
74
while (cmd | getline > 0) {
73
-
if (match($0, /[0-9]+([.]?[0-9]+)+/)) {
75
+
if (match($0, vernum)) {
74
76
ver = substr($0, RSTART, RLENGTH)
75
77
break
76
78
}
77
79
}
78
80
close(cmd)
79
81
return ver
80
82
}
81
83
82
84
function printversion(name, value, ofmt) {
83
85
if (value != "") {