diff options
author | root <root@rshg054.dnsready.net> | 2012-08-02 00:01:47 +0000 |
---|---|---|
committer | root <root@rshg054.dnsready.net> | 2012-08-02 00:01:47 +0000 |
commit | e8f5b2ea6983e7a97c1640e9e211f356b8b5d21b (patch) | |
tree | f454ed3270ca5f6171ffc277c784aaecf9ddb6d1 /testing/dhcpcd | |
parent | a71961a43ef48f47d3575915f63099308a18a263 (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.patch | 33 | ||||
-rw-r--r-- | testing/dhcpcd/0001-set-MTU-via-sysfs-if-file-is-available.patch | 61 | ||||
-rw-r--r-- | testing/dhcpcd/PKGBUILD | 55 | ||||
-rw-r--r-- | testing/dhcpcd/dhcpcd.conf.d | 6 | ||||
-rw-r--r-- | testing/dhcpcd/dhcpcd.service | 13 | ||||
-rw-r--r-- | testing/dhcpcd/remove_ifconfig.patch | 20 |
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 |