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
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
|
2009-08-27 Sergey Poznyakoff <gray@gnu.org.ua>
Fix diagnostic and help messages.
1. Option descriptions in `--help' output do not constitute
conceptual sentences. Therefore, they should not begin
with a capital letter, nor end with a final point.
2. According to standards.texi, a diagnostic message in a
non-interactive program "should not begin with a capital letter
when it follows a program name and/or file name, because that
isn't the beginning of a sentence. (The sentence conceptually
starts at the beginning of the line.) Also, it should not end
with a period."
Affected files:
* pies/pies.c
* pies/progman.c
2009-06-17 Sergey Poznyakoff <gray@gnu.org.ua>
Bugfixes.
* pies/pies.c (main): Change main loop to do..while,
otherwise a signal arriving before entering the loop
might cause the program to terminate.
2009-06-14 Sergey Poznyakoff <gray@gnu.org.ua>
Fix and improve termination actions.
* pies/pies.h (MAX_RETURN_CODE): Remove.
(STATUS_SIG_BIT, STATUS_CODE): New defines
(struct action): New fields next, nstat, status, command.
(struct component): Keep singly-linked list of termination
actions.
* pies/progman.c (run_command): New function.
(progman_cleanup): Redo iteration over termination actions.
* pies/pies.c (return_code_cfg_param): Pass offsets in
struct component.
(create_action): Accept signal numbers (SIG.* or SIG\+[0-9]+)
in tag.
(return_code_section_parser): Update.
(pies_check_status): Set *pid before returning pies_status_stale.
* doc/pies.texi: Document changes.
2009-06-04 Sergey Poznyakoff <gray@gnu.org.ua>
MeTA1-related improvements.
* pies/pies.c (_cm_include_meta1): Fix coredump on syntax errors
in meta1.conf.
2009-05-21 Sergey Poznyakoff <gray@gnu.org.ua>
More work on `silent rules' mode
* pies/Makefile.am: Add silent rule markers.
2009-05-13 Sergey Poznyakoff <gray@gnu.org.ua>
Minor change
* pies/progman.c: Use _exit in child processes. This
is a work over a fault in MU design: it registers
the pidfile removal function via atexit.
2008-12-26 Sergey Poznyakoff <gray@gnu.org.ua>
* doc/pies.texi: Update.
git-svn-id: file:///svnroot/mailfromd/trunk@1771
7a8a7f39-df28-0410-adc6-e0d955640f24
2008-12-01 Sergey Poznyakoff <gray@gnu.org.ua>
Documentation and minor fixes.
* pies/pies.c, pies/progman.c, pies/meta1gram.y, pies/pies.h,
pies/meta1lex.l: Normalize output redirection terminology, fix the
debug levels.
* doc/pies.texi: Document the configuration.
2008-11-21 Sergey Poznyakoff <gray@gnu.org.ua>
* pies/pies.c (component_cfg_param): New statement settle-timeout.
* pies/progman.c (recompute_alarm): New static;
(prog_start): Start the component only if all of its prerequisites
are running.
(progman_recompute_alarm): New function.
(progman_start): Reset recompute_alarm to 0.
(check_stopping): New function.
(progman_wake_sleeping): Handle also status_stopping and
status_enabled. Recompute alarm before leaving.
(prog_start_prerequisites): Return 0 or 1 depending on whether all
prerequisites have been started.
(prog_stop): Raise recompute_alarm for stopping components.
(progman_cleanup): Force status_enabled before attepmting to
start a component.
(progman_cleanup): Add a \n after debugging message.
Run progman_wake_sleeping unlsess expect_term is set.
* pies/meta1gram.y (translate_node_list): Force settle-timeout =
1.
* pies/pies.h (struct component.settle_timeout): New member.
* pies/pies.c (main): New options --force, --dump-prereq and
--dump-depmap.
Refuse to start if another instance is already running.
(pies_check_status): New function.
(pies_status): Rewrite using pies_check_status.
* pies/progman.c (component_fixup_depend): Bugfix: move
mu_list_append off the conditional.
(progman_dump_prereq, progman_dump_depmap): New functions.
* pies/meta1gram.y (yyerror): Return 0.
* pies/pies.h (progman_dump_prereq, progman_dump_depmap): New
protos.
(meta1_parser_set_debug, meta1lex, meta1error)
(meta1parse): Likewise.
* pies/progman.c (print_dep): New function.
(progman_build_depmap): Call print_dep to facilitate fixing cyclic
dependencies.
(prog_start_prerequisites): Fix debugging output.
Remove spurious second loop (was it a typo or copy-paste
leftover?)
(prog_stop_dependents): Fix debugging output.
(progman_dump_stats): Avoid race conditions between running and
querying instances.
2008-11-17 Sergey Poznyakoff <gray@gnu.org.ua>
Fix handling of retranslators.
* pies/pies.c (main): Call progman_build_depmap and
progman_create_sockets before starting up components.
* pies/progman.c (struct prog): New member `retr'.
(destroy_prog): New function.
(retr_tag): Change signature. Fix erroneous condition for
xalloc_die.
(register_retr): Return prog. Make static. Initialize idx
with -1.
(update_retr): Register retranslator, if necessary.
(progman_register_retranslators): Remove.
(register_prog0): 2nd argument: index.
(register_prog): Do not create socket at once.
(prog_start): Remove debugging fprintf.
(progman_accept): Update call to register_prog0.
(progman_create_sockets): New function.
(progman_start): Remove calls to progman_register_retranslators
and progman_build_depmap. They must be done only once.
(prog_stop_retranslators): New function.
(prog_stop_dependents): Call prog_stop_retranslators.
(progman_cleanup): Remove dangling retranslators.
* pies/pies.h (progman_create_sockets): New prototype.
2008-11-16 Sergey Poznyakoff <gray@gnu.org.ua>
Improve pies.
* pies/pies.h (create_socket): Change proto to 3 arguments.
* pies/socket.c (create_socket): Take two additional arguments.
Allow to configure ownership and mode of created UNIX sockets.
* pies/progman.c (register_prog, prog_start): Update calls to
create_socket.
2008-11-15 Sergey Poznyakoff <gray@gnu.org.ua>
Improve handling of program privileges.
* pies/pies.h (struct pies_privs_data): Remove
(struct component): Change type of `privs' to struct mf_privs.
(priv_setup): Remove.
* pies/pies.c: Use mf_priv* stuff to manipulate privileges.
* pies/progman.c: Likewise.
* pies/meta1gram.y (list): allow for trailing comma.
2008-10-31 Sergey Poznyakoff <gray@gnu.org.ua>
* pies/progman.c, pies/pies.h: Use umaxtostr, instead
of mu_umaxtostr.
2008-10-15 Sergey Poznyakoff <gray@gnu.org.ua>
* pies/progman.c (env_setup): Port new implementation from Rush.
2008-10-04 Sergey Poznyakoff <gray@gnu.org.ua>
* pies/pies.c (component_cfg_param): New configuration statement
`precious'.
* pies/progman.c (struct prog): New member `precious'.
(register_prog): Set precious.
(prog_start_dependencies): Do not mark disabled precious
dependencies of a disabled component.
* pies/pies.h (pies/pies.h): New member `precious'.
* pies/pies.rcin (mcp): Mark as precious.
* pies/pies.c (return_code_section_parser): Fix to work with tag
of any type.
* pies/pies.rcin: Minor change.
* pies/pies.c (main): Do cleanup after main action processing and
only if action == ACTION_CONT.
* pies/progman.c (struct prog): New member `prev'.
(link_prog): Maintain doubly-linked list.
(prog_stop_dependent): Avoid printing diagnostics if there are
no dependencies to be stopped.
(prog_stop): Do nothing if prog->pid is zero.
Do not call prog_stop_dependent, it will be done by
progman_cleanup.
(prog_stop_all): Terminate components from last to first.
* pies/pies.rcin: Improve example, by adding mcp component.
* pies/pies.c (_cb_depend): Handle single string value.
(_cb_retr): Fix diagnostic message.
(_cb_facility): New function.
(component_cfg_param): New statement `facility'.
(component_section_parser): Initialize comp.facility to the
default value.
* pies/progman.c (struct prog): New member `facility'.
(register_prog): Initialize facility.
(open_retranslator): Use master->facility.
* pies/pies.h (struct component): New member `facility'.
2008-10-03 Sergey Poznyakoff <gray@gnu.org.ua>
* pies/progman.c (register_prog): Remove stray semicolon.
(retr_exit): Use _exit.
(prog_stop_dependent): Bugfix: stop retranlators as well as
components.
2008-09-29 Sergey Poznyakoff <gray@gnu.org.ua>
* pies/pies.c: Rewrite configuration
file support to match changes in Mailutils.
2008-09-09 Sergey Poznyakoff <gray@gnu.org.ua>
* pies/pies.c: Change description.
2008-06-26 Sergey Poznyakoff <gray@gnu.org.ua>
* pies/pies.h: Include stdint.h
2008-02-26 Sergey Poznyakoff <gray@gnu.org.ua>
* pies/pies.c: New configuration statement "chdir".
* pies/progman.c (struct prog.v.p): New member `dir'.
(register_prog): Initialize newp->v.p.dir;
(prog_start): Change to the working directory, if required by
config.
2008-02-01 Sergey Poznyakoff <gray@gnu.org.ua>
* pies/pies.c (progman_wake_disabled): Renamed to
progman_wake_sleeping.
* pies/progman.c: Implement proper handling of dependencies.
* pies/pies.h ((progman_wake_disabled): Renamed to
progman_wake_sleeping.
(pies_depmap_t,pies_depmap_pos_t,enum pies_depmap_direction): New
types.
(depmap_alloc,depmap_copy,depmap_set,depmap_isset,depmap_tc)
(depmap_first,depmap_next): New functions.
* pies/depmap.c: New file.
* pies/Makefile.am (pies_SOURCES): Add depmap.c.
* pies/pies.c (return_code_section_parser): Allow to use symbolic
exit codes.
(priv_setup): Exit with EX_CONFIG if the user does not exist.
(main): Catch early sigchlds as well.
* pies/progman.c (progman_cleanup): Fix notice wording.
* pies/pies.rcin: Add sample return-code section.
(component pmult): Redirect stderr/stdout to syslog.
2008-01-31 Sergey Poznyakoff <gray@gnu.org.ua>
Implement configurable actions depending on the exit code of
a component.
* pies/pies.c: New configuration file section "return-code".
(capa): Add mailer and debug.
(main): Register "return-code" section and all mailer formats.
* pies/progman.c (enum prog_status): New type.
(struct prog): Remove `disabled'. New fields `status' and `act'.
(register_prog): Initialize act.
(prog_start): Exit with EX_SOFTWARE code if the component cannot
be started.
(progman_start): Do not start disabled components.
(progman_wake_disabled): Wake only components marked as
status_stopped.
(notify): New function.
(progman_cleanup): Act in accordance with the `act' field if the
component terminates.
(progman_stop_component,progman_dump_stats): Take into account
prog->v.p.status.
* pies/pies.h (MAX_RETURN_CODE): New define.
(enum return_action): New type.
(struct component.act): New member.
(default_component): New global.
2008-01-24 Sergey Poznyakoff <gray@gnu.org.ua>
* pies/pies.c: Fix handling of the --log-tag option.
* pies/progman.c (prog_start): Remove unconditional debugging
output.
2008-01-22 Sergey Poznyakoff <gray@gnu.org.ua>
* pies/pies.c (log_setup): Always set mu_debug_default_printer to
override bug in libmailutils.
(component_cfg_param): New keyword `env'.
(main): Bugfix: It is -R that allows arguments, not -r.
* pies/progman.c (struct prog): New member env.
(register_prog): Avoid unnecessary allocations. Copy env.
(env_setup): New function.
(prog_start): Set up environment.
* pies/pies.h (struct component): New member env.
2008-01-14 Sergey Poznyakoff <gray@gnu.org.ua>
* pies/pies.c, pies/progman.c,
pies/pies.h, pmult/pmult.c: Sync with MU CVS: Use mu_log_facility
and mu_log_tag.
2008-01-13 Sergey Poznyakoff <gray@gnu.org.ua>
* pies/pies.c (_cb_group): Bugfix: store group number in the list,
not its name.
(component_section_parser): Initialize retr to default values.
* pies/Makefile.am (LDADD): Place libgnu.a after
MAILUTILS_LIBS.
* pies: New directory.
* pies/Makefile.am: New file.
* pies/pies.c, pies/progman.c, pies/pies.h, pies/pies.rcin: New
files.
Local Variables:
mode: change-log
version-control: never
buffer-read-only: t
End:
|