X-Git-Url: http://git.pld-linux.org/?a=blobdiff_plain;f=ntp.spec;h=20b0d18335d507a21e14b52cc2347905c2fe6682;hb=a71e0d28e9a5eca73032bacb1e24f7f17612a949;hp=369e3f29c10295773458d79cee55b3dd44c13299;hpb=82f74dd462316ed7f52e5286c93744d6a4ae3a8d;p=packages%2Fntp.git diff --git a/ntp.spec b/ntp.spec index 369e3f2..20b0d18 100644 --- a/ntp.spec +++ b/ntp.spec @@ -1,72 +1,74 @@ -# TODO -# - run as ntp/ntp (fc patches) -# - default config is too restrictive (ntpq -p should work locally) +# TODO: +# - enable and package ntpdsim? +# - net-snmp-ntpd needs initscript +# - update FC patches +# - update man pages (from Debian?) +# +# Conditional build: +%bcond_without avahi # disable DNS-SD support via Avahi +%bcond_without sntp # disable building sntp and sntp/tests +%bcond_with seccomp # enable experimental support for libseccomp sandboxing + %include /usr/lib/rpm/macros.perl Summary: Network Time Protocol utilities Summary(pl.UTF-8): Narzędzia do synchronizacji czasu (Network Time Protocol) Summary(pt_BR.UTF-8): Network Time Protocol versão 4 Name: ntp -Version: 4.2.4p8 -Release: 3.2 +Version: 4.2.8p8 +Release: 1 License: distributable -Group: Daemons -Source0: http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/%{name}-%{version}.tar.gz -# Source0-md5: fe137056e7e611798a46971a783567ce +Group: Networking/Daemons +Source0: https://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/%{name}-%{version}.tar.gz +# Source0-md5: 4a8636260435b230636f053ffd070e34 Source1: %{name}.conf Source2: %{name}.keys -Source3: %{name}.init -Source4: %{name}.sysconfig -Source5: %{name}-client.init -Source6: %{name}-client.sysconfig +Source3: %{name}d.init +Source4: %{name}d.sysconfig +Source5: %{name}date.init +Source6: %{name}date.sysconfig Source7: %{name}-manpages.tar.gz # Source7-md5: 208fcc9019e19ab26d28e4597290bffb -Patch0: %{name}-time.patch +Source10: %{name}date-wrapper +Source11: %{name}d.service +Source12: %{name}date.service +Source13: http://www.ietf.org/timezones/data/leap-seconds.list +# Source13-md5: 2fcae06100fa9193a3e770c1b59bbbe1 +Patch0: %{name}-build.patch Patch1: %{name}-no_libelf.patch Patch2: %{name}-ipv6.patch -Patch3: %{name}-openssl_check.patch -Patch4: %{name}-clock_settime.patch -Patch5: %{name}-md5.patch -Patch6: %{name}-nano.patch -Patch7: %{name}-manpage.patch -# FC patches -Patch101: %{name}-4.2.4p4-kernel.patch -Patch102: %{name}-4.2.4p0-droproot.patch -Patch103: %{name}-4.2.4-groups.patch -Patch104: %{name}-4.2.4p7-daemonpll.patch -Patch106: %{name}-4.2.4p2-tentative.patch -Patch107: %{name}-4.2.4p2-noseed.patch -Patch108: %{name}-4.2.4p4-multilisten.patch -Patch109: %{name}-4.2.4-html2man.patch -Patch110: %{name}-4.2.4p5-htmldoc.patch -Patch111: %{name}-4.2.4p2-filegen.patch -Patch112: %{name}-4.2.4-sprintf.patch -Patch114: %{name}-4.2.4p8-mlock.patch -Patch115: %{name}-4.2.4p2-clockselect.patch -Patch117: %{name}-4.2.4p7-sleep.patch -Patch118: %{name}-4.2.4p7-bcast.patch -Patch119: %{name}-4.2.4p0-retcode.patch -Patch120: %{name}-4.2.4p2-noif.patch -Patch122: %{name}-4.2.4p4-cmsgalign.patch -Patch124: %{name}-4.2.4p4-resinit.patch -Patch125: %{name}-4.2.4p5-rtnetlink.patch -Patch126: %{name}-4.2.4p7-stamode.patch -Patch127: %{name}-4.2.4p5-driftonexit.patch -Patch129: %{name}-4.2.4p7-minpoll.patch -Patch130: %{name}-4.2.4p7-freqmode.patch -Patch133: %{name}-4.2.4p7-getprecision.patch +Patch3: %{name}-nano.patch +Patch4: %{name}-no_avahi.patch +# FC patches + 100 +Patch101: %{name}-4.2.6p1-sleep.patch +Patch102: %{name}-4.2.6p1-droproot.patch +Patch103: %{name}-4.2.6p1-bcast.patch +Patch104: %{name}-4.2.6p1-cmsgalign.patch +Patch105: %{name}-4.2.6p1-linkfastmath.patch +Patch107: %{name}-4.2.6p1-retcode.patch +Patch108: %{name}-4.2.6p1-rtnetlink.patch +Patch110: %{name}-logdefault.patch +Patch111: %{name}-4.2.6p1-mlock.patch URL: http://www.ntp.org/ -BuildRequires: autoconf -BuildRequires: automake +BuildRequires: autoconf >= 2.61 +BuildRequires: autogen-devel +BuildRequires: automake >= 1:1.10 +%{?with_avahi:BuildRequires: avahi-compat-libdns_sd-devel} BuildRequires: libcap-devel +%{?with_sntp:BuildRequires: libevent-devel >= 2.0} +BuildRequires: libnl-devel +%{?with_seccomp:BuildRequires: libseccomp-devel} BuildRequires: libtool +BuildRequires: net-snmp-devel BuildRequires: openssl-devel >= 0.9.7d +BuildRequires: pciutils-devel BuildRequires: readline-devel >= 4.2 BuildRequires: rpm-perlprov >= 4.1-13 -BuildRequires: rpmbuild(macros) >= 1.268 +BuildRequires: rpmbuild(macros) >= 1.626 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n) %define _sysconfdir /etc/ntp %define _bindir %{_sbindir} +%define mibdir %{_datadir}/mibs %description The Network Time Protocol (NTP) is used to synchronize a computer's @@ -96,10 +98,20 @@ Summary(pl.UTF-8): Narzędzia do synchronizacji czasu (Network Time Protocol) Summary(pt_BR.UTF-8): Network Time Protocol versão 4 Group: Daemons Requires(post,preun): /sbin/chkconfig -Requires: rc-scripts >= 0.4.0.10 +Requires(postun): /usr/sbin/groupdel +Requires(postun): /usr/sbin/userdel +Requires(pre): /bin/id +Requires(pre): /usr/bin/getgid +Requires(pre): /usr/sbin/groupadd +Requires(pre): /usr/sbin/useradd +Requires(post,preun,postun): systemd-units >= 38 +Requires: rc-scripts >= 0.4.3.0 +Requires: systemd-units >= 38 +Provides: group(ntp) Provides: ntp = %{version}-%{release} Provides: ntpdaemon -Obsoletes: ntp < 4.2.4p8-4 +Provides: user(ntp) +Obsoletes: ntp < 4.2.4p8-6 Obsoletes: ntpdaemon Obsoletes: openntpd Obsoletes: xntp3 @@ -134,12 +146,24 @@ Summary: Utility to set the date and time via NTP Summary(pl.UTF-8): Klient do synchronizacji czasu po NTP (Network Time Protocol) Group: Applications/Networking Requires(post,preun): /sbin/chkconfig -Provides: ntpclient -Obsoletes: ntpclient +Requires(postun): /usr/sbin/groupdel +Requires(postun): /usr/sbin/userdel +Requires(pre): /bin/id +Requires(pre): /usr/bin/getgid +Requires(pre): /usr/sbin/groupadd +Requires(pre): /usr/sbin/useradd +Requires(post,preun,postun): systemd-units >= 38 +Requires: rc-scripts >= 0.4.3.0 +Requires: systemd-units >= 38 +Provides: group(ntp) +Provides: user(ntp) Conflicts: ntp < 4.2.0-3 # for upgrades Provides: ntp-client = %{version}-%{release} -Obsoletes: ntp-client < 4.2.4p8-4 +Obsoletes: ntp-client < 4.2.4p8-6 +# virtual +Provides: ntpclient +Obsoletes: ntpclient %description -n ntpdate ntpdate is a program for retrieving the date and time from NTP @@ -148,21 +172,62 @@ servers. %description -n ntpdate -l pl.UTF-8 Klient do synchronizacji czasu po NTP (Network Time Protocol). +%package -n mibs-ntp +Summary: MIBs for NTP time entities +Summary(pl.UTF-8): Pliki MIB dla elementów czasu NTP +Group: Applications/System +Requires: mibs-dirs +%if "%{_rpmversion}" >= "5" +BuildArch: noarch +%endif + +%description -n mibs-ntp +The Management Information Base for NTP time entities. + +%description -n mibs-ntp -l pl.UTF-8 +Pliki MIB (Management Information Base) dla elementów czasu NTP + +%package -n net-snmp-ntpd +Summary: NTP SNMP subagent for Net-SNMP +Summary(pl.UTF-8): Podagent SNMP NTP dla usługi Net-SNMP +Group: Daemons +Requires(post,preun): /sbin/chkconfig +Requires: net-snmp +Requires: rc-scripts +Suggests: mibs-ntp + +%description -n net-snmp-ntpd +NTP SNMP AgentX subagent for Net-SNMP. + +%description -n net-snmp-ntpd -l pl.UTF-8 +Podagent SNMP AgentX NTP dla usługi Net-SNMP. + %package tools Summary: NTP tools +Summary(pl.UTF-8): Narzędzia NTP Group: Applications/Networking Obsoletes: ntp-ntptrace %description tools -This package contains ntp tools: +This package contains NTP tools: - ntptrace: Trace a chain of NTP servers back to the primary source - ntp-wait: Wait for NTP server to synchronize +- calc_tickadj: Calculate optimal value for tick given ntp drift file + +%description tools -l pl.UTF-8 +Ten pakiet zawiera narzędzia NTP: +- ntptrace: śledzenie łańcucha serwerów NTP aż do oryginalnego źródła +- ntp-wait: oczekiwanie na synchronizację serwera NTP +- calc_tickadj: obliczenie optymalnej wartości dla pliku dryfu ntp %package doc-html Summary: HTML documentation for ntp Summary(pl.UTF-8): Dokumentacja HTML dla ntp Summary(pt_BR.UTF-8): Documentação adicional para o pacote ntp Group: Documentation +%if "%{_rpmversion}" >= "5" +BuildArch: noarch +%endif %description doc-html HTML documentation for ntp. @@ -179,120 +244,193 @@ Este pacote contém documentação adicional sobre o NTP versão 4. %patch1 -p1 %patch2 -p1 %patch3 -p1 -%patch4 -p0 -%patch5 -p1 -%patch6 -p1 -%patch7 -p0 +%{!?with_avahi:%patch4 -p1} -# FC patches -%patch101 -p1 +## FC patches +#%patch101 -p1 %patch102 -p1 -%patch103 -p1 +#%patch103 -p1 %patch104 -p1 -%patch106 -p1 +%patch105 -p1 %patch107 -p1 %patch108 -p1 -%patch109 -p1 %patch110 -p1 -%patch111 -p1 -%patch112 -p1 -%patch114 -p1 -%patch115 -p1 -%patch117 -p1 -%patch118 -p1 -%patch119 -p1 -%patch120 -p1 -%patch122 -p1 -%patch124 -p1 -%patch125 -p1 -%patch126 -p1 -%patch127 -p1 -%patch129 -p1 -%patch130 -p1 -%patch133 -p1 +#%patch111 -p1 -- obsolete? echo 'AM_CONDITIONAL([NEED_LIBOPTS], false)' >> configure.ac echo 'AM_CONDITIONAL([NEED_LIBOPTS], false)' >> sntp/configure.ac +%{__rm} sntp/m4/{lt*,libtool}.m4 sntp/libevent/m4/{lt*,libtool}.m4 + %build %{__libtoolize} -%{__aclocal} -I m4 -I libopts/m4 +%{__aclocal} -I sntp/m4 -I sntp/libopts/m4 -I sntp/libevent/m4 %{__autoconf} %{__automake} cd sntp %{__libtoolize} -%{__aclocal} -I libopts/m4 +%{__aclocal} -I m4 -I libopts/m4 -I libevent/m4 %{__autoconf} %{__automake} -cd .. +cd libevent +%{__libtoolize} +%{__aclocal} -I m4 +%{__autoconf} +%{__automake} +cd ../.. +CPPFLAGS="%{rpmcppflags} -I/usr/include/readline" %configure \ + --disable-silent-rules \ --with-binsubdir=sbin \ --enable-linuxcaps \ --enable-getifaddrs \ + %{?with_seccomp:--enable-libseccomp} \ + %{__with_without sntp} \ --enable-ipv6 \ - --with-crypto=openssl + --enable-ntp-signd \ + --with-lineeditlibs=readline \ + --with-crypto=openssl \ + --disable-local-libopts \ + --disable-local-libevent -%{__make} +%{__make} -j1 %install rm -rf $RPM_BUILD_ROOT -install -d $RPM_BUILD_ROOT{%{_sysconfdir},/etc/{rc.d/init.d,sysconfig,cron.hourly},%{_mandir}/man1} +install -d $RPM_BUILD_ROOT{%{_sysconfdir},%{_mandir}/man1,%{systemdunitdir}} \ + $RPM_BUILD_ROOT%{_libexecdir}/systemd/ntp-units.d \ + $RPM_BUILD_ROOT/etc/{rc.d/init.d,sysconfig,cron.hourly} %{__make} install \ DESTDIR=$RPM_BUILD_ROOT -cp -a %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/ntp.conf -cp -a %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/keys +cp -p %{SOURCE1} $RPM_BUILD_ROOT%{_sysconfdir}/ntp.conf +cp -p %{SOURCE2} $RPM_BUILD_ROOT%{_sysconfdir}/keys +cp -p %{SOURCE13} $RPM_BUILD_ROOT%{_sysconfdir}/ntp.leapseconds + install -p %{SOURCE3} $RPM_BUILD_ROOT/etc/rc.d/init.d/ntpd install -p %{SOURCE5} $RPM_BUILD_ROOT/etc/rc.d/init.d/ntpdate -cp -a %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/ntpd -cp -a %{SOURCE6} $RPM_BUILD_ROOT/etc/sysconfig/ntpdate -cp -a man/*.1 $RPM_BUILD_ROOT%{_mandir}/man1 +cp -p %{SOURCE4} $RPM_BUILD_ROOT/etc/sysconfig/ntpd +cp -p %{SOURCE6} $RPM_BUILD_ROOT/etc/sysconfig/ntpdate + +install -p %{SOURCE10} $RPM_BUILD_ROOT%{_sbindir}/ntpdate-wrapper +cp -p %{SOURCE11} $RPM_BUILD_ROOT%{systemdunitdir}/ntpd.service +cp -p %{SOURCE12} $RPM_BUILD_ROOT%{systemdunitdir}/ntpdate.service +echo 'ntpd.service' > \ + $RPM_BUILD_ROOT%{_libexecdir}/systemd/ntp-units.d/50-ntpd.list + +cp -p man/*.1 $RPM_BUILD_ROOT%{_mandir}/man1 + +install -d $RPM_BUILD_ROOT/var/lib/ntp +touch $RPM_BUILD_ROOT/var/lib/ntp/drift cat > $RPM_BUILD_ROOT/etc/cron.hourly/ntpdate <<'EOF' #!/bin/sh -/sbin/service ntpdate cronsettime +# Source function library. +. /etc/rc.d/init.d/functions + +# Source ntpdate configuration +. /etc/sysconfig/ntpdate + +is_yes "$NTPDATE_CRON" || exit 0 +exec %{_sbindir}/ntpdate-wrapper EOF +install -d $RPM_BUILD_ROOT%{mibdir} +cp -p ntpsnmpd/ntpv4-mib.mib $RPM_BUILD_ROOT%{mibdir} + +%{__rm} -r $RPM_BUILD_ROOT%{_docdir}/{ntp,sntp} + %clean rm -rf $RPM_BUILD_ROOT +%pre -n ntpd +%groupadd -g 246 ntp +%useradd -u 246 -d %{_sysconfdir} -g ntp -c "NTP Daemon" ntp + %post -n ntpd /sbin/chkconfig --add ntpd %service ntpd restart "NTP Daemon" +%systemd_post ntpd.service %preun -n ntpd if [ "$1" = "0" ]; then %service ntpd stop /sbin/chkconfig --del ntpd - rm -f /etc/ntp/drift + rm -f /var/lib/ntp/drift +fi +%systemd_preun ntpd.service + +%postun -n ntp +if [ "$1" = "0" ]; then + %userremove ntp + %groupremove ntp fi +%systemd_reload + +%pre -n ntpdate +%groupadd -g 246 ntp +%useradd -u 246 -d %{_sysconfdir} -g ntp -c "NTP Daemon" ntp %post -n ntpdate /sbin/chkconfig --add ntpdate %service ntpdate restart "NTP Date" +%systemd_post ntpdate.service %preun -n ntpdate if [ "$1" = "0" ]; then %service ntpdate stop /sbin/chkconfig --del ntpdate fi +%systemd_preun ntpdate.service + +%postun -n ntpdate +if [ "$1" = "0" ]; then + %userremove ntp + %groupremove ntp +fi +%systemd_reload + +%triggerun -n ntpd -- ntp < 4.2.4p8-3.14 +# Prevent preun from ntp from working +chmod a-x /etc/rc.d/init.d/ntpd + +%triggerpostun -n ntpd -- ntp < 4.2.4p8-3.14 +# Restore what triggerun removed +chmod 754 /etc/rc.d/init.d/ntpd +sed -i -e 's,/etc/ntp/drift,/var/lib/ntp/drift,' %{_sysconfdir}/ntp.conf +mv -f /etc/ntp/ntp.drift /var/lib/ntp/drift 2>/dev/null +mv -f /etc/ntp/drift /var/lib/ntp/drift 2>/dev/null +%service -q ntpd restart +%systemd_trigger ntpd.service +%systemd_post ntpdate + +%triggerpostun -n ntpd -- ntpd < 4.2.6p5-2 +%systemd_trigger ntpd.service -%triggerpostun -n ntpd -- ntp < 4.2.4p8-3.1 %triggerpostun -n ntpdate -- ntp-client < 4.2.4p8-3.2 if [ -f /etc/sysconfig/ntp.rpmsave ]; then cp -f /etc/sysconfig/ntpdate{,.rpmnew} mv -f /etc/sysconfig/ntp.rpmsave /etc/sysconfig/ntpdate fi +%systemd_trigger ntpdate.service + +%triggerpostun -n ntpdate -- ntpdate < 4.2.6p5-2 +%systemd_trigger ntpdate.service %files -n ntpd %defattr(644,root,root,755) %doc NEWS TODO WHERE-TO-START conf/*.conf COPYRIGHT %attr(750,root,root) %dir %{_sysconfdir} -%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/* +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/keys +%attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ntp.conf +%config(noreplace) %verify(not md5 mtime size) %{_sysconfdir}/ntp.leapseconds %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/ntpd %attr(754,root,root) /etc/rc.d/init.d/ntpd +%{systemdunitdir}/ntpd.service +# dir not handled by systemd in pld +#%{_libexecdir}/systemd/ntp-units.d/50-ntpd.list %attr(755,root,root) %{_sbindir}/ntpd %attr(755,root,root) %{_sbindir}/ntpdc %attr(755,root,root) %{_sbindir}/ntp-keygen @@ -300,28 +438,51 @@ fi %attr(755,root,root) %{_sbindir}/ntptime %attr(755,root,root) %{_sbindir}/sntp %attr(755,root,root) %{_sbindir}/tickadj +%attr(755,root,root) %{_sbindir}/update-leap %{_mandir}/man1/ntpd.1* %{_mandir}/man1/ntpdc.1* -%{_mandir}/man1/ntpdsim.1* %{_mandir}/man1/ntp-keygen.1* %{_mandir}/man1/ntpq.1* %{_mandir}/man1/ntptime.1* %{_mandir}/man1/sntp.1* +%{_mandir}/man1/update-leap.1* +%{_mandir}/man5/ntp.conf.5* +%{_mandir}/man5/ntp.keys.5* + +%dir %attr(770,root,ntp) /var/lib/ntp +%attr(640,ntp,ntp) %ghost /var/lib/ntp/drift %files -n ntpdate %defattr(644,root,root,755) %doc COPYRIGHT %attr(755,root,root) %{_sbindir}/ntpdate +%attr(755,root,root) %{_sbindir}/ntpdate-wrapper %attr(754,root,root) /etc/rc.d/init.d/ntpdate %attr(754,root,root) /etc/cron.hourly/ntpdate %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/ntpdate -%{_mandir}/man1/ntpdate* +%{systemdunitdir}/ntpdate.service +%{_mandir}/man1/ntpdate.1* + +%files -n mibs-ntp +%defattr(644,root,root,755) +%{mibdir}/ntpv4-mib.mib + +%files -n net-snmp-ntpd +%defattr(644,root,root,755) +%doc ntpsnmpd/README +%attr(755,root,root) %{_sbindir}/ntpsnmpd +%{_mandir}/man1/ntpsnmpd.1* %files tools %defattr(644,root,root,755) -%attr(755,root,root) %{_sbindir}/ntptrace +%attr(755,root,root) %{_sbindir}/calc_tickadj %attr(755,root,root) %{_sbindir}/ntp-wait -%{_mandir}/man1/ntptrace* +%attr(755,root,root) %{_sbindir}/ntptrace +%dir %{_datadir}/ntp +%{_datadir}/ntp/lib +%{_mandir}/man1/calc_tickadj.1* +%{_mandir}/man1/ntp-wait.1* +%{_mandir}/man1/ntptrace.1* %files doc-html %defattr(644,root,root,755)