diff --git a/INSTALL b/INSTALL index 2299780..aeb3961 100644 --- a/INSTALL +++ b/INSTALL @@ -32,13 +32,17 @@ for Bourne-family shells, or for C-family shells. If the software cannot (yet) be built on your system, an error message -will be shown. Otherwise, the files `options.h' and `Makefile' will -be generated. +will be shown. Otherwise, `Makefile' will be generated. -By default, chronyc will be built to make use of the readline library. If you -don't want this, specify the --disable-readline flag to configure. If you have -readline and/or ncurses installed in a non-standard location, please refer to -the chrony.txt file for information. +If editline or readline library is available, chronyc will be built +with line editing support. If you don't want this, specify the +--disable-readline flag to configure. Please refer to the chrony.txt +file for more information. + +If a `timepps.h' header is available, chronyd will be built with PPS +API reference clock driver. If the header is installed in a location +that isn't normally searched by the compiler, you can add it to the +searched locations by setting CPPFLAGS variable to -I/path/to/timepps. Now type diff --git a/NEWS b/NEWS index bdde2e6..3c32a39 100644 --- a/NEWS +++ b/NEWS @@ -1,3 +1,15 @@ +New in version 1.24 +=================== + +* Support for reference clocks (SHM, SOCK, PPS drivers) +* IPv6 support +* Linux capabilities support (to drop root privileges) +* Memory locking support on Linux +* Real-time scheduler support on Linux +* Leap second support on Linux +* Support for editline +* Various bug fixes and improvements + New in version 1.23 =================== diff --git a/README b/README index f934265..d35e1b0 100644 --- a/README +++ b/README @@ -18,8 +18,8 @@ accordingly. It also works out the rate at which the system clock gains or loses time and uses this information to keep it accurate between measurements from the reference. -The reference time can be derived from either Network Time Protocol -(NTP) servers (preferred), or wristwatch-and-keyboard (via chronyc). +The reference time can be derived from Network Time Protocol (NTP) +servers, reference clocks, or wristwatch-and-keyboard (via chronyc). The main source of information about the Network Time Protocol is http://www.eecis.udel.edu/~ntp. @@ -28,9 +28,9 @@ intermittent access to reference sources, for example computers which use a dial-up account to access the Internet. Of course, it will work on computers with permanent connections too. -In addition, the Linux 2.0.x (for x >= 32), 2.2.x and 2.3.x versions -can monitor the system's real time clock performance, so the system -can maintain accurate time even across reboots. +In addition, on Linux it can monitor the system's real time clock +performance, so the system can maintain accurate time even across +reboots. Typical accuracies available between 2 machines are @@ -38,6 +38,8 @@ On an ethernet LAN : 100-200 microseconds, often much better On a V32bis dial-up modem connection : 10's of milliseconds (from one session to the next) +With a good reference clock the accuracy can reach one microsecond. + chronyd can also operate as an RFC1305-compatible NTP server and peer. @@ -46,9 +48,10 @@ What will chrony run on? Chrony can be successfully built and run on -1. Linux v1.2.13, v2.0.x, 2.1.x (partially), 2.2.x, 2.3.x, 2.4.x (i386). -Real time clock support is limited to 2.0.32 onwards and to 2.2, 2.3 and -2.4 series only. PowerPC is also known to be supported. +1. Linux v1.2.13, v2.0.x, 2.1.x (partially), 2.2.x, 2.3.x, 2.4.x, 2.6.x. +Real time clock support is limited to 2.0.32 onwards and to 2.2, 2.3, +2.4 and 2.6 series only. i386, x86_64, PowerPC are known to be +supported. 2. Solaris 2.5/2.5.1/2.6/2.7/2.8 (various platforms) @@ -69,8 +72,7 @@ How do I set it up? The file INSTALL gives instructions. On supported systems the compilation process should be automatic. -You will need an ANSI C compiler -- gcc is recommended. Versions -2.7.2/2.7.2.2 are known to work. +You will need an ANSI C compiler -- gcc is recommended. The manual (in texinfo and text formats) describes how to set the software up for the less straightforward cases. @@ -90,7 +92,7 @@ What can chrony not do? ======================= Compared to the `reference' RFC1305 implementation xntpd, chronyd does -not support hardware reference clocks or broadcast modes. +not support broadcast modes. Where are new versions announced? ================================= @@ -116,7 +118,7 @@ mentioned above. chrony-users is a users' discussion list, e.g. for general questions and answers about using chrony. chrony-dev is a more technical list, e.g. for discussing how new features should be implemented, exchange of information between developers etc. To -subscribe to either of these lists, send amessage with the subject +subscribe to either of these lists, send a message with the subject "subscribe" to chrony-users-request@chrony.tuxfamily.org @@ -125,28 +127,19 @@ chrony-dev-request@chrony.tuxfamily.org as applicable. -Note that due to family commitments (a 3 year-old and a 1 year-old), I -no longer have the time to give to supporting chrony that I once had. -Therefore, the chrony-users list should be your main route for support, -rather than mailing me directly. Even if it's me that responds to your -question on the list, at least *ALL* subscribers then benefit from -seeing the discussion, rather than me taking up lots of time on -supporting people on a one-to-one basis. If you do mail me directly, -don't be surprised if I cc: the response to the mailing list. -But how can I contact the author if I need to? -============================================== +Author +====== -You can email me at . If that fails, you could try to -find me through one of the mailing lists. It would be nice if: +Richard P. Curnow -- you include the word 'chrony' in the subject line (so my mail reader -can sort my mail by topic) -- you don't send complete log files, encoded binaries etc, without -editing such material down to just the relevant bits - a few tens of -lines at most. (My dial-up connection handles large messages rather -slowly ...). +Maintainers +=========== + +John Hasler +Miroslav Lichvar + Acknowledgements ================ @@ -199,6 +192,8 @@ John Hasler sizeof(unsigned long) > 4) Bug fix to initstepslew directive Fix to remove potential buffer overrun errors. + Memory locking and real-time scheduler support + Fix fault where chronyd enters an endless loop Liam Hatton Advice on configuring for Linux on PPC @@ -212,6 +207,13 @@ Jim Knoble Antti Jrvinen Advice on configuring for BSD/386 +Miroslav Lichvar + Reference clock support + IPv6 support + Linux capabilities support + Leap second support + Various bug fixes and improvements + Victor Moroz Patch to support Linux with HZ!=100 @@ -224,6 +226,9 @@ Frank Otto Andreas Piesk Patch to make chronyc use the readline library if available +Timo Teras + Patch to reply correctly on multihomed hosts + Wolfgang Weisselberg Entries in contrib directory @@ -240,9 +245,4 @@ Doug Woodward Many other people have contributed bug reports and suggestions. I'm sorry I can't identify all of you individually. -Version control information -=========================== - -$Header: /cvs/src/chrony/README,v 1.30 2003/09/21 23:11:06 richard Exp $ - vim:tw=72 diff --git a/chrony.texi b/chrony.texi index f773dee..690cf54 100644 --- a/chrony.texi +++ b/chrony.texi @@ -125,8 +125,9 @@ different quirks in its behaviour. The software is known to work in the following environments: @itemize @bullet -@item Linux/i386 and Linux/ppc. The software is known to work on Linux 2.0.x, -2.2.x and 2.4.x. Prior to 2.0.31, the real time clock can't be used. +@item Linux on i386, x86_64 and PowerPC architectures. The software is known +to work on Linux 2.0.x and newer. Prior to 2.0.31, the real time clock can't +be used. @item NetBSD @item BSD/386 @@ -268,29 +269,19 @@ version 2, reproduced in @xref{GPL}. @node Bug reporting @section Bug reporting and suggestions -If you think you've found a bug in chrony, or have a suggestion, please let me -know. My primary current email address is @email{rc@@rc0.org.uk}. If that -fails, you could try finding me through one of the chrony mailing lists, or by -looking up my name on a search engine. +If you think you've found a bug in chrony, or have a suggestion, please let us +know. You can join chrony users mailing list by sending a message with the +subject subscribe to @email{chrony-users-request@@chrony.tuxfamily.org}. Only +subscribers can post to the list. -I can't promise a timescale to fix a bug; it depends a lot on the how complex -the bug is to track down, as I have a lot of other calls on my time : 2 young -children, my job, and indeed other free/open source software projects. -However, I do intend to look into problems when time allows. - -Another source of information to try is the chrony users mailing list. You can -join this by sending a message with the subject subscribe to -@email{chrony-users-request@@chrony.tuxfamily.org}. Only subscribers can post to -the list. - -When you are reporting a bug, please send me all the information you can. +When you are reporting a bug, please send us all the information you can. Unfortunately, chrony has proven to be one of those programs where it is very -difficult to reproduce bugs in a different environment. So I may have to +difficult to reproduce bugs in a different environment. So we may have to interact with you quite a lot to obtain enough extra logging and tracing to pin-point the problem in some cases. Please be patient and plan for this! -Of course, if you can debug the problem yourself and send me a source code -patch to fix it, I will be very grateful! +Of course, if you can debug the problem yourself and send us a source code +patch to fix it, we will be very grateful! @c }}} @c {{{ S:Contributions @@ -301,7 +292,7 @@ Although chrony is now a fairly mature and established project, there are still areas that could be improved. If you can program in C and have some expertise in these areas, you might be able to fill the gaps. -Particular areas I know need addressing are : +Particular areas that need addressing are : @enumerate @item Porting to other Unices @@ -323,7 +314,7 @@ setsid() etc with so that chronyd can be automatically started in the system bootstrap. @end enumerate -@item Hardware clock support +@item More drivers for reference clock support @item Automation of the trimrtc and writertc mechanisms @@ -386,13 +377,16 @@ setenv CFLAGS -O for C-family shells. If the software cannot (yet) be built on your system, an error message -will be shown. Otherwise, the files @file{options.h} and -@file{Makefile} will be generated. +will be shown. Otherwise, @file{Makefile} will be generated. -By default, chronyc will be built to make use of the readline library. If you -don't want this, specify the --disable-readline flag to configure. If you have -readline and/or ncurses installed in a non-standard location, please refer to -@pxref{readline support} for information. +If editline or readline library is available, chronyc will be built with line +editing support. If you don't want this, specify the --disable-readline flag +to configure. Please refer to @pxref{line editing support} for more information. + +If a @file{timepps.h} header is available, chronyd will be built with PPS API +reference clock driver. If the header is installed in a location that isn't +normally searched by the compiler, you can add it to the searched locations by +setting @code{CPPFLAGS} variable to @code{-I/path/to/timepps}. Now type @@ -444,32 +438,43 @@ network environment in which the computer operates. Typical scenarios are described in the following section of the document. @c }}} @menu -* readline support:: If readline or ncurses in in a non-standard place +* line editing support:: If libraries are in a non-standard place * package builders:: Extra options useful to package builders @end menu -@c {{{ readline support -@node readline support -@section Support for the readline library -By default, chronyc is built to make use of the readline library. This allows -you to use the cursor keys to replay and edit old commands. If you don't want -to use readline (in which case chronyc will use a minimal command line -interface), invoke configure like this: +@c {{{ line editing support +@node line editing support +@section Support for line editing libraries +Chronyc can be built with support for line editing, this allows you to use the +cursor keys to replay and edit old commands. Two libraries are supported which +provide such functionality, editline and GNU readline. + +Please note that readline since version 6.0 is licensed under GPLv3+ which is +incompatible with chrony's license GPLv2. You should use editline instead if +you don't want to use older readline versions. + +The configure script will automatically enable the line editing support if one +of the supported libraries is available. If they are both available, the +editline library will be used. + +If you don't want to use it (in which case chronyc will use a minimal command +line interface), invoke configure like this: @example ./configure --disable-readline other-options... @end example -If you have readline and/or ncurses installed in locations that aren't normally searched by the compiler and linker, you need extra options if you want readline to be used: +If you have editline, readline or ncurses installed in locations that aren't +normally searched by the compiler and linker, you need to use extra options: @table @samp @item --with-readline-includes=directory_name This defines the name of the directory above the one where @file{readline.h} -is. @file{readline.h} is assumed to be in a @file{readline} subdirectory of -the named directory. +is. @file{readline.h} is assumed to be in @file{editline} or @file{readline} +subdirectory of the named directory. @item --with-readline-library=directory_name -This defines the directory containing the @file{libreadline.a} or -@file{libreadline.so} file. +This defines the directory containing the @file{libedit.a} or @file{libedit.so} +file, or @file{libreadline.a} or @file{libreadline.so} file. @item --with-ncurses-library=directory_name This defines the directory containing the @file{libncurses.a} or