]> granicus.if.org Git - fcron/commitdiff
*** empty log message ***
authorthib <thib>
Sat, 26 Feb 2005 15:11:24 +0000 (15:11 +0000)
committerthib <thib>
Sat, 26 Feb 2005 15:11:24 +0000 (15:11 +0000)
configure.in
doc/en/changes.sgml
doc/en/faq.sgml
doc/en/todo.sgml
temp_file.c

index 24f2c59d4d417c6dd5353a4bee2bdcf468735e5a..5937119177694f08b42aba2c49fe2fa7acf211e1 100644 (file)
@@ -13,7 +13,7 @@ AC_PREFIX_DEFAULT($prefix)
 AC_CONFIG_HEADER(config.h)
 AC_PREREQ(2.57)
 
-vers="2.9.5.1"
+vers="2.9.6"
 vers_quoted="\"$vers\""
 AC_DEFINE_UNQUOTED(VERSION, $vers)
 AC_DEFINE_UNQUOTED(VERSION_QUOTED, $vers_quoted)
@@ -1091,8 +1091,8 @@ dnl Info for user
 dnl ---------------------------------------------------------------------
 
 echo
-echo "Sum up :"
-echo "------"
+echo "Summary :"
+echo "-------"
 echo
 echo -n "run in debug mode by default :      "
 if test "$debug" -eq "1"; then
index 98d3883f38a2b828736d634b5adbddcb99935d87..fd40cb4afa6a311e821f37879a034fed8c55f056 100644 (file)
@@ -8,11 +8,35 @@ Foundation.
 A copy of the license is included in gfdl.sgml.
 -->
 
-<!-- $Id: changes.sgml,v 1.36 2004-11-14 16:33:04 thib Exp $ -->
+<!-- $Id: changes.sgml,v 1.37 2005-02-26 15:18:10 thib Exp $ -->
 
    <sect1 id="changes">
       <title>Changes</title>
 
+      <itemizedlist>
+        <title>From version 2.9.5.1 to 2.9.6</title>
+        <listitem>
+           <para>fixed the bug which made jobs run an hour too early after
+              a daylight saving time change.</para>
+           <para>Added detailed explanations about when a job will run
+           when there is a DST change in the FAQ.</para>
+        </listitem>
+        <listitem>
+           <para>fixed fcrondyn's "Unknown command" bug on x86_64 
+              (thanks go to Georgi Georgiev).</para>
+        </listitem>
+        <listitem>
+           <para>made fcrontab behave better when there is no space left
+              in the spool directory (used to truncate the fcrontab source file).
+           </para>
+        <listitem>
+           <para>Added a script, check_system_crontabs, to emulate Vixie cron's 
+              behavior about /etc/crontab and /etc/cron.d. Please have a look
+              at the top of script/check_system_crontabs for more information.
+           </para>
+        </listitem>
+      </itemizedlist>
+
       <itemizedlist>
         <title>From version 2.9.5 to 2.9.5.1</title>
         <listitem>
@@ -59,7 +83,7 @@ A copy of the license is included in gfdl.sgml.
            strerror()).</para>
         </listitem>
         <listitem>
-           <para>Fixed a bug which happened on Daylight Time Save change
+           <para>Fixed a bug which happened on Daylight Saving Time change
               on some systems. It would make fcron run into a nasty infinite loop.
               Added a sanity check in set_nextexe() to avoid such things.</para>
         </listitem>
index 03f77b45eefa3db09b396cf0b03fb5e4943f5f07..87b5f8d2c100be0985163d9be3663cb43be8c902 100644 (file)
@@ -8,7 +8,7 @@ Foundation.
 A copy of the license is included in gfdl.sgml.
 -->
 
-<!-- $Id: faq.sgml,v 1.11 2004-07-11 18:11:29 thib Exp $ -->
+<!-- $Id: faq.sgml,v 1.12 2005-02-26 15:17:47 thib Exp $ -->
 
 <sect1 id="faq">
     <title>Frequently Asked Questions</title>
@@ -18,8 +18,7 @@ practical approach.</para>
     <qandaset>
        <qandaentry>
            <question>
-               <para>How does fcron handle system clock adjustments (daylight
-savings, etc) ?</para>
+               <para>How does fcron handle system clock adjustments ?</para>
            </question>
            <answer>
                <para>
@@ -50,8 +49,8 @@ during the interval because they are scheduled to run in a past time.</para>
                <para>
        As special case is when "@xxx" style scheduling rules are involved, you
 must consider the "adjustment-interval". The "adjustment-interval" is the time
-difference between the original system time and the new system time. If the ...
-<!-- I need some help here.  What would happen? --> run at "adjust-interval" too
+difference between the original system time and the new system time. The concerned
+jobs will run at "adjust-interval" too
 early or too late depending of the nature of the adjust.</para>
                <para>
        To conclude, fcron behaves quite well for small clock adjusts. Each job
@@ -61,6 +60,58 @@ a big change in the time and date, you should probably reset all the scheduled
 "nextexe" by running "fcrontab -z" on all the fcrontabs.</para>
            </answer>
        </qandaentry>
+        <qandaentry>
+           <question>
+              <para>How does fcron handle daylight saving time changes ?</para>
+           </question>
+           <answer>
+              <para>There are two types of daylight saving time change : 
+the remove-one-hour change (for instance, "at 3:00, it will be 2:00"), 
+and the add-one-hour one (for instance, "at 2:00, it will be 3:00").
+In both cases, fcron will run the job only once (more precisely, it won't
+run the job twice as many as it should have).</para>
+              <para>In the first case, the official time changes as follow
+(in order of real chronological time) : [x, 2:00] -> i1 : [2:00, 3:00]
+ -> i2 : [2:00, 3:00] -> [3:00, y]. i1 and i2 are the names of the two
+intervals [2:00, 3:00]. For this kind of DST change, a job which should
+run between 2:00 and 3:00 will run either in i1 or in i2, but not both.
+Consequently, a job scheduled to run every day at 2:30 (for instance)
+will be run only once. There is no way for a user to know if the job will
+be run in i1 or i2.</para>
+              <para>In the second case, there is a gap in time :
+the official time changes as follow (in order of real chronological time) :
+[x, 2:00] -> [3:00, y]. A job scheduled between 2:00 and 3:00 will get
+run once, and only once, even if it should have been run several times.
+For instance, a job which should have run every 10 minutes will run only
+once, not 6 times, between 1:59 and 3:01. A job scheduled to run at
+2:xx will run at 3:xx. For instance, if a job is scheduled to run
+every day at 2:30, it will run at 3:30 the day of this kind of DST change.
+</para>
+           </answer>
+        </qandaentry>
+        <qandaentry>
+           <question>
+              <para>What about fcron and software suspend 
+                 (aka. suspend to RAM, to disk) ?</para>
+           </question>
+           <answer>
+              <para>We suppose here that you are using swsusp and the hibernate
+                 script to do a "suspend to disk", but it should be similar
+                 with other methods.</para>
+              <para>When you switch on your computer after a suspend to disk,
+                 the system time will be incorrect, and will then be corrected
+                 by the hibernate script. Before it is corrected, fcron may
+                 compute the time and date of the next execution of a job :
+                 the computation would then be incorrect (please see the entry
+                 about system clock adjustment in the present FAQ).</para>
+              <para>So you should have the hibernate script stop fcron before
+                 the suspend, and then restart it when the system is switched on,
+                 ie. put a line like "RestartServices fcron" in your hibernate.conf
+                 file. That way, the system time will always be correct when
+                 fcron runs (assuming that fcron is started after the system time
+                 is corrected).</para>
+           </answer>
+        </qandaentry>
        <qandaentry>
            <question>
                <para>How can I prevent fcrontab from considering the first
@@ -257,8 +308,11 @@ and set appropriately the paths :</para>
            </question>
            <answer>
               <para>As far as I know, fcron supports completely the syntax of
-                 Vixie cron's crontab. So you should not have any problem with that
-                 (otherwise, please contact me at &email;).</para>
+                 Vixie cron's crontab, excepted the @* syntax (@annually,
+                 @weekly, etc : if you use that, you will have to replace it
+                 with the explicit equivalent given in crontab(5)). So you
+                 should not have much problem with that (otherwise, please
+                 contact me at &email;).</para>
               <para>The main problem is about the management of the system (f)crontab.
                  Vixie cron monitors the changes on /etc/crontab every minute,
                  and automatically takes into account the changes if any.
@@ -273,6 +327,14 @@ and set appropriately the paths :</para>
                  /usr/bin/crontab, and to reinstall the system (f)crontab
               with fcrontab /etc/crontab each time you modify it
                  (if you find something else to do, please tell me !).</para>
+              <para>You can also use the script script/check_system_crontabs
+                 to generate a system fcrontab from /etc/(f)crontab and /etc/cron.d/,
+                 and install it automatically. If you choose to do that, take 
+                 a look at the beginning of the script : you will find insctructions
+                 on how to use it -- and a few warnings you should pay attention to.
+                 With this script, the behavior of fcron should be very similar
+                 to Vixie cron's one concerning /etc/crontab and /etc/cron.d/.
+              </para>
            </answer>
         </qandaentry>
     </qandaset>
index f23a45ce99504e36a96728eca0417cdf1cc7a750..1306f7322791d53f4864ed22bb3b8cc5db18e43f 100644 (file)
@@ -8,7 +8,7 @@ Foundation.
 A copy of the license is included in gfdl.sgml.
 -->
 
-<!-- $Id: todo.sgml,v 1.31 2004-11-13 19:45:19 thib Exp $ -->
+<!-- $Id: todo.sgml,v 1.32 2005-02-26 15:17:50 thib Exp $ -->
 
    <sect1 id="todo">
       <title>Todo</title>
@@ -24,14 +24,15 @@ A copy of the license is included in gfdl.sgml.
       <sect2>
         <title>High priority</title>
         <itemizedlist>
+           <listitem>
+              <para>NetBSD : bug from Gabor Z. Papp : fifo file created as fcron.fif instead of fcron.fifo</para>
+           </listitem>
            <listitem>
               <para>port to HP-UX : mails from Scott Tinsley : test in autoconf
               to remove call to "ioctl(fd, TIOCNOTTY, 0);"</para>
            </listitem>
-        </itemizedlist>
-        <itemizedlist>
            <listitem>
-              <para>add something on fcron's incompatibility with Vixie cron @* syntax -- fix that.</para>
+              <para>bug fix : fcron freezes if the filesystem on which it operates has no space left ? (cannot reproduce it on my linux system)</para>
            </listitem>
         </itemizedlist>
       </sect2>
@@ -50,7 +51,9 @@ A copy of the license is included in gfdl.sgml.
            </listitem>
            <listitem>
               <para>add a timezone option instead of the tzdiff (so it would
-                 look like !timezone(europe/paris)) (?)</para>
+                 look like !timezone(europe/paris)) (-> cf. tzset() and TZ env var :
+                 set TZ before every set_next_exe(), etc)
+              </para>
            </listitem>
            <listitem>
               <para>For environment settings, make a var substitution.</para>
index 072d64074bc38926006041bc3976f39671191c1f..e7582956f4598b4a3729ef8695d92ac0ab400c04 100644 (file)
@@ -22,7 +22,7 @@
  *  `LICENSE' that comes with the fcron source distribution.
  */
 
- /* $Id: temp_file.c,v 1.3 2003-12-25 22:51:47 thib Exp $ */
+ /* $Id: temp_file.c,v 1.4 2005-02-26 15:15:03 thib Exp $ */
 
 #include "global.h"
 #include "temp_file.h"
@@ -34,6 +34,8 @@ extern char debug_opt;
 int
 temp_file(char **name)
     /* Open a temporary file and return its file descriptor */
+    /* Returns the filename to *name if name is not null. */
+    /* (die on error) */
 {
     int fd;
 #ifdef HAVE_MKSTEMP
@@ -43,7 +45,7 @@ temp_file(char **name)
     strcat(name_local, "fcr-XXXXXX");
     if ( (fd = mkstemp(name_local)) == -1 )
        die_e("Can't find a unique temporary filename");
-    /* we must set the file mode to 600 (some version of mkstemp may set it
+    /* we must set the file mode to 600 (some versions of mkstemp may set it
      * incorrectly) */
     if ( fchmod(fd, S_IWUSR | S_IRUSR) != 0 )
        die_e("Can't fchmod temp file");