r2 - 2015-01-19 - 10:45:23 - HarlanStennYou are here: NTP >  Dev Web > GettingNTPIntoOtherSCMPackages > GettingNTPIntoSVK
NTP users are strongly urged to take immediate action to ensure that their NTP daemons are not susceptible to being used in distributed denial-of-service (DDoS) attacks. Please also take this opportunity to defeat denial-of-service attacks by implementing Ingress and Egress filtering through BCP38.

ntp-4.2.8p15 was released on 23 June 2020. It addresses 1 medium-severity security issue in ntpd, and provides 13 non-security bugfixes over 4.2.8p13.

Please see the NTP Security Notice for vulnerability and mitigation details.

Are you using Autokey in production? If so, please contact Harlan - he's got some questions for you.

Getting NTP into SVK

As mentioned elsewhere, the opensource BitKeeper client is only able to pull sources from an upstream BitKeeper repository. You can't issue commands like:

   bk diff

or any other advanced command that the full BitKeeper client provides.

If you don't have the full bk client, like to experiment, or if you are some kind of an adventurous type of guy, there's another way to get NTP into a full-blown SCM environment.

The one described here is called SVK and basically gives you a local repository on which you can work disconnected from the internet. SVK is based on Subversion (at least parts of it) and hence if you are familiar with Subversion you should get familiar with SVK within a short period of time.

First of all you need to get a CVS export from the NTP BitKeeper repository at the Bitkeeper CVS Export Request Form. For the URL you can use:


After a few minutes you will get an email message which contains a download link to the CVS export (actually the download is a gzipped tarball).

Please download this particular tarball and extract it somewhere on your disc.

The just-extracted tarball created a directory which represents a CVS source repository. It is not intended to be modified directly! Because it is a CVS repo, you are required to modify it using the regular CVS command line client. Thus, export a CVSROOT environment variable which points to the CVS NTP repository if you are going to modify the NTP sources using CVS. Afterwards you need to do a CVS checkout from the CVS repo:

   export CVSROOT=$HOME/cvsroot/ntp-dev
   cvs co ntp-dev
   (1) make some modifications
   (2) create a diff of your modifications
   cvs diff -u >my-patch.diff

If you don't like CVS, or if you are more familiar with Subversion or if you do want to use a real distributed SCM system other that BitKeeper, please read the following SVK instructions.

First of all, skip the CVS checkout step because it is not needed if you are going to use SVK. SVK comes with a facility that allows one to mirror remote source code repositories. This facility is called VCP. At the time it is possible to mirror CVS, Perforce, Visual Source Safe and CVS exports from a BitKeeper repository. Mirroring a Subversion repository is supported by SVK natively. To be able to mirror a CVS export of a BitKepper repository, please make sure that you did install the VCP::Filter::cvsbkchangeset and VCP::Source::cvsbk Perl modules (yes SVK is written in Perl).

To mirror the CVS export of the NTP BitKeeper repository you have to go through the following steps. Actually the below steps illustrate how to apply the Zeroconf patch for NTP.

   (1)  init you local SVK repo using the command: svk depotmap --init
   (2)  mirror the actual repo into your local SVK repo: svk mirror cvsbk:$HOME/cvsroot/ntp-dev:ntp-dev/... //ntp-dev/trunk
   (3)  synchronice the SVK mirror with the CVS repo: svk sync //ntp-dev/trunk
   (4)  view the bitkeeper log: svk log -v //ntp-dev/trunk
   (5)  Create a local branch to add a new feature: svk cp -m "Create local branch for Zeroconf support" //ntp-dev/trunk //ntp-dev/zeroconf
   (6)  get the actual sources via a checkout: svk co //ntp-dev/zeroconf ntp-dev
   (7)  make some modifications: cd ntp-dev ...
   (8)  patch -p0 < ../ntp-zeroconf.diff
   (9)  add the files that were created by the patch(1) utility:
        svk add ntpd/ntpd_avahi.c
        svk add ntpd/ntpd_avahi.h
        svk add ntpd/ntpd_bonjour.c
        svk add ntpd/ntpd_bonjour.h
        svk add ntpd/ntpd_howl.c
        svk add ntpd/ntpd_howl.h
        svk add ntpd/ntpd_zeroconf.c
        svk add ntpd/ntpd_zeroconf.h
   (10) take a look what's going on: svk status
   (11) commit the just applied changes to our local branch: svk commit -m "applied Zeroconf patch"
   (12) optionally throw away the working copy: cd .. && svk checkout --detach ntp-dev
   (13) merge changes from our local branch back to our local mirror: svk smerge -l //ntp-dev/zeroconf //ntp-dev/trunk
        instead of the -l option, you can use the -C option if you just want to see what would happen if doing a merge.
        if you want to get a patch file instead of doing a real merge, you have to use the <code>--patch</code> option together with the merge command.
Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r2 < r1 | More topic actions
SSL security by CAcert
Get the CAcert Root Certificate
This site is powered by the TWiki collaboration platform
IPv6 Ready
Copyright & 1999-2020 by the contributing authors. All material on this collaboration platform is the property of the contributing authors. Ideas, requests, problems regarding the site? Send feedback