1 { lib, stdenv, fetchurl, pkg-config, libcap, readline, texinfo, nss, nspr
2 , libseccomp, pps-tools, gnutls }:
4 assert stdenv.isLinux -> libcap != null;
6 stdenv.mkDerivation rec {
11 url = "https://download.tuxfamily.org/chrony/${pname}-${version}.tar.gz";
12 sha256 = "sha256-7Xby0/k0esYiGpGtS9VT3QVlrBiM10kNCAHQj3FxFkw=";
19 buildInputs = [ readline texinfo nss nspr gnutls ]
20 ++ lib.optionals stdenv.isLinux [ libcap libseccomp pps-tools ];
21 nativeBuildInputs = [ pkg-config ];
23 hardeningEnable = [ "pie" ];
25 configureFlags = [ "--chronyvardir=$(out)/var/lib/chrony" ]
26 ++ lib.optional stdenv.isLinux "--enable-scfilter";
29 description = "Sets your computer's clock from time servers on the Net";
30 homepage = "https://chrony.tuxfamily.org/";
31 repositories.git = "git://git.tuxfamily.org/gitroot/chrony/chrony.git";
32 license = licenses.gpl2;
33 platforms = with platforms; linux ++ freebsd ++ openbsd;
34 maintainers = with maintainers; [ fpletz thoughtpolice ];
37 Chronyd is a daemon which runs in background on the system. It obtains
38 measurements via the network of the system clockâs offset relative to
39 time servers on other systems and adjusts the system time accordingly.
40 For isolated systems, the user can periodically enter the correct time by
41 hand (using Chronyc). In either case, Chronyd determines the rate at
42 which the computer gains or loses time, and compensates for this. Chronyd
43 implements the NTP protocol and can act as either a client or a server.
45 Chronyc provides a user interface to Chronyd for monitoring its
46 performance and configuring various settings. It can do so while running
47 on the same computer as the Chronyd instance it is controlling or a