61
by Scott Kitterman
* Merge from debian unstable, remaining changes (LP: #354015): |
1 |
#!/bin/sh
|
2 |
||
3 |
set -e
|
|
3
by Stephen Gran
* New upstream version |
4 |
|
5 |
# Source debconf library
|
|
6 |
. /usr/share/debconf/confmodule |
|
7 |
||
8 |
# This conf script is capable of backing up
|
|
9 |
db_version 2.0
|
|
10 |
db_capb backup |
|
11 |
||
12 |
#COMMON-FUNCTIONS#
|
|
13 |
||
14 |
CLAMAVCONF='/etc/clamav/clamd.conf' |
|
15 |
||
16 |
slurp_config "$CLAMAVCONF" |
|
17 |
||
18 |
# Store conf file values as debconf answers - make sure user changes made
|
|
19 |
# outside of debconf are preserved
|
|
20 |
if [ -n "$User" ]; then |
|
21 |
db_set clamav-base/User "$User" || true |
|
22 |
if ! [ "$User" = 'root' ]; then |
|
23 |
AddGroups=`groups "$User" | awk -F ':' '{print $2}' | sed -e s/"$User"//` |
|
24 |
fi
|
|
25 |
if [ -n "$AddGroups" ]; then |
|
26 |
db_set clamav-base/AddGroups "$AddGroups" || true |
|
27 |
fi
|
|
28 |
fi
|
|
29 |
if [ -n "$TCPSocket" ]; then |
|
30 |
db_set clamav-base/TcpOrLocal TCP || true |
|
31 |
elif [ -n "$LocalSocket" ]; then |
|
32 |
db_set clamav-base/TcpOrLocal UNIX || true |
|
33 |
fi
|
|
34 |
if [ -n "$LocalSocket" ]; then |
|
35 |
db_set clamav-base/LocalSocket "$LocalSocket" || true |
|
36 |
fi
|
|
80
by Scott Kitterman, Scott Kitterman, Stephen Gran, Michael Tautschnig
[ Scott Kitterman ] |
37 |
if [ -n "$LocalSocketGroup" ]; then |
38 |
db_set clamav-base/LocalSocketGroup "$LocalSocketGroup" || true |
|
39 |
fi
|
|
40 |
if [ -n "$LocalSocketMode" ]; then |
|
41 |
db_set clamav-base/LocalSocketMode "$LocalSocketMode" || true |
|
42 |
fi
|
|
3
by Stephen Gran
* New upstream version |
43 |
if [ "$FixStaleSocket" = "true" ]; then |
44 |
db_set clamav-base/FixStaleSocket true || true |
|
45 |
fi
|
|
46 |
if [ -n "$TCPSocket" ]; then |
|
47 |
db_set clamav-base/TCPSocket "$TCPSocket" || true |
|
48 |
fi
|
|
49 |
if [ -n "$TCPaddr" ]; then |
|
50 |
db_set clamav-base/TCPAddr "$TCPaddr" || true |
|
51 |
fi
|
|
52 |
if [ "$ScanMail" = "true" ]; then |
|
53 |
db_set clamav-base/ScanMail true || true |
|
54 |
fi
|
|
55 |
if [ "$ScanArchive" = "true" ]; then |
|
56 |
db_set clamav-base/ScanArchive true || true |
|
57 |
fi
|
|
58 |
if [ -n "$StreamMaxLength" ]; then |
|
59 |
StreamMaxLength="`echo $StreamMaxLength | sed -e s/M//`" |
|
0.39.10
by Michael Tautschnig, Alberto WU, Michael Tautschnig
|
60 |
if [ "$StreamMaxLength" = "0" ]; then |
61 |
StreamMaxLength="25" |
|
62 |
fi
|
|
3
by Stephen Gran
* New upstream version |
63 |
db_set clamav-base/StreamMaxLength "$StreamMaxLength" || true |
64 |
fi
|
|
65 |
if [ -n "$MaxDirectoryRecursion" ]; then |
|
66 |
db_set clamav-base/MaxDirectoryRecursion "$MaxDirectoryRecursion" || true |
|
67 |
fi
|
|
68 |
if [ "$FollowDirectorySymlinks" = "true" ]; then |
|
69 |
db_set clamav-base/FollowDirectorySymlinks true || true |
|
70 |
fi
|
|
71 |
if [ "$FollowFileSymlinks" = "true" ]; then |
|
72 |
db_set clamav-base/FollowFileSymlinks true || true |
|
73 |
fi
|
|
74 |
if [ -n "$ReadTimeout" ] && [ -z "$ThreadTimeout" ]; then |
|
75 |
db_set clamav-base/ReadTimeout "$ReadTimeout" || true |
|
76 |
elif
|
|
77 |
[ -z "$ReadTimeout" ] && [ -n "$ThreadTimeout" ]; then |
|
78 |
ReadTimeout="$ThreadTimeout" |
|
79 |
db_set clamav-base/ReadTimeout "$ReadTimeout" || true |
|
80 |
elif [ -n "$ReadTimeout" ]; then |
|
81 |
db_set clamav-base/ReadTimeout "$ReadTimeout" || true |
|
82 |
fi
|
|
83 |
if [ -n "$MaxThreads" ]; then |
|
84 |
db_set clamav-base/MaxThreads "$MaxThreads" || true |
|
85 |
fi
|
|
86 |
if [ -n "$MaxConnectionQueueLength" ]; then |
|
87 |
db_set clamav-base/MaxConnectionQueueLength "$MaxConnectionQueueLength" || true |
|
88 |
fi
|
|
89 |
if [ "$LogSyslog" = "true" ]; then |
|
90 |
db_set clamav-base/LogSyslog true || true |
|
91 |
fi
|
|
92 |
if [ -n "$LogFile" ]; then |
|
93 |
db_set clamav-base/LogFile "$LogFile" || true |
|
94 |
fi
|
|
95 |
if [ "$LogTime" = "true" ]; then |
|
96 |
db_set clamav-base/LogTime true || true |
|
97 |
fi
|
|
80
by Scott Kitterman, Scott Kitterman, Stephen Gran, Michael Tautschnig
[ Scott Kitterman ] |
98 |
if [ "$Bytecode" = "true" ]; then |
99 |
db_set clamav-base/Bytecode true || true |
|
100 |
fi
|
|
101 |
if [ -n "$BytecodeSecurity" ]; then |
|
102 |
db_set clamav-base/BytecodeSecurity "$BytecodeSecurity" || true |
|
103 |
fi
|
|
104 |
if [ -n "$BytecodeTimeout" ]; then |
|
105 |
db_set clamav-base/BytecodeTimeout "$BytecodeTimeout" || true |
|
3
by Stephen Gran
* New upstream version |
106 |
fi
|
107 |
||
108 |
# States
|
|
109 |
||
110 |
StateDebconf()
|
|
111 |
{
|
|
112 |
db_input medium clamav-base/debconf || true |
|
113 |
if ! db_go; then |
|
114 |
STATE="End" |
|
115 |
else
|
|
116 |
db_get clamav-base/debconf || true |
|
117 |
if [ "$RET" = "false" ]; then |
|
118 |
STATE="End" |
|
119 |
else
|
|
120 |
STATE="Socket" |
|
121 |
fi
|
|
122 |
fi
|
|
123 |
}
|
|
124 |
||
125 |
StateSocket()
|
|
126 |
{
|
|
127 |
db_input medium clamav-base/TcpOrLocal || true |
|
128 |
if ! db_go; then |
|
129 |
STATE="Debconf" |
|
130 |
else
|
|
131 |
db_metaget clamav-base/TcpOrLocal value |
|
132 |
STATE=$RET |
|
133 |
fi
|
|
134 |
}
|
|
135 |
||
80
by Scott Kitterman, Scott Kitterman, Stephen Gran, Michael Tautschnig
[ Scott Kitterman ] |
136 |
StateLocalSocketGroup()
|
137 |
{
|
|
138 |
db_input low clamav-base/LocalSocketGroup || true |
|
139 |
if db_go; then |
|
81
by Scott Kitterman
* Merge from Debian Unstable. Remaining Ubuntu changes: |
140 |
db_metaget clamav-base/LocalSocketGroup value |
80
by Scott Kitterman, Scott Kitterman, Stephen Gran, Michael Tautschnig
[ Scott Kitterman ] |
141 |
if [ "$RET" = "" ]; then |
81
by Scott Kitterman
* Merge from Debian Unstable. Remaining Ubuntu changes: |
142 |
db_set clamav-base/LocalSocketGroup "clamav" || true |
80
by Scott Kitterman, Scott Kitterman, Stephen Gran, Michael Tautschnig
[ Scott Kitterman ] |
143 |
fi
|
144 |
STATE="LocalSocketMode" |
|
145 |
else
|
|
146 |
STATE="UNIX" |
|
147 |
fi
|
|
148 |
}
|
|
149 |
||
3
by Stephen Gran
* New upstream version |
150 |
StateScanMail()
|
151 |
{
|
|
152 |
db_input medium clamav-base/ScanMail || true |
|
153 |
if db_go; then |
|
154 |
STATE="ScanArchive" |
|
155 |
else
|
|
156 |
db_metaget clamav-base/TcpOrLocal value |
|
157 |
if [ "$RET" = "TCP" ]; then |
|
158 |
STATE="TCPAddr" |
|
159 |
else
|
|
160 |
STATE="FixStale" |
|
161 |
fi
|
|
162 |
fi
|
|
163 |
}
|
|
164 |
||
165 |
StateScanArchive()
|
|
166 |
{
|
|
167 |
db_input low clamav-base/ScanArchive || true |
|
168 |
if db_go; then |
|
169 |
db_metaget clamav-base/ScanArchive value |
|
170 |
if [ "$RET" = "true" ]; then |
|
44
by Stephen Gran
* New upstream release (closes: #476450, #477278) |
171 |
STATE="StreamMaxLength" |
3
by Stephen Gran
* New upstream version |
172 |
else
|
173 |
STATE="MaxDirectoryRecursion" |
|
174 |
fi
|
|
175 |
else
|
|
176 |
STATE="ScanMail" |
|
177 |
fi
|
|
178 |
}
|
|
179 |
||
180 |
StateMaxDirectoryRecursion()
|
|
181 |
{
|
|
182 |
if inputdigit low clamav-base/MaxDirectoryRecursion; then |
|
183 |
db_metaget clamav-base/MaxDirectoryRecursion value |
|
184 |
if [ "$RET" = "0" ]; then |
|
185 |
STATE="FollowDirectorySymlinks" |
|
186 |
else
|
|
187 |
STATE="FollowFileSymlinks" |
|
188 |
fi
|
|
189 |
else
|
|
190 |
STATE="ScanArchive" |
|
191 |
fi
|
|
192 |
}
|
|
193 |
||
194 |
StateFollowFileSymlinks()
|
|
195 |
{
|
|
196 |
db_input low clamav-base/FollowFileSymlinks || true |
|
197 |
if db_go; then |
|
198 |
STATE="ReadTimeout" |
|
199 |
else
|
|
200 |
db_metaget clamav-base/MaxDirectoryRecursion value;
|
|
201 |
if [ "$RET" = "0" ]; then |
|
202 |
STATE="FollowDirectorySymlinks" |
|
203 |
else
|
|
204 |
STATE="MaxDirectoryRecursion" |
|
205 |
fi
|
|
206 |
fi
|
|
207 |
}
|
|
208 |
||
209 |
StateLogFile()
|
|
210 |
{
|
|
211 |
db_input low clamav-base/LogFile || true |
|
212 |
if db_go; then |
|
213 |
db_metaget clamav-base/LogFile value |
|
214 |
if [ "$RET" = "" ]; then |
|
215 |
db_set clamav-base/LogFile "/var/log/clamav/clamav.log" || true |
|
81
by Scott Kitterman
* Merge from Debian Unstable. Remaining Ubuntu changes: |
216 |
STATE="LogTime" |
3
by Stephen Gran
* New upstream version |
217 |
elif [ "$RET" = 'none' ]; then |
218 |
db_set clamav-base/LogFile "" || true |
|
81
by Scott Kitterman
* Merge from Debian Unstable. Remaining Ubuntu changes: |
219 |
STATE="SelfCheck" |
220 |
else
|
|
221 |
STATE="LogTime" |
|
3
by Stephen Gran
* New upstream version |
222 |
fi
|
223 |
else
|
|
224 |
STATE="LogSyslog" |
|
225 |
fi
|
|
226 |
}
|
|
227 |
||
228 |
StateUser()
|
|
229 |
{
|
|
230 |
db_input medium clamav-base/User || true |
|
231 |
if db_go; then |
|
232 |
db_metaget clamav-base/User value |
|
233 |
if [ "$RET" = "" ]; then |
|
234 |
db_set clamav-base/User "clamav" || true |
|
235 |
fi
|
|
236 |
STATE="AddGroups" |
|
237 |
else
|
|
238 |
STATE="SelfCheck" |
|
239 |
fi
|
|
240 |
}
|
|
241 |
||
80
by Scott Kitterman, Scott Kitterman, Stephen Gran, Michael Tautschnig
[ Scott Kitterman ] |
242 |
StateBytecode()
|
243 |
{
|
|
244 |
db_input low clamav-base/Bytecode || true |
|
245 |
if db_go; then |
|
246 |
db_metaget clamav-base/Bytecode value |
|
247 |
if [ "$RET" = "true" ]; then |
|
248 |
STATE="BytecodeSecurity" |
|
249 |
else
|
|
250 |
STATE="End" |
|
251 |
fi
|
|
252 |
else
|
|
253 |
STATE="AddGroups" |
|
254 |
fi
|
|
255 |
}
|
|
256 |
||
3
by Stephen Gran
* New upstream version |
257 |
# To many options to configure at configure
|
258 |
if [ "$1" = "reconfigure" ]; then |
|
259 |
STATE="Init" |
|
260 |
elif [ -n "$2" ]; then |
|
261 |
if [ -z "$User" ]; then |
|
262 |
STATE="User" |
|
263 |
fi
|
|
264 |
else
|
|
265 |
STATE="End" |
|
266 |
fi
|
|
267 |
||
268 |
[ -z "$STATE" ] && STATE='End' |
|
269 |
||
270 |
# This is the statemachine that controls execution. All the 'real' work is
|
|
271 |
# performed by subfunctions above.
|
|
272 |
||
273 |
while [ "$STATE" != "End" ]; do |
|
274 |
case "$STATE" in |
|
275 |
"Init") |
|
276 |
StateDebconf |
|
277 |
;;
|
|
278 |
"Socket") |
|
279 |
StateSocket |
|
280 |
;;
|
|
281 |
"TCP") |
|
81
by Scott Kitterman
* Merge from Debian Unstable. Remaining Ubuntu changes: |
282 |
StateGenericDigit low clamav-base/TCPSocket TCPAddr Socket |
3
by Stephen Gran
* New upstream version |
283 |
;;
|
284 |
"TCPAddr") |
|
81
by Scott Kitterman
* Merge from Debian Unstable. Remaining Ubuntu changes: |
285 |
StateGeneric low clamav-base/TCPAddr ScanMail TCP |
3
by Stephen Gran
* New upstream version |
286 |
;;
|
287 |
"UNIX") |
|
81
by Scott Kitterman
* Merge from Debian Unstable. Remaining Ubuntu changes: |
288 |
StateGeneric low clamav-base/LocalSocket LocalSocketGroup Socket |
3
by Stephen Gran
* New upstream version |
289 |
;;
|
80
by Scott Kitterman, Scott Kitterman, Stephen Gran, Michael Tautschnig
[ Scott Kitterman ] |
290 |
"LocalSocketGroup") |
291 |
StateLocalSocketGroup |
|
292 |
;;
|
|
293 |
"LocalSocketMode") |
|
81
by Scott Kitterman
* Merge from Debian Unstable. Remaining Ubuntu changes: |
294 |
StateGenericDigit low clamav-base/LocalSocketMode FixStale LocalSocketGroup |
295 |
;;
|
|
296 |
"FixStale") |
|
297 |
StateGeneric low clamav-base/FixStaleSocket ScanMail LocalSocketMode |
|
80
by Scott Kitterman, Scott Kitterman, Stephen Gran, Michael Tautschnig
[ Scott Kitterman ] |
298 |
;;
|
3
by Stephen Gran
* New upstream version |
299 |
"ScanMail") |
300 |
StateScanMail |
|
301 |
;;
|
|
302 |
"ScanArchive") |
|
303 |
StateScanArchive |
|
304 |
;;
|
|
305 |
"StreamMaxLength") |
|
81
by Scott Kitterman
* Merge from Debian Unstable. Remaining Ubuntu changes: |
306 |
StateGenericDigit low clamav-base/StreamMaxLength MaxDirectoryRecursion ScanArchive |
3
by Stephen Gran
* New upstream version |
307 |
;;
|
308 |
"MaxDirectoryRecursion") |
|
309 |
StateMaxDirectoryRecursion |
|
310 |
;;
|
|
311 |
"FollowDirectorySymlinks") |
|
81
by Scott Kitterman
* Merge from Debian Unstable. Remaining Ubuntu changes: |
312 |
StateGeneric low clamav-base/FollowDirectorySymlinks FollowFileSymlinks MaxDirectoryRecursion |
3
by Stephen Gran
* New upstream version |
313 |
;;
|
314 |
"FollowFileSymlinks") |
|
315 |
StateFollowFileSymlinks |
|
316 |
;;
|
|
317 |
"ReadTimeout") |
|
81
by Scott Kitterman
* Merge from Debian Unstable. Remaining Ubuntu changes: |
318 |
StateGenericDigit low clamav-base/ReadTimeout MaxThreads FollowFileSymlinks |
3
by Stephen Gran
* New upstream version |
319 |
;;
|
320 |
"MaxThreads") |
|
81
by Scott Kitterman
* Merge from Debian Unstable. Remaining Ubuntu changes: |
321 |
StateGenericDigit low clamav-base/MaxThreads MaxConnectionQueueLength ReadTimeout |
3
by Stephen Gran
* New upstream version |
322 |
;;
|
323 |
"MaxConnectionQueueLength") |
|
81
by Scott Kitterman
* Merge from Debian Unstable. Remaining Ubuntu changes: |
324 |
StateGenericDigit low clamav-base/MaxConnectionQueueLength LogSyslog MaxThreads |
3
by Stephen Gran
* New upstream version |
325 |
;;
|
326 |
"LogSyslog") |
|
81
by Scott Kitterman
* Merge from Debian Unstable. Remaining Ubuntu changes: |
327 |
StateGeneric medium clamav-base/LogSyslog LogFile MaxConnectionQueueLength |
3
by Stephen Gran
* New upstream version |
328 |
;;
|
329 |
"LogFile") |
|
330 |
StateLogFile |
|
331 |
;;
|
|
332 |
"LogTime") |
|
81
by Scott Kitterman
* Merge from Debian Unstable. Remaining Ubuntu changes: |
333 |
StateGeneric low clamav-base/LogTime SelfCheck LogFile |
3
by Stephen Gran
* New upstream version |
334 |
;;
|
335 |
"SelfCheck") |
|
81
by Scott Kitterman
* Merge from Debian Unstable. Remaining Ubuntu changes: |
336 |
StateGeneric low clamav-base/SelfCheck User LogFile |
337 |
;;
|
|
338 |
"User") |
|
339 |
StateUser |
|
340 |
;;
|
|
341 |
"AddGroups") |
|
342 |
StateGeneric medium clamav-base/AddGroups Bytecode User |
|
3
by Stephen Gran
* New upstream version |
343 |
;;
|
80
by Scott Kitterman, Scott Kitterman, Stephen Gran, Michael Tautschnig
[ Scott Kitterman ] |
344 |
"Bytecode") |
345 |
StateBytecode |
|
346 |
;;
|
|
347 |
"BytecodeSecurity") |
|
81
by Scott Kitterman
* Merge from Debian Unstable. Remaining Ubuntu changes: |
348 |
StateGeneric low clamav-base/BytecodeSecurity BytecodeTimeout Bytecode |
80
by Scott Kitterman, Scott Kitterman, Stephen Gran, Michael Tautschnig
[ Scott Kitterman ] |
349 |
;;
|
350 |
"BytecodeTimeout") |
|
81
by Scott Kitterman
* Merge from Debian Unstable. Remaining Ubuntu changes: |
351 |
StateGenericDigit low clamav-base/BytecodeTimeout End BytecodeSecurity |
3
by Stephen Gran
* New upstream version |
352 |
;;
|
353 |
esac
|
|
354 |
done
|
|
355 |
db_stop || true |
|
356 |
exit 0 |