forked from poppyred/1.6.x
/
compile-snmpd.php
executable file
·221 lines (197 loc) · 8.59 KB
/
compile-snmpd.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
<?php
ini_set('display_errors', 1); ini_set('html_errors',0);ini_set('display_errors', 1);ini_set('error_reporting', E_ALL);
include_once(dirname(__FILE__)."/framework/frame.class.inc");
include_once(dirname(__FILE__).'/framework/class.unix.inc');
include_once(dirname(__FILE__) . '/ressources/class.users.menus.inc');
include_once(dirname(__FILE__) . '/ressources/class.mysql.inc');
include_once(dirname(__FILE__) . '/ressources/class.user.inc');
include_once(dirname(__FILE__) . '/ressources/class.ini.inc');
include_once(dirname(__FILE__) . '/ressources/class.ccurl.inc');
$unix=new unix();
$GLOBALS["SHOW_COMPILE_ONLY"]=false;
$GLOBALS["NO_COMPILE"]=false;
$GLOBALS["REPOS"]=false;
if(preg_match("#schedule-id=([0-9]+)#",implode(" ",$argv),$re)){$GLOBALS["SCHEDULE_ID"]=$re[1];}
if($argv[1]=='--compile'){$GLOBALS["SHOW_COMPILE_ONLY"]=true;}
if(preg_match("#--no-compile#", @implode(" ", $argv))){$GLOBALS["NO_COMPILE"]=true;}
if(preg_match("#--verbose#", @implode(" ", $argv))){$GLOBALS["VERBOSE"]=true;}
if(preg_match("#--repos#", @implode(" ", $argv))){$GLOBALS["REPOS"]=true;}
if(preg_match("#--force#", @implode(" ", $argv))){$GLOBALS["FORCE"]=true;}
$users=new usersMenus();
// ./configure --prefix=/usr --enable-embedded-perl --enable-shared
$wget=$unix->find_program("wget");
$tar=$unix->find_program("tar");
$rm=$unix->find_program("rm");
$cp=$unix->find_program("cp");
$dirsrc="snmpd-src";
$Architecture=Architecture();
chdir("/root");
buildpackage();
die();
function Architecture(){
$unix=new unix();
$uname=$unix->find_program("uname");
exec("$uname -m 2>&1",$results);
while (list ($num, $val) = each ($results)){
if(preg_match("#i[0-9]86#", $val)){return 32;}
if(preg_match("#x86_64#", $val)){return 64;}
}
}
function buildpackage(){
$version=snmpd_version();
if($version==null){echo "version is null\n";return;}
$Architecture=Architecture();
$f["/usr/include/net-snmp"]=true;
$f["/usr/share/snmp"]=true;
$f["/etc/snmp"]=true;
$f["/usr/lib/libnetsnmp.so.30.0.2"]=true;
$f["/usr/lib/libnetsnmp.so.30"]=true;
$f["/usr/lib/libnetsnmp.la"]=true;
$f["/usr/lib/libnetsnmp.so"]=true;
$f["/usr/lib/libnetsnmp.a"]=true;
$f["/usr/lib/libnetsnmpagent.so.30.0.2"]=true;
$f["/usr/lib/libnetsnmpagent.so.30"]=true;
$f["/usr/lib/libnetsnmpagent.so"]=true;
$f["/usr/lib/libnetsnmpagent.la"]=true;
$f["/usr/lib/libnetsnmpagent.a"]=true;
$f["/usr/lib/libnetsnmphelpers.so.30.0.2"]=true;
$f["/usr/lib/libnetsnmphelpers.so.30"]=true;
$f["/usr/lib/libnetsnmphelpers.so"]=true;
$f["/usr/lib/libnetsnmphelpers.la"]=true;
$f["/usr/lib/libnetsnmphelpers.a"]=true;
$f["/usr/lib/libnetsnmpmibs.so.30.0.2"]=true;
$f["/usr/lib/libnetsnmpmibs.so.30"]=true;
$f["/usr/lib/libnetsnmpmibs.so"]=true;
$f["/usr/lib/libnetsnmpmibs.la"]=true;
$f["/usr/lib/libnetsnmpmibs.a"]=true;
$f["/usr/lib/libnetsnmptrapd.so.30.0.2"]=true;
$f["/usr/lib/libnetsnmptrapd.so.30"]=true;
$f["/usr/lib/libnetsnmptrapd.so"]=true;
$f["/usr/lib/libnetsnmptrapd.la"]=true;
$f["/usr/lib/libnetsnmptrapd.a"]=true;
$f["/usr/lib/libnetsnmp.so.30.0.2"]=true;
$f["/usr/lib/libnetsnmp.so.30"]=true;
$f["/usr/lib/libnetsnmp.so"]=true;
$f["/usr/lib/libnetsnmp.la"]=true;
$f["/usr/lib/libnetsnmp.a"]=true;
$f["/usr/lib/libnetsnmpagent.so.30.0.2"]=true;
$f["/usr/lib/libnetsnmpagent.so.30"]=true;
$f["/usr/lib/libnetsnmpagent.so"]=true;
$f["/usr/lib/libnetsnmpagent.la"]=true;
$f["/usr/lib/libnetsnmpagent.a"]=true;
$f["/usr/lib/libnetsnmphelpers.so.30.0.2"]=true;
$f["/usr/lib/libnetsnmphelpers.so.30"]=true;
$f["/usr/lib/libnetsnmphelpers.so"]=true;
$f["/usr/lib/libnetsnmphelpers.la"]=true;
$f["/usr/lib/libnetsnmphelpers.a"]=true;
$f["/usr/lib/libnetsnmpmibs.so.30.0.2"]=true;
$f["/usr/lib/libnetsnmpmibs.so.30"]=true;
$f["/usr/lib/libnetsnmpmibs.so"]=true;
$f["/usr/lib/libnetsnmpmibs.la"]=true;
$f["/usr/lib/libnetsnmpmibs.a"]=true;
$f["/usr/lib/libnetsnmptrapd.so.30.0.2"]=true;
$f["/usr/lib/libnetsnmptrapd.so.30"]=true;
$f["/usr/lib/libnetsnmptrapd.so"]=true;
$f["/usr/lib/libnetsnmptrapd.la"]=true;
$f["/usr/lib/libnetsnmptrapd.a"]=true;
$f["/usr/bin/snmpdelta"]=true;
$f["/usr/bin/snmpdf"]=true;
$f["/usr/sbin/snmpd"]=true;
$f["/usr/sbin/snmptrapd"]=true;
$f["/usr/bin/snmpget"]=true;
$f["/usr/bin/snmpgetnext"]=true;
$f["/usr/bin/snmpset"]=true;
$f["/usr/bin/snmpwalk"]=true;
$f["/usr/bin/snmpbulkwalk"]=true;
$f["/usr/bin/snmptable"]=true;
$f["/usr/bin/snmptrap"]=true;
$f["/usr/bin/snmpbulkget"]=true;
$f["/usr/bin/snmptranslate"]=true;
$f["/usr/bin/snmpstatus"]=true;
$f["/usr/bin/snmpdelta"]=true;
$f["/usr/bin/snmptest"]=true;
$f["/usr/bin/snmpdf"]=true;
$f["/usr/bin/agentxtrap"]=true;
$f["/usr/bin/snmpvacm"]=true;
$f["/usr/bin/snmpusm"]=true;
$f["/usr/bin/encode_keychange"]=true;
$f["/usr/bin/snmpnetstat"]=true;
$f["/usr/bin/snmpinform"]=true;
$f["/usr/bin/snmpcheck"]=true;
$f["/usr/bin/tkmib"]=true;
$f["/usr/bin/mib2c"]=true;
$f["/usr/bin/fixproc"]=true;
$f["/usr/bin/ipf-mod.pl"]=true;
$f["/usr/bin/snmpconf"]=true;
$f["/usr/bin/traptoemail"]=true;
$f["/usr/bin/snmp-bridge-mib"]=true;
$f["/usr/bin/net-snmp-cert"]=true;
$f["/usr/bin/mib2c-update"]=true;
$f["/usr/local/lib/perl/5.10.1/auto/SNMP/SNMP.bs"]=true;
$f["/usr/local/lib/perl/5.10.1/auto/SNMP/SNMP.so"]=true;
$f["/usr/local/lib/perl/5.10.1/auto/NetSNMP/OID/OID.bs"]=true;
$f["/usr/local/lib/perl/5.10.1/auto/NetSNMP/OID/OID.so"]=true;
$f["/usr/local/lib/perl/5.10.1/auto/NetSNMP/agent/agent.so"]=true;
$f["/usr/local/lib/perl/5.10.1/auto/NetSNMP/agent/agent.bs"]=true;
$f["/usr/local/lib/perl/5.10.1/auto/NetSNMP/agent/default_store/default_store.so"]=true;
$f["/usr/local/lib/perl/5.10.1/auto/NetSNMP/agent/default_store/default_store.bs"]=true;
$f["/usr/local/lib/perl/5.10.1/auto/NetSNMP/default_store/default_store.so"]=true;
$f["/usr/local/lib/perl/5.10.1/auto/NetSNMP/default_store/default_store.bs"]=true;
$f["/usr/local/lib/perl/5.10.1/auto/NetSNMP/ASN/ASN.so"]=true;
$f["/usr/local/lib/perl/5.10.1/auto/NetSNMP/ASN/ASN.bs"]=true;
$f["/usr/local/lib/perl/5.10.1/auto/NetSNMP/TrapReceiver/TrapReceiver.bs"]=true;
$f["/usr/local/lib/perl/5.10.1/auto/NetSNMP/TrapReceiver/TrapReceiver.so"]=true;
$f["/usr/local/lib/perl/5.10.1/SNMP.pm"]=true;
$f["/usr/local/lib/perl/5.10.1/NetSNMP/OID.pm"]=true;
$f["/usr/local/lib/perl/5.10.1/NetSNMP/TrapReceiver.pm"]=true;
$f["/usr/local/lib/perl/5.10.1/NetSNMP/ASN.pm"]=true;
$f["/usr/local/lib/perl/5.10.1/NetSNMP/default_store.pm"]=true;
$f["/usr/local/lib/perl/5.10.1/NetSNMP/agent.pm"]=true;
$f["/usr/local/lib/perl/5.10.1/NetSNMP/agent/netsnmp_request_infoPtr.pm"]=true;
$f["/usr/local/lib/perl/5.10.1/NetSNMP/agent/Support.pm"]=true;
$f["/usr/local/lib/perl/5.10.1/NetSNMP/agent/default_store.pm"]=true;
$f["/usr/local/lib/perl/5.10.1/auto/SNMP/autosplit.ix"]=true;
$f["/usr/local/lib/perl/5.10.1/auto/NetSNMP/OID/autosplit.ix"]=true;
$f["/usr/local/lib/perl/5.10.1/auto/NetSNMP/agent/autosplit.ix"]=true;
$f["/usr/local/lib/perl/5.10.1/auto/NetSNMP/agent/default_store/autosplit.ix"]=true;
$f["/usr/local/lib/perl/5.10.1/auto/NetSNMP/default_store/autosplit.ix"]=true;
$f["/usr/local/lib/perl/5.10.1/auto/NetSNMP/ASN/autosplit.ix"]=true;
$f["/usr/local/lib/perl/5.10.1/auto/NetSNMP/TrapReceiver/autosplit.ix"]=true;
$f["/usr/local/lib/perl/5.10.1/Bundle/Makefile.subs.pl"]=true;
$f["/usr/local/man/man3/NetSNMP::agent.3pm"]=true;
$f["/usr/local/man/man3/NetSNMP::OID.3pm"]=true;
$f["/usr/local/man/man3/NetSNMP::ASN.3pm"]=true;
$f["/usr/local/man/man3/NetSNMP::agent::default_store.3pm"]=true;
$f["/usr/local/man/man3/NetSNMP::default_store.3pm"]=true;
$f["/usr/local/man/man3/NetSNMP::TrapReceiver.3pm"]=true;
$f["/usr/local/man/man3/SNMP.3"]=true;
$f["/usr/local/man/man3/NetSNMP::netsnmp_request_infoPtr.3pm"]=true;
$root="/root/SNMPD-$version";
while (list ($filename, $none) = each ($f) ){
if(is_dir($filename)){
@mkdir("$root/$filename",0755,true);
echo "Installing $filename/* in $root/$filename/\n";
shell_exec("/bin/cp -rfd $filename/* $root/$filename/");
continue;
}
if(!is_file($filename)){echo "$filename no such file\n";continue;}
$dir=dirname($filename);
@mkdir("$root/$dir",0755,true);
echo "Installing $filename in $root/$dir/\n";
shell_exec("/bin/cp -fd $filename $root/$dir/");
}
$unix=new unix();
$tar=$unix->find_program("tar");
@chdir($root);
echo "Compressing snmpd-$Architecture-$version.tar.gz\n";
shell_exec("$tar -czf snmpd-$Architecture-$version.tar.gz *");
echo "Compressing $root/snmpd-$Architecture-$version.tar.gz Done...\n";
}
function snmpd_version(){
$unix=new unix();
$snmpd=$unix->find_program("snmpd");
exec("$snmpd -v 2>&1",$results);
while (list ($index, $line) = each ($results) ){
if(preg_match("#NET-SNMP version:.*?([0-9\.]+)#", $line,$re)){return $re[1];}
}
}