From d5ccb59c22a22b9b1bb0d340dd2549aa3121ec41 Mon Sep 17 00:00:00 2001
From: James Meyer <james.meyer@operamail.com>
Date: Mon, 6 Aug 2012 17:40:01 -0500
Subject: dhcpcd: 5.5.6

---
 ...et-hostname-via-proc-if-file-is-available.patch | 33 ++++++++++++
 ...01-set-MTU-via-sysfs-if-file-is-available.patch | 61 ++++++++++++++++++++++
 abs/core/dhcpcd/PKGBUILD                           | 25 ++++-----
 abs/core/dhcpcd/remove_ifconfig.patch              | 20 +++++++
 4 files changed, 127 insertions(+), 12 deletions(-)
 create mode 100644 abs/core/dhcpcd/0001-Set-hostname-via-proc-if-file-is-available.patch
 create mode 100644 abs/core/dhcpcd/0001-set-MTU-via-sysfs-if-file-is-available.patch
 create mode 100644 abs/core/dhcpcd/remove_ifconfig.patch

diff --git a/abs/core/dhcpcd/0001-Set-hostname-via-proc-if-file-is-available.patch b/abs/core/dhcpcd/0001-Set-hostname-via-proc-if-file-is-available.patch
new file mode 100644
index 0000000..4420d0b
--- /dev/null
+++ b/abs/core/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/abs/core/dhcpcd/0001-set-MTU-via-sysfs-if-file-is-available.patch b/abs/core/dhcpcd/0001-set-MTU-via-sysfs-if-file-is-available.patch
new file mode 100644
index 0000000..7e78ecd
--- /dev/null
+++ b/abs/core/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/abs/core/dhcpcd/PKGBUILD b/abs/core/dhcpcd/PKGBUILD
index df6e342..ce8ac11 100644
--- a/abs/core/dhcpcd/PKGBUILD
+++ b/abs/core/dhcpcd/PKGBUILD
@@ -1,10 +1,10 @@
-# $Id: PKGBUILD 96706 2010-10-24 10:55:10Z ronald $
+# $Id: PKGBUILD 155703 2012-04-05 10:02:36Z ronald $
 # Maintainer: Ronald van Haren <ronald.archlinux.org>
 # Contributor: Tom Killian <tom.archlinux.org>
 # Contributor: Judd Vinet <jvinet.zeroflux.org>
 
 pkgname=dhcpcd
-pkgver=5.2.8
+pkgver=5.5.6
 pkgrel=1
 pkgdesc="RFC2131 compliant DHCP client daemon"
 url="http://roy.marples.name/dhcpcd/"
@@ -16,35 +16,36 @@ 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')
-sha1sums=('3a7ffc6d3599fd4146791853b083dc577d8dd9c0'
+sha1sums=('7f9ca207bce051252c0acb6a6cae3de22babcb20'
           'b67b9ce6a2faaca75fea356966a16be2283b7db0')
 
 build() {
   cd ${srcdir}/${pkgname}-${pkgver}
 
   # configure variables
-  ./configure --libexecdir=/usr/lib/dhcpcd --dbdir=/var/lib/dhcpcd
+  ./configure --libexecdir=/usr/lib/dhcpcd --dbdir=/var/lib/dhcpcd \
+	--rundir=/run
 
   # Build
-  make || return 1
+  make
 }
 
 package() {
   cd ${srcdir}/${pkgname}-${pkgver}
-  make DESTDIR=${pkgdir} install || return 1
+  make DESTDIR=${pkgdir} install
 
   # Create Binary Symlink
-  install -d ${pkgdir}/usr/sbin || return 1
-  ln -sf /sbin/dhcpcd ${pkgdir}/usr/sbin/dhcpcd || return 1
+  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 || return 1
+  install -D -m644 ../dhcpcd.conf.d $pkgdir/etc/conf.d/$pkgname
 
   # Install License
-  install -d $pkgdir/usr/share/licenses/$pkgname || return 1
+  install -d $pkgdir/usr/share/licenses/$pkgname
   awk '{if(FNR<27)print $0}' ${srcdir}/${pkgname}-${pkgver}/configure.h \
-        >> ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE || return 1
+        >> ${pkgdir}/usr/share/licenses/${pkgname}/LICENSE
 
   # Set Options in /etc/dhcpcd.conf
-  echo noipv4ll >> ${pkgdir}/etc/dhcpcd.conf || return 1 # Disable ip4vall
+  echo noipv4ll >> ${pkgdir}/etc/dhcpcd.conf # Disable ip4vall
 }
diff --git a/abs/core/dhcpcd/remove_ifconfig.patch b/abs/core/dhcpcd/remove_ifconfig.patch
new file mode 100644
index 0000000..5bcc4a6
--- /dev/null
+++ b/abs/core/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
-- 
cgit v0.12

