ae2dc6aea6
GitOrigin-RevId: 4c2fcb090b1f3e5b47eaa7bd33913b574a11e0a0
116 lines
2.6 KiB
Nix
116 lines
2.6 KiB
Nix
{
|
||
lib,
|
||
stdenv,
|
||
overrideSDK,
|
||
fetchurl,
|
||
pkg-config,
|
||
gnutls,
|
||
libedit,
|
||
texinfo,
|
||
libcap,
|
||
libseccomp,
|
||
pps-tools,
|
||
nixosTests,
|
||
}:
|
||
|
||
let
|
||
stdenv' =
|
||
if stdenv.hostPlatform.isDarwin then
|
||
overrideSDK stdenv {
|
||
darwinSdkVersion = "11.0";
|
||
darwinMinVersion = "10.13";
|
||
}
|
||
else
|
||
stdenv;
|
||
in
|
||
stdenv'.mkDerivation rec {
|
||
pname = "chrony";
|
||
version = "4.6.1";
|
||
|
||
src = fetchurl {
|
||
url = "https://chrony-project.org/releases/${pname}-${version}.tar.gz";
|
||
hash = "sha256-Vx/3P78K4wl/BgTsouALHYuy6Rr/4aNJR4X/IdYZnFw=";
|
||
};
|
||
|
||
outputs = [
|
||
"out"
|
||
"man"
|
||
];
|
||
|
||
nativeBuildInputs = [ pkg-config ];
|
||
|
||
buildInputs =
|
||
[
|
||
gnutls
|
||
libedit
|
||
texinfo
|
||
]
|
||
++ lib.optionals stdenv.hostPlatform.isLinux [
|
||
libcap
|
||
libseccomp
|
||
pps-tools
|
||
];
|
||
|
||
configureFlags = [
|
||
"--enable-ntp-signd"
|
||
"--sbindir=$(out)/bin"
|
||
"--chronyrundir=/run/chrony"
|
||
] ++ lib.optional stdenv.hostPlatform.isLinux "--enable-scfilter";
|
||
|
||
patches = [
|
||
# Cleanup the installation script
|
||
./makefile.patch
|
||
];
|
||
|
||
postPatch = ''
|
||
patchShebangs test
|
||
|
||
# nts_ke_session unit test fails, so drop it.
|
||
# TODO: try again when updating?
|
||
rm test/unit/nts_ke_session.c
|
||
'';
|
||
|
||
enableParallelBuilding = true;
|
||
doCheck = true;
|
||
|
||
hardeningEnable = lib.optionals (!stdenv.hostPlatform.isDarwin) [ "pie" ];
|
||
|
||
passthru.tests = {
|
||
inherit (nixosTests) chrony chrony-ptp;
|
||
};
|
||
|
||
meta = {
|
||
description = "Sets your computer's clock from time servers on the Net";
|
||
homepage = "https://chrony-project.org/";
|
||
license = lib.licenses.gpl2Only;
|
||
platforms =
|
||
with lib.platforms;
|
||
builtins.concatLists [
|
||
linux
|
||
freebsd
|
||
netbsd
|
||
darwin
|
||
illumos
|
||
];
|
||
maintainers = with lib.maintainers; [
|
||
fpletz
|
||
thoughtpolice
|
||
vifino
|
||
];
|
||
|
||
longDescription = ''
|
||
Chronyd is a daemon which runs in background on the system. It obtains
|
||
measurements via the network of the system clock’s offset relative to
|
||
time servers on other systems and adjusts the system time accordingly.
|
||
For isolated systems, the user can periodically enter the correct time by
|
||
hand (using Chronyc). In either case, Chronyd determines the rate at
|
||
which the computer gains or loses time, and compensates for this. Chronyd
|
||
implements the NTP protocol and can act as either a client or a server.
|
||
|
||
Chronyc provides a user interface to Chronyd for monitoring its
|
||
performance and configuring various settings. It can do so while running
|
||
on the same computer as the Chronyd instance it is controlling or a
|
||
different computer.
|
||
'';
|
||
};
|
||
}
|