aboutsummaryrefslogtreecommitdiff
path: root/ChangeLog.mfd
blob: 7c4fcd5c4a0adeeace586ca1db4a923e9d3fdd83 (plain)
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:

Return to:

Send suggestions and report system problems to the System administrator.