|
@@ -1,6 +1,8 @@
|
|
|
+%bcond_with systemd
|
|
|
+
|
|
|
Name: chrony
|
|
|
Version: 3.5
|
|
|
-Release: 1%{?_dist_release}
|
|
|
+Release: 2%{?_dist_release}%{?with_systemd:.systemd}
|
|
|
Summary: An NTP client/server
|
|
|
Group: System Environment/Daemons
|
|
|
Vendor: Project Vine
|
|
@@ -15,15 +17,25 @@ Source2: chrony.dhclient
|
|
|
Source3: chronyd.sysconfig
|
|
|
Source4: chronyd.init
|
|
|
Source5: chrony.logrotate
|
|
|
+Source6: chrony.helper
|
|
|
+Source7: chrony-dnssrv@.service
|
|
|
+Source8: chrony-dnssrv@.timer
|
|
|
+
|
|
|
+# add NTP servers from DHCP when starting service
|
|
|
+Patch2: chrony-service-helper.patch
|
|
|
|
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
|
|
|
|
|
BuildRequires: libcap-devel readline-devel ncurses-devel bison
|
|
|
|
|
|
Requires(pre): shadow-utils
|
|
|
+%if %{with systemd}
|
|
|
+%{?systemd_requires}
|
|
|
+%else
|
|
|
Requires(post): chkconfig
|
|
|
Requires(preun): chkconfig initscripts
|
|
|
Requires(postun): initscripts
|
|
|
+%endif
|
|
|
|
|
|
%if "%{?_dist_release}" == "vl7"
|
|
|
Obsoletes: ntp < 4.2.6p5
|
|
@@ -40,6 +52,7 @@ clocks, system real-time clock or manual input as time references.
|
|
|
|
|
|
%prep
|
|
|
%setup -q -n %{name}-%{version}%{?prerelease}
|
|
|
+%patch2 -p1 -b .service-helper
|
|
|
|
|
|
echo '# Keys used by chronyd for command and NTP authentication' > chrony.keys
|
|
|
|
|
@@ -60,37 +73,56 @@ rm -f getdate.c
|
|
|
--docdir=%{_docdir} \
|
|
|
--with-user=chrony \
|
|
|
--with-sendmail=%{_sbindir}/sendmail \
|
|
|
+%if %{with systemd}
|
|
|
+ --chronyrundir=/run/chrony \
|
|
|
+ --with-pidfile=/run/chrony/chronyd.pid \
|
|
|
+%endif
|
|
|
--enable-forcednsretry
|
|
|
make %{?_smp_mflags} all docs
|
|
|
|
|
|
%install
|
|
|
-rm -rf $RPM_BUILD_ROOT
|
|
|
+rm -rf %{buildroot}
|
|
|
|
|
|
-make install install-docs DESTDIR=$RPM_BUILD_ROOT
|
|
|
+make install install-docs DESTDIR=%{buildroot}
|
|
|
|
|
|
-rm -rf $RPM_BUILD_ROOT%{_docdir}
|
|
|
+rm -rf %{buildroot}%{_docdir}
|
|
|
|
|
|
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/{sysconfig,logrotate.d}
|
|
|
-mkdir -p $RPM_BUILD_ROOT%{_initrddir}
|
|
|
-mkdir -p $RPM_BUILD_ROOT%{_localstatedir}/{lib,log}/chrony
|
|
|
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/NetworkManager/dispatcher.d
|
|
|
-mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/dhcp/dhclient.d
|
|
|
+mkdir -p %{buildroot}%{_sysconfdir}/{sysconfig,logrotate.d}
|
|
|
+mkdir -p %{buildroot}%{_initrddir}
|
|
|
+mkdir -p %{buildroot}%{_localstatedir}/{lib,log}/chrony
|
|
|
+mkdir -p %{buildroot}%{_sysconfdir}/NetworkManager/dispatcher.d
|
|
|
+mkdir -p %{buildroot}%{_sysconfdir}/dhcp/dhclient.d
|
|
|
|
|
|
-install -m 644 -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/chrony.conf
|
|
|
-install -m 640 -p chrony.keys $RPM_BUILD_ROOT%{_sysconfdir}/chrony.keys
|
|
|
+install -m 644 -p %{SOURCE1} %{buildroot}%{_sysconfdir}/chrony.conf
|
|
|
+install -m 640 -p chrony.keys %{buildroot}%{_sysconfdir}/chrony.keys
|
|
|
install -m 755 -p examples/chrony.nm-dispatcher \
|
|
|
- $RPM_BUILD_ROOT%{_sysconfdir}/NetworkManager/dispatcher.d/20-chrony
|
|
|
+ %{buildroot}%{_sysconfdir}/NetworkManager/dispatcher.d/20-chrony
|
|
|
install -m 755 -p %{SOURCE2} \
|
|
|
- $RPM_BUILD_ROOT%{_sysconfdir}/dhcp/dhclient.d/chrony.sh
|
|
|
-
|
|
|
-install -m 644 -p %{SOURCE3} $RPM_BUILD_ROOT%{_sysconfdir}/sysconfig/chronyd
|
|
|
-install -m 755 -p %{SOURCE4} $RPM_BUILD_ROOT%{_initrddir}/chronyd
|
|
|
-install -m 644 -p %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/logrotate.d/chrony
|
|
|
+ %{buildroot}%{_sysconfdir}/dhcp/dhclient.d/chrony.sh
|
|
|
+
|
|
|
+install -m 644 -p %{SOURCE3} %{buildroot}%{_sysconfdir}/sysconfig/chronyd
|
|
|
+install -m 644 -p %{SOURCE5} %{buildroot}%{_sysconfdir}/logrotate.d/chrony
|
|
|
+
|
|
|
+%if %{with systemd}
|
|
|
+mkdir -p %{buildroot}{%{_unitdir},/lib/systemd/ntp-units.d}
|
|
|
+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 %{SOURCE7} %{buildroot}%{_unitdir}/chrony-dnssrv@.service
|
|
|
+install -m 644 -p %{SOURCE8} %{buildroot}%{_unitdir}/chrony-dnssrv@.timer
|
|
|
+mkdir -p %{buildroot}%{_libexecdir}
|
|
|
+install -m 755 -p %{SOURCE6} %{buildroot}%{_libexecdir}/chrony-helper
|
|
|
+echo 'chronyd.service' > \
|
|
|
+ %{buildroot}/lib/systemd/ntp-units.d/50-chronyd.list
|
|
|
+%else
|
|
|
+install -m 755 -p %{SOURCE4} %{buildroot}%{_initrddir}/chronyd
|
|
|
+%endif
|
|
|
|
|
|
-touch $RPM_BUILD_ROOT%{_localstatedir}/lib/chrony/{drift,rtc}
|
|
|
+touch %{buildroot}%{_localstatedir}/lib/chrony/{drift,rtc}
|
|
|
|
|
|
%clean
|
|
|
-rm -rf $RPM_BUILD_ROOT
|
|
|
+rm -rf %{buildroot}
|
|
|
|
|
|
%pre
|
|
|
getent group chrony > /dev/null || /usr/sbin/groupadd -r chrony
|
|
@@ -99,21 +131,35 @@ getent passwd chrony > /dev/null || /usr/sbin/useradd -r -g chrony \
|
|
|
:
|
|
|
|
|
|
%post
|
|
|
+%if %{with systemd}
|
|
|
+# workaround for late reload of unit file (#1614751)
|
|
|
+%{_bindir}/systemctl daemon-reload
|
|
|
+%systemd_post chronyd.service chrony-wait.service
|
|
|
+%else
|
|
|
/sbin/chkconfig --add chronyd
|
|
|
:
|
|
|
+%endif
|
|
|
|
|
|
%preun
|
|
|
+%if %{with systemd}
|
|
|
+%systemd_preun chronyd.service chrony-wait.service
|
|
|
+%else
|
|
|
if [ "$1" -eq 0 ]; then
|
|
|
/sbin/service chronyd stop &> /dev/null
|
|
|
/sbin/chkconfig --del chronyd
|
|
|
fi
|
|
|
:
|
|
|
+%endif
|
|
|
|
|
|
%postun
|
|
|
+%if %{with systemd}
|
|
|
+%systemd_postun_with_restart chronyd.service
|
|
|
+%else
|
|
|
if [ "$1" -ge 1 ]; then
|
|
|
/sbin/service chronyd condrestart &> /dev/null
|
|
|
fi
|
|
|
:
|
|
|
+%endif
|
|
|
|
|
|
%files
|
|
|
%defattr(-,root,root,-)
|
|
@@ -123,8 +169,19 @@ fi
|
|
|
%config(noreplace) %verify(not md5 size mtime) %attr(640,root,chrony) %{_sysconfdir}/chrony.keys
|
|
|
%config(noreplace) %{_sysconfdir}/sysconfig/chronyd
|
|
|
%config(noreplace) %{_sysconfdir}/logrotate.d/chrony
|
|
|
+%if %{with systemd}
|
|
|
+%{_libexecdir}/chrony-helper
|
|
|
+/lib/systemd/ntp-units.d/*.list
|
|
|
+%{_unitdir}/chrony*.service
|
|
|
+%{_unitdir}/chrony*.timer
|
|
|
+%else
|
|
|
%{_initrddir}/chronyd
|
|
|
+%endif
|
|
|
+%dir %{_sysconfdir}/NetworkManager
|
|
|
+%dir %{_sysconfdir}/NetworkManager/dispatcher.d
|
|
|
%{_sysconfdir}/NetworkManager/dispatcher.d/20-chrony
|
|
|
+%dir %{_sysconfdir}/dhcp
|
|
|
+%dir %{_sysconfdir}/dhcp/dhclient.d
|
|
|
%{_sysconfdir}/dhcp/dhclient.d/chrony.sh
|
|
|
%{_bindir}/chronyc
|
|
|
%{_sbindir}/chronyd
|
|
@@ -135,6 +192,10 @@ fi
|
|
|
%dir %attr(-,chrony,chrony) %{_localstatedir}/log/chrony
|
|
|
|
|
|
%changelog
|
|
|
+* Mon Apr 06 2020 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 3.5-2
|
|
|
+- added systemd stuff (disabled as default).
|
|
|
+- updated Source2.
|
|
|
+
|
|
|
* Wed Mar 25 2020 Tomohiro "Tomo-p" KATO <tomop@teamgedoh.net> 3.5-1
|
|
|
- new upstream release.
|
|
|
- dropped Patch102: fixed in upstream.
|