I have downloaded and unpacked NTP version 4.1.72 from the front page of www.ntp.org.
Yesterday I spent a great deal of time looking through the documentation to NTP. I think the web page needs to draw a much finer distinction between documentation designed for developers and researchers and documentation designed for end-users. The NTP faq is a mess of both. The NTP documentation page should not have the "user" documentation in sentence form at the top and the other documentation in bullet form. Pick a format and use it, preferably bulleted list form. It is not quick and easy to scan sentences, and there is no need for sentences to be there on the page. How about a "New User Documentation" section above "Program Manual Pages"?
As a side note, for the love of god, why does the man page for ntpd have the "theory" behind NTP in it? The man page is a manual for the software. Provide a url to the "how it works" stuff in case people just want to get the program running. Man pages should not be textbooks! Moreover, "How NTP Operates" talking about TOY chips and the like is not useful. Someone wanting to get the thing to run doesn't care necessarily about how the protocol operates. You're also dating the man page by talking about "things this may be used for". You don't need to justify the use of the software in the man page, just assume people have a good reason for using it and move from there.
I would be happy to provide a more thorough rant on the documentation later, though I don't think as a whole it's that bad, it's just jumbled and impractical a lot of the time. On to building...
I'm going to take a typical end-user thing and ignore the documentation and use the standard "./configure; make" approach here. Lets see if it works, since I hate reading INSTALL text files in a terminal window, and it's hard to find the INSTALL file on the web page. I know it's technically at http://www.eecis.udel.edu/~ntp/ntp_spool/html/build.html, but that's buried in the documentation page and really not intuitive to find at all.
The ./configure went well enough. On to make.
I am always wary of "Don't be concerned, they're just warnings." but I know it's avoidable. It does not inspire great confidence in the process, however. "Warning: function declaration isn't a prototype" is gcc's new mantra, apparently.
While this builds, I feel it necessary to recommend that the reader go check out apple's new laptops at www.apple.com, and Cadillac's new V-16 car. Sixteen cylinders, baby!
Ok, a bazillion compilation warning later, the software appears to have built successfully. "make check" gives no indication if it's sucessful or not, so I'm having a very hard time even figuring out what it DID. Could it say, "Check passed successfully" or something at the end so I'm not sitting here scratching my head?
As is typical of my habits, I have looked more through the documentation now that I have some clue how this thing works. The "INSTALL" file notes that ./configure accepts --enable-FEATURE options, and that the README will note any that exists. README says _nothing_ about this. A brief 'find . -name "README" -print' reveals a number of READMEs in here, but a quick look through a few of them gives no mention of --enable-FEATURE. Moreover, 'find . -name "README" -print -exec grep "enable" \{\} \;' gives NO results for "--enable" anywhere in the files! Why is this mentioned in INSTALL if it's not followed up on anywhere in the distribution? I'm left wondering where all these options are that I can supposedly enable... Is crypto one of them? I don't know if what I just built has crypto or not.
make install time! I'm certain that I'm clobbering whatever's there, but I don't really care. The install went off without a hitch. Now to find out what to do next.
setup@albert:~/ntp/ntp-4.1.72$ ntpdate -v
8 Jan 10:17:47 ntpdate[13904]: ntpdate 4.1.72@1.762-r Wed Jan 8 09:59:54 EST 2003 (1)
8 Jan 10:17:47 ntpdate[13904]: no servers can be used, exiting
Looking good there, though I don't have any servers to use. I need to figure out how to do that. I know I have to supply a few servers somewhere for the software to try to connect to.
I went and looked at config.h and it seems that SSL is enabled. That's good, I suppose. Is this "full" crypto? Will I ever know? Would it be possible to generate a file containing build statistics like which options are in use automatically after the make? It would be nice to confirm that certain features are on. Also, why is there no documentation about cryptography in the install documents? Overall, the install docs seem weak.
Am I missing something or does http://www.eecis.udel.edu/~ntp/ntp_spool/html/quick.html NOT note where the actual configuration file is?
This package desperately needs a numbered, sequential, step-by-step list of how to install the software. The documentation is all over and poorly distributed. In order to find out about cryptography I have to go to the "Authentication Options" page. That may be intuitive to someone thinking about the problem from the point of view of "Cryptography is used in authentication!" but that is not intuitive.
I have decided that the person who chose a red-ish font on a yellow-ish background needs to be slapped around a bit with a large trout. For someone with vision problems, Prof. Mills seems far too ready to inflict hard-to-read pages on the rest of the world.
When people see "Automatic Configuration Options" as a link, they are NOT thinking of "manycasting". They're thinking of "./configure". Sheesh. Coincidentally, the Cheshire cat practices security through obscurity. Is this the motto you want for the encryption help page, there at the top?
I am left confused. I know I need to configure this thing. I need to point NTP at some servers and configure the system to find a server to talk to. I also need to do something involving encryption that I have yet to cull from the documentation. Could we consolidate all of the documentation into stages like, "Download", "Pre-compilation configuration and compilation", "Installation", "Post installation configuration and testing", and "Daily use"? That would make this a lot simpler, and task-oriented documentation is Good(tm).
I think I've dwelled on the documentation a little too much here, but I'm not going to press the up arrow and go delete stuff in this, so I'll try to get my act together here and actually _do_ this.
I have been given instructions to start over and do things on pogo.
ntp successfully compiled and built. Look in /pogo/dist/ntp4/A.albert/ for it.
ntp successfully passed a make install. However, running ntp on albert does not appear to be meeting with much success.
launching "/usr/local/bin/ntpd -c /etc/ntp.conf" with a minimal ntp.conf file seems to work, and ntpq returns louie as a peer, as configured.
That's it for the day. more tomorrow.
Maintained by John Conner (conner@eecis.udel.edu). For IRL internal use. Please do not distribute this URL.