temp/dhcpcd: fix for old kernels (!228)

Fork the package from Alpine and undefine IFA_F_NOPREFIXROUTE during
compilation, so it works with the old downstream kernels that do not
have this feature yet.
This commit is contained in:
JuniorJPDJ 2019-02-19 07:41:40 +01:00 committed by Oliver Smith
parent 17dae7d98c
commit 67ceee4079
No known key found for this signature in database
GPG key ID: 5AE7F5513E0885CB
6 changed files with 128 additions and 0 deletions

57
temp/dhcpcd/APKBUILD Normal file
View file

@ -0,0 +1,57 @@
# Maintainer: JuniorJPDJ <pmos@juniorjpdj.pl>
# Forked from Alpine to disable IFA_F_NOPREFIXROUTE (for old kernels)
pkgname=dhcpcd
pkgver=9999
_pkgver=7.0.8
pkgrel=0
pkgdesc="RFC2131 compliant DHCP client"
url="https://roy.marples.name/projects/dhcpcd"
arch="all"
license="BSD-2-Clause"
makedepends="linux-headers bsd-compat-headers dbus-dev"
install="$pkgname.post-upgrade"
subpackages="$pkgname-doc $pkgname-openrc"
source="https://roy.marples.name/downloads/dhcpcd/$pkgname-$_pkgver.tar.xz
busybox-logger.patch
fix-chrony-conf-location.patch
old-kernel.patch
dhcpcd.initd
"
builddir="$srcdir/$pkgname-$_pkgver"
build() {
cd "$builddir"
CFLAGS="$CFLAGS -D_GNU_SOURCE -DHAVE_PRINTF_M"
./configure \
--build=$CBUILD \
--host=$CHOST \
--sysconfdir=/etc \
--mandir=/usr/share/man \
--localstatedir=/var \
--libexecdir=/usr/lib/$pkgname \
--dbdir=/var/lib/$pkgname \
--rundir=/run \
--enable-ipv6 \
--without-dev \
--without-udev
make
}
check() {
cd "$builddir"
make test
}
package() {
cd "$builddir"
make DESTDIR="$pkgdir" install
install -Dm755 "$srcdir"/dhcpcd.initd \
"$pkgdir"/etc/init.d/dhcpcd
}
sha512sums="82cd845eb35670788b8f31b973945460f4c5f1a0a3025e3a452b79230dc30704e129d97140e6aec6d0281e0c89c333c0ce0af03c4767b2e5e66547ed3e071953 dhcpcd-7.0.8.tar.xz
692b2c8c75166fabd512a7cc69c650f9391e0f682ce9cbe1771bfa44e82dcf09e322c46493c45ca75000f479d3cddde306754ba31d28a798a15e2b79a56045f0 busybox-logger.patch
1c19eed0f7a008ee96ea392beb327169ff8c83fc27fed20f65f05c9125f60629ebe3474c5e6a7cf4aeeea448fde4264c9b84916efacd67d47ab908c47b1fc3a5 fix-chrony-conf-location.patch
a4837a22ebf1f99ac3dc137c6edabd6d0c146ea3ca3b755e957cff6421c51eaef3feea443c0900518689c21b56f10af8230ae8fe257054207df0debaf4e55d29 old-kernel.patch
e777432c2efc84285b41e63a4687f3bd543f6864218d037529ab78b5ad934de154f28f478bd9facb56628f2953aad8a932bc2eb8b1dfffa0ce2278ffcfc4d880 dhcpcd.initd"

View file

@ -0,0 +1,11 @@
--- a/hooks/dhcpcd-run-hooks.in
+++ b/hooks/dhcpcd-run-hooks.in
@@ -179,7 +179,7 @@
*) echo "$interface: $*";;
esac
if type logger >/dev/null 2>&1; then
- logger -i -p daemon."$lvl" -t dhcpcd-run-hooks "$interface: $*"
+ logger -p daemon."$lvl" -t dhcpcd-run-hooks "$interface: $*"
fi
}

14
temp/dhcpcd/dhcpcd.initd Normal file
View file

@ -0,0 +1,14 @@
#!/sbin/openrc-run
name="DHCP Client Daemon"
command="/sbin/dhcpcd"
pidfile="/run/dhcpcd.pid"
command_args="-q ${command_args:-}"
depend() {
provide net
need localmount
use logger network
after bootmisc modules
before dns
}

View file

@ -0,0 +1,24 @@
#!/bin/sh
ver_new="$1"
ver_old="$2"
# Move dhcpcd.duid and dhcpcd.secret to new location when upgrading
# to dhcpcd 7.x.
# See https://roy.marples.name/blog/dhcpcd-7-finally-enters-beta.
if [ "$(apk version -t "$ver_old" '7.0.0-r0')" = '<' ]; then
dbdir='/var/lib/dhcpcd'
duid_old='/etc/dhcpcd.duid'
secret_old='/etc/dhcpcd.secret'
if [ -f $duid_old ] && [ ! -f $dbdir/duid ]; then
echo "* Moving $duid_old to $dbdir/duid" >&2
mv $duid_old $dbdir/duid
fi
if [ -f $secret_old ] && [ ! -f $dbdir/secret ]; then
echo "* Moving $secret_old to $dbdir/secret" >&2
mv $secret_old $dbdir/secret
fi
fi
exit 0

View file

@ -0,0 +1,11 @@
--- a/hooks/50-ntp.conf
+++ b/hooks/50-ntp.conf
@@ -17,7 +17,7 @@
# above examples.
: ${ntp_confs:=ntp.conf ntpd.conf chrony.conf}
-: ${ntp_conf_dirs=/etc /usr/pkg/etc /usr/local/etc}
+: ${ntp_conf_dirs=/etc /etc/chrony /usr/pkg/etc /usr/local/etc}
ntp_conf_dir="$state_dir/ntp.conf"
# If NTP_CONF is not set, work out a good default

View file

@ -0,0 +1,11 @@
--- a/src/if-linux.c
+++ b/src/if-linux.c
@@ -97,6 +97,8 @@ int if_getssid_wext(const char *ifname, uint8_t *ssid);
#define BPF_ETHCOOK -ETH_HLEN
#define BPF_WHOLEPACKET 0x0fffffff /* work around buggy LPF filters */
+#undef IFA_F_NOPREFIXROUTE
+
struct priv {
int route_fd;
uint32_t route_pid;