summaryrefslogtreecommitdiffstats
path: root/abs
diff options
context:
space:
mode:
Diffstat (limited to 'abs')
-rw-r--r--abs/extra/ddclient/PKGBUILD12
-rw-r--r--abs/extra/ddclient/__changelog1
-rw-r--r--abs/extra/ddclient/ddclient-foreground.patch47
3 files changed, 55 insertions, 5 deletions
diff --git a/abs/extra/ddclient/PKGBUILD b/abs/extra/ddclient/PKGBUILD
index 4942d7b..77be4a8 100644
--- a/abs/extra/ddclient/PKGBUILD
+++ b/abs/extra/ddclient/PKGBUILD
@@ -4,7 +4,7 @@
pkgname=ddclient
pkgver=3.8.0
-pkgrel=2
+pkgrel=4
pkgdesc="Update dynamic DNS entries for accounts on many dynamic DNS services."
arch=('any')
url="http://ddclient.sourceforge.net/"
@@ -12,13 +12,11 @@ license=('GPL2')
depends=('perl' 'perl-io-socket-ssl')
backup=('etc/ddclient/ddclient.conf' 'etc/conf.d/ddclient')
install=ddclient.install
-source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.bz2 ddclient.rc ddclient.conf.d)
-md5sums=('6cac7a5eb1da781bfd4d98cef0b21f8e'
- '7035bf8132f3517a59167f61ee5e8b90'
- 'b8f39c82827776da948b76ef83544d33')
+source=(http://downloads.sourceforge.net/sourceforge/$pkgname/$pkgname-$pkgver.tar.bz2 ddclient.rc ddclient.conf.d ddclient-foreground.patch)
build() {
cd ${srcdir}/ddclient-${pkgver}
+ patch < ${srcdir}/ddclient-foreground.patch
# core files
install -D -m755 ddclient ${pkgdir}/usr/sbin/ddclient
@@ -33,3 +31,7 @@ build() {
install -D -m644 sample-etc_dhcpc_dhcpcd-eth0.exe ${pkgdir}/etc/ddclient/samples/sample-etc_dhcpc_dhcpcd-eth0.exe
install -D -m644 sample-etc_ppp_ip-up.local ${pkgdir}/etc/ddclient/samples/sample-etc_ppp_ip-up.local
}
+md5sums=('6cac7a5eb1da781bfd4d98cef0b21f8e'
+ '7035bf8132f3517a59167f61ee5e8b90'
+ 'b8f39c82827776da948b76ef83544d33'
+ 'd8ffc95f98f9afcb4a06a1e192220e35')
diff --git a/abs/extra/ddclient/__changelog b/abs/extra/ddclient/__changelog
new file mode 100644
index 0000000..64ae3f0
--- /dev/null
+++ b/abs/extra/ddclient/__changelog
@@ -0,0 +1 @@
+add ddclient-foreground.patch. Without this ddclient will not work with runit
diff --git a/abs/extra/ddclient/ddclient-foreground.patch b/abs/extra/ddclient/ddclient-foreground.patch
new file mode 100644
index 0000000..a814ede
--- /dev/null
+++ b/abs/extra/ddclient/ddclient-foreground.patch
@@ -0,0 +1,47 @@
+--- ../ddclient-orig/ddclient 2009-10-19 22:45:15.000000000 +1030
++++ ddclient 2009-10-19 22:50:11.000000000 +1030
+@@ -307,6 +307,7 @@
+ my %variables = (
+ 'global-defaults' => {
+ 'daemon' => setv(T_DELAY, 0, 0, 1, 0, interval('60s')),
++ 'foreground' => setv(T_BOOL, 0, 0, 1, 0, undef),
+ 'file' => setv(T_FILE, 0, 0, 1, "$etc$program.conf", undef),
+ 'cache' => setv(T_FILE, 0, 0, 1, "$cachedir$program.cache", undef),
+ 'pid' => setv(T_FILE, 0, 0, 1, "", undef),
+@@ -535,6 +536,7 @@
+ "usage: ${program} [options]",
+ "options are:",
+ [ "daemon", "=s", "-daemon delay : run as a daemon, specify delay as an interval." ],
++ [ "foreground", "!", "-foreground : do not fork" ],
+ [ "proxy", "=s", "-proxy host : use 'host' as the HTTP proxy" ],
+ [ "server", "=s", "-server host : update DNS information on 'host'" ],
+ [ "protocol", "=s", "-protocol type : update protocol used" ],
+@@ -623,7 +625,10 @@
+ $SIG{'HUP'} = sub { $caught_hup = 1; };
+ $SIG{'TERM'} = sub { $caught_term = 1; };
+ $SIG{'KILL'} = sub { $caught_kill = 1; };
+-if (opt('daemon') && !opt('force')) {
++# don't fork() if foreground or force is on
++if (opt('foreground') || opt('force')) {
++ ;
++} elsif (opt('daemon')) {
+ $SIG{'CHLD'} = 'IGNORE';
+ my $pid = fork;
+ if ($pid < 0) {
+@@ -633,12 +638,15 @@
+ exit 0;
+ }
+ $SIG{'CHLD'} = 'DEFAULT';
+- $opt{'syslog'} = 1;
+ open(STDOUT, ">/dev/null");
+ open(STDERR, ">/dev/null");
+ open(STDIN, "</dev/null");
++}
+
++# write out the pid file if we're daemon'ized
++if(opt('daemon')) {
+ write_pid();
++ $opt{'syslog'} = 1;
+ }
+
+ umask 077;