diff options
Diffstat (limited to 'extra/ifplugd')
-rw-r--r-- | extra/ifplugd/PKGBUILD | 50 | ||||
-rw-r--r-- | extra/ifplugd/ifplugd | 13 | ||||
-rwxr-xr-x | extra/ifplugd/ifplugd-daemon | 7 | ||||
-rw-r--r-- | extra/ifplugd/ifplugd-fix-return-value.patch | 12 | ||||
-rw-r--r-- | extra/ifplugd/ifplugd.install | 13 | ||||
-rw-r--r-- | extra/ifplugd/ifplugd.systemd | 11 |
6 files changed, 69 insertions, 37 deletions
diff --git a/extra/ifplugd/PKGBUILD b/extra/ifplugd/PKGBUILD index 1487fbef6..baa62dbb6 100644 --- a/extra/ifplugd/PKGBUILD +++ b/extra/ifplugd/PKGBUILD @@ -1,31 +1,38 @@ -# $Id: PKGBUILD 158689 2012-05-07 09:54:25Z dreisner $ +# $Id: PKGBUILD 165791 2012-08-30 09:38:27Z thomas $ # Contributor: Manolis Tzanidakis # Contributor: kevin <kevin@archlinux.org> # Maintainer: pkgname=ifplugd pkgver=0.28 -pkgrel=11 +pkgrel=13 pkgdesc="A daemon which brings up/down network interfaces upon cable insertion/removal." arch=('i686' 'x86_64' 'mips64el') url="http://0pointer.de/lennart/projects/ifplugd" +install=ifplugd.install license=('GPL2') -depends=('libdaemon' 'bash' 'net-tools') -backup=('etc/ifplugd/ifplugd.conf' 'etc/ifplugd/ifplugd.action') +depends=('libdaemon' 'bash') +backup=('etc/ifplugd/ifplugd.conf') options=('!makeflags') -source=($url/${pkgname}-${pkgver}.tar.gz 'ifplugd' 'ifplugd.action' 'ifplugd-0.28-interface.patch' 'ifdown.01-route.sh' 'ifup.01-route.sh' 'ifup.02-ntpdate.sh') +source=($url/${pkgname}-${pkgver}.tar.gz + ifplugd-0.28-interface.patch + ifplugd-fix-return-value.patch + ifplugd + ifplugd-daemon + ifplugd.systemd) md5sums=('df6f4bab52f46ffd6eb1f5912d4ccee3' - '2281cd3eda9e3403857863e1a1bc00be' - '6f98767c4ea2cf0580f73ced81efd21a' '54eb22844b5aeed161c0b80aa9008570' - 'd6ce6c7bd481a0b3944c944c5b277c0b' - 'c35f0a637911b747f8dc3bd3c6156a1b' - 'f8690ee18a5ca72555585ee96826c2cf') + 'f26dbd7597d9d637f0b2b104b11ab820' + '1ea9aa64415a5a9e27b84634cd08a7f2' + 'f2e8a37af52b79ee0e3c5bcc2470ce10' + '3dc2ce45d0e12d155ecc7a5bc9e3ee04') build() { cd ${srcdir}/${pkgname}-${pkgver} - patch -p0 -i $srcdir/ifplugd-0.28-interface.patch - ./configure --prefix=/usr --mandir=/usr/share/man --sysconfdir=/etc \ + patch -p0 -i ${srcdir}/ifplugd-0.28-interface.patch + patch -p1 -i ${srcdir}/ifplugd-fix-return-value.patch + sed 's|/var/run|/run|' -i src/ifplugd.c + ./configure --prefix=/usr --sbindir=/usr/bin --mandir=/usr/share/man --sysconfdir=/etc \ --with-initdir=/etc/rc.d --disable-xmltoman --disable-subversion --disable-lynx make } @@ -34,20 +41,11 @@ package() { cd ${srcdir}/${pkgname}-${pkgver} make DESTDIR=${pkgdir} install - # replace INTERFACES with NET_IFS since AL already uses it in /etc/rc.conf - sed -i "s:INTERFACES:NET_IFS:g" \ - ${pkgdir}/etc/ifplugd/ifplugd.conf - # replace the default init script & action files with ours. install -D -m755 ${srcdir}/ifplugd ${pkgdir}/etc/rc.d/ifplugd - install -D -m755 ${srcdir}/ifplugd.action \ - ${pkgdir}/etc/ifplugd/ifplugd.action - - install -Dm755 ${srcdir}/ifdown.01-route.sh \ - ${pkgdir}/etc/ifplugd/ifdown.d/01-route.sh - install -Dm755 ${srcdir}/ifup.01-route.sh \ - ${pkgdir}/etc/ifplugd/ifup.d/01-route.sh - install -Dm755 ${srcdir}/ifup.02-ntpdate.sh \ - ${pkgdir}/etc/ifplugd/ifup.d/02-ntpdate.sh + install -D -m755 ${srcdir}/ifplugd-daemon ${pkgdir}/usr/bin/ifplugd-daemon + # remove default action script + rm -f ${pkgdir}/etc/ifplugd/ifplugd.action + # install systemd unit + install -D -m644 ${srcdir}/ifplugd.systemd ${pkgdir}/usr/lib/systemd/system/ifplugd@.service } - diff --git a/extra/ifplugd/ifplugd b/extra/ifplugd/ifplugd index f7c34ade5..354238fe2 100644 --- a/extra/ifplugd/ifplugd +++ b/extra/ifplugd/ifplugd @@ -16,14 +16,7 @@ PID=$(pidof -o %PPID ifplugd) [[ -r $cfg ]] && . "$cfg" # discover interfaces to monitor -# (replacing INTERFACES with NET_IFS, since AL -# already uses it in /etc/rc.conf) -if [[ $NET_IFS ]]; then - net_ifs=($NET_IFS) -else - net_ifs=(/sys/class/net/!(lo)) - net_ifs=("${net_ifs[@]##*/}") -fi +net_ifs=($INTERFACES) case $1 in start) @@ -32,9 +25,7 @@ case $1 in for nic in "${net_ifs[@]}"; do # only start if a PID doesn't already exist if [[ ! -f /var/run/ifplugd.$nic.pid ]]; then - args=ARGS_$nic - [[ -z ${!args} ]] && args=$ARGS || args=${!args} - ifplugd -i "$nic" $args + /usr/bin/ifplugd-daemon $nic # use presence of PID file to check for start success [[ -f /var/run/ifplugd.$nic.pid ]] || (( ++err )) diff --git a/extra/ifplugd/ifplugd-daemon b/extra/ifplugd/ifplugd-daemon new file mode 100755 index 000000000..e21f4afbd --- /dev/null +++ b/extra/ifplugd/ifplugd-daemon @@ -0,0 +1,7 @@ +#!/bin/bash + +. /etc/ifplugd/ifplugd.conf + +args=ARGS_$1 +[[ -z ${!args} ]] && args=$ARGS || args=${!args} +/usr/bin/ifplugd -i "$1" $args diff --git a/extra/ifplugd/ifplugd-fix-return-value.patch b/extra/ifplugd/ifplugd-fix-return-value.patch new file mode 100644 index 000000000..1b7d04af6 --- /dev/null +++ b/extra/ifplugd/ifplugd-fix-return-value.patch @@ -0,0 +1,12 @@ +diff -Nur ifplugd-0.28.orig/src/ifplugd.c ifplugd-0.28/src/ifplugd.c +--- ifplugd-0.28.orig/src/ifplugd.c 2005-06-04 21:21:51.000000000 +0200 ++++ ifplugd-0.28/src/ifplugd.c 2012-08-29 21:51:53.137644163 +0200 +@@ -447,7 +447,7 @@ + goto finish; + + if (send_retval && daemonize && wait_on_fork) { +- char c = status == IFSTATUS_UP ? 2 : (status == IFSTATUS_DOWN ? 3 : 1); ++ char c = status == IFSTATUS_UP ? 1 : (status == IFSTATUS_DOWN ? 2 : 3); + daemon_retval_send(c); + send_retval = 0; + } diff --git a/extra/ifplugd/ifplugd.install b/extra/ifplugd/ifplugd.install new file mode 100644 index 000000000..c061d8c31 --- /dev/null +++ b/extra/ifplugd/ifplugd.install @@ -0,0 +1,13 @@ +post_upgrade() { + if [ $(vercmp $2 0.28-12) -lt 0 ]; then + cat << "EOF" +* When used with initscripts, /etc/ifplugd/ifplugd.conf now uses + INTERFACES= again instead of NET_IFS=. +* This package no longer provides a default ifplugd.action script. +* To use ifplugd with systemd, run + systemctl enable ifplugd@eth0.service +EOF + fi +} + +# vim:set ts=2 sw=2 et: diff --git a/extra/ifplugd/ifplugd.systemd b/extra/ifplugd/ifplugd.systemd new file mode 100644 index 000000000..4d407be9e --- /dev/null +++ b/extra/ifplugd/ifplugd.systemd @@ -0,0 +1,11 @@ +[Unit] +Description=Daemon which acts upon network cable insertion/removal + +[Service] +Type=forking +PIDFile=/run/ifplugd.%i.pid +ExecStart=/usr/bin/ifplugd-daemon %i +SuccessExitStatus=0 1 2 + +[Install] +WantedBy=multi-user.target |