%bcond_with systemd Name: chrony Version: 4.5 Release: 1%{?_dist_release}%{?with_systemd:.systemd} Summary: An NTP client/server Group: system Vendor: Project Vine Distribution: Vine Linux Packager: tomop License: GPLv2 URL: https://chrony.tuxfamily.org/ Source0: https://download.tuxfamily.org/chrony/chrony-%{version}%{?prerelease}.tar.gz Source2: chrony.dhclient Source3: chronyd.sysconfig Source4: chronyd.init Source6: chrony.sysusers # add distribution-specific bits to DHCP dispatcher Patch1: chrony-nm-dispatcher-dhcp.patch BuildRequires: libcap-devel readline-devel ncurses-devel bison BuildRequires: libseccomp-devel BuildRequires: gcc gcc-c++ bison gnupg2 net-tools BuildRequires: gnutls-devel gnutls-utils Requires(pre): shadow-utils %if %{with systemd} BuildRequires: systemd %{?systemd_requires} %else Requires(post): chkconfig Requires(preun): chkconfig initscripts Requires(postun): initscripts %endif %if "%{?_dist_release}" == "vl7" Obsoletes: ntp < 4.2.6p5 %endif %description A client/server for the Network Time Protocol, this program keeps your computer's clock accurate. It was specially designed to support systems with intermittent internet connections, but it also works well in permanently connected environments. It can use also hardware reference clocks, system real-time clock or manual input as time references. %debug_package %prep %setup -q -n %{name}-%{version}%{?prerelease} %patch1 -p1 -b .nm-dispatcher-dhcp echo '# Keys used by chronyd for command and NTP authentication' > chrony.keys # use example chrony.conf as the default config with some modifications: # - use our vendor zone (2.*pool.ntp.org names include IPv6 addresses) # - enable leapsectz to get TAI-UTC offset and leap seconds from tzdata # - use NTP servers from DHCP sed -e 's|^\(pool \)\(pool.ntp.org\)|\1ntp.nict.jp|' \ -e 's|#\(leapsectz\)|\1|' \ -e 's|^pool.*pool.ntp.org.*|&\n\n# Use NTP servers from DHCP.\nsourcedir /run/chrony-dhcp|' \ < examples/chrony.conf.example2 > chrony.conf touch -r examples/chrony.conf.example2 chrony.conf # regenerate the file from getdate.y rm -f getdate.c %build %configure \ --chronyrundir=/run/chrony \ --docdir=%{_docdir} \ --enable-ntp-signd \ --enable-scfilter \ --disable-nts \ --with-ntp-era=$(date -d '1970-01-01 00:00:00+00:00' +'%s') \ --with-user=chrony \ --with-hwclockfile=%{_sysconfdir}/adjtime \ --with-pidfile=/run/chrony/chronyd.pid \ --with-sendmail=%{_sbindir}/sendmail \ %{mil} make %{?_smp_mflags} %install make install DESTDIR=%{buildroot} rm -rf %{buildroot}%{_docdir} mkdir -p %{buildroot}%{_initrddir} mkdir -p %{buildroot}%{_sysconfdir}/{sysconfig,logrotate.d} mkdir -p %{buildroot}%{_localstatedir}/{lib,log}/chrony mkdir -p %{buildroot}%{_sysconfdir}/dhcp/dhclient.d mkdir -p %{buildroot}%{_libexecdir} mkdir -p %{buildroot}%{_prefix}/lib/NetworkManager/dispatcher.d %if %{with systemd} mkdir -p %{buildroot}%{_sysusersdir} mkdir -p %{buildroot}{%{_unitdir},%{_prefix}/lib/systemd/ntp-units.d} %endif install -m 644 -p chrony.conf %{buildroot}%{_sysconfdir}/chrony.conf install -m 755 -p %{SOURCE2} \ %{buildroot}%{_sysconfdir}/dhcp/dhclient.d/chrony.sh install -m 644 -p examples/chrony.logrotate \ %{buildroot}%{_sysconfdir}/logrotate.d/chrony install -m 755 -p examples/chrony.nm-dispatcher.onoffline \ %{buildroot}%{_prefix}/lib/NetworkManager/dispatcher.d/20-chrony-onoffline install -m 755 -p examples/chrony.nm-dispatcher.dhcp \ %{buildroot}%{_prefix}/lib/NetworkManager/dispatcher.d/20-chrony-dhcp %if %{with systemd} install -m 644 -p examples/chronyd.service \ %{buildroot}%{_unitdir}/chronyd.service install -m 644 -p examples/chronyd-restricted.service \ %{buildroot}%{_unitdir}/chronyd-restricted.service install -m 644 -p examples/chrony-wait.service \ %{buildroot}%{_unitdir}/chrony-wait.service install -m 644 -p %{SOURCE6} \ %{buildroot}%{_sysusersdir}/chrony.conf echo 'chronyd.service' > \ %{buildroot}/usr/lib/systemd/ntp-units.d/50-chronyd.list %else install -m 755 -p %{SOURCE4} %{buildroot}%{_initrddir}/chronyd %endif install -m 644 -p %{SOURCE3} %{buildroot}%{_sysconfdir}/sysconfig/chronyd touch %{buildroot}%{_sysconfdir}/chrony.keys touch %{buildroot}%{_localstatedir}/lib/chrony/{drift,rtc} %pre %if %{with systemd} %sysusers_create_compat %{SOURCE6} %else getent group chrony > /dev/null || /usr/sbin/groupadd -r chrony getent passwd chrony > /dev/null || /usr/sbin/useradd -r -g chrony \ -d %{_localstatedir}/lib/chrony -s /sbin/nologin chrony exit 0 %endif %post %if %{with systemd} # migrate from chrony-helper to sourcedir directive if test -a %{_libexecdir}/chrony-helper; then grep -qi 'sourcedir /run/chrony-dhcp$' %{_sysconfdir}/chrony.conf 2> /dev/null || \ echo -e '\n# Use NTP servers from DHCP.\nsourcedir /run/chrony-dhcp' >> \ %{_sysconfdir}/chrony.conf mkdir -p /run/chrony-dhcp for f in %{_localstatedir}/lib/dhclient/chrony.servers.*; do sed 's|.*|server &|' < $f > /run/chrony-dhcp/"${f##*servers.}.sources" done 2> /dev/null fi %systemd_post chronyd.service chronyd-restricted.service chrony-wait.service %else /sbin/chkconfig --add chronyd : %endif %preun %if %{with systemd} %systemd_preun chronyd.service chronyd-restricted.service chrony-wait.service %else if [ "$1" -eq 0 -o -x /bin/systemctl ]; then /sbin/service chronyd stop &> /dev/null /sbin/chkconfig --del chronyd fi : %endif %postun %if %{with systemd} %systemd_postun_with_restart chronyd.service chronyd-restricted.service %else if [ "$1" -ge 1 ]; then /sbin/service chronyd condrestart &> /dev/null fi : %endif %files %defattr(-,root,root,-) %license COPYING %doc FAQ NEWS README examples/* %config(noreplace) %{_sysconfdir}/chrony.conf %config(noreplace) %attr(640,root,chrony) %{_sysconfdir}/chrony.keys %config(noreplace) %{_sysconfdir}/sysconfig/chronyd %config(noreplace) %{_sysconfdir}/logrotate.d/chrony %if %{with systemd} /usr/lib/systemd/ntp-units.d/*.list %{_unitdir}/chrony*.service %{_sysusersdir}/chrony.conf %else %{_initrddir}/chronyd %endif %dir %{_prefix}/lib/NetworkManager %dir %{_prefix}/lib/NetworkManager/dispatcher.d %{_prefix}/lib/NetworkManager/dispatcher.d/20-chrony* %dir %{_sysconfdir}/dhcp %dir %{_sysconfdir}/dhcp/dhclient.d %{_sysconfdir}/dhcp/dhclient.d/chrony.sh %{_bindir}/chronyc %{_sbindir}/chronyd %{_mandir}/man[158]/%{name}*.[158]* %dir %attr(-,chrony,chrony) %{_localstatedir}/lib/chrony %ghost %attr(-,chrony,chrony) %{_localstatedir}/lib/chrony/drift %ghost %attr(-,chrony,chrony) %{_localstatedir}/lib/chrony/rtc %dir %attr(-,chrony,chrony) %{_localstatedir}/log/chrony %changelog * Fri Jul 12 2024 Tomohiro "Tomo-p" KATO 4.5-1 - new upstream release. * Wed Nov 24 2021 Tomohiro "Tomo-p" KATO 4.1-1 - new upstream release. * Tue Sep 08 2020 Tomohiro "Tomo-p" KATO 3.5.1-2 - rebuilt with nettle-3.6. * Thu Aug 27 2020 Tomohiro "Tomo-p" KATO 3.5.1-1 - new upstream release. * Mon Apr 06 2020 Tomohiro "Tomo-p" KATO 3.5-2 - added systemd stuff (disabled as default). - updated Source2. * Wed Mar 25 2020 Tomohiro "Tomo-p" KATO 3.5-1 - new upstream release. - dropped Patch102: fixed in upstream. * Sat Aug 31 2019 Toshiaki Ara 3.2-2 - rebuild with readline-8.0 and ncurses-6.1 * Sat Jun 9 2018 IWAI, Masaharu 3.2-1 - update to 3.2 - drop Patch101; upstream merged - add Fedora's patch (Patch102) * Tue Dec 05 2017 Miroslav Lichvar 3.2-2 - fix chronyc getting stuck in infinite loop after clock step (#1520884) - restrict obsoleting 'ntp' package to VineSeed; for Vine Linux 6 * Thu May 18 2017 IWAI, Masaharu 3.0-1 - update to 3.0 - add patch to fix time smoothing in interleaved mode (Patch101); from Debian 3.0-4 - drop chrony.txt in %%doc; upstream dropped - drop info file; upstream dropped - drop R: info - drop BR: texinfo - drop scripts for info * Mon Jul 11 2016 IWAI, Masaharu 2.2.1-2 - Obsoletes: networkmanager-dispatcher-chrony * Wed Mar 23 2016 Tomohiro "Tomo-p" KATO 2.2.1-1 - new upstream release. * Fri Oct 23 2015 Tomohiro "Tomo-p" KATO 2.2-1 - new upstream release. * Sat Jul 25 2015 Tomohiro "Tomo-p" KATO 2.1.1-1 - new upstream release. * Tue Dec 23 2014 Tomohiro "Tomo-p" KATO 1.31-1 - new upstream release. * Sat Jun 7 2014 Tomohiro "Tomo-p" KATO 1.29.1-1 - new upstream release. - initial build for Vine Linux. * Fri Aug 09 2013 Miroslav Lichvar 1.25-3 - fix buffer overflow when processing crafted command packets (CVE-2012-4502) - don't send uninitialized data in command replies (CVE-2012-4503) * Thu May 19 2011 Miroslav Lichvar 1.25-2 - remove timepps.h, NM and dhclient scripts - build with readline * Thu May 05 2011 Miroslav Lichvar 1.25-1 - update to 1.25 - link with -Wl,-z,relro,-z,now options - use iburst, four pool servers, rtcsync, stratumweight in default config - suppress install-info errors * Thu Apr 29 2010 Miroslav Lichvar 1.24-4.20100428git73d775 - update to 20100428git73d775 - replace initstepslew directive with makestep in default config - add NetworkManager dispatcher script - add dhclient script - retry server/peer name resolution at least once to workaround NetworkManager race condition on boot - don't verify chrony.keys * Fri Mar 12 2010 Miroslav Lichvar 1.24-3.20100302git5fb555 - update to snapshot 20100302git5fb555 - compile with PPS API support * Thu Feb 04 2010 Miroslav Lichvar 1.24-1 - update to 1.24 (#555367, CVE-2010-0292 CVE-2010-0293 CVE-2010-0294) - modify default config - step clock on start if it is off by more than 100 seconds - disable client log - build with -fPIE on sparc * Tue Dec 15 2009 Miroslav Lichvar 1.24-0.1.pre1 - update to 1.24-pre1 * Fri Jul 24 2009 Fedora Release Engineering - 1.23-7.20081106gitbe42b4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_12_Mass_Rebuild * Fri Jul 17 2009 Miroslav Lichvar 1.23-6.20081106gitbe42b4 - switch to editline - support arbitrary chronyc commands in init script * Mon Jun 08 2009 Dan Horak 1.23-5.20081106gitbe42b4 - add patch with support for s390/s390x * Mon Mar 09 2009 Miroslav Lichvar 1.23-4.20081106gitbe42b4 - fix building with broken libcap header (#483548) * Mon Feb 23 2009 Fedora Release Engineering - 1.23-3.20081106gitbe42b4 - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild * Wed Nov 19 2008 Miroslav Lichvar 1.23-2.20081106gitbe42b4 - fix info uninstall - generate random command key in init script - support cyclelogs, online, offline commands in init script - add logrotate script * Tue Nov 11 2008 Miroslav Lichvar 1.23-1.20081106gitbe42b4 - initial release