summaryrefslogtreecommitdiffstats
path: root/main/openntpd
diff options
context:
space:
mode:
authorNatanael Copa <ncopa@alpinelinux.org>2009-07-23 18:24:11 +0000
committerNatanael Copa <ncopa@alpinelinux.org>2009-07-23 18:24:11 +0000
commit2d2ddf507bf1ae2f4cc595b23b8e018398cbe8dd (patch)
treea63d3b3b1c89018b5419358eed5c2bb0acf1cd92 /main/openntpd
parente374901731eb35599bd6735de4dd38560e3a79b8 (diff)
downloadaports-2d2ddf507bf1ae2f4cc595b23b8e018398cbe8dd.tar.bz2
aports-2d2ddf507bf1ae2f4cc595b23b8e018398cbe8dd.tar.xz
move core/* to main/
added maintainer to several packages as well
Diffstat (limited to 'main/openntpd')
-rw-r--r--main/openntpd/APKBUILD49
-rw-r--r--main/openntpd/openntpd-3.9p1_reconnect_on_sendto_EINVAL.diff43
-rw-r--r--main/openntpd/openntpd.conf.d7
-rw-r--r--main/openntpd/openntpd.pre-install7
-rw-r--r--main/openntpd/openntpd.rc41
5 files changed, 147 insertions, 0 deletions
diff --git a/main/openntpd/APKBUILD b/main/openntpd/APKBUILD
new file mode 100644
index 000000000..38c11ca51
--- /dev/null
+++ b/main/openntpd/APKBUILD
@@ -0,0 +1,49 @@
+# Maintainer: Natanael Copa <ncopa@alpinelinux.org>
+pkgname=openntpd
+pkgver=3.9_p1
+_myver=3.9p1
+pkgrel=4
+pkgdesc="Lightweight NTP server ported from OpenBSD"
+url=http://www.openntpd.org/
+install=openntpd.pre-install
+
+subpackages="openntpd-doc"
+depends=
+makedepends="openssl-dev"
+license=BSD
+source="
+ ftp://ftp.openbsd.org/pub/OpenBSD/OpenNTPD/openntpd-$_myver.tar.gz
+ openntpd-3.9p1_reconnect_on_sendto_EINVAL.diff
+ openntpd.conf.d
+ openntpd.rc
+ $install
+ "
+
+_prepare() {
+ cd "$srcdir/$pkgname-$_myver"
+ patch -p1 < ../openntpd-3.9p1_reconnect_on_sendto_EINVAL.diff
+ sed -i '/NTPD_USER/s:_ntp:ntp:' ntpd.h || return 1
+}
+
+_compile() {
+ cd "$srcdir/$pkgname-$_myver"
+ ./configure --prefix=/usr --mandir=/usr/share/man
+ make || return 1
+}
+
+_install() {
+ cd "$srcdir/$pkgname-$_myver"
+ make install DESTDIR="$pkgdir"
+ install -Dm755 ../openntpd.rc "$pkgdir/etc/init.d/ntpd"
+ install -Dm644 ../openntpd.conf.d "$pkgdir/etc/conf.d/ntpd"
+}
+
+
+build() {
+ _prepare && _compile && _install
+}
+md5sums="afc34175f38d08867c1403d9008600b3 openntpd-3.9p1.tar.gz
+ae2f708b860975b64126bb316aeb6641 openntpd-3.9p1_reconnect_on_sendto_EINVAL.diff
+e3eee9eb2ea092dfdf9d887cd6df5795 openntpd.conf.d
+5000453927b7ae9943d51194c1042355 openntpd.rc
+05349f95db78fb482798b2c6d1f9c61e openntpd.pre-install"
diff --git a/main/openntpd/openntpd-3.9p1_reconnect_on_sendto_EINVAL.diff b/main/openntpd/openntpd-3.9p1_reconnect_on_sendto_EINVAL.diff
new file mode 100644
index 000000000..adca55614
--- /dev/null
+++ b/main/openntpd/openntpd-3.9p1_reconnect_on_sendto_EINVAL.diff
@@ -0,0 +1,43 @@
+diff -Naur openntpd-3.9p1/client.c openntpd-3.9p1-fixed/client.c
+--- openntpd-3.9p1/client.c 2006-05-14 07:29:21.000000000 +0200
++++ openntpd-3.9p1-fixed/client.c 2006-10-11 02:41:44.000000000 +0200
+@@ -116,6 +116,7 @@
+ client_query(struct ntp_peer *p)
+ {
+ int tos = IPTOS_LOWDELAY;
++ int result;
+
+ if (p->addr == NULL && client_nextaddr(p) == -1) {
+ set_next(p, error_interval());
+@@ -163,9 +164,17 @@
+ p->query->msg.xmttime.fractionl = arc4random();
+ p->query->xmttime = gettime();
+
+- if (ntp_sendmsg(p->query->fd, NULL, &p->query->msg,
+- NTP_MSGSIZE_NOAUTH, 0) == -1) {
++ if ((result = ntp_sendmsg(p->query->fd, NULL, &p->query->msg,
++ NTP_MSGSIZE_NOAUTH, 0)) < 0) {
+ set_next(p, INTERVAL_QUERY_PATHETIC);
++ if (result == -2) {
++ /*
++ * got EINVAL in sendto(), probably the local socket
++ * address got invalidated -> force re-connect()
++ */
++ close(p->query->fd);
++ p->query->fd = -1;
++ }
+ return (-1);
+ }
+
+diff -Naur openntpd-3.9p1/ntp_msg.c openntpd-3.9p1-fixed/ntp_msg.c
+--- openntpd-3.9p1/ntp_msg.c 2006-05-14 07:29:21.000000000 +0200
++++ openntpd-3.9p1-fixed/ntp_msg.c 2006-10-11 02:41:49.000000000 +0200
+@@ -98,6 +98,8 @@
+ return (-1);
+ }
+ log_warn("sendto");
++ if (errno == EINVAL)
++ return (-2);
+ return (-1);
+ }
+
diff --git a/main/openntpd/openntpd.conf.d b/main/openntpd/openntpd.conf.d
new file mode 100644
index 000000000..6b938dc76
--- /dev/null
+++ b/main/openntpd/openntpd.conf.d
@@ -0,0 +1,7 @@
+# /etc/conf.d/ntpd: config file for openntpd's ntpd
+
+NTPD_HOME=/var/empty
+
+# See ntpd(8) man page ... some popular options:
+# -s Set the time immediately at startup
+NTPD_OPTS=""
diff --git a/main/openntpd/openntpd.pre-install b/main/openntpd/openntpd.pre-install
new file mode 100644
index 000000000..32c6f5129
--- /dev/null
+++ b/main/openntpd/openntpd.pre-install
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+# this user should be included in alpine-baselayout-1.2.
+# included here for backward compability.
+adduser -H -h /var/empty -s /bin/false -D ntp 2>/dev/null
+
+exit 0
diff --git a/main/openntpd/openntpd.rc b/main/openntpd/openntpd.rc
new file mode 100644
index 000000000..81648dc03
--- /dev/null
+++ b/main/openntpd/openntpd.rc
@@ -0,0 +1,41 @@
+#!/sbin/runscript
+# Copyright 1999-2004 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/net-misc/openntpd/files/openntpd.rc,v 1.7 2008/10/10 09:40:10 bangert Exp $
+
+depend() {
+ need net
+ after ntp-client
+ use dns logger
+}
+
+checkconfig() {
+ if [ ! -f /etc/ntpd.conf ] ; then
+ eerror "Could not find /etc/ntpd.conf!"
+ return 1
+ fi
+
+ if [ -x /usr/bin/getent ] ; then
+ if [ "`getent passwd ntp | cut -d: -f 6`" != "${NTPD_HOME}" ] ; then
+ eerror "Home directory of ntp needs to be ${NTPD_HOME}"
+ eerror "Please run 'usermod -d ${NTPD_HOME} ntp'"
+ return 1
+ fi
+ fi
+
+ return 0
+}
+
+start() {
+ checkconfig || return $?
+
+ ebegin "Starting ntpd"
+ start-stop-daemon --start --exec /usr/sbin/ntpd --name ntpd -- ${NTPD_OPTS}
+ eend $? "Failed to start ntpd"
+}
+
+stop() {
+ ebegin "Stopping ntpd"
+ start-stop-daemon --stop --exec /usr/sbin/ntpd --name ntpd --user root
+ eend $? "Failed to stop openntpd"
+}