Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Step:15
ntp
ntp.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File ntp.spec of Package ntp
# # spec file for package ntp # # 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. # Please submit bugfixes or comments via http://bugs.opensuse.org/ # #Compat macro for new _fillupdir macro introduced in Nov 2017 %if ! %{defined _fillupdir} %define _fillupdir /var/adm/fillup-templates %endif %define ntpfaqversion 3.4 Name: ntp Version: 4.2.8p17 Release: 0 Summary: Network Time Protocol daemon (version 4) License: (MIT and BSD-3-Clause and BSD-4-Clause) and GPL-2.0 Group: Productivity/Networking/Other Url: http://www.ntp.org/ # main source Source0: http://www.eecis.udel.edu/~ntp/ntp_spool/ntp4/ntp-4.2/ntp-%{version}.tar.gz # configuration Source1: conf.logrotate.ntp Source2: conf.ntp.conf Source3: conf.ntpd.service Source4: conf.sysconfig.ntp Source5: conf.sysconfig.syslog-ntp Source6: conf.ntp.reg Source7: %{name}.firewall Source8: conf.start-ntpd Source9: conf.ntp-wait.service # documentation Source10: NTP-FAQ-%{ntpfaqversion}.tar.bz2 Source12: README.SUSE Source13: ntptime.8.gz Source14: ntp.xml Source16: ntp.NetworkManager Patch1: ntp-segfault_on_invalid_device.patch Patch10: ntp-strcat.patch Patch11: ntp-4.2.6p2-seed_file.patch Patch15: bnc#506908.diff Patch16: MOD_NANO.diff Patch18: bnc#574885.diff Patch23: ntp-openssl-version.patch Patch27: ntp-netlink.patch Patch29: ntp-pathfind.patch Patch30: ntp-move-kod-file.patch Patch33: ntp-sntp-libevent.patch Patch35: ntp-clarify-interface.patch BuildRequires: avahi-compat-mDNSResponder-devel BuildRequires: fdupes BuildRequires: libcap-devel BuildRequires: libevent-devel BuildRequires: openssl-devel %if 0%{?suse_version} > 1320 || 0%{?sle_version} >= 120200 BuildRequires: pps-tools-devel %endif BuildRequires: readline-devel BuildRequires: pkgconfig(systemd) Requires: /bin/logger Requires: timezone Requires(pre): %fillup_prereq Requires(pre): %{_bindir}/chkconfig Requires(pre): %{_bindir}/diff Requires(pre): %{_bindir}/grep Requires(pre): pwdutils Requires(post): /usr/bin/base64 Requires(post): /usr/bin/gawk Suggests: logrotate Provides: ntp-daemon Provides: xntp = %{version} Provides: xntp3 = %{version} Obsoletes: xntp < %{version} Obsoletes: xntp3 < %{version} BuildRoot: %{_tmppath}/%{name}-%{version}-build %{?systemd_requires} Conflicts: openntpd %description The Network Time Protocol (NTP) is used to synchronize the time of a computer client or server to another server or reference time source, such as a radio, satellite receiver, or modem. Ntpd is an operating system daemon that sets and maintains the system time-of-day synchronized with Internet standard time servers. %package doc Summary: Additional Package Documentation for ntp Group: Documentation/Other Provides: ntpdoc = %{version} Provides: xntp-doc = %{version} Provides: xntpdoc = %{version} Obsoletes: ntpdoc < %{version} Obsoletes: xntp-doc < %{version} Obsoletes: xntpdoc < %{version} %description doc The complete set of documentation for building and configuring an NTP server or client. The documentation is in the form of HTML files suitable for browsing and contains links to additional documentation at various web sites. What about NTP? Understanding and using the Network Time Protocol (A first try on a non-technical Mini-HOWTO and FAQ on NTP). Edited by Ulrich Windl and David Dalton. %prep %setup -q -n ntp-%{version} # unpack ntp-faq tar -x -C html -j -f %{SOURCE10} %patch1 # copy README.SUSE cp %{SOURCE12} . %patch10 -p1 %patch11 -p1 %patch15 %patch16 %patch18 %patch23 %patch27 %patch29 %patch30 %patch33 %patch35 # fix DOS line breaks sed -i 's/\r//g' html/scripts/{footer.txt,style.css} %build export RPM_OPT_FLAGS="$RPM_OPT_FLAGS -W -DOPENSSL_LOAD_CONF -Wall -Wstrict-prototypes -Wpointer-arith -Wno-unused-parameter -fno-strict-aliasing -fstack-protector" %ifarch alpha s390x export RPM_OPT_FLAGS="$RPM_OPT_FLAGS -O0" %endif %ifarch ia64 RPM_OPT_FLAGS="$RPM_OPT_FLAGS -ffast-math" %endif export CFLAGS="$RPM_OPT_FLAGS -fPIE" export LDFLAGS="-pie" %configure \ --with-binsubdir=bin \ --bindir=%{_sbindir} \ --htmldir=%{_docdir}/ntp-doc \ --disable-debugging \ --enable-parse-clocks \ --enable-all-clocks \ --enable-linuxcaps \ --enable-ipv6 \ --with-sntp \ --enable-ntp-signd \ --disable-listen-read-drop \ --with-lineeditlibs=readline \ --with-crypto=openssl \ --with-openssl-libdir=%{_libdir} \ --with-openssl-incdir=%{_includedir} \ --disable-thread-support \ --without-threads \ --enable-leap-smear \ --enable-ntp-signd make %{?_smp_mflags} %install make DESTDIR=%{buildroot} install %{?_smp_mflags} # Change permissions chmod 644 html/pic/neoclock4x.gif %fdupes -s html # # default configuration # install -d %{buildroot}%{_localstatedir}/lib/ntp/{drift,etc,var/{lib,run/ntp},dev} install -d %{buildroot}%{_localstatedir}/run ln -s ../.. %{buildroot}%{_localstatedir}/lib/ntp%{_localstatedir}/lib/ntp ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcntpd ln -s %{_sbindir}/service %{buildroot}%{_sbindir}/rcntp-wait install -m 644 -D %{SOURCE1} %{buildroot}%{_sysconfdir}/logrotate.d/ntp install -m 600 -D %{SOURCE2} %{buildroot}%{_sysconfdir}/ntp.conf install -m 600 -D %{SOURCE2} %{buildroot}%{_localstatedir}/lib/ntp%{_sysconfdir}/ntp.conf.iburst # # boot scripts # install -m 0644 -D %{SOURCE3} %{buildroot}/%{_unitdir}/ntpd.service install -m 0644 -D %{SOURCE9} %{buildroot}/%{_unitdir}/ntp-wait.service install -d %{buildroot}%{_prefix}/sbin install -m 755 -D %{SOURCE8} %{buildroot}%{_sbindir}/start-ntpd %__install -d %{buildroot}/usr/lib/initscripts/legacy-actions/ntpd for f in ntptimeset addserver; do F=%{buildroot}/usr/lib/initscripts/legacy-actions/ntpd/$f cat >$F <<-EOF #!/bin/bash exec /usr/sbin/start-ntpd $f "\$@" EOF chmod 755 $F done # # fillup sysconfig.ntp # install -m 644 -D %{SOURCE4} %{buildroot}%{_fillupdir}/sysconfig.ntp install -m 644 -D %{SOURCE5} %{buildroot}%{_fillupdir}/sysconfig.syslog-ntp # # install SLP reg file # install -m 644 -D %{SOURCE6} %{buildroot}%{_sysconfdir}/slp.reg.d/ntp.reg # # Install NetworkManager hook # install -m 755 -D %{SOURCE16} %{buildroot}%{_sysconfdir}/NetworkManager/dispatcher.d/ntp # # man pages # install -m 644 %{S:13} %{buildroot}/%{_mandir}/man8 # # firewall # install -d %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/ install -m 644 %{SOURCE7} %{buildroot}%{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/%{name} # # Logfile # install -d %{buildroot}%{_localstatedir}/log/ touch %{buildroot}%{_localstatedir}/log/ntp # # service xml # install -d %{buildroot}%{_datadir}/omc/svcinfo.d/ install -m 644 %{SOURCE14} %{buildroot}%{_datadir}/omc/svcinfo.d/ install -m 755 scripts/ntp-wait/ntp-wait %{buildroot}%{_sbindir}/ install -d %{buildroot}/var/lib/ntp install -m 644 /dev/null %{buildroot}/var/lib/ntp/kod %pre %{_sbindir}/groupadd -r ntp 2> /dev/null || : %{_sbindir}/useradd -r -o -g ntp -u 74 -s /bin/false -c "NTP daemon" -d %{_localstatedir}/lib/ntp ntp 2> /dev/null || : %{_sbindir}/usermod -g ntp ntp 2>/dev/null || : test -L %{_localstatedir}/run/ntp || rm -rf %{_localstatedir}/run/ntp && : %service_add_pre ntp.service ntpd.service %service_add_pre ntp-wait.service if [ $FIRST_ARG -ne 1 -a ! -e "%{_localstatedir}/lib/systemd/migrated/ntpd" -a -e %{_localstatedir}/lib/systemd/sysv-convert/database ]; then sed -i -e 's,ntp\t,ntpd\t,g' %{_localstatedir}/lib/systemd/sysv-convert/database fi %preun %service_del_preun ntpd.service %service_del_preun ntp-wait.service # no update? Then remove these files that aren't owned by the package if [ ${FIRST_ARG:-0} -eq 0 ]; then test -e %{_localstatedir}/lib/ntp/drift/ntp.drift && rm -f %{_localstatedir}/lib/ntp/drift/ntp.drift rm -f %{_localstatedir}/lib/ntp%{_sysconfdir}/* 2>/dev/null test -e %{_localstatedir}/log/ntp && rm -f %{_localstatedir}/log/ntp fi %post getntpconf() { # Get the value of a single-value ntp.conf directive, first match wins. awk 'NF >= 2 && $1 == option { print $2; exit } ' "option=$1" $NTPCONF } keyexists() { # Check whether a key with the given ID exists in the ntp keys file. awk '$1 == keyno {found = 1} END {exit !found}' "keyno=$1" $KEYSFILE } add_trustedkey() { # Merge the given key ID into the trustedkey directive. # Add the directive if it does not yet exist. FILE=$(mktemp -p /etc) gawk ' NF >= 2 && $1 == "trustedkey" { n = split($0, a) for (i = 1; i <= n; i++) { if (a[i] == newkey) newkey = ""; if (a[i] ~ /^#/ && newkey) { $(++j) = newkey; newkey = "" } $(++j) = a[i]; } if (newkey) { $(++j) = newkey; newkey = "" } } { print } ENDFILE { if (newkey) { print "trustedkey", newkey } } ' "newkey=$1" $NTPCONF > $FILE if ! cmp --quiet $FILE $NTPCONF; then cat $FILE > $NTPCONF fi rm $FILE } NTPCONF=/etc/ntp.conf KEYSFILE=$(getntpconf keys) if test -z "$KEYSFILE"; then KEYSFILE=/etc/ntp.keys echo "keys $KEYSFILE" >> $NTPCONF fi if [ ! -f $KEYSFILE ]; then FILE=$(mktemp -p /etc) chmod 0640 $FILE chown root:ntp $FILE mv $FILE $KEYSFILE fi CONTROLKEY=$(getntpconf controlkey) REQUESTKEY=$(getntpconf requestkey) if test -z "$CONTROLKEY"; then if test -n "$REQUESTKEY"; then CONTROLKEY=$REQUESTKEY else for (( CONTROLKEY = 1; CONTROLKEY < 65535; CONTROLKEY++ )); do keyexists $CONTROLKEY || break done fi echo "controlkey $CONTROLKEY" >> $NTPCONF fi if test -z "$REQUESTKEY"; then REQUESTKEY=$CONTROLKEY; echo "requestkey $REQUESTKEY" >> $NTPCONF fi for KEYNO in $REQUESTKEY $CONTROLKEY; do if ! keyexists $KEYNO; then KEY=$(head -c 15 /dev/urandom | base64) echo "$KEYNO SHA1 $KEY" >> $KEYSFILE fi done add_trustedkey $REQUESTKEY add_trustedkey $CONTROLKEY # update from previous permissions if [ -f %{_sysconfdir}/ntp.conf ]; then chown root:ntp %{_sysconfdir}/ntp.conf fi if [ -f %{_sysconfdir}/ntp.keys ]; then chown root:ntp %{_sysconfdir}/ntp.keys fi if [ -f %{_localstatedir}/lib/ntp%{_sysconfdir}/ntp.conf.iburst ]; then chown --from=ntp:root root:ntp %{_localstatedir}/lib/ntp%{_sysconfdir}/ntp.conf.iburst fi %{fillup_only -n ntp } %{fillup_only -n syslog } if [ ! -f %{_localstatedir}/log/ntp ]; then touch %{_localstatedir}/log/ntp chmod 644 %{_localstatedir}/log/ntp fi %service_add_post ntpd.service %service_add_post ntp-wait.service if [ ! -e "%{_localstatedir}/lib/systemd/migrated/ntpd" ]; then touch %{_localstatedir}/lib/systemd/migrated/ntpd fi %postun %service_del_postun ntpd.service %service_del_postun ntp-wait.service %files %defattr(-,root,root) %doc COPYRIGHT ChangeLog NEWS README* TODO WHERE-TO-START conf %attr(0640,root,ntp) %config(noreplace) %{_sysconfdir}/ntp.conf %dir %{_sysconfdir}/slp.reg.d %{_unitdir}/ntpd.service %{_unitdir}/ntp-wait.service %config(noreplace) %{_sysconfdir}/slp.reg.d/ntp.reg %config %{_sysconfdir}/logrotate.d/ntp %config %{_sysconfdir}/sysconfig/SuSEfirewall2.d/services/ntp # own /etc/NetworkManager so we don't have to BuildDepend on NM %dir %{_sysconfdir}/NetworkManager %dir %{_sysconfdir}/NetworkManager/dispatcher.d %config %{_sysconfdir}/NetworkManager/dispatcher.d/ntp %{_sbindir}/* %{_datadir}/ntp %if 0%{?suse_version} > 1310 /usr/lib/initscripts/legacy-actions/ntpd %else /usr/lib/initscripts %endif %{_localstatedir}/lib/ntp %attr(0640,root,ntp) %config(noreplace) %{_localstatedir}/lib/ntp%{_sysconfdir}/ntp.conf.iburst %attr(0755,ntp,ntp) %dir %{_localstatedir}/lib/ntp/drift %{_mandir}/man1/* %{_mandir}/man5/* %{_mandir}/man8/* %{_fillupdir}/* %attr(0755,ntp,root) %{_localstatedir}/lib/ntp%{_localstatedir}/run/ntp %ghost %config(noreplace) %{_localstatedir}/log/ntp %{_datadir}/omc/svcinfo.d/ntp.xml /var/lib/ntp %files doc %defattr(-,root,root) %doc %{_docdir}/ntp-doc %changelog
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor