net-misc/chrony: Drop s-s-d --background from init.d script (bug #566972 by Peter...
authorJeroen Roovers <jer@gentoo.org>
Fri, 4 Dec 2015 06:04:30 +0000 (07:04 +0100)
committerJeroen Roovers <jer@gentoo.org>
Fri, 4 Dec 2015 06:04:30 +0000 (07:04 +0100)
Package-Manager: portage-2.2.26

net-misc/chrony/chrony-2.2-r1.ebuild [new file with mode: 0644]
net-misc/chrony/chrony-9999.ebuild
net-misc/chrony/files/chronyd.init-r1 [new file with mode: 0644]

diff --git a/net-misc/chrony/chrony-2.2-r1.ebuild b/net-misc/chrony/chrony-2.2-r1.ebuild
new file mode 100644 (file)
index 0000000..04ce021
--- /dev/null
@@ -0,0 +1,114 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=5
+inherit eutils systemd toolchain-funcs
+
+DESCRIPTION="NTP client and server programs"
+HOMEPAGE="http://chrony.tuxfamily.org/"
+SRC_URI="http://download.tuxfamily.org/${PN}/${P/_/-}.tar.gz"
+LICENSE="GPL-2"
+SLOT="0"
+
+KEYWORDS="~amd64 ~arm ~hppa ~mips ~ppc ~ppc64 ~sparc ~x86"
+IUSE="caps +cmdmon ipv6 libedit +ntp +phc +pps readline +refclock +rtc selinux +adns"
+REQUIRED_USE="
+       ?? ( libedit readline )
+"
+
+CDEPEND="
+       caps? ( sys-libs/libcap )
+       libedit? ( dev-libs/libedit )
+       readline? ( >=sys-libs/readline-4.1-r4:= )
+"
+DEPEND="
+       ${CDEPEND}
+       sys-apps/texinfo
+"
+RDEPEND="
+       ${CDEPEND}
+       selinux? ( sec-policy/selinux-chronyd )
+"
+
+RESTRICT=test
+
+S="${WORKDIR}/${P/_/-}"
+
+src_prepare() {
+       sed -i \
+               -e 's:/etc/chrony\.:/etc/chrony/chrony.:g' \
+               -e 's:/var/run:/run:g' \
+               conf.c chrony.texi.in examples/* || die
+}
+
+src_configure() {
+       tc-export CC
+
+       local CHRONY_EDITLINE
+       # ./configure legend:
+       # --disable-readline : disable line editing entirely
+       # --without-readline : do not use sys-libs/readline (enabled by default)
+       # --without-editline : do not use dev-libs/libedit (enabled by default)
+       if ! use readline && ! use libedit; then
+               CHRONY_EDITLINE='--disable-readline'
+       else
+               CHRONY_EDITLINE+=" $(usex readline '' --without-readline)"
+               CHRONY_EDITLINE+=" $(usex libedit '' --without-editline)"
+       fi
+
+       # not an autotools generated script
+       local CHRONY_CONFIGURE="
+       ./configure \
+               $(usex caps '' --disable-linuxcaps) \
+               $(usex cmdmon '' --disable-cmdmon) \
+               $(usex ipv6 '' --disable-ipv6) \
+               $(usex ntp '' --disable-ntp) \
+               $(usex phc '' --disable-phc) \
+               $(usex pps '' --disable-pps) \
+               $(usex rtc '' --disable-rtc) \
+               $(usex refclock '' --disable-refclock) \
+               $(usex adns '' --disable-asyncdns) \
+               ${CHRONY_EDITLINE} \
+               ${EXTRA_ECONF} \
+               --docdir=/usr/share/doc/${PF} \
+               --chronysockdir=/run/chrony \
+               --infodir=/usr/share/info \
+               --mandir=/usr/share/man \
+               --prefix=/usr \
+               --sysconfdir=/etc/chrony \
+               --disable-sechash \
+               --without-nss \
+               --without-tomcrypt
+       "
+
+       # print the ./configure call to aid in future debugging
+       einfo ${CHRONY_CONFIGURE}
+       bash ${CHRONY_CONFIGURE} || die
+}
+
+src_compile() {
+       emake all docs
+}
+
+src_install() {
+       default
+
+       doinfo chrony.info*
+
+       newinitd "${FILESDIR}"/chronyd.init-r1 chronyd
+       newconfd "${FILESDIR}"/chronyd.conf chronyd
+
+       insinto /etc/${PN}
+       newins examples/chrony.conf.example1 chrony.conf
+
+       dodoc examples/*.example*
+
+       keepdir /var/{lib,log}/chrony
+
+       insinto /etc/logrotate.d
+       newins "${FILESDIR}"/chrony-2.2.logrotate chrony
+
+       systemd_newunit "${FILESDIR}"/chronyd.service-r2 chronyd.service
+       systemd_enable_ntpunit 50-chrony chronyd.service
+}
index 2dae405291b1b82ed5c4ae12b71fcf4e97ef9d5a..13709c01b0b11b317ee578dd036dce91ec3c3c40 100644 (file)
@@ -96,7 +96,7 @@ src_install() {
 
        doinfo chrony.info*
 
-       newinitd "${FILESDIR}"/chronyd.init chronyd
+       newinitd "${FILESDIR}"/chronyd.init-r1 chronyd
        newconfd "${FILESDIR}"/chronyd.conf chronyd
 
        insinto /etc/${PN}
diff --git a/net-misc/chrony/files/chronyd.init-r1 b/net-misc/chrony/files/chronyd.init-r1
new file mode 100644 (file)
index 0000000..80ec855
--- /dev/null
@@ -0,0 +1,70 @@
+#!/sbin/runscript
+# Copyright 1999-2013 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+depend() {
+       use dns
+}
+
+checkconfig() {
+       # Note that /etc/chrony/chrony.keys is *NOT* checked. This
+       # is because the user may have specified another key
+       # file, and we don't want to force the user to use that
+       # exact name for the key file.
+       if [ ! -f "${CFGFILE}" ] ; then
+               eerror "Please create ${CFGFILE} and the"
+               eerror "chrony key file (usually /etc/chrony/chrony.keys)"
+               eerror "by using the"
+               eerror ""
+               eerror "        chrony.conf.example"
+               eerror "        chrony.keys.example"
+               eerror ""
+               eerror "files (from the documentation directory)"
+               eerror "as templates."
+               return 1
+       else
+               # Actually, I tried it, and chrony seems to ignore the pidfile
+               # option. I'm going to leave it here anyway, since you never
+               # know if it might be handy
+               PIDFILE=`awk '/^ *pidfile/{print $2}' "${CFGFILE}"`
+       fi
+       return 0
+}
+
+setxtrarg() {
+       if [ -c /dev/rtc ]; then
+               grep -q '^rtcfile' "${CFGFILE}" && ARGS="${ARGS} -s"
+       fi
+       grep -q '^dumponexit$' "${CFGFILE}" && ARGS="${ARGS} -r"
+       return 0
+}
+
+start() {
+       checkconfig || return $?
+       setxtrarg
+
+       [ -n "${PIDFILE}" ] || PIDFILE=/run/chronyd.pid
+
+       ebegin "Starting chronyd"
+       start-stop-daemon \
+               --start \
+               --quiet \
+               --exec /usr/sbin/chronyd \
+               --pidfile "${PIDFILE}" \
+               -- -f "${CFGFILE}" ${ARGS}
+       eend $? "Failed to start chronyd"
+}
+
+stop() {
+       checkconfig || return $?
+
+       [ -n "${PIDFILE}" ] || PIDFILE=/run/chronyd.pid
+
+       ebegin "Stopping chronyd"
+       start-stop-daemon \
+               --stop \
+               --quiet \
+               --pidfile "${PIDFILE}"
+       eend $? "Failed to stop chronyd"
+}