[Git][NTPsec/ntpsec][master] devel and packaging
Matt Selsky
gitlab at mg.gitlab.com
Mon Feb 4 00:40:28 UTC 2019
Matt Selsky pushed to branch master at NTPsec / ntpsec
Commits:
f754dc90 by James Browning at 2019-02-04T00:37:04Z
devel and packaging
- - - - -
8 changed files:
- devel/hacking.adoc
- devel/ntpv5.adoc
- devel/nts.adoc
- devel/testing.adoc
- devel/tour.adoc
- devel/y2k.adoc
- packaging/README.adoc
- packaging/packaging.adoc
Changes:
=====================================
devel/hacking.adoc
=====================================
@@ -1,4 +1,4 @@
-= How-to for NTPsec hackers =
+= How-to for NTPsec hackers
Annoying but necessary legalese:
@@ -13,7 +13,7 @@ and project conventions.
You may also find the articles at https://blog.ntpsec.org/
interesting.
-== Choice of language ==
+== Choice of language
In order to reduce the complexity of maintenance and testing
due to multiple languages, we hold the set of allowed languages
@@ -32,7 +32,7 @@ it's easier to verify portability in Python than it is in sh.
Please read our C and Python guidelines carefully; they're not just
about style, they're serious measures to reduce defect rates.
-== Inclusions from other projects ==
+== Inclusions from other projects
Git subtrees and submodules are clever but full of traps. Discussion
here:
@@ -46,9 +46,9 @@ builds. For this reason, we use naive textual inclusion.
So far this has only been an issue with libaes_siv. If you notice
there's an inclusion not listed here, file an issue.
-== C Guidelines ==
+== C Guidelines
-=== C API standards ===
+=== C API standards
The baseline C standard to write to is ISO/IEC 9899:1999, also known
as C99 (but see the following section on banned functions). Note that
@@ -93,7 +93,7 @@ Here are the non-standardized APIs that may be used:
UDP packet layer. See ntpd/ntp_packetstamp.c for details - if you
add a local hack to do this, it needs to be sealed inside that module.
-=== Banned functions ===
+=== Banned functions
The following C99/POSIX functions are BANNED. They are unsafe, tending to
cause buffer overruns and (all too often) exploitable security holes:
@@ -113,11 +113,11 @@ property is not portable.
In general, avoid functions that are non-reentrant. When in doubt, see
http://www.unix.org/whitepapers/reentrant.html[Thread-safety and POSIX.1]
-=== Banned features ===
+=== Banned features
All C files should be in plain US-ASCII encoding; do not use trigraphs.
-=== Other interfaces to be avoided ===
+=== Other interfaces to be avoided
Don't use gettimeofday(2). While this is nominally POSIX, it is
deprecated and may be removed in the future. Use clock_gettime(2)
@@ -134,7 +134,7 @@ want that to happen again. Thus, if you must refer to struct timeval due to
an external interface, move the data to/from a struct timespec as
close to that call site as possible.
-=== Coding style and indentation ===
+=== Coding style and indentation
Dr. Dave Mills liked this code indented formatted in a consistent way.
The file "dot.emacs" has the emacs C-mode indentation style that Dave
@@ -147,7 +147,7 @@ result in a coordinated flag day in ongoing development, it will be
carefully announced in the mailto:devel at ntpsec.org mailing list before
being merged and pushed.
-=== Conventions for #ifdef guard names ===
+=== Conventions for #ifdef guard names
Parts of this code are a thicket of C preprocessor conditionals.
In an attempt to make these halfway comprehensible, we use the
@@ -189,7 +189,7 @@ USE_*::
gate use of sections of code that must be conditionally
compiled depending on *combinations* of HAVE and NEED symbols.
-=== Cross-platform portability ===
+=== Cross-platform portability
Do not bake in any assumptions about 32-vs-64-bit word size. It is OK
to assume the code will never run on a 16-bit machine. When in doubt,
@@ -219,7 +219,7 @@ is true on effectively all modern hardware, the code runs on some
sufficiently old iron that this is not necessarily the case even if
the compiler and toolchain have been modernized.
-== Python guidelines ==
+== Python guidelines
You may assume Python 2 at 2.6 or later, or Python 3 at 3.3 or later.
@@ -249,9 +249,9 @@ Note: In the future, the Python baseline may
http://www.curiousefficiency.org/posts/2015/04/stop-supporting-python26.html[change
t 2.7.2].
-== General notes ==
+== General notes
-=== Build system ===
+=== Build system
The build uses waf, replacing a huge ancient autoconf hairball that
caused many problems. The waf script is embedded in the top level of
@@ -260,7 +260,7 @@ instructions.
Full waf documentation is at https://waf.io/
-=== Naming conventions ===
+=== Naming conventions
Almost every binary and script we install has an "ntp" prefix on the name
because namespace pollution is rude. (The only exception is "ntsd", the
@@ -270,7 +270,7 @@ want us to install, follow this convention.
Generally, we favor "ntp" rather than "ntp-" for consistency and to
reduce the amount people have to type. Choose tastefully.
-=== Well-tempered output ===
+=== Well-tempered output
We are devotees of the Unix rule that programs should play nicely
with other programs. We like output formats that are simple,
@@ -305,7 +305,7 @@ UTC with some options frozen; full year required, medial T required,
explicit Zulu timezone). Local times should be expressed in ISO 8601,
always with the full 4-digit year.
-=== Copyrights and licenses ===
+=== Copyrights and licenses
Much of the historic code in this distribution is under the "NTP
License" resembling BSD-2-clause. Our favored licenses are
@@ -361,7 +361,7 @@ the historic copyright is no longer appropriate, but such decisions
cannot be made casually. Discuss it with the project management
before moving.
-=== Document what you do ===
+=== Document what you do
When you change anything user-visible, you are expected to update the
relevant documentation *in the same commit*. No exceptions.
@@ -369,7 +369,7 @@ relevant documentation *in the same commit*. No exceptions.
Otherwise, we'd have to inflict long, tedious document reviews on
everybody. Nobody wants that.
-=== Documentation format and structure ===
+=== Documentation format and structure
All our documentation is mastered in asciidoc. That includes internal
documentation like this file. We do this because asciidoc is easy to
@@ -396,7 +396,7 @@ a large common include file. These includes live in docs/includes
and are probably what you need to edit if you're updating anything
that appears on a man page.
-=== Version number ===
+=== Version number
We use a variant of three-part Semantic Versioning, of the form X.Y.Z.
X, Y, and Z are non-negative decimal integers.
@@ -424,7 +424,7 @@ Note that this is a different numbering system from NTP Classic. In
their A.B.C numbers, A was the protocol version, B was the major, and
C was the minor. They also use release-candidate suffixes.
-== Version string ==
+== Version string
We use the BUILD_EPOCH as described in packaging/packaging.adoc for
the timestamp (converted to RFC 3339 format) part of the version
@@ -438,7 +438,7 @@ Development builds have version strings of the form:
<base version number>+ <BUILD_EPOCH in RFC 3339 format> (git rev <git shorthash>)
-== Contribution workflow and conventions ==
+== Contribution workflow and conventions
Please work on one piece of conceptual work at a time.
@@ -450,14 +450,14 @@ mailto:devel at ntpsec.org mailing list. Other people may have
suggestions, will want to collaborate, and will wish to review your
code.
-=== Git ===
+=== Git
We use Git as our distributed version control system.
If you ever get stuck or confused while using Git, please consult
http://ohshitgit.com/
-=== GitLab.com ===
+=== GitLab.com
We use GitLab.com as our forge.
@@ -477,7 +477,7 @@ of the Project Manager, after consulting with the existing core team.
Generally, other levels of access will not be granted, as they are not
necessary to be a welcome and effective contributor.
-=== Optional: Send patches by email ===
+=== Optional: Send patches by email
If you do not want to use GitLab pull requests, we welcome simple fix
and "drive-by" patches submitted by email.
@@ -501,7 +501,7 @@ parameter ---author from the email From header and the git parameter
For complex patches and contribution narratives, please use GitLab.
-== Commit comments ==
+== Commit comments
And please follow git conventions for change comments. That means your comment
should consist of:
@@ -538,7 +538,7 @@ summary.
Yes, we know the pre-git portions of the history violate some of these.
That was then; this is now.
-=== How to refer to previous commits ===
+=== How to refer to previous commits
The best (most human-friendly) way to reference a commit is by quoting its
summary line; if you need to disambiguate, give its date and author.
@@ -548,7 +548,7 @@ keeping random strings of hex digits in working memory. Besides, hashes
will break if the history is ever moved to another VCS or the repository
has to be surgically altered.
-=== Avoid unnecessary merge bubbles ===
+=== Avoid unnecessary merge bubbles
There are two kinds of merge bubbles in git commit graphs. The
necessary kind happens because branches have genuinely diverged enough
@@ -579,7 +579,7 @@ Setting this option adds --rebase to all your pulls; this may cause
a minor inconvenience when you have uncommitted local changes; you
should be able to use "git stash" to get around that.
-== Logging tags ==
+== Logging tags
To facilitate analysis of logs, log messages are tagged with an initial
topic group token. These are:
@@ -598,7 +598,7 @@ PROTO:: Protocol machine actions
REFCLOCK:: Reference clock and driver actions
MODE6:: Processing of Mode 6 requests
-== Release Checklist ==
+== Release Checklist
This is the release checklist to be used by the project manager to cut
each release.
=====================================
devel/ntpv5.adoc
=====================================
@@ -1,4 +1,4 @@
-= Preliminary design notes for the NTPv5 protocol =
+= Preliminary design notes for the NTPv5 protocol
NTPv4 is showing its age. There are functional capabilities that
would be very useful if they could be standardized but
@@ -7,9 +7,9 @@ currently are not.
This document will first list these missing bits, then discuss
ways to incorporate them.
-== The missing data: a semantic view ==
+== The missing data: a semantic view
-=== REFIDs ===
+=== REFIDs
Reference IDs are used by Stratum 1 sources to identify clocks and
clock types, and by hosts at higher strata to perform loop detection.
@@ -23,7 +23,7 @@ loop detection.
The new protocol should support REFIDs at least as long as an IPv6
address (16 octets).
-=== Timescale ===
+=== Timescale
Most servers ship UTC. Some ship TAI. Some perform leap-second
smearing, some do not.
@@ -31,14 +31,14 @@ smearing, some do not.
The new protocol should enable a server to advertise its timescale,
including, if applicable in its timescale, its current leap second offset.
-=== Era ===
+=== Era
NTP dates are 64-bit counters based on an epoch.
The new protocol should enable a server to ship a year identifying its
epoch.
-=== NTS ===
+=== NTS
The IETF is attempting to develop a new cryptographic standard for
secure/authenticated time exchange: Network Time Security.
@@ -48,11 +48,11 @@ https://tools.ietf.org/wg/ntp/
The new protocol needs to allow a block of data of as-yet unspecified
and possibly variable size to be dedicated to NTS use.
-== Extensions vs. replacement ==
+== Extensions vs. replacement
There are three possible scenarios for NTPv5 design.
-=== NTPv4+ ===
+=== NTPv4+
In this incremental approach, the NTP port number (123) is retained
and the 48-byte header v4 header is preserved. New data fields are
@@ -64,7 +64,7 @@ known to silently discard RFC7822 extension blocks as a way of
preventing DoS attacks; this would create propagation issues
difficult to diagnose.
-=== NTPNG ===
+=== NTPNG
In this approach, a new port number is allocated. The protocol
design is unconstrained except that it must carry the semantic
@@ -74,7 +74,7 @@ field.
The principal difficulty with this approach is that getting all the
world's firewalls to pass through a new port is not easy.
-=== Newmode ===
+=== Newmode
In this approach, the NTP port number is retained. So is at least
the first byte of the v4 packet header structure, so that the version
@@ -89,7 +89,7 @@ The principal difficulty with this approach is that implementations
might not reject Version 5 packets, and therefore mis-parse the
header. NTP Classic and NTPsec *do* perform this check.
-== Payload format design for the NTPNG and Newmode cases ==
+== Payload format design for the NTPNG and Newmode cases
NTP is running out of version numbers. The version field is only 3
bits wide. Accordingly, the Newmode payload should be structured like
@@ -125,7 +125,7 @@ that PNG chunks have only two-byte lengths and always end with a CRC.
This chunk system is deliberately more similar to RFC7822 extension
blocks.
-== Daniel weighs in ==
+== Daniel weighs in
There aren't many deficiencies in NTPv4 which can't be fixed by adding
extension fields. A change big enough to make a version bump
=====================================
devel/nts.adoc
=====================================
@@ -1,6 +1,6 @@
-= NTS support specification =
+= NTS support specification
-== Cisco's Statement of Work requirements ==
+== Cisco's Statement of Work requirements
The NTS implementation shall:
@@ -14,7 +14,7 @@ The NTS implementation shall:
* Be interoperable with the other reference implementations in IETF hackathons.
-== General Ideas ==
+== General Ideas
The NTP server maintains no per-client state. The necessary state
is provided by a cookie that is included with each NTP request. An
@@ -43,7 +43,7 @@ are the same length as the request. This means that some
fields are padded to match the length of the response that
will replace them.
-== System Partitioning ==
+== System Partitioning
This picture is for discussion. In actual packaging Alpha and Bravo
will both be inside ntpd. In the simple case, Charlie and Delta can
@@ -85,7 +85,7 @@ does that, it doesn't need to know the key or anything about the
contents of a cookie.
-=== Alpha -> Bravo ===
+=== Alpha -> Bravo
NTP client to NTS-KE client (Alpha to Bravo) is pretty simple.
As these will both be inside ntpd, this will be function calling,
not a network connection.
@@ -153,7 +153,7 @@ configure an OpenSSL cipher string for the AEAD algorithms.
The NTP client SHOULD provide a mechanism for the administrator to
see whether NTS is currently in use on a given server association.
-=== Bravo -> Delta ===
+=== Bravo -> Delta
The NTS-KE client to NTS-KE server (Bravo to Delta) communication is
mostly the above in TLS 1.3 (or later) over TCP in the format
specified in the NTS draft.
@@ -172,7 +172,7 @@ The NTS-KE server then generates and returns 8 cookies using, for
example, the suggested format in section 6 of the NTS draft. To do
so, the NTS-KE server needs a master key, called "K" in the draft.
-=== Alpha -> Charlie ===
+=== Alpha -> Charlie
NTP client to NTP server (Alpha to Charlie)
If all goes well (no lost packets) the client sends:
@@ -203,7 +203,7 @@ data as well. For the request, the encrypted data is empty. For the
response, it contains a new cookie (or cookies). AEAD also needs a nonce.
-== Configuration ==
+== Configuration
The NTS-KE server SHOULD have a configuration parameter to specify
which TLS protocols are permissible. Regardless of what is
@@ -230,7 +230,7 @@ the TLS key, certificate, and intermediate certificate bundles.
The NTS-KE server MAY have a method to reload the key, certificate,
and intermediate certificate bundles without a full daemon restart.
-== NTS Configuration parameters (client side) ==
+== NTS Configuration parameters (client side)
Options now implemented in the config parser are now described in
docs/includes/auth-commands.txt
@@ -245,9 +245,9 @@ To avoid having to hand-configure ciphers offered to the remote, we
can initially have a list of common known-good ones wired in.
Eventually, look into how openssl-ciphers does this and autoconfigure.
-== NTS-KE Server Configuration parameters ==
+== NTS-KE Server Configuration parameters
-== TLS Options ==
+== TLS Options
The directory with the Certificates of Certification Authorities (CAs).
@@ -328,7 +328,7 @@ TLSVerifyClient level
....
-== Key Generation and Usage ==
+== Key Generation and Usage
NTS makes use of three keys:
@@ -364,7 +364,7 @@ NTS Master Key to revover C2S and S2C. It uses C2S to authenticate the
packet. For the response, S2C is used to encrypt the new cookies and
authenticate the return packet.
-== Odds and ends ==
+== Odds and ends
How many cookies should the NTP client try to hold? 8
@@ -411,7 +411,7 @@ Is the response in case of abuse 'continue abuse, just wait a minute'?
=== link:https://tools.ietf.org/html/draft-ietf-ntp-using-nts-for-ntp#section-5.4[5.4], link:https://tools.ietf.org/html/draft-ietf-ntp-using-nts-for-ntp#section-5.5[5.5]
When sending a cookie placeholder, are multiple cookie extensions sent?
-=== link:https://tools.ietf.org/html/draft-ietf-ntp-using-nts-for-ntp#section-5.7[5.7] ===
+=== link:https://tools.ietf.org/html/draft-ietf-ntp-using-nts-for-ntp#section-5.7[5.7]
Does the unique identifier extension need to be omniversally unique?
Why are The timestamps, unique identifier extension etc. seemingly not tamper resisted?
=====================================
devel/testing.adoc
=====================================
@@ -1,4 +1,4 @@
-= How To Test NTPsec =
+= How To Test NTPsec
This assumes you have downloaded the source and built a system
and now you want to test your new ntpd.
@@ -6,7 +6,7 @@ and now you want to test your new ntpd.
For help on getting that far, see the file INSTALL in the top-level
directory.
-== Path problems with the test tools ==
+== Path problems with the test tools
The build tree has been set up so that if you first waf builid then cd to
build/main/ntpclients/ and run (say) ntpq, you should be able to test
@@ -47,7 +47,7 @@ bug but a packaging error that the NTPsec maintainers themselves can't
fix. In that case, you need to report it to your distribution
maintainers.
-== Preliminary one-off test ==
+== Preliminary one-off test
For a one-off test:
@@ -66,7 +66,7 @@ Your current /etc/ntp.conf should work correctly.
Check your log files to see if there is anything strange.
Run "ntpq -p" to see if things look normal.
-== Full qualification test ==
+== Full qualification test
For a longer test, including over reboots.
@@ -76,7 +76,7 @@ That will install your new ntpd into /usr/local/sbin/ntpd
Now you have to patch your (re)start scripts to look there
and restart ntpd. The details vary by OS/distro.
-=== Distributions using systemd ===
+=== Distributions using systemd
1. Edit /usr/lib/systemd/system/ntpd.service
@@ -98,7 +98,7 @@ gets sourced into the init script so you can put the real code in there
PATH="/usr/local/sbin:$PATH"
--------------------------------------------------
-=== Debian, Ubuntu, Raspbian ===
+=== Debian, Ubuntu, Raspbian
Many newer versions use systemd; follow those directions. The
rest of this section describes the older set of conventions used
@@ -142,7 +142,7 @@ rather than the one it wants you to:
apt-get upgrade may undo those edits and revert to running the system version.
-=== FreeBSD ===
+=== FreeBSD
Edit /etc/rc.conf It needs to contain this:
@@ -154,7 +154,7 @@ ntpd_program="/usr/local/sbin/ntpd"
If you are running ntpd, the first line will be there
already. The default is NO.
-=== NetBSD ===
+=== NetBSD
Edit /etc/rc.d/ntpd. Change
=====================================
devel/tour.adoc
=====================================
@@ -1,4 +1,4 @@
-= A Tour of the NTP Internals =
+= A Tour of the NTP Internals
This document is intended to be helpful to people trying to understand
and modify the NTP code. It aims to explain how the pieces fit
@@ -13,9 +13,9 @@ However, try not to replicate comments here; it's better to point
at where they live in the code. This document is intended to convey
a higher-level view than individual comments.
-== Key Types ==
+== Key Types
-=== l_fp, s_fp, u_fp ===
+=== l_fp, s_fp, u_fp
C doesn't have any native fixed-point types, only float types.
To do certain time calculations without loss of precision, NTP
@@ -56,7 +56,7 @@ will be, by a factor of at least five million) we can map all incoming
timestamps from whatever cycle into the nearest time in modular
arithmetic relative to the cycle length.
-=== time64_t ===
+=== time64_t
NTP was written well before the 64-bit word size became common. While
compilers on 32-bit machines sometimes have had "long long" as an
@@ -70,7 +70,7 @@ way but implemented as a uint64_t has already replaced this.
This still has some utility because NTP still runs on 32-bit machines
with a 32-bit time_t.
-=== refid ===
+=== refid
A refid is not a type of its own, but a convention that overloads
different kinds of information in a 32-bit field that occurs in a
@@ -100,7 +100,7 @@ The conflation of ID-for-humans with the loop-detection cookie is not quite
the design error it looks like, as refclocks aren't implicated in
loop detection.
-=== struct timespec vs. struct timeval ===
+=== struct timespec vs. struct timeval
These aren't local types themselves - both are standardized in
ANSI/POSIX. They're both second/subsecond pairs intended to represent
@@ -127,7 +127,7 @@ or to nanosecond precision as close to these call sites as possible;
this doesn't pull additional accuracy out of thin air, but it does
avoid loss-of-precision bugs due to mixing these structures.
-=== struct peer ===
+=== struct peer
In ntpd, there are peer control blocks - one per upstream synchronization
source - that have an IP address in them. That's what the main
@@ -140,12 +140,12 @@ internet. Refclock data always has a round trip time of zero, and the
code that finds the lowest RTT picks the most recent slot when the
RTTs are equal.
-== config file parser ==
+== config file parser
There is a minor quirk: numbers come in as integers, type T_Integer.
There is no type T_Unsigned. Range checking may not work right.
-== ntpd control flow ==
+== ntpd control flow
In normal operation, after initialization, ntpd loops forever
waiting for a UDP packet to arrive on some set of open interfaces, or
@@ -201,7 +201,7 @@ There was internal evidence in the NTP Classic build machinery that
asynchronous I/O on Unix machines probably hadn't worked for
quite a while before NTPsec removed it.
-== System call interface and the PLL ==
+== System call interface and the PLL
All of ntpds clock management is done through four system calls:
clock_gettime(2), clock_settime(2), and either ntp_adjtime(2) or (in
@@ -327,7 +327,7 @@ RFC 1589 covers the above timekeeping and slewing and kernel PLL.
RFC 2783 covers the API for reading a time stamp the kernel grabs when a PPS
happens.
-== Refclock management ==
+== Refclock management
There is an illuminating comment in ntpd/ntp_refclock.c that begins
"Reference clock support is provided here by maintaining the fiction
@@ -350,7 +350,7 @@ The process everything step sorts the contents of the FIFO, then discards
outliers, roughly 1/3 of the samples, and then figures out the average and
injects that into the peer buffer for the refclock.
-== Asynchronous DNS lookup ==
+== Asynchronous DNS lookup
The DNS code runs in a separate thread to avoid stalling
the main loop while it waits for a DNS lookup to return. And DNS
@@ -383,7 +383,7 @@ isn't a way to do that yet - the pool doesn't have any DNS support
for it.) The other would be to try replacing the poorest server
rather than only replacing dead servers.
-== The build recipe ==
+== The build recipe
The build recipe is, essentially, a big Python program using a set of
specialized procedures called 'waf'. To learn about waf itself see
@@ -432,7 +432,7 @@ a loadable Python module. Here are a few useful generalizations:
You will usually be able to model your implementation on code that
is already there.
-== The Python tools ==
+== The Python tools
Project policy is that (a) anything that does not have to be written
in C shouldn't be, and (b) our preferred non-C language is Python.
@@ -446,7 +446,7 @@ layering of the three most important ones - ntpq, ntpdig, and ntpmon.
These are front ends to a back-end library of Python service routines that
installs as 'ntp' and lives in the source tree at pylib/.
-=== ntpq and ntpmon ===
+=== ntpq and ntpmon
ntpq and ntpmon are front ends to back-end class called ControlSession
that lives in ntp.packet.
@@ -474,13 +474,13 @@ doesn't live in the front end. It's in ntp.util, well separated from
both the command interpreter and the protocol back end so it can be
re-used.
-=== ntpdig ===
+=== ntpdig
ntpdig also uses the pylib library but doesn't speak Mode 6.
Instead, it builds and interprets time-synchronization packets
using some of the same machinery.
-=== MRU reporting ===
+=== MRU reporting
The mrulist() method in ControlSession is more complex than the rest of the
back-end code put together except do_query() itself. It is the one part
=====================================
devel/y2k.adoc
=====================================
@@ -1,10 +1,10 @@
-= Y2K certification =
+= Y2K certification
The NTP suite version 4.0.91 (dating from before continuous
version-control history) was tested for Y2K conformance by the AT&T
Freeware project.
-== Test notes ==
+== Test notes
............................................................................
Name of the Application: xntp
@@ -117,7 +117,7 @@ Non-Y2K Problems Observed:
The "Non-Y2K Problems Observed" have been fixed.
-== Test results ==
+== Test results
............................................................................
Script started on Sat Jan 1 04:14:09 2000
@@ -192,7 +192,7 @@ server 135.25.xxxx.xxxx, stratum 1, offset -0.000023, delay 0.02731
29 Feb 00:02:15 ntpdate[8353]: adjust time server 135.25.xxxx.xxxx offset -0.000023 sec
............................................................................
-== AT&T README ==
+== AT&T README
This is most of the AT&T README file for the Y2K patches.
Some now-irrelevant material has been removed.
=====================================
packaging/README.adoc
=====================================
@@ -1,4 +1,4 @@
-== Packaging ==
+== Packaging
Packaging scripts go in this directory.
=====================================
packaging/packaging.adoc
=====================================
@@ -1,12 +1,12 @@
-= Guidance for package builders =
+= Guidance for package builders
-== Package parts ==
+== Package parts
Some useful components for package building can be found in the etc/
subdirectory, including init boot time scripts, systemd unit files,
and boilerplate for default ntpd configuration.
-== ntp.conf installation ==
+== ntp.conf installation
Installation from source (waf install) does not attempt to put an ntp.conf
or ntp.d in place. Your installable package should do this.
@@ -14,7 +14,7 @@ or ntp.d in place. Your installable package should do this.
The reason this is so is that NTPsec does not yet have an authorized
pool group of its own. This may change in the future.
-== Platforms without Python ==
+== Platforms without Python
Many tools (actually, almost everything except the core daemon itself)
have been moved from C to Python. This is an important step for
@@ -56,7 +56,7 @@ not have Python installed and execute the programs there.
There appears to be no speed advantage, or disadvantage, to running the
binaries created by cx_freeze.
-== Hacking Python shebangs ==
+== Hacking Python shebangs
The shebang lines in our Python scripts point to "python". Part of
our standard tests check that you can change that to "python3" without
@@ -75,7 +75,7 @@ their distro's Python policy.
We think the choice that minimizes overall pain, and directs it to
the party best able to cope, is clear. We choose (b).
-== Cross-era interoperability in modular calendar arithmetic ==
+== Cross-era interoperability in modular calendar arithmetic
The protocol necessarily uses time/date stamps of finite length in
order to fit into fixed-size fields; they happen to have a 136-year
@@ -100,7 +100,7 @@ environment variable.
More information on reproducible builds is at:
https://reproducible-builds.org/[https://reproducible-builds.org/]
-== Disambiguation of NMEA dates ==
+== Disambiguation of NMEA dates
Due to bad design of NMEA0183, the reporting protocol used by many GPS
sensors, the NMEA driver in NTPsec sometimes has to make an assumption
View it on GitLab: https://gitlab.com/NTPsec/ntpsec/commit/f754dc904055f28a649908b7fbf63b9274ff03c5
--
View it on GitLab: https://gitlab.com/NTPsec/ntpsec/commit/f754dc904055f28a649908b7fbf63b9274ff03c5
You're receiving this email because of your account on gitlab.com.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ntpsec.org/pipermail/vc/attachments/20190204/a088eb13/attachment-0001.html>
More information about the vc
mailing list