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:
parent
17dae7d98c
commit
67ceee4079
6 changed files with 128 additions and 0 deletions
57
temp/dhcpcd/APKBUILD
Normal file
57
temp/dhcpcd/APKBUILD
Normal 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"
|
11
temp/dhcpcd/busybox-logger.patch
Normal file
11
temp/dhcpcd/busybox-logger.patch
Normal 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
14
temp/dhcpcd/dhcpcd.initd
Normal 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
|
||||
}
|
24
temp/dhcpcd/dhcpcd.post-upgrade
Normal file
24
temp/dhcpcd/dhcpcd.post-upgrade
Normal 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
|
11
temp/dhcpcd/fix-chrony-conf-location.patch
Normal file
11
temp/dhcpcd/fix-chrony-conf-location.patch
Normal 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
|
11
temp/dhcpcd/old-kernel.patch
Normal file
11
temp/dhcpcd/old-kernel.patch
Normal 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;
|
Loading…
Reference in a new issue