]> granicus.if.org Git - fcron/blob - doc/en/changes.sgml
f22892e0bc81051ec245d62e931ba552846d403b
[fcron] / doc / en / changes.sgml
1 <!-- 
2 Fcron documentation
3 Copyright 2000-2013 Thibault Godouet <fcron@free.fr>
4 Permission is granted to copy, distribute and/or modify this
5 document under the terms of the GNU Free Documentation License,
6 Version 1.1 or any later version published by the Free Software
7 Foundation.
8 A copy of the license is included in gfdl.sgml.
9 -->
10
11
12    <sect1 id="changes">
13       <title>Changes</title>
14
15       <itemizedlist>
16          <title>From version 3.1.2 to 3.1.3</title>
17             <listitem>
18                <para>Fixed compilation on Solaris 10, and fixed fcrondyn authentication without a password on that platform.</para>
19             </listitem>
20             <listitem>
21                <para>Fixed bug where LONG_MAX could potentially be used in functions like localtime(), which is too big for localtime().  This was unlikely to happen unless there was another problem in the first place.</para>
22             </listitem>
23             <listitem>
24                <para>fcrondyn -x no longer adds null characters at the end of the output.  This would cause problems if the output was piped to something as grep.  Thanks Dimitri Semitsoglou-Tsiapos for pointing this out.</para>
25             </listitem>
26             <listitem>
27                <para>Fixed minor bug in fcronsighup resulting in log errors about closing the signal file</para>
28             </listitem>
29             <listitem>
30                <para>fcrondyn no longer crashes when receiving an EOF when using readline (thanks Wade Carpenter for the patch)</para>
31             </listitem>
32       </itemizedlist>
33
34       <itemizedlist>
35          <title>From version 3.1.1 to 3.1.2</title>
36             <listitem>
37                <para>bug fix: fixed fcron crash bug when using fcrondyn</para>
38             </listitem>
39             <listitem>
40                <para>bug fix: the configure option --without-sendmail was not working correctly.</para>
41             </listitem>
42             <listitem>
43                <para>bug fix: inline runas wouldn't work with Vixie-cron style shortcut lines.</para>
44             </listitem>
45             <listitem>
46                <para>bug fix: fixed bug in the code to log to a file.</para>
47             </listitem>
48             <listitem>
49                <para>systemd: fixed the installation on systems using systemd, and also don't kill jobs when killing fcron.</para>
50             </listitem>
51             <listitem>
52                <para>Made file closures more robust to prevent bugs difficult to troubleshoot to creep in.</para>
53             </listitem>
54       </itemizedlist>
55
56       <itemizedlist>
57          <title>From version 3.1.0 to 3.1.1</title>
58             <listitem>
59                <para>Added readline support for fcrondyn</para>
60             </listitem>
61             <listitem>
62                <para>tweaked 'make indent' options and applied</para>
63             </listitem>
64             <listitem>
65                <para>Fcron can now log to a file (without syslog) - thanks Matthew Signorini.</para>
66             </listitem>
67             <listitem>
68                <para>fixed fcrontab edition of *ly lines (hourly, daily, etc)</para>
69             </listitem>
70             <listitem>
71                <para>fixed fcron crashes when noticenotrun was triggered</para>
72             </listitem>
73       </itemizedlist>
74       <itemizedlist>
75          <title>From version 3.0.6 to 3.1.0</title>
76          <listitem>
77             <para>Vixie cron compatibility: added options @reboot, @daily, @hourly, etc. Also added more generic options runatreboot, rebootreset and runonce.</para>
78          </listitem>
79          <listitem>
80             <para>Pass fcrondyn client credentials through the socket when possible so as the user doesn't need to type his password when using fcrondyn.</para>
81          </listitem>
82          <listitem>
83             <para>added audit (libaudit) support</para>
84          </listitem>
85          <listitem>
86             <para>Better validation of string arguments of fcrontab options. In particular for timezones, previously a space could be added at the beginning or the end of the timezone with no warning, and this led fcron to use an unexpected timezone, which could cause confusion.</para>
87          </listitem>
88          <listitem>
89             <para>Allow tasks to run every seconds</para>
90          </listitem>
91          <listitem>
92             <para>don't inherit fcron's environment when running a job but build the environment from scratch (cleaner, and this is what Vixie cron does)</para>
93          </listitem>
94          <listitem>
95             <para>fcron now sets the email headers X-Cron-Env and Auto-Submitted (as described in RFC 3834).</para>
96          </listitem>
97          <listitem>
98             <para>email encoding: fcron now sets the email headers Content-Type and Content-Transfer-Encoding. They can be controlled by setting the CONTENT_TYPE and CONTENT_TRANSFER_ENCODING variables in fcrontabs.</para>
99          </listitem>
100          <listitem>
101             <para>Added systemd service definition (thank you Reiner)</para>
102          </listitem>
103          <listitem>
104             <para>Allow Makefile parallelism (e.g. make -j 4)</para>
105          </listitem>
106          <listitem>
107             <para>bug fix: fcrontab: don't alert about invalid character when correcting fcrontab twice</para>
108          </listitem>
109          <listitem>
110             <para>bug fix: fixed free_safe() function (replaced by macro).</para>
111          </listitem>
112          <listitem>
113             <para>bug fix: configure script: usage of sendmail couldn't be disabled</para>
114          </listitem>
115          <listitem>
116             <para>bug fix: fixed a potential (unlikely) 1 byte overflow in strncat() in socket.c</para>
117          </listitem>
118          <listitem>
119             <para>Quite a lot of code clean-up and refactoring -- e.g. implemented generic unordred list for lavgq / exeq.</para>
120          </listitem>
121       </itemizedlist>
122       <itemizedlist>
123          <title>From version 3.0.5 to 3.0.6</title>
124          <listitem>
125             <para>Fixed bug preventing normal user from running fcrontab -l if fcron's uid!=gid</para>
126          </listitem>
127          <listitem>
128             <para>Fixed fcrontab's PAM initialization when working on the systab user.</para>
129          </listitem>
130          <listitem>
131             <para>Added check_system_crontabs.sh which is to replace the less portable check_system_crontabs.bash.</para>
132          </listitem>
133          <listitem>
134             <para>Added option -c to check_system_crontabs.sh to specify a fcron.conf file to use</para>
135          </listitem>
136          <listitem>
137             <para>Fixed Makefile bug preventing installation when building from a different folder than the sources (wrong fcron.conf path)</para>
138          </listitem>
139       </itemizedlist>
140
141       <itemizedlist>
142          <title>From version 3.0.4 to 3.0.5</title>
143          <listitem>
144             <para>Security issue: fixed security issue that allowed malicious user to read any file readable by group 'fcron' (in particular fcron's config files and the fcrontabs of non-root users). On systems without seteuid() (i.e. quite exotic systems) then the bug is harder to exploit but any file could be read.</para>
145          </listitem>
146          <listitem>
147             <para>Improved general security of fcrontab and fcrondyn by dropping more privileges.</para>
148          </listitem>
149          <listitem>
150             <para>Work on portability (aix, hpux, irix, tru64 unix, solaris). Thanks Peter O'Gorman for his patch!</para>
151          </listitem>
152          <listitem>
153             <para>Patched startup script to make it more compliant to the LSB.</para>
154          </listitem>
155          <listitem>
156             <para>Increased maximum number of fcrontab entries from 256 to 1024.</para>
157          </listitem>
158          <listitem>
159             <para>bug fix: if fcron could not fork() to run a job, then the job would still appear to be running until fcron is restarted (thanks Alexander Y. Fomichev for noticing this bug).</para>
160          </listitem>
161          <listitem>
162             <para>bug fix: fcrontab used to accept MAXENTRIES+1 fcrontab entries</para>
163          </listitem>
164          <listitem>
165             <para>chdir to /tmp before executing the editor (as some editor needs to be able to read information on the current folder).</para>
166          </listitem>
167       </itemizedlist>
168
169       <itemizedlist>
170          <title>From version 3.0.3 to 3.0.4</title>
171          <listitem>
172             <para>Initialize the random number generator with some values specific to the machine so as two fcron started exactly at the same time on two different machines run their random jobs at different time. This is useful for clusters for instance.</para>
173          </listitem>
174          <listitem>
175             <para>Added option erroronlymail so as the output of a job is emailed only when the job exited with a non-zero status.</para>
176          </listitem>
177          <listitem>
178             <para>Bug fix: in certain conditions, jobs could be executed outside their interval of execution when using option random on %-lines.</para>
179          </listitem>
180          <listitem>
181             <para>Fixed bug which prevented the pid of the job to be written to the (grand-)parent process. This was not a major issue but would prevent fcrondyn from working well with the concerned jobs. This bug was caused by a close() function applied twice on a file descriptor, which would trigger the bug in some rare occasions (only one affected linux system reported).</para>
182          </listitem>
183          <listitem>
184             <para>Fixed bug which would stop fcron from running any job any more on the affected system and until fcron was restarted if the bug above occured.</para>
185          </listitem>
186          <listitem>
187             <para>Cleaned-up the closures of file descriptors (check for errors, etc).</para>
188          </listitem>
189       </itemizedlist>
190
191       <itemizedlist>
192          <title>From version 3.0.3-rc1 to 3.0.3</title>
193          <listitem>
194             <para>The configure script now check that the make command is GNU make (which is required to build fcron).</para>
195             <para>Bug fix: better handling of getpwnam() errors (we cannot rely on errno to spot an error). This was causing problems for AIX for instance.</para>
196          </listitem>
197       </itemizedlist>
198
199       <itemizedlist>
200          <title>From version 3.0.2 to 3.0.3-rc1</title>
201          <listitem>
202             <para>New configure scripts, with more standard default values for paths, etc. This aims at simplifying the packaging of fcron. Thanks go to Patrice Dumas for his patch!</para>
203          </listitem>
204          <listitem>
205             <para>New make targets: perms and strip. This aims at simplifying the packaging of fcron. Thanks go to Patrice Dumas for his patch!</para>
206          </listitem>
207          <listitem>
208             <para>Set environment variable LOGNAME when running a job (as Vixie Cron does: thanks Martin McGreal for pointing that out).</para>
209          </listitem>
210          <listitem>
211             <para>Portability work for AIX 5.2 and Solaris 8 and 10 (thanks Martin McGreal).</para>
212          </listitem>
213          <listitem>
214             <para>Chmod()ed fcron's fifo file to 777. It was 666 previously, but the exec bit is needed for AIX and apparently ignored on other platforms, so we now set it to.</para>
215          </listitem>
216          <listitem>
217             <para>Set TZ environment variable for lines which uses fcron option timezone.</para>
218          </listitem>
219          <listitem>
220             <para>A file was closed twice by fcrontab: removed the duplicate close().</para>
221          </listitem>
222          <listitem>
223             <para>Replaced include sys/termios.h by termios.h.</para>
224          </listitem>
225          <listitem>
226             <para>Fixed a fcrontab bug cause by an return value not handled and resulting in many useless (but pretty much harmless) iteration in a loop.</para>
227          </listitem>
228       </itemizedlist>
229
230       <itemizedlist>
231          <title>From version 3.0.1 to 3.0.2</title>
232          <listitem>
233             <para>Use sockaddr's field sa_len/sun_len on system defining it (BSD, ...). It should allow fcrondyn to connect to fcron on these systems.</para>
234          </listitem>
235          <listitem>
236             <para>Non-SELinux systems: run each job in a different session by calling setuid() for each one of them. This is to improve compatibility with Vixie cron.</para>
237          </listitem>
238          <listitem>
239             <para>Don't use the shell defined in /etc/passwd by default, but use the default value from fcron.conf instead. This is for compatibility with Vixie cron.</para>
240          </listitem>
241          <listitem>
242             <para>Use root name and group instead of root uid and gid. This seems more logical since the configure scripts asks for the name and group and not the uid and gid.</para>
243          </listitem>
244          <listitem>
245             <para>Added an init file for Suse in script/ (contribution from Alex: thanks!).</para>
246          </listitem>
247          <listitem>
248             <para>Minor spelling fixes in the French documentation.</para>
249          </listitem>     
250       </itemizedlist>
251
252       <itemizedlist>
253          <title>From version 3.0.0 to 3.0.1</title>
254          <listitem>
255             <para>fcrontab: access user's directory with user's rights (necessary if user/group fcron has not the right to read the directory).</para>
256          </listitem>
257          <listitem>
258             <para>improvement in check_system_crontabs: more comments, added some help messages, added command line options, cleaner, safer code.</para>
259          </listitem>
260          <listitem>
261             <para>Improved English documentation: clarified some previously-unclear points.</para>
262          </listitem>
263          <listitem>
264             <para>Added French translation of the manual pages (thanks go to Alain Portal)</para>
265          </listitem>
266          <listitem>
267             <para>Removed old documentation from the package.</para>
268          </listitem>
269          <listitem>
270             <para>Better handling of the pipes in job.c: this should remove some problems encountered on BSD systems.</para>
271          </listitem>
272          <listitem>
273             <para>bug fix: do not use a tv_usec > 999999: should fix the problem encountered on BSD systems with select().</para>
274          </listitem>
275          <listitem>
276             <para>bug fix: fixed a bug in make_msg(): the size of a string written to a buffer was not controlled correctly in some cases. This could result in buffer overflow and thus this was security problem. However the bug seems not exploitable as the part of the string which could overflow the buffer could not be freely defined by an attacker (it was either ": " or one of the strings returned by strerror()).</para>
277          </listitem>
278          <listitem>
279             <para>Bug fix: set the FDs correctly for select().</para>
280          </listitem>
281       </itemizedlist>
282
283       <itemizedlist>
284          <title>From version 2.9.7 to 3.0.0</title>
285          <listitem>
286             <para>Added a missing entry in changelog (changes from 2.9.6 to 2.9.7, bug fix for NetBSD).</para>
287          </listitem>
288          <listitem>
289             <para>Merged a patch for the check_system_crontabs script (Security enhancements and cleanups).</para>
290          </listitem>
291       </itemizedlist>
292
293       <itemizedlist>
294          <title>From version 2.9.6 to 2.9.7</title>
295          <listitem>
296             <para>Added time zone support (option timezone).</para>
297          </listitem>
298          <listitem>
299             <para>Better support FreeBSD's users and groups modifications in
300                fcron's install scripts.</para>
301          </listitem>
302          <listitem>
303             <para>Fixed a bug which used to make fcron send empty mails on very
304                recent systems.</para>
305          </listitem>
306          <listitem>
307             <para>Fixed a bug which prevented fcrondyn to being used on NetBSD (thanks go to Gabor Z. Papp).</para>
308          </listitem>
309          <listitem>
310             <para>Added some casts in fileconf.c and save.c (to avoid some
311                warnings when compiling on HP-UX).</para>
312          </listitem>
313          <listitem>
314             <para>Added a FAQ entry on how to emulate an anacron entry.</para>
315          </listitem>
316       </itemizedlist>
317
318       <itemizedlist>
319          <title>From version 2.9.5.1 to 2.9.6</title>
320          <listitem>
321             <para>fixed the bug which made jobs run an hour too early after a
322                daylight saving time change.</para>
323             <para>Added detailed explanations about when a job will run when
324                there is a DST change in the FAQ.</para>
325          </listitem>
326          <listitem>
327             <para>fixed fcrondyn's "Unknown command" bug on x86_64 (thanks go to
328                Georgi Georgiev).</para>
329          </listitem>
330          <listitem>
331             <para>made fcrontab behave better when there is no space left in the
332                spool directory (used to truncate the fcrontab source file).
333             </para>
334          <listitem>
335             <para>Added a script, check_system_crontabs, to emulate Vixie cron's
336                behavior about /etc/crontab and /etc/cron.d. Please have a look
337                at the top of script/check_system_crontabs for more information.
338             </para>
339          </listitem>
340          <listitem>
341             <para>HP-UX support (needs more tests).</para>
342          </listitem>
343          <listitem>
344             <para>bug fix: restore umask even if fcron runs
345                unprivileged.</para>
346          </listitem>
347       </itemizedlist>
348
349       <itemizedlist>
350          <title>From version 2.9.5 to 2.9.5.1</title>
351          <listitem>
352             <para>Fixed serious security vulnerabilities in fcronsighup, and
353                improved fcronsighup's overall security (drop privileges, better
354                check user inputs, etc).</para>
355          </listitem>
356          <listitem>
357             <para>Fixed several typos in the doc.</para>
358          </listitem>
359          <listitem>
360             <para>Updated debian package scripts (patch from debian
361                maintainer).</para>
362          </listitem>
363       </itemizedlist>
364
365       <itemizedlist>
366          <title>From version 2.9.4 to 2.9.5</title>
367          <listitem>
368             <para>Ported to HP-UX (thanks go to Scott Tinsley)</para>
369          </listitem>
370          <listitem>
371             <para>Implemented fcrondyn commands run and runnow.</para>
372          </listitem>
373          <listitem>
374             <para>Merged patch from Russell Coker for new SE Linux.</para>
375          </listitem>
376          <listitem>
377             <para>Merged debian/ dir for debian package.</para>
378          </listitem>
379          <listitem>
380             <para>Mail reports: put the same username in the To: field than the
381                one we give as recipient to the MTA. mailto can now also be a
382                fully qualified email address.</para>
383          </listitem>
384          <listitem>
385             <para>changed a log message: a job which has ended without error is
386                reported has "completed" (which is more appropriated than
387                "terminated").
388             </para>
389          </listitem>
390          <listitem>
391             <para>Internal changes in log.c: code is more segmented, and code
392                has been added to be able to send log message to fcrondyn. Syslog
393                messages are now never longer than MAX_MSG (even with string from
394                strerror()).</para>
395          </listitem>
396          <listitem>
397             <para>Fixed a bug which happened on Daylight Saving Time change on
398                some systems. It would make fcron run into a nasty infinite loop.
399                Added a sanity check in set_nextexe() to avoid such
400                things.</para>
401          </listitem>
402          <listitem>
403             <para>Fixed a crash bug: in 2.9.4, if a user run ls_exeq when a job
404                is running and has been removed from its fcrontab, it makes fcron
405                crash.</para>
406          </listitem>
407          <listitem>
408             <para>Fixed a small bug: scripts were supposing perl was in
409                /usr/bin.</para>
410          </listitem>
411          <listitem>
412             <para>Fixed a bug which caused the pid of a child process to be
413                incorrectly read</para>
414          </listitem>
415          <listitem>
416             <para>fixed memory leak: some strings returned by log.c:make_msg()
417                weren't always free()d.</para>
418          </listitem>
419          <listitem>
420             <para>bug fix: fcrondyn commands renice and kill used not to handle
421                correctly the case where a job has several entries in exeq
422                (exesev jobs).</para>
423          </listitem>
424       </itemizedlist>
425
426       <itemizedlist>
427          <title>From version 2.9.3 to 2.9.4</title>
428          <listitem>
429             <para>Merged support for SE Linux (patch from Russell Coker: thanks!)
430             </para>
431          </listitem>
432          <listitem>
433             <para>Work on the documentation (fixed spelling mistakes, tried to
434                make things clearer in fcrontab.5) (thanks Bill Wohler for your
435                help!)</para>
436          </listitem>
437          <listitem>
438             <para>Changed the subject line of mail reports: it now contains the
439                subject line, and is very similar to vixie cron's one.</para>
440          </listitem>
441          <listitem>
442             <para>Added a sum-up at the end of ./configure.</para>
443          </listitem>
444          <listitem>
445             <para>bug fix: "makewhatis" bug is fixed -- at last!</para>
446             <para>In fact, the problems encountered were due to an abusively
447                ignored signal SIGPIPE.</para>
448          </listitem>
449          <listitem>
450             <para>bug fix: possible crash of fcron when trying to save a file
451                if there was no space left on device.</para>
452          </listitem>
453          <listitem>
454             <para>bug fix: we don't consider '-' and '_' as word delimiters for
455                a username before the command anymore, since many programs have
456                one of these characters in their name.</para>
457          </listitem>
458          <listitem>
459             <para>bug fix: option first was broken in fcron 2.9.3.</para>
460          </listitem>
461          <listitem>
462             <para>fixed a little typo in an error message
463                (could->couldn't)</para>
464          </listitem>
465          <listitem>
466             <para>bug fix: do not ignore the last line of a fcrontab if there
467                is no \n before the end of file.</para>
468          </listitem>
469          <listitem>
470             <para>fixed compile on SunOS 5.9 .</para>
471          </listitem>
472          <listitem>
473             <para>Fcron now compiles on MacOS X.</para>
474          </listitem>
475          <listitem>
476             <para>added some $srcdir to be able (again ;) ) to run configure
477                from another directory.</para>
478          </listitem>
479          <listitem>
480             <para>Perf improvement: use buffer for i/o in run_job().</para>
481          </listitem>
482       </itemizedlist>
483
484       <itemizedlist>
485          <title>From version 2.9.2 to 2.9.3</title>
486          <listitem>
487             <para>security issue: fcron used not to check the fcrontabs
488                installed by root for a standard user. This could make an
489                inattentive superuser install a user job runas(root)
490                involontary.</para>
491          </listitem>
492          <listitem>
493             <para>Perf improvement: we now use buffers to write something to
494                disk (became necessary due to the use of O_SYNC).</para>
495          </listitem>
496          <listitem>
497             <para>To avoid loss of data in case of an hardware failure or a
498                system crash, fcron now saves files to a temporary name, and then
499                renames them to their definitive filename if everything's
500                ok.</para>
501          </listitem>
502          <listitem>
503             <para>The PID indicated by fcrondyn is now the pid of the job itself
504                (up to now, it was the one of the fcron process controlling the
505                job).</para>
506          </listitem>
507          <listitem>
508             <para>Implemented functions kill (send a signal to a running job)
509                and renice (change the priority of a running job) in
510                fcrondyn.</para>
511          </listitem>
512          <listitem>
513             <para>Added fcron's option -q to control the lavg and serial queue
514                sizes.
515             </para>
516          </listitem>
517          <listitem>
518             <para>Added some timeouts in fcron for fcrondyn clients.</para>
519          </listitem>
520          <listitem>
521             <para>Fcron is less restrictive concerning mailto addresses. In
522                particular, you can now use address like user@host.</para>
523          </listitem>
524          <listitem>
525             <para>bug fix: in 2.9.2, fcrontab and fcron did not set correctly
526                some file modes.</para>
527          </listitem>
528          <listitem>
529             <para>bug (introduced in 2.9.1): when a job stops with an non-zero
530                exit status or because it has been signaled, send a mail to its
531                owner to inform him (in 2.9.1 and 2.9.2, the mail was sent, but
532                contained nothing).</para>
533          </listitem>
534          <listitem>
535             <para>code clean: use the same scheme for all struct types, removed
536                some code redundancy (save to disk management).</para>
537          </listitem>
538       </itemizedlist>
539
540       <itemizedlist>
541          <title>From version 2.9.1 to 2.9.2</title>
542          <listitem>
543             <para>Added a system fcrontab. Root can access it with fcrontab by
544                using "-u systab".</para>
545          </listitem>
546          <listitem>
547             <para>fcrondyn's ls_lavgq, ls_serialq and ls_exeq are now
548                functional.</para>
549          </listitem>
550          <listitem>
551             <para>mailto can now be set to a non-real user (for ex., an
552                alias).</para>
553          </listitem>
554          <listitem>
555             <para>fcron now calls shutdown() when a connection from fcrondyn is
556                closed.  Another change in the code should prevent fcrondyn from
557                not returning to the prompt after a command has been run.</para>
558          </listitem>
559          <listitem>
560             <para>use open() instead of fopen() to write files, for more
561                security.</para>
562          </listitem>
563          <listitem>
564             <para>fcrontab sets euid=uid before running the editor. This is
565                required by some programs (for instance, perl).</para>
566          </listitem>
567          <listitem>
568             <para>bug fix: using DESTDIR with make did not work with the
569                doc.</para>
570          </listitem>
571          <listitem>
572             <para>Code clean: changed macros to make parameters clearly
573                different from vars.</para>
574          </listitem>
575       </itemizedlist>
576
577       <itemizedlist>
578          <title>From version 2.9.0 to 2.9.1</title>
579          <listitem>
580             <para>fcron can now be run without root's privileges (<link
581                   linkend="faq">see FAQ</link>)</para>
582          </listitem>
583          <listitem>
584             <para>added configure's option --with-boot-install .</para>
585          </listitem>
586          <listitem>
587             <para>Minor change in the PAM code of fcron: may work better on
588                some systems.</para>
589          </listitem>
590          <listitem>
591             <para>configure script now uses getpwnam() and getgrnam() instead of
592                reading directly /etc/passwd and /etc/group: this makes easier
593                the use of NIS, LDAP, etc.</para>
594          </listitem>
595          <listitem>
596             <para>Bug fix: using some "cmd > /dev/stderr" (or stdout) in a
597                script used to make fcron send a bogus output mail. (rewrite of
598                the code managing the output of jobs)</para>
599          </listitem>
600          <listitem>
601             <para>Bug fix: typo error prevented fcrontab to be compiled on some
602                systems.</para>
603          </listitem>
604          <listitem>
605             <para>Minor bug fix about stdout option.</para>
606          </listitem>
607          <listitem>
608             <para>Minor bug fix: giving fcrontab's option -c a relative path
609                now works correctly.</para>
610          </listitem>
611       </itemizedlist>
612
613       <itemizedlist>
614          <title>From version 2.1.0 to 2.9.0</title>
615          <listitem>
616             <para>Added some new options to fcron: -y, -o, -l; and some
617                fcrontab options: stdout and volatile. All these permit to make
618                fcron run in foreground, execute all the pending jobs (mainly
619                %-jobs), and return. May be used, for instance, in a ppp-up
620                script with a dialup connection to update a software
621                regularly.</para>
622          </listitem>
623          <listitem>
624             <para>Added fcrondyn: this software allows users to dialog
625                dyn-amically with a running fcron daemon. Currently, it can list
626                jobs of the user running it (or all jobs for root). In the near
627                future, it should be able to run a job, change its next time and
628                date of execution, renice a running job, send a signal to a
629                running job, etc.</para>
630          </listitem>
631          <listitem>
632             <para>All the documentation has been ported to SGML DocBook.</para>
633             <para>It results on a much better HTML version, which I recommand
634                you use. It is installed by default in fcron documentation
635                directory (for instance, on my system:
636                <filename>/usr/share/doc/fcron-X.X.X/</filename>).</para>
637          </listitem>
638          <listitem>
639             <para>Fcrontab.5 has been updated and improved. Some examples have
640                been added and some possible use of the different lines and
641                options are mentioned.</para>
642          </listitem>
643          <listitem>
644             <para>Added option random, which allows an entry run periodically to
645                be run at a random time in its intervals of execution, instead of
646                being run as soon as possible.</para>
647          </listitem>
648          <listitem>
649             <para>added some more checks in fileconf.c: allow user to use
650                hours, days, hourly, daily, etc options only with %-lines: it is
651                ignored if set for a &-line, which is quite confusing for users
652                who may type, for instance "&amp;hourly" instead of
653                "%hourly".</para>
654          </listitem>
655          <listitem>
656             <para>bug fixed: you can now use arguments in the var EDITOR and
657                VISUAL.</para>
658          </listitem>
659          <listitem>
660             <para>bug fixed: fcron used to call sometimes a sleep(-1), which
661                causes a freeze (no crash, but a very very long sleep :) ) under
662                system using LIBC5, and maybe on some non-linux systems. It was
663                not causing any problem under GLIBC2. Thanks go to Nick
664                Pasich.</para>
665          </listitem>
666       </itemizedlist>
667       
668       <itemizedlist>
669          <title>From version 2.0.0 to 2.1.0</title>
670          <listitem>
671             <para>PAM support for fcron and fcrontab (need testing! - help
672                would be appreciated).</para>
673          </listitem>
674          <listitem>
675             <para>Fcron now send a mail if a job has noticenotrun set and could
676                not be run because of a queue full.</para>
677          </listitem>
678          <listitem>
679             <para>Fcron now compiles on AIX (thank you, John A. Parker!), and a
680                few AIX-only bugs have been fixed, but it may remain some
681                problems to correct.  Please try, and tell me!</para>
682          </listitem>
683          <listitem>
684             <para>We now use constants ROOTUID and ROOTGID instead of some
685                hard-coded "0", and those constants are defined by the configure
686                script (we use the uid/gid of the name given with the option
687                "--with-root{name|group}"). It allows fcron to be run on system
688                on which root is not uid/gid 0/0.</para>
689          </listitem>
690          <listitem>
691             <para>code cleaning.</para>
692          </listitem>
693          <listitem>
694             <para>bug fixed: setting lavg to (0,0,0) used to make the line be
695                added in the lavg queue instead of the serial queue (but the
696                lavgs were ignored anyway).</para>
697          </listitem>
698          <listitem>
699             <para>bug fixed: fcrontab's "-z" option was not ignoring previous
700                user's fcrontab version.</para> </listitem>
701          <listitem>
702             <para>bug fixed: on systems using putenv(), the var HOME, USER and
703                SHELL wasn't correctly assigned. On system supporting setenv()
704                (which is the default), the problem did not occur. (thanks go to
705                Evan A. Zacks).</para>
706          </listitem>
707       </itemizedlist>
708
709
710       <itemizedlist>
711          <title>From version 1.1.1 to 2.0.0</title>
712          <listitem>
713             <para>using SIGUSR2 on fcron makes it print its current schedule on
714                syslog and toggles on/off the printing of debug info on
715                syslog.</para>
716          </listitem>
717          <listitem>
718             <para>fcron behavior on serial and lavg queues overflow has changed: 
719                in previous versions, it used to run a job to make room to put
720                a new one. As it may conduct to a overwhelming of system
721                resources, the new job is now refused (and not run). An error
722                message is also logged through syslog.</para>
723          </listitem>
724          <listitem>
725             <para>a mail is now sent if the job exited due to a signal, or if
726                exit status is non-zero. Read FAQ if you experience problems
727                about that.</para>
728          </listitem>
729          <listitem>
730             <para>added a FAQ.</para>
731          </listitem>
732          <listitem>
733             <para>bug fixed: a midmonthly job executed after the 15th of the
734                month used to cause an endless loop. Thanks go to Guy Geens
735                (thanks a lot!).</para>
736          </listitem>
737          <listitem>
738             <para>bug fixed: inserting a job in serial queue or running a job
739                not finished at startup was broken, unless the job was
740                strict(no).</para>
741          </listitem>
742          <listitem>
743             <para>bug fixed: some 1.1.1 changes used to make fcron impossible
744                to compile without sendmail (./configure's option
745                "--with-sendmail=no").</para>
746          </listitem>
747          <listitem>
748             <para>bug fixed in sysV boot script: we know specify explicitly the
749                path to fcron.</para>
750          </listitem>
751          <listitem>
752             <para>bug fixed: unresolved error used to occur on some system not
753                defining getopt_long().</para>
754          </listitem>
755       </itemizedlist>
756
757       <itemizedlist>
758          <title>From version 1.1.0 to 1.1.1</title>
759          <listitem>
760             <para>security fix: sym link attack against fcrontab. Any user
761                allowed to use fcrontab used to be able to remove any fcrontab,
762                and potentially to truncate any file to zero-length (under
763                certain conditions, anyway).</para>
764          </listitem>
765          <listitem>
766             <para>fcron and fcrontab now have a configuration file: fcron.conf.
767                It contains the default paths (spool dir, etc) and programs to
768                use (editor, shell, etc). Thanks to that file, several fcron
769                processes can run simultaneously if they have a different config
770                (different spool dir and pid file).</para>
771          </listitem>
772          <listitem>
773             <para>added fcron's option "-m" to control the number of serial jobs
774                which can be executed simultaneously.</para>
775          </listitem>
776          <listitem>
777             <para>added fcron's option "-n" to create a new spool dir.</para>
778          </listitem>
779          <listitem>
780             <para>command line syntax of fcrontab has changed: you can know use
781                "user" (after the file name if any) instead of "-u user". It
782                should make fcrontab a little more intuitive.</para>
783          </listitem>
784          <listitem>
785             <para>It is now possible to put a user name between the time/date
786                fields and the shell command of a fcrontab line (for Vixie cron
787                format compatibility): it is equivalent to runas(user).</para>
788          </listitem>
789          <listitem>
790             <para>support of Solaris (and SysV).</para>
791          </listitem>
792          <listitem>
793             <para>early support of OpenBSD.</para>
794          </listitem>
795          <listitem>
796             <para>the installation scripts now use nsswitch.conf to detect if a
797                user or a group exists on the system. That way, naming services
798                (NYS, ldap, etc) are supported.</para>
799          </listitem>
800          <listitem>
801             <para>the man page and doc is now installed by default in
802                $prefix/share/{man|doc} (instead of the previous
803                $prefix/{man|doc}) ($prefix is generally "/usr").</para>
804          </listitem>
805          <listitem>
806             <para>bug corrected: fcron used not to add a serial_sev line to
807                serial/lavg queue if this line was running, saying "already in
808                serial queue".</para>
809          </listitem>
810
811          <listitem>
812             <para>bug corrected: a "all" in fcron.allow with no fcron.deny file
813                was not considered as an allow rule.</para>
814          </listitem>
815       </itemizedlist>
816
817       <itemizedlist>
818          <title>From version 1.0.3 to 1.1.0</title>
819          <listitem>
820             <para>The binary format of the binary fcrontabs has changed: there
821                is now no more need to reinstall the fcrontabs when upgrading
822                fcron (but you need to convert your fcrontabs to the new format
823                once), and this format should allow extensions without losing any
824                information.</para>
825          </listitem>
826          <listitem>
827             <para>better management of the errors in load/save fcrontabs
828                functions.</para>
829          </listitem>
830          <listitem>
831             <para>the doc is a clearer about @-lines.</para>
832          </listitem>
833          <listitem>
834             <para>more security tests by fcrontab in the case it is suid root
835                (but, if possible, it should be suid fcron as it is far more
836                secure).</para>
837          </listitem>
838          <listitem>
839             <para>we now remove unwanted fcrontabs before loading them in memory: 
840                well, it seems to be more logical like that :)) .</para>
841          </listitem>
842          <listitem>
843             <para>bug fix: using options first with a &-line may have led to
844                some problems during the first read by fcron (mail send
845                erroneously if noticenotrun was used, bad set of the first
846                execution's time and date or immediate execution if bootrun was
847                set: in fact, the line was not recognized as a new line).</para>
848          </listitem>
849          <listitem>
850             <para>bug fix: fcron used not to be able to be compiled from any
851                directory because of an absent -I. line option for the compiler
852                (the config.h file was not found).</para>
853          </listitem>
854       </itemizedlist>
855
856       <itemizedlist>
857          <title>From version 1.0.2 to 1.0.3</title>
858          <listitem>
859             <para>fcron can now be configured and compiled from any directory
860                (not only from the source dir).</para>
861          </listitem>
862          <listitem>
863             <para>bug fix: fcron now sets umask to the value it got at start
864                before running a job.</para>
865          </listitem>
866          <listitem>
867             <para>bug corrected: a bug used to make the "truncated" system not
868                to work correctly, so a too long log message used to make fcron
869                crash.</para>
870          </listitem>
871       </itemizedlist>
872
873       <itemizedlist>
874          <title>From version 1.0.1 to 1.0.2</title>
875          <listitem>
876             <para>the user for whom a job is run is now logged.</para>
877          </listitem>
878          <listitem>
879             <para>installation script is now more explicit about what it is
880                going to do.</para>
881          </listitem>
882          <listitem>
883             <para>a boolean value can now also be set by "yes" and "no".</para>
884          </listitem>
885          <listitem>
886             <para>bug corrected: bootrun option works again.</para>
887          </listitem>
888          <listitem>
889             <para>bug corrected: shell variable containing underscore (_) used
890                to be rejected.</para>
891          </listitem>
892          <listitem>
893             <para>bug corrected: installation script used not to check if user
894                fcron was in group fcron, in which case fcrontab doesn't work
895                correctly (it cannot, in that case, read the fcrontabs for
896                non-privileged users).</para>
897          </listitem>
898       </itemizedlist>
899
900       <itemizedlist>
901          <title>From version 1.0.0 to 1.0.1</title>
902          <listitem>
903             <para>security fix: a user used to be able to read a file owned by
904                root if root runs a "fcrontab -u user -e".</para>
905          </listitem>
906       </itemizedlist>
907
908       <itemizedlist>
909          <title>From version 0.9.5 to 1.0.0</title>
910          <listitem>
911             <para>added fcron's option "-s" to control the time between two
912                saves of the fcrontabs on disk.</para>
913          </listitem>
914          <listitem>
915             <para>installation scripts now support better FreeBSD and sh.</para>
916          </listitem>
917          <listitem>
918             <para>bug corrected: configure's options prefix and
919                without-sendmail used not to work.</para>
920          </listitem>
921          <listitem>
922             <para>bug corrected: installing an fcrontab by "fcrontab file"
923                wasn't working correctly with a relative path (a path not
924                beginning by a "/").</para>
925          </listitem>
926       </itemizedlist>
927
928       <itemizedlist>
929          <title>From version 0.9.4 to 0.9.5</title>
930          <listitem>
931             <para>security fix: the jobs of a fcrontab reinstalled by root used
932                to be run as root (until the next action of the owner on the
933                fcrontab).</para>
934          </listitem>
935          <listitem>
936             <para>added options strict and noticenotrun to tell fcron
937                respectively if a job should be removed from lavg queue if its
938                execution interval is exceeded, and if fcron should mail user to
939                report the non-execution of a job.</para>
940          </listitem>
941          <listitem>
942             <para>added option nolog in order to log only errors (i.e. no
943                message like "job x started"). This can help to reduce the disk
944                access and save energy on a laptop, and make the log more
945                readable if some jobs are run very often.</para>
946          </listitem>
947          <listitem>
948             <para>better handle of changes of the uids of users in /etc/passwd
949                (no more need to reinstall the fcrontabs).</para>
950          </listitem>
951          <listitem>
952             <para>fcron.deny and fcron.allow files are now owned by root (they
953                used to be owned by user fcron).</para>
954          </listitem>
955          <listitem>
956             <para>added ./configure's option --with-answer-all to be able to use
957                "make install" in a non-interactive way (can be useful for
958                automatic installers).</para>
959          </listitem>
960          <listitem>
961             <para>added option --with-rootname and --with-rootgroup to
962                ./configure script for a better support of exotic systems.</para>
963          </listitem>
964          <listitem>
965             <para>bug corrected in make install (script user-group): the script
966                used not to handle correctly the absence of both useradd and
967                adduser commands.  This script now checks and tries to add a
968                group fcron if necessary.</para>
969          </listitem>
970       </itemizedlist>
971
972       <itemizedlist>
973          <title>From version 0.9.3 to 0.9.4</title>
974          <listitem>
975             <para>security improvement: after the (horrible) root exploit found
976                in version 0.9.3, I decided to improve fcron/fcrontab's security.
977                I've included some strong (I hope :)) ) tests in fcron to ensure
978                that only root can run commands as superuser and use option
979                runas. Even an corrupted fcrontab should not be able to get
980                root's privileges. Pretty reassuring, isn't it?</para>
981          </listitem>
982          <listitem>
983             <para>runfreq(1) lines have been replaced and extended by a new kind
984                of line: the lines beginning by a "%". It's now possible to tell
985                fcron to run a command once an hour, a week, etc, but only at
986                some specified moments. For instance: '%weekly * 4-7 echo "foo"'
987                will run the command 'echo "foo"' once a week between 4 and 7 in
988                the morning. (see "man 5 fcrontab" for more details).</para>
989          </listitem>
990          <listitem>
991             <para>installation process improved: user is now consulted before
992                anything is done about installation in boot scripts, etc. The
993                default username of fcron is now ... fcron! (this is more secure
994                than daemon, which can be used by other programs). </para>
995          </listitem>
996          <listitem>
997             <para>fcron now adds the host name to the addresses of the mails it
998                sends.</para>
999          </listitem>
1000          <listitem>
1001             <para>fcrontab determines the identity of the running user by his
1002                uid (it used to use the var USER). That way, fcrontab should act
1003                as crontab under a "su".</para>
1004          </listitem>
1005          <listitem>
1006             <para>bug fixed: a tmp file was not removed after a "fcron
1007                -z"</para>
1008          </listitem>
1009          <listitem>
1010             <para>bug fixed in fcrontab: an expression of the form "start-stop"
1011                with start > stop used to be incorrectly managed by fcron.</para>
1012          </listitem>
1013          <listitem>
1014             <para>bug fixed: when fcron and fcrontab were installed under a
1015                non-privileged user rights, a normal user used to be not able to
1016                use fcrontab.</para>
1017          </listitem>
1018          <listitem>
1019             <para>bug fixed: while fcrontab was asking user if he would like to
1020                correct an erroneous line, the answer was not correctly
1021                handled.</para>
1022          </listitem>
1023       </itemizedlist>
1024
1025       <itemizedlist>
1026          <title>From version 0.9.2.1 to 0.9.3</title>
1027          <listitem>
1028             <para>installation scripts improved.</para>
1029          </listitem>
1030          <listitem>
1031             <para>added code to avoid infinite loops.</para>
1032          </listitem>
1033          <listitem>
1034             <para>bugs corrected in the functions to set the time and date of
1035                next execution.</para>
1036          </listitem>
1037          <listitem>
1038             <para>bug corrected in the check for invalid lines.</para>
1039          </listitem>
1040       </itemizedlist>
1041
1042       <itemizedlist>
1043          <title>From version 0.9.2 to 0.9.2.1</title>
1044          <listitem>
1045             <para>minor bug corrected in Makefile</para>
1046          </listitem>
1047       </itemizedlist>
1048
1049       <itemizedlist>
1050          <title>From version 0.9.1 to 0.9.2</title>
1051          <listitem>
1052             <para>fcron now uses autoconf (the configure script), so it should
1053                be easier to compile and install it and various systems.</para>
1054          </listitem>
1055          <listitem>
1056             <para>support of lavg options for all systems where getloadavg() is
1057                defined (BSD unix, etc) and on Linux systems with a proc
1058                filesystem (fcron can use /proc/loadavg).</para>
1059          </listitem>
1060          <listitem>
1061             <para>a job can now be executed several times simultaneously if
1062                option exesev is set to 1.</para>
1063          </listitem>
1064          <listitem>
1065             <para>user can determine if a job can be put several times in the
1066                serial queue simultaneously thanks to option serialonce.</para>
1067          </listitem>
1068          <listitem>
1069             <para>fcron does not wait anymore for the completion of all jobs of
1070                a file before deleting it from memory.</para>
1071          </listitem>
1072          <listitem>
1073             <para>fcron handles correctly the jobs which are both serial and
1074                lavg.</para>
1075          </listitem>
1076          <listitem>
1077             <para>fcron now runs under a specific user and group (other than
1078                root) for basic security reasons.</para>
1079          </listitem>
1080          <listitem>
1081             <para>bug corrected: fcron used to crash after a file was deleted
1082                from memory in some conditions.</para>
1083          </listitem>
1084          <listitem>
1085             <para>corrected the bug which used to appear when a line was put
1086                several times in the serial queue: in this case, fcron used not
1087                to count correctly the number of running serial jobs.</para>
1088          </listitem>
1089          <listitem>
1090             <para>bug corrected: fcrontab used not to remove the temporary file
1091                it creates if no modification where done to a file after an
1092                edition using the -e option and on errors.</para>
1093          </listitem>
1094          <listitem>
1095             <para>bug corrected: fcrontab now defines correctly the remain
1096                value of a line based on time and date beginning with a "&" but
1097                without runfreq definition.</para>
1098          </listitem>
1099          <listitem>
1100             <para>bug corrected: fcron used to not install correctly a file
1101                edited if a correction was made.</para>
1102          </listitem>
1103          <listitem>
1104             <para>bug corrected: reset option was not working correctly when
1105                set to a single line.</para>
1106          </listitem>
1107       </itemizedlist>
1108
1109       <itemizedlist>
1110          <title>From version 0.9.0 to 0.9.1</title>
1111          <listitem>
1112             <para>support of the option mailto for each line (it used to be set
1113                for the whole file).</para>
1114          </listitem>
1115          <listitem>
1116             <para>the value of the runas and mailto options are now stored
1117                internally as a uid number: you must reinstall all the system's
1118                fcrontabs if you change the uid of a user.</para>
1119          </listitem>
1120          <listitem>
1121             <para>Support of options "lavg*", in order to run a job under a
1122                specific 1, 5 and/or 15 minutes system load average value(s).
1123                When the job should be run, it is placed in a specific queue and
1124                the load average is checked regularly until the right value(s)
1125                is/are got. The options "lavgor" and "lavgand" permits users to
1126                tell fcron if they prefer to perform a logic OR or AND between
1127                the 1, 5 and 15 load average values. The option "until" can be
1128                use to force the execution of a job after a determined timeout if
1129                the right conditions to run the job are not filled.</para>
1130          </listitem>
1131          <listitem>
1132             <para>fcron now uses putenv() in place of setenv() (setenv() is not
1133                POSIX compliant).</para>
1134          </listitem>
1135          <listitem>
1136             <para>a mailto option set to "" is now equivalent to
1137                "mail(false)".</para>
1138          </listitem>
1139          <listitem>
1140             <para>corrected the bug which used to make a bootrun and runfreq(1)
1141                job executed twice when fcron's start occurs in an interval of
1142                execution of the job.</para>
1143          </listitem>
1144          <listitem>
1145             <para>corrected the bug which used to make fcron crash after
1146                serial_array is resized.</para>
1147          </listitem>
1148       </itemizedlist>
1149
1150       <itemizedlist>
1151          <title>From version 0.8.3 to 0.9.0</title>
1152          <listitem>
1153             <para>support of options in fcrontabs. Options can be specific to a
1154                line or defined once for every line located after their
1155                definition (a special option "reset" set all options to their
1156                default). Some options also have too names: a long name and an
1157                abbreviation.</para>
1158          </listitem>
1159          <listitem>
1160             <para>jobs can now be run be run one after the other (option
1161                "serial"): when the job should normally be run, it is added to a
1162                queue, which entries are executed one by one. It permits to avoid
1163                the use of a lot of system resources for a brief moment by the
1164                simultaneous execution of several tasks.</para>
1165          </listitem>
1166          <listitem>
1167             <para>jobs can be run at system start up if they should have been
1168                run during system down time (option "bootrun").</para>
1169          </listitem>
1170          <listitem>
1171             <para>root can run jobs as an another user (option "runas")</para>
1172          </listitem>
1173          <listitem>
1174             <para>user can set a nice value to a job, but only root can use a
1175                negative value (a negative value will increase priority)</para>
1176          </listitem>
1177          <listitem>
1178             <para>user can choose to perform a logic AND or a logic OR between
1179                day of month and day of week (option "dayor" and "dayand")</para>
1180          </listitem>
1181          <listitem>
1182             <para>user can choose to mail the output of jobs (option "mail") if
1183                any, and can force fcron to send a mail even if output is
1184                zero-length (option "forcemail").</para>
1185          </listitem>
1186          <listitem>
1187             <para>fixed the bug which used to make fcron run a job with a
1188                runfreq set to 1 at a wrong time.</para>
1189          </listitem>
1190          <listitem>
1191             <para>fixed a bug which used to make fcrontab crash after several
1192                corrections in edit mode.</para>
1193          </listitem>
1194       </itemizedlist>
1195
1196       <itemizedlist>
1197          <title>From version 0.8.2 to 0.8.3</title>
1198          <listitem>
1199             <para>(all this bugs appeared in version 0.8.2 :)</para>
1200          </listitem>
1201          <listitem>
1202             <para>fixed the bug which used to make fcron crash after a
1203                SIGHUP</para>
1204          </listitem>
1205          <listitem>
1206             <para>fixed the bug which used to prevent fcron from running some
1207                job based on time and date</para>
1208          </listitem>
1209          <listitem>
1210             <para>fixed the bug which used to makes fcron run the jobs one
1211                second too late</para>
1212          </listitem>
1213       </itemizedlist>
1214
1215       <itemizedlist>
1216          <title>From version 0.8.1 to 0.8.2</title>
1217          <listitem>
1218             <para>code has been optimized: The jobs are now queued in order of
1219                execution. It permits avoid useless tests of all jobs every time
1220                fcron wakes up, speeds up the determination of the time fcron
1221                should sleep, speeds up the processing after the end of a job,
1222                etc. I don't know why I haven't made it before :-) ...</para>
1223          </listitem>
1224          <listitem>
1225             <para>fcrontab has been improved: it is now more stable (many bugs
1226                which used to make fcrontab crash in case of errors in the
1227                fcrontab has been fixed). Plus, it now asks if you want to make
1228                corrections if needed when editing.</para>
1229          </listitem>
1230       </itemizedlist>
1231
1232       <itemizedlist>
1233          <title>From version 0.8.0 to 0.8.1</title>
1234          <listitem>
1235             <para>ported to FreeBSD 4.0</para>
1236          </listitem>
1237       </itemizedlist>
1238
1239       <itemizedlist>
1240          <title>From version 0.7.0 to 0.8.0</title>
1241          <listitem>
1242             <para>corrected the bug which keep normal users from listing and
1243                editing their current configuration file with fcrontab -l or
1244                -e.</para>
1245          </listitem>
1246          <listitem>
1247             <para>corrected the bugs which used to block fcron when a task was
1248                marked for execution but fcron stopped before it has been
1249                launched, and when fcron stopped after the end of a job but
1250                before the output has been mailed.</para>
1251          </listitem>
1252          <listitem>
1253             <para>day of week 0 and 7 now both mean Sunday.</para>
1254          </listitem>
1255          <listitem>
1256             <para>the abbreviations of months and day of week are not any more
1257                case dependent.</para>
1258          </listitem>
1259          <listitem>
1260             <para>months are now defined from 1 to 12 (and not from 0 to 11) (it
1261                was a little bit illogical :-).</para>
1262          </listitem>
1263          <listitem>
1264             <para>you can now force spaces in strings if you place them in
1265                quotes.</para>
1266          </listitem>
1267          <listitem>
1268             <para>I discovered ispell :-) ...</para>
1269          </listitem>
1270          <listitem>
1271             <para>I've added a kind of signature in the formated configuration
1272                files in order to keep the daemon from attempting to read an old
1273                configuration file which doesn't use the same syntax.</para>
1274          </listitem>
1275          <listitem>
1276             <para>You can now install a file with fcrontab from standard
1277                input.</para>
1278          </listitem>
1279          <listitem>
1280             <para>others minor adds and bug corrections.</para>
1281          </listitem>
1282       </itemizedlist>
1283    </sect1>
1284
1285 <!-- Keep this comment at the end of the file
1286 Local variables:
1287 mode: sgml
1288 sgml-parent-document:("fcron-doc.sgml" "book" "chapter" "sect1" "")
1289 End:
1290 -->
1291