summaryrefslogtreecommitdiff
path: root/testing/dhcpcd
diff options
context:
space:
mode:
authorroot <root@rshg054.dnsready.net>2012-08-02 00:01:47 +0000
committerroot <root@rshg054.dnsready.net>2012-08-02 00:01:47 +0000
commite8f5b2ea6983e7a97c1640e9e211f356b8b5d21b (patch)
treef454ed3270ca5f6171ffc277c784aaecf9ddb6d1 /testing/dhcpcd
parenta71961a43ef48f47d3575915f63099308a18a263 (diff)
Thu Aug 2 00:01:47 UTC 2012
Diffstat (limited to 'testing/dhcpcd')
-rw-r--r--testing/dhcpcd/0001-Set-hostname-via-proc-if-file-is-available.patch33
-rw-r--r--testing/dhcpcd/0001-set-MTU-via-sysfs-if-file-is-available.patch61
-rw-r--r--testing/dhcpcd/PKGBUILD55
-rw-r--r--testing/dhcpcd/dhcpcd.conf.d6
-rw-r--r--testing/dhcpcd/dhcpcd.service13
-rw-r--r--testing/dhcpcd/remove_ifconfig.patch20
6 files changed, 188 insertions, 0 deletions
diff --git a/testing/dhcpcd/0001-Set-hostname-via-proc-if-file-is-available.patch b/testing/dhcpcd/0001-Set-hostname-via-proc-if-file-is-available.patch
new file mode 100644
index 000000000..4420d0b63
--- /dev/null
+++ b/testing/dhcpcd/0001-Set-hostname-via-proc-if-file-is-available.patch
@@ -0,0 +1,33 @@
+From d345b36b483fec8fb2def5f3acdc2d3c5faa94eb Mon Sep 17 00:00:00 2001
+From: Dan McGee <dan@archlinux.org>
+Date: Sun, 19 Jun 2011 16:04:25 -0500
+Subject: [PATCH] Set hostname via /proc if file is available
+
+On Linux, the hostname can be set via this file if available, precluding
+the need for a `hostname` binary.
+
+Signed-off-by: Dan McGee <dan@archlinux.org>
+---
+ dhcpcd-hooks/30-hostname | 6 +++++-
+ 1 files changed, 5 insertions(+), 1 deletions(-)
+
+diff --git a/dhcpcd-hooks/30-hostname b/dhcpcd-hooks/30-hostname
+index 65d1a13..af94262 100644
+--- a/dhcpcd-hooks/30-hostname
++++ b/dhcpcd-hooks/30-hostname
+@@ -21,7 +21,11 @@ need_hostname()
+ try_hostname()
+ {
+ if valid_domainname "$1"; then
+- hostname "$1"
++ if [ -w /proc/sys/kernel/hostname ]; then
++ echo "$1" > /proc/sys/kernel/hostname
++ else
++ hostname "$1"
++ fi
+ else
+ syslog err "Invalid hostname: $1"
+ fi
+--
+1.7.5.4
+
diff --git a/testing/dhcpcd/0001-set-MTU-via-sysfs-if-file-is-available.patch b/testing/dhcpcd/0001-set-MTU-via-sysfs-if-file-is-available.patch
new file mode 100644
index 000000000..7e78ecd0d
--- /dev/null
+++ b/testing/dhcpcd/0001-set-MTU-via-sysfs-if-file-is-available.patch
@@ -0,0 +1,61 @@
+From 950c00d1b183796034d227ef47a90eb248d79b72 Mon Sep 17 00:00:00 2001
+From: Dave Reisner <d@falconindy.com>
+Date: Tue, 21 Jun 2011 09:32:47 -0400
+Subject: [PATCH] set MTU via sysfs if file is available
+
+On Linux, a network interface's MTU can be set by writing to
+/sys/class/net/$interface/mtu, which removes the dependency on ifconfig.
+
+Signed-off-by: Dave Reisner <d@falconindy.com>
+---
+ dhcpcd-hooks/10-mtu | 4 ++--
+ dhcpcd-run-hooks.in | 11 +++++++++++
+ 2 files changed, 13 insertions(+), 2 deletions(-)
+
+diff --git a/dhcpcd-hooks/10-mtu b/dhcpcd-hooks/10-mtu
+index 639697c..8763930 100644
+--- a/dhcpcd-hooks/10-mtu
++++ b/dhcpcd-hooks/10-mtu
+@@ -7,7 +7,7 @@ if [ "$reason" = PREINIT -a -e "$mtu_dir/$interface" ]; then
+ elif [ -n "$new_interface_mtu" ] && $if_up; then
+ # The smalled MTU dhcpcd can work with is 576
+ if [ "$new_interface_mtu" -ge 576 ]; then
+- if ifconfig "$interface" mtu "$new_interface_mtu"; then
++ if set_mtu "$interface" "$new_interface_mtu"; then
+ syslog info "$interface: MTU set to $new_interface_mtu"
+ # Save the MTU so we can restore it later
+ if [ ! -e "$mtu_dir/$interface" ]; then
+@@ -21,7 +21,7 @@ elif [ -e "$mtu_dir/$interface" ]; then
+ # No MTU in this state, so restore the prior MTU
+ mtu=$(cat "$mtu_dir/$interface")
+ syslog info "$interface: MTU restored to $mtu"
+- ifconfig "$interface" mtu "$mtu"
++ set_mtu "$interface" "$mtu"
+ rm "$mtu_dir/$interface"
+ fi
+ fi
+diff --git a/dhcpcd-run-hooks.in b/dhcpcd-run-hooks.in
+index 0e60338..843f3ca 100644
+--- a/dhcpcd-run-hooks.in
++++ b/dhcpcd-run-hooks.in
+@@ -215,6 +215,17 @@ service_condcommand()
+ service_exists $1 && service_status $1 && service_cmd $1 $2
+ }
+
++# Set MTU for an interface
++set_mtu() {
++ local interface=$1 mtu=$2
++
++ if [ -e /sys/class/net/$interface/mtu ]; then
++ echo "$mtu" > /sys/class/net/$interface/mtu
++ else
++ ifconfig "$interface" mtu "$mtu"
++ fi
++}
++
+ # We source each script into this one so that scripts run earlier can
+ # remove variables from the environment so later scripts don't see them.
+ # Thus, the user can create their dhcpcd.enter/exit-hook script to configure
+--
+1.7.5.4
+
diff --git a/testing/dhcpcd/PKGBUILD b/testing/dhcpcd/PKGBUILD
new file mode 100644
index 000000000..4b96ec8f3
--- /dev/null
+++ b/testing/dhcpcd/PKGBUILD
@@ -0,0 +1,55 @@
+# $Id: PKGBUILD 164380 2012-07-31 20:34:32Z ronald $
+# Maintainer: Ronald van Haren <ronald.archlinux.org>
+# Contributor: Tom Killian <tom.archlinux.org>
+# Contributor: Judd Vinet <jvinet.zeroflux.org>
+
+pkgname=dhcpcd
+pkgver=5.6.0
+pkgrel=1
+pkgdesc="RFC2131 compliant DHCP client daemon"
+url="http://roy.marples.name/projects/dhcpcd/"
+arch=('i686' 'x86_64')
+license=('BSD')
+groups=('base')
+depends=('glibc' 'sh')
+backup=('etc/conf.d/dhcpcd' 'etc/dhcpcd.conf')
+options=('emptydirs') # We Need the Empty /var/lib/dhcpcd Directory
+source=("http://roy.marples.name/downloads/$pkgname/$pkgname-$pkgver.tar.bz2" \
+ 'dhcpcd.conf.d' 'dhcpcd.service')
+sha1sums=('28ad6931393420a72da307ee173466a9e00cd952'
+ 'b67b9ce6a2faaca75fea356966a16be2283b7db0'
+ '3d0542eab1b89a88d56ca427128228ac72c40d1f')
+
+build() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+
+ # configure variables
+ ./configure --libexecdir=/usr/lib/dhcpcd --dbdir=/var/lib/dhcpcd \
+ --rundir=/run
+
+ # Build
+ make
+}
+
+package() {
+ cd ${srcdir}/${pkgname}-${pkgver}
+ make DESTDIR=${pkgdir} install
+
+ # Create Binary Symlink
+ install -d ${pkgdir}/usr/sbin
+ ln -sf /sbin/dhcpcd ${pkgdir}/usr/sbin/dhcpcd
+
+ # Install Configuration File used in /etc/rc.d/network
+ install -D -m644 ../dhcpcd.conf.d $pkgdir/etc/conf.d/$pkgname
+
+ # Install License
+ install -d $pkgdir/usr/share/licenses/$pkgname
+ awk '{if(FNR<27)print $0}' ${srcdir}/${pkgname}-${pkgver}/configure.h \
+ >> ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
+
+ # Set Options in /etc/dhcpcd.conf
+ echo noipv4ll >> ${pkgdir}/etc/dhcpcd.conf # Disable ip4vall
+
+ # install systemd files
+ install -Dm644 ${srcdir}/dhcpcd.service ${pkgdir}/usr/lib/systemd/system/dhcpcd@.service
+}
diff --git a/testing/dhcpcd/dhcpcd.conf.d b/testing/dhcpcd/dhcpcd.conf.d
new file mode 100644
index 000000000..83c6f14ad
--- /dev/null
+++ b/testing/dhcpcd/dhcpcd.conf.d
@@ -0,0 +1,6 @@
+#
+# Arguments to be passed to the DHCP client daemon
+#
+
+DHCPCD_ARGS="-q"
+
diff --git a/testing/dhcpcd/dhcpcd.service b/testing/dhcpcd/dhcpcd.service
new file mode 100644
index 000000000..25a1923ac
--- /dev/null
+++ b/testing/dhcpcd/dhcpcd.service
@@ -0,0 +1,13 @@
+[Unit]
+Description=dhcpcd on %I
+Wants=network.target
+Before=network.target
+
+[Service]
+Type=forking
+PIDFile=/run/dhcpcd-%I.pid
+ExecStart=/sbin/dhcpcd -A -q -w %I
+ExecStop=/sbin/dhcpcd -k %I
+
+[Install]
+Alias=multi-user.target.wants/dhcpcd@eth0.service
diff --git a/testing/dhcpcd/remove_ifconfig.patch b/testing/dhcpcd/remove_ifconfig.patch
new file mode 100644
index 000000000..5bcc4a68f
--- /dev/null
+++ b/testing/dhcpcd/remove_ifconfig.patch
@@ -0,0 +1,20 @@
+--- dhcpcd-hooks/10-mtu.orig 2011-11-04 07:45:46.477712667 +0100
++++ dhcpcd-hooks/10-mtu 2011-11-04 07:46:38.964379550 +0100
+@@ -7,7 +7,7 @@
+ elif [ -n "$new_interface_mtu" ] && $if_up; then
+ # The smalled MTU dhcpcd can work with is 576
+ if [ "$new_interface_mtu" -ge 576 ]; then
+- if ifconfig "$interface" mtu "$new_interface_mtu"; then
++ if ip link set "$interface" mtu "$new_interface_mtu"; then
+ syslog info "$interface: MTU set to $new_interface_mtu"
+ # Save the MTU so we can restore it later
+ if [ ! -e "$mtu_dir/$interface" ]; then
+@@ -21,7 +21,7 @@
+ # No MTU in this state, so restore the prior MTU
+ mtu=$(cat "$mtu_dir/$interface")
+ syslog info "$interface: MTU restored to $mtu"
+- ifconfig "$interface" mtu "$mtu"
++ ip link set "$interface" mtu "$new_interface_mtu"
+ rm "$mtu_dir/$interface"
+ fi
+ fi