2013-01-11 13:21:34 +01:00
|
|
|
|
#
|
2016-03-28 11:36:00 +02:00
|
|
|
|
# spec file for package chrony
|
|
|
|
|
#
|
|
|
|
|
# Copyright (c) 2016 SUSE LINUX GmbH, Nuernberg, Germany.
|
|
|
|
|
#
|
|
|
|
|
# All modifications and additions to the file contributed by third parties
|
|
|
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
|
|
|
# upon. The license for this file, and modifications and additions to the
|
|
|
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
|
|
|
# license for the pristine package is not an Open Source License, in which
|
|
|
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
|
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
|
|
|
# published by the Open Source Initiative.
|
2016-04-06 10:53:39 +02:00
|
|
|
|
#
|
2013-01-11 13:21:34 +01:00
|
|
|
|
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
|
|
|
|
#
|
|
|
|
|
|
2016-03-28 11:36:00 +02:00
|
|
|
|
|
|
|
|
|
%define vendorzone opensuse.
|
2016-04-06 10:53:39 +02:00
|
|
|
|
%if 0%{?suse_version} > 1230
|
2015-11-26 09:03:25 +01:00
|
|
|
|
%bcond_without systemd
|
|
|
|
|
%bcond_without syscallfilter
|
|
|
|
|
%else
|
|
|
|
|
%bcond_with systemd
|
|
|
|
|
%bcond_with syscallfilter
|
|
|
|
|
%endif
|
2016-04-06 10:53:39 +02:00
|
|
|
|
%global clknetsim_ver 96416d5
|
|
|
|
|
|
2013-01-11 13:21:34 +01:00
|
|
|
|
Name: chrony
|
2016-02-18 23:22:23 +01:00
|
|
|
|
Version: 2.3
|
2013-01-11 13:21:34 +01:00
|
|
|
|
Release: 0
|
2016-03-28 11:36:00 +02:00
|
|
|
|
License: GPL-2.0+
|
2016-04-06 10:53:39 +02:00
|
|
|
|
Summary: System Clock Synchronization Client and Server
|
2013-01-11 13:21:34 +01:00
|
|
|
|
Group: Productivity/Networking/Other
|
2016-03-28 11:36:00 +02:00
|
|
|
|
Url: http://chrony.tuxfamily.org/
|
2013-01-11 13:21:34 +01:00
|
|
|
|
Source: http://download.tuxfamily.org/chrony/chrony-%{version}.tar.gz
|
|
|
|
|
Source1: chrony.init
|
|
|
|
|
Source2: chrony.sysconfig
|
2015-11-26 09:03:25 +01:00
|
|
|
|
Source3: chrony.dhclient
|
|
|
|
|
Source4: chrony.helper
|
|
|
|
|
Source5: chrony-dnssrv@.service
|
|
|
|
|
Source6: chrony-dnssrv@.timer
|
2016-04-06 10:53:39 +02:00
|
|
|
|
# Simulator for test suite
|
|
|
|
|
Source10: https://github.com/mlichvar/clknetsim/archive/%{clknetsim_ver}/clknetsim-%{clknetsim_ver}.tar.gz
|
|
|
|
|
|
2013-01-11 13:21:34 +01:00
|
|
|
|
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
2016-03-28 11:36:00 +02:00
|
|
|
|
Patch0: chrony-config.patch
|
2016-04-06 10:53:39 +02:00
|
|
|
|
# Add NTP servers from DHCP when starting service
|
2015-11-26 09:03:25 +01:00
|
|
|
|
Patch1: chrony-service-helper.patch
|
2016-04-06 10:53:39 +02:00
|
|
|
|
Patch2: chrony-logrotate.patch
|
|
|
|
|
Patch3: chrony-include-termios.patch
|
|
|
|
|
Patch4: make-105-ntpauth-more-reliable.patch
|
|
|
|
|
#
|
2015-11-26 09:03:25 +01:00
|
|
|
|
BuildRequires: NetworkManager-devel
|
|
|
|
|
BuildRequires: bison
|
2013-01-11 13:21:34 +01:00
|
|
|
|
BuildRequires: libcap-devel
|
2015-11-26 09:03:25 +01:00
|
|
|
|
BuildRequires: libedit-devel
|
2016-03-28 11:36:00 +02:00
|
|
|
|
BuildRequires: mozilla-nss-devel
|
|
|
|
|
BuildRequires: pkg-config
|
|
|
|
|
BuildRequires: texinfo
|
2016-04-06 10:53:39 +02:00
|
|
|
|
BuildRequires: gcc-c++
|
|
|
|
|
# The timezone package is needed for the "make check" tests. It can be
|
|
|
|
|
# removed if the call to make check is ever deleted.
|
|
|
|
|
BuildRequires: timezone
|
|
|
|
|
|
2015-11-26 09:03:25 +01:00
|
|
|
|
%if %{with syscallfilter}
|
2016-04-06 10:58:31 +02:00
|
|
|
|
%ifarch s390 s390x ppc64le
|
2016-04-06 10:53:39 +02:00
|
|
|
|
BuildRequires: libseccomp-devel >= 2.2.0
|
2016-04-06 10:58:31 +02:00
|
|
|
|
%else
|
|
|
|
|
BuildRequires: libseccomp-devel
|
2015-11-26 09:03:25 +01:00
|
|
|
|
%endif
|
|
|
|
|
%endif
|
|
|
|
|
%if %{with systemd}
|
|
|
|
|
BuildRequires: pkgconfig(systemd)
|
|
|
|
|
%{?systemd_requires}
|
|
|
|
|
%else
|
|
|
|
|
Requires(pre): %insserv_prereq
|
|
|
|
|
%endif
|
2016-04-06 10:53:39 +02:00
|
|
|
|
Requires: logrotate
|
|
|
|
|
Requires: libseccomp2 >= 2.2.0
|
|
|
|
|
Requires(pre): %fillup_prereq
|
|
|
|
|
Requires(pre): %{_sbindir}/groupadd
|
|
|
|
|
Requires(pre): %{_sbindir}/useradd
|
|
|
|
|
Requires(pre): %{install_info_prereq}
|
|
|
|
|
#
|
|
|
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
2013-01-11 13:21:34 +01:00
|
|
|
|
|
2010-05-11 23:52:37 +02:00
|
|
|
|
%description
|
2016-04-06 10:53:39 +02:00
|
|
|
|
Chrony is an implementation of the Network Time Protocol (NTP). It can
|
|
|
|
|
synchronize the system clock with NTP servers, reference clocks (e.g. a
|
|
|
|
|
GPS receiver), and manual input using wristwatch and keyboard. It can
|
|
|
|
|
also operate as an NTPv4 (RFC 5905) server and peer to provide a time
|
|
|
|
|
service to other computers in the network.
|
|
|
|
|
|
|
|
|
|
Chrony consists of two programs: chronyd and chronyc.
|
|
|
|
|
|
|
|
|
|
Chronyd is a daemon which runs in the background on the system. It
|
|
|
|
|
obtains measurements of the system clock’s offset relative to time
|
|
|
|
|
servers on other systems via the network 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 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.
|
2010-05-11 23:52:37 +02:00
|
|
|
|
|
|
|
|
|
%prep
|
2016-04-06 10:53:39 +02:00
|
|
|
|
%setup -q -a 10
|
2016-03-28 11:36:00 +02:00
|
|
|
|
%patch0 -p1
|
2015-11-26 09:03:25 +01:00
|
|
|
|
%patch1 -p1
|
|
|
|
|
%patch2 -p1
|
2016-04-06 10:53:39 +02:00
|
|
|
|
%patch3 -p1
|
|
|
|
|
%patch4 -p1
|
|
|
|
|
|
2015-11-26 09:03:25 +01:00
|
|
|
|
# use our vendor zone (2.*pool.ntp.org names include IPv6 addresses)
|
|
|
|
|
sed -e 's|^\(pool \)\(pool.ntp.org\)|\12.%{vendorzone}\2|' \
|
|
|
|
|
< examples/chrony.conf.example2 > chrony.conf
|
|
|
|
|
|
|
|
|
|
touch -r examples/chrony.conf.example2 chrony.conf
|
|
|
|
|
|
|
|
|
|
# regenerate the file from getdate.y
|
|
|
|
|
rm -f getdate.c
|
2010-05-11 23:52:37 +02:00
|
|
|
|
|
2016-04-06 10:53:39 +02:00
|
|
|
|
mv clknetsim-%{clknetsim_ver}* test/simulation/clknetsim
|
|
|
|
|
|
2010-05-11 23:52:37 +02:00
|
|
|
|
%build
|
|
|
|
|
# not autoconf:
|
2015-11-26 09:03:25 +01:00
|
|
|
|
export CFLAGS="%{optflags} -Wall -fpic -DPIC $(pkg-config --cflags libseccomp)"
|
2014-02-25 16:55:43 +01:00
|
|
|
|
export LDFLAGS="-pie -Wl,-z,relro,-z,now"
|
2015-11-26 09:03:25 +01:00
|
|
|
|
%configure \
|
|
|
|
|
--docdir="%{_docdir}/%{name}" \
|
|
|
|
|
%if %{with syscallfilter}
|
|
|
|
|
--enable-scfilter \
|
|
|
|
|
%endif
|
|
|
|
|
--with-user=chrony \
|
2016-04-06 10:53:39 +02:00
|
|
|
|
--without-nss \
|
2015-11-26 09:03:25 +01:00
|
|
|
|
--with-hwclockfile=%{_sysconfdir}/adjtime \
|
|
|
|
|
--with-sendmail=%{_sbindir}/sendmail
|
|
|
|
|
|
|
|
|
|
make %{?_smp_mflags} all docs
|
|
|
|
|
gzip -9 -f -n chrony.txt
|
2010-05-11 23:52:37 +02:00
|
|
|
|
|
|
|
|
|
%install
|
2016-03-28 11:36:00 +02:00
|
|
|
|
make %{?_smp_mflags} DESTDIR=%{buildroot} install install-docs
|
2016-04-06 10:53:39 +02:00
|
|
|
|
rm "%{buildroot}%{_docdir}/%{name}/%{name}.html"
|
2010-05-11 23:52:37 +02:00
|
|
|
|
|
2015-11-26 09:03:25 +01:00
|
|
|
|
mkdir -p %{buildroot}%{_sysconfdir}/{sysconfig,logrotate.d}
|
|
|
|
|
mkdir -p %{buildroot}%{_localstatedir}/{lib,log}/chrony
|
|
|
|
|
mkdir -p %{buildroot}%{_sysconfdir}/NetworkManager/dispatcher.d
|
|
|
|
|
mkdir -p %{buildroot}%{_sysconfdir}/dhcp/dhclient.d
|
|
|
|
|
mkdir -p %{buildroot}%{_datadir}
|
|
|
|
|
mkdir -p %{buildroot}{%{_unitdir},%{_prefix}/lib/systemd/ntp-units.d}
|
|
|
|
|
|
|
|
|
|
install -m 644 -p chrony.conf %{buildroot}%{_sysconfdir}/chrony.conf
|
|
|
|
|
|
|
|
|
|
install -m 640 -p examples/chrony.keys.example \
|
|
|
|
|
%{buildroot}%{_sysconfdir}/chrony.keys
|
|
|
|
|
install -m 755 -p examples/chrony.nm-dispatcher \
|
|
|
|
|
%{buildroot}%{_sysconfdir}/NetworkManager/dispatcher.d/20-chrony
|
|
|
|
|
install -m 755 -p %{SOURCE3} \
|
|
|
|
|
%{buildroot}%{_sysconfdir}/dhcp/dhclient.d/chrony.sh
|
|
|
|
|
install -m 644 -p examples/chrony.logrotate \
|
|
|
|
|
%{buildroot}%{_sysconfdir}/logrotate.d/chrony
|
|
|
|
|
|
|
|
|
|
%if %{with systemd}
|
|
|
|
|
install -m 644 -p examples/chronyd.service \
|
|
|
|
|
%{buildroot}%{_unitdir}/chronyd.service
|
|
|
|
|
install -m 644 -p examples/chrony-wait.service \
|
|
|
|
|
%{buildroot}%{_unitdir}/chrony-wait.service
|
|
|
|
|
install -m 644 -p %{SOURCE5} %{buildroot}%{_unitdir}/chrony-dnssrv@.service
|
|
|
|
|
install -m 644 -p %{SOURCE6} %{buildroot}%{_unitdir}/chrony-dnssrv@.timer
|
2016-04-06 10:53:39 +02:00
|
|
|
|
ln -s /usr/sbin/service "%{buildroot}%{_sbindir}/rcchronyd"
|
|
|
|
|
ln -s /usr/sbin/service "%{buildroot}%{_sbindir}/rcchrony-wait"
|
2015-11-26 09:03:25 +01:00
|
|
|
|
|
|
|
|
|
echo 'chronyd.service' > \
|
|
|
|
|
%{buildroot}%{_prefix}/lib/systemd/ntp-units.d/50-chronyd.list
|
|
|
|
|
%else
|
2013-01-11 13:21:34 +01:00
|
|
|
|
install -D -m0755 "%{SOURCE1}" "%{buildroot}%{_initddir}/chronyd"
|
2016-03-28 11:36:00 +02:00
|
|
|
|
ln -s ../..%{_initddir}/chronyd "%{buildroot}%{_sbindir}/rcchronyd"
|
2015-11-26 09:03:25 +01:00
|
|
|
|
%endif
|
2013-01-11 13:21:34 +01:00
|
|
|
|
install -D -m0644 "%{SOURCE2}" "%{buildroot}%{_localstatedir}/adm/fillup-templates/sysconfig.chronyd"
|
2010-05-11 23:52:37 +02:00
|
|
|
|
|
2015-11-26 09:03:25 +01:00
|
|
|
|
install -m 755 -p %{SOURCE4} %{buildroot}%{_datadir}/chrony-helper
|
2010-05-11 23:52:37 +02:00
|
|
|
|
|
2015-11-26 09:03:25 +01:00
|
|
|
|
touch %{buildroot}%{_localstatedir}/lib/chrony/{drift,rtc}
|
2012-01-18 10:23:10 +01:00
|
|
|
|
|
2016-04-06 10:53:39 +02:00
|
|
|
|
%check
|
|
|
|
|
# Set random seed to get deterministic results
|
|
|
|
|
export CLKNETSIM_RANDOM_SEED=24501
|
|
|
|
|
make %{?_smp_mflags} -C test/simulation/clknetsim
|
|
|
|
|
|
|
|
|
|
make check
|
|
|
|
|
|
2010-05-11 23:52:37 +02:00
|
|
|
|
%pre
|
2016-03-28 11:36:00 +02:00
|
|
|
|
%{_sbindir}/groupadd -r chrony >/dev/null 2>&1 || :
|
|
|
|
|
%{_sbindir}/useradd -g chrony -s /bin/false -r -c "Chrony Daemon" -d "%{_localstatedir}/lib/chrony" chrony >/dev/null 2>&1 || :
|
2015-11-26 09:03:25 +01:00
|
|
|
|
# START BIG SYSTEMD
|
|
|
|
|
%if %{with systemd}
|
2016-04-06 10:53:39 +02:00
|
|
|
|
%service_add_pre chronyd.service chrony-wait.service chrony-dnssrv@.service
|
2015-11-26 09:03:25 +01:00
|
|
|
|
%endif
|
2010-05-11 23:52:37 +02:00
|
|
|
|
|
|
|
|
|
%preun
|
2015-11-26 09:03:25 +01:00
|
|
|
|
%if %{with systemd}
|
2016-04-06 10:53:39 +02:00
|
|
|
|
%service_del_preun chronyd.service chrony-wait.service chrony-dnssrv@.service
|
2015-11-26 09:03:25 +01:00
|
|
|
|
%else
|
2010-05-11 23:52:37 +02:00
|
|
|
|
%stop_on_removal chronyd
|
2015-11-26 09:03:25 +01:00
|
|
|
|
%endif
|
|
|
|
|
|
|
|
|
|
%post
|
|
|
|
|
%fillup_only %{name}
|
|
|
|
|
%install_info --info-dir="%{_infodir}" "%{_infodir}/chrony.info%{ext_info}"
|
|
|
|
|
%if %{with systemd}
|
2016-04-06 10:53:39 +02:00
|
|
|
|
%service_add_post chronyd.service chrony-wait.service chrony-dnssrv@.service
|
2015-11-26 09:03:25 +01:00
|
|
|
|
%endif
|
2010-05-11 23:52:37 +02:00
|
|
|
|
|
|
|
|
|
%postun
|
2015-11-26 09:03:25 +01:00
|
|
|
|
%install_info_delete --info-dir="%{_infodir}" "%{_infodir}/chrony.info%{ext_info}"
|
|
|
|
|
%if %{with systemd}
|
2016-04-06 10:53:39 +02:00
|
|
|
|
%service_del_postun chronyd.service chrony-wait.service chrony-dnssrv@.service
|
2015-11-26 09:03:25 +01:00
|
|
|
|
%else
|
2010-05-11 23:52:37 +02:00
|
|
|
|
%restart_on_update chronyd
|
|
|
|
|
%insserv_cleanup
|
2015-11-26 09:03:25 +01:00
|
|
|
|
%endif
|
2010-05-11 23:52:37 +02:00
|
|
|
|
|
|
|
|
|
%files
|
|
|
|
|
%defattr(-,root,root)
|
2015-11-26 09:03:25 +01:00
|
|
|
|
%doc FAQ NEWS README chrony.txt* COPYING
|
2010-05-11 23:52:37 +02:00
|
|
|
|
%doc examples
|
2016-03-28 11:36:00 +02:00
|
|
|
|
%config(noreplace) %attr(0640,root,%{name}) %{_sysconfdir}/chrony.conf
|
2015-11-26 09:03:25 +01:00
|
|
|
|
%config(noreplace) %attr(0640,root,%{name}) %verify(not md5 size mtime) %{_sysconfdir}/chrony.keys
|
2016-03-28 11:36:00 +02:00
|
|
|
|
%config(noreplace) %{_sysconfdir}/logrotate.d/chrony
|
2015-11-26 09:03:25 +01:00
|
|
|
|
%{_sysconfdir}/NetworkManager/dispatcher.d/20-chrony
|
|
|
|
|
%dir %{_sysconfdir}/dhcp/
|
|
|
|
|
%dir %{_sysconfdir}/dhcp/dhclient.d/
|
|
|
|
|
%{_sysconfdir}/dhcp/dhclient.d/chrony.sh
|
2010-05-11 23:52:37 +02:00
|
|
|
|
%{_bindir}/chronyc
|
|
|
|
|
%{_sbindir}/chronyd
|
2015-11-26 09:03:25 +01:00
|
|
|
|
%{_datadir}/chrony-helper
|
|
|
|
|
%{_mandir}/man1/chronyc.1%{ext_man}
|
|
|
|
|
%{_mandir}/man5/chrony.conf.5%{ext_man}
|
|
|
|
|
%{_mandir}/man8/chronyd.8%{ext_man}
|
|
|
|
|
%{_infodir}/chrony.info*
|
|
|
|
|
%if %{with systemd}
|
|
|
|
|
%{_prefix}/lib/systemd/ntp-units.d/*.list
|
|
|
|
|
%{_unitdir}/chrony*.service
|
|
|
|
|
%{_unitdir}/chrony*.timer
|
|
|
|
|
%else
|
2013-01-11 13:21:34 +01:00
|
|
|
|
%config %{_sysconfdir}/init.d/chronyd
|
2015-11-26 09:03:25 +01:00
|
|
|
|
%endif
|
|
|
|
|
%{_sbindir}/rcchrony*
|
2013-01-11 13:21:34 +01:00
|
|
|
|
%{_localstatedir}/adm/fillup-templates/sysconfig.chronyd
|
2016-03-28 11:36:00 +02:00
|
|
|
|
%dir %attr(750,chrony,chrony) %{_localstatedir}/lib/chrony
|
2015-11-26 09:03:25 +01:00
|
|
|
|
%ghost %attr(640,chrony,chrony) %{_localstatedir}/lib/chrony/drift
|
|
|
|
|
%ghost %attr(640,chrony,chrony) %{_localstatedir}/lib/chrony/rtc
|
2016-03-28 11:36:00 +02:00
|
|
|
|
%dir %attr(750,chrony,chrony) %{_localstatedir}/log/chrony
|
2010-05-11 23:52:37 +02:00
|
|
|
|
|
|
|
|
|
%changelog
|