1b3494a786
- Added /etc/chrony.d/ directory to the package (bsc#1083597) Modifed default chrony.conf to add "include /etc/chrony.d/*" OBS-URL: https://build.opensuse.org/request/show/597617 OBS-URL: https://build.opensuse.org/package/show/network:time/chrony?expand=0&rev=46
224 lines
7.8 KiB
RPMSpec
224 lines
7.8 KiB
RPMSpec
#
|
||
# spec file for package chrony
|
||
#
|
||
# Copyright (c) 2018 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.
|
||
|
||
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
||
#
|
||
|
||
|
||
%define vendorzone opensuse.
|
||
%global clknetsim_ver 71dbbc5
|
||
#Compat macro for new _fillupdir macro introduced in Nov 2017
|
||
%if ! %{defined _fillupdir}
|
||
%define _fillupdir %{_localstatedir}/adm/fillup-templates
|
||
%endif
|
||
Name: chrony
|
||
Version: 3.2
|
||
Release: 0
|
||
Summary: System Clock Synchronization Client and Server
|
||
License: GPL-2.0-only
|
||
Group: Productivity/Networking/Other
|
||
Url: http://chrony.tuxfamily.org/
|
||
Source: http://download.tuxfamily.org/chrony/chrony-%{version}.tar.gz
|
||
Source2: chrony.sysconfig
|
||
Source3: chrony.dhclient
|
||
Source4: chrony.helper
|
||
Source5: chrony-dnssrv@.service
|
||
Source6: chrony-dnssrv@.timer
|
||
# Simulator for test suite
|
||
Source10: https://github.com/mlichvar/clknetsim/archive/%{clknetsim_ver}/clknetsim-%{clknetsim_ver}.tar.gz
|
||
# PATCH-MISSING-TAG -- See http://wiki.opensuse.org/openSUSE:Packaging_Patches_guidelines
|
||
Patch0: chrony-config.patch
|
||
# Add NTP servers from DHCP when starting service
|
||
Patch1: chrony-service-helper.patch
|
||
Patch2: chrony-logrotate.patch
|
||
Patch5: chrony-fix-open.patch
|
||
BuildRequires: NetworkManager-devel
|
||
BuildRequires: bison
|
||
BuildRequires: gcc-c++
|
||
BuildRequires: libcap-devel
|
||
BuildRequires: libedit-devel
|
||
BuildRequires: mozilla-nss-devel
|
||
BuildRequires: pkgconfig
|
||
BuildRequires: pps-tools-devel
|
||
# 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
|
||
BuildRequires: pkgconfig(systemd)
|
||
Requires: logrotate
|
||
Requires(post): %fillup_prereq
|
||
Requires(pre): %{_sbindir}/groupadd
|
||
Requires(pre): %{_sbindir}/useradd
|
||
Provides: ntp-daemon
|
||
%ifarch s390 s390x ppc64le
|
||
BuildRequires: libseccomp-devel >= 2.2.0
|
||
%else
|
||
BuildRequires: libseccomp-devel
|
||
%endif
|
||
|
||
%description
|
||
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.
|
||
|
||
%prep
|
||
%setup -q -a 10
|
||
%patch0 -p1
|
||
%patch1 -p1
|
||
%patch2 -p1
|
||
%patch5 -p1
|
||
|
||
# If this is an openSUSE build, use our vendor zone
|
||
# (2.*pool.ntp.org names include IPv6 addresses). If not
|
||
# an openSUSE build, comment out the pool statement
|
||
%if 0%{?is_opensuse}
|
||
sed -e 's|^\(pool \)\(pool.ntp.org\)|\12.%{vendorzone}\2|' \
|
||
< examples/chrony.conf.example2 > chrony.conf
|
||
%else
|
||
sed -e 's|^\pool|! pool|' \
|
||
< examples/chrony.conf.example2 > chrony.conf
|
||
%endif
|
||
|
||
cat << EOF >> chrony.conf
|
||
|
||
# Also include any directives found in configuration files in /etc/chrony.d
|
||
include /etc/chrony.d/*.conf
|
||
EOF
|
||
|
||
touch -r examples/chrony.conf.example2 chrony.conf
|
||
|
||
# regenerate the file from getdate.y
|
||
rm -f getdate.c
|
||
|
||
mv clknetsim-%{clknetsim_ver}* test/simulation/clknetsim
|
||
|
||
%build
|
||
# not autoconf:
|
||
export CFLAGS="%{optflags} -Wall -fpic -DPIC $(pkg-config --cflags libseccomp)"
|
||
export LDFLAGS="-pie -Wl,-z,relro,-z,now"
|
||
%configure \
|
||
--docdir="%{_docdir}/%{name}" \
|
||
%if %{with syscallfilter}
|
||
--enable-scfilter \
|
||
%endif
|
||
--with-user=chrony \
|
||
--with-hwclockfile=%{_sysconfdir}/adjtime \
|
||
--with-sendmail=%{_sbindir}/sendmail
|
||
make %{?_smp_mflags} all docs
|
||
|
||
%install
|
||
%make_install
|
||
install -Dpm 0644 chrony.conf \
|
||
%{buildroot}%{_sysconfdir}/chrony.conf
|
||
mkdir %{buildroot}%{_sysconfdir}/chrony.d
|
||
install -Dpm 0640 examples/chrony.keys.example \
|
||
%{buildroot}%{_sysconfdir}/chrony.keys
|
||
install -Dpm 0755 examples/chrony.nm-dispatcher \
|
||
%{buildroot}%{_sysconfdir}/NetworkManager/dispatcher.d/20-chrony
|
||
install -Dpm 0755 %{SOURCE3} \
|
||
%{buildroot}%{_sysconfdir}/dhcp/dhclient.d/chrony.sh
|
||
install -Dpm 0644 examples/chrony.logrotate \
|
||
%{buildroot}%{_sysconfdir}/logrotate.d/chrony
|
||
install -Dpm 0644 examples/chronyd.service \
|
||
%{buildroot}%{_unitdir}/chronyd.service
|
||
install -Dpm 0644 examples/chrony-wait.service \
|
||
%{buildroot}%{_unitdir}/chrony-wait.service
|
||
install -Dpm 0644 %{SOURCE5} \
|
||
%{buildroot}%{_unitdir}/chrony-dnssrv@.service
|
||
install -Dpm 0644 %{SOURCE6} \
|
||
%{buildroot}%{_unitdir}/chrony-dnssrv@.timer
|
||
|
||
install -d %{buildroot}%{sbindir}
|
||
ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcchronyd
|
||
ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcchrony-wait
|
||
|
||
install -d %{buildroot}%{_prefix}/lib/systemd/ntp-units.d
|
||
echo 'chronyd.service' > \
|
||
%{buildroot}%{_prefix}/lib/systemd/ntp-units.d/50-chronyd.list
|
||
|
||
install -Dpm 0644 %{SOURCE2} \
|
||
%{buildroot}%{_fillupdir}/sysconfig.chrony
|
||
install -Dpm 755 %{SOURCE4} \
|
||
%{buildroot}%{_datadir}/chrony-helper
|
||
|
||
install -d %{buildroot}%{_localstatedir}/log/chrony
|
||
touch %{buildroot}%{_localstatedir}/lib/chrony/{drift,rtc}
|
||
|
||
%check
|
||
# Set random seed to get deterministic results
|
||
export CLKNETSIM_RANDOM_SEED=24501
|
||
make %{?_smp_mflags} -C test/simulation/clknetsim
|
||
make %{?_smp_mflags} check
|
||
|
||
%pre
|
||
getent group %{name} >/dev/null || groupadd -r %{name}
|
||
getent passwd %{name} >/dev/null || useradd -r -g %{name} -d "%{_localstatedir}/lib/chrony" -s /bin/false -c "Chrony Daemon" %{name}
|
||
%service_add_pre chronyd.service chrony-wait.service
|
||
|
||
%preun
|
||
%service_del_preun chronyd.service chrony-wait.service
|
||
|
||
%post
|
||
%fillup_only %{name}
|
||
%service_add_post chronyd.service chrony-wait.service
|
||
|
||
%postun
|
||
%service_del_postun chronyd.service chrony-wait.service
|
||
|
||
%files
|
||
%license COPYING
|
||
%doc FAQ NEWS README
|
||
%doc examples
|
||
%config(noreplace) %attr(0640,root,%{name}) %{_sysconfdir}/chrony.conf
|
||
%config(noreplace) %attr(0640,root,%{name}) %verify(not md5 size mtime) %{_sysconfdir}/chrony.keys
|
||
%config(noreplace) %{_sysconfdir}/logrotate.d/chrony
|
||
%{_sysconfdir}/NetworkManager/dispatcher.d/20-chrony
|
||
%dir %{_sysconfdir}/chrony.d/
|
||
%dir %{_sysconfdir}/dhcp/
|
||
%dir %{_sysconfdir}/dhcp/dhclient.d/
|
||
%{_sysconfdir}/dhcp/dhclient.d/chrony.sh
|
||
%{_bindir}/chronyc
|
||
%{_sbindir}/chronyd
|
||
%{_datadir}/chrony-helper
|
||
%{_mandir}/man1/chronyc.1%{ext_man}
|
||
%{_mandir}/man5/chrony.conf.5%{ext_man}
|
||
%{_mandir}/man8/chronyd.8%{ext_man}
|
||
%{_prefix}/lib/systemd/ntp-units.d/*.list
|
||
%{_unitdir}/chrony*.service
|
||
%{_unitdir}/chrony*.timer
|
||
%{_sbindir}/rcchrony*
|
||
%{_fillupdir}/sysconfig.chrony
|
||
%dir %attr(750,chrony,chrony) %{_localstatedir}/lib/chrony
|
||
%ghost %attr(640,chrony,chrony) %{_localstatedir}/lib/chrony/drift
|
||
%ghost %attr(640,chrony,chrony) %{_localstatedir}/lib/chrony/rtc
|
||
%dir %attr(750,chrony,chrony) %{_localstatedir}/log/chrony
|
||
|
||
%changelog
|