# Maintainer: Natanael Copa pkgname=ppp pkgver=2.4.8 pkgrel=2 pkgdesc="A daemon which implements the PPP protocol for dial-up networking" url="https://ppp.samba.org/" arch="all" license="BSD and LGPL-2.0-or-later and GPL-2.0-or-later and Public-Domain" makedepends="bsd-compat-headers linux-headers" subpackages="$pkgname-doc $pkgname-dev $pkgname-chat $pkgname-radius $pkgname-atm $pkgname-pppoe $pkgname-l2tp $pkgname-winbind $pkgname-passprompt $pkgname-passwordfd $pkgname-minconn $pkgname-openrc $pkgname-daemon " # for compatibility reasons the 'ppp' package is an empty meta package # that pulls in all except -dev and -doc subpackages depends="$pkgname-chat $pkgname-radius $pkgname-atm $pkgname-pppoe $pkgname-l2tp $pkgname-winbind $pkgname-passprompt $pkgname-passwordfd $pkgname-minconn $pkgname-daemon " source="https://github.com/paulusmack/ppp/archive/ppp-$pkgver.tar.gz musl-fix-headers.patch fix-paths.patch 0011-build-sys-don-t-put-connect-errors-log-to-etc-ppp.patch fix-pppd-magic.h.patch fix-pppd-pppoe.h.patch radius-Prevent-buffer-overflow-in-rc_mksid.patch fix-bound-check-eap.patch pppd-Ignore-received-EAP-messages-when-not-doing-EAP.patch ip-down ip-up pppd.initd" builddir="$srcdir"/$pkgname-$pkgname-$pkgver # secfixes: # 2.4.8-r1: # - CVE-2020-8597 build() { # fix CFLAGS # -D_GNU_SOURCE is needed for IPv6 to work apparently export CFLAGS="$CFLAGS -D_GNU_SOURCE" sed -i "s:-O2 -pipe -Wall -g:${CFLAGS}:" pppd/Makefile.linux sed -i "s:-g -O2:${CFLAGS}:" pppd/plugins/Makefile.linux sed -i "s:-O2:${CFLAGS}:" pppstats/Makefile.linux sed -i "s:-O2 -g -pipe:${CFLAGS}:" chat/Makefile.linux sed -i "s:-O:${CFLAGS}:" pppdump/Makefile.linux # enable active filter sed -i "s:^#FILTER=y:FILTER=y:" pppd/Makefile.linux # enable ipv6 support sed -i "s:^#HAVE_INET6=y:HAVE_INET6=y:" pppd/Makefile.linux # Enable Microsoft proprietary Callback Control Protocol sed -i "s:^#CBCP=y:CBCP=y:" pppd/Makefile.linux sed -i "s:^#CBCP=y:CBCP=y:" pppd/Makefile.linux sed -i "s:^#USE_CRYPT=y:USE_CRYPT=y:" pppd/Makefile.linux ./configure \ --build=$CBUILD \ --host=$CHOST \ --prefix=/usr \ --localstatedir=/var make COPTS="$CFLAGS" } package() { make INSTROOT="$pkgdir" install install -Dm644 include/net/ppp_defs.h \ "$pkgdir"/usr/include/net/ppp_defs.h install -D -m755 "$srcdir"/ip-up "$pkgdir"/etc/ppp/ip-up install -D -m755 "$srcdir"/ip-down "$pkgdir"/etc/ppp/ip-down install -D -m755 "$srcdir"/pppd.initd "$pkgdir"/etc/init.d/pppd install -D -m644 etc.ppp/options "$pkgdir"/etc/ppp/options install -D -m600 etc.ppp/pap-secrets "$pkgdir"/etc/ppp/pap-secrets install -D -m600 etc.ppp/chap-secrets "$pkgdir"/etc/ppp/chap-secrets # busybox ifup/ifdown needs pon/poff install -D -m644 scripts/pon.1 "$pkgdir"/usr/share/man/man1/pon.1 install -D -m755 scripts/pon "$pkgdir"/usr/bin/pon install -D -m755 scripts/poff "$pkgdir"/usr/bin/poff install -d "$pkgdir"/usr/share/doc/ppp for i in scripts/*; do case $i in pon|poff|*.1) continue; esac if [ -f "$i" ]; then cp $i "$pkgdir"/usr/share/doc/ppp/ fi done install -d "$pkgdir"/etc/ppp/peers } atm() { pkgdesc="pppd plugin to implement PPPoATM protocol" depends="ppp-daemon" _mv usr/lib/pppd/$pkgver/pppoatm.so 755 } minconn() { pkgdesc="pppd plugin to implement a 'minconnect' option" depends="ppp-daemon" _mv usr/lib/pppd/$pkgver/minconn.so 755 } winbind() { pkgdesc="WINBIND plugin for pppd" depends="ppp-daemon" _mv usr/lib/pppd/$pkgver/winbind.so 755 } passprompt() { pkgdesc="pppd plugin to invoke an external PAP password prompter" depends="ppp-daemon" _mv usr/lib/pppd/$pkgver/passprompt.so 755 } passwordfd() { pkgdesc="pppd plugin let's you pass the password via a file descriptor" depends="ppp-daemon" _mv usr/lib/pppd/$pkgver/passwordfd.so 755 } chat() { pkgdesc="a program for automatic ppp session establishment" depends= _mv usr/sbin/chat 755 } l2tp() { pkgdesc="pppd plugin to implement PPPoL2TP protocol" depends="ppp-daemon" _mv usr/lib/pppd/$pkgver/openl2tp.so 755 _mv usr/lib/pppd/$pkgver/pppol2tp.so 755 } pppoe() { pkgdesc="pppd plugin for kernel-mode PPPoE on Linux" depends="ppp-daemon" _mv usr/lib/pppd/$pkgver/rp-pppoe.so 755 _mv usr/sbin/pppoe-discovery 755 } radius() { pkgdesc="RADIUS plugin for pppd" depends="ppp-daemon" _mv usr/lib/pppd/$pkgver/radius.so 755 _mv usr/lib/pppd/$pkgver/radattr.so 755 _mv usr/lib/pppd/$pkgver/radrealms.so 755 install -d "$subpkgdir"/etc/radiusclient cp -r "$builddir"/pppd/plugins/radius/etc/* "$subpkgdir"/etc/radiusclient mv "$subpkgdir"/etc/radiusclient/radiusclient.conf.in "$subpkgdir"/etc/radiusclient/radiusclient.conf sed -i "s:@pkgsysconfdir@:/etc/radiusclient:g" "$subpkgdir"/etc/radiusclient/radiusclient.conf sed -i "s:@sbindir@:/usr/sbin:g" "$subpkgdir"/etc/radiusclient/radiusclient.conf } _mv() { install -m $2 -D "$pkgdir"/$1 "$subpkgdir"/$1 rm "$pkgdir"/$1 } daemon() { pkgdesc="A daemon which implements the PPP protocol" depends= mkdir -p "$subpkgdir" mv "$pkgdir"/* "$subpkgdir"/ } sha512sums="a99b3b6c7bd80cd133bda4e29d33c793a76f3b67e1f8db774547e88932ce29564fad390a4f51d3fe30a75e006499b95000b042ae0f64cd360548426f8091a478 ppp-2.4.8.tar.gz 55642ce365a7cf7dda05366ac6e74f6badba3cc7bc980760e0a2ee7bfa768ea033c4a3880b3387e0787d719742698f627c624f890d68800344d31c0309c0374d musl-fix-headers.patch 8384afb992a98a7f97b484866e6aa1b1de51e901d7837f84f7ce2beba6815591450fab43957f03b65804424c4940c59640a9cd878979240a171aa77427e9c4ff fix-paths.patch b490971d03fef4de66b61123f80a0087270bcb88466ae8ed98ea9a08b35d4c7c46b2dadd304e2970a4206bb5760a14370d7e3873de6240119d88e927ecef840c 0011-build-sys-don-t-put-connect-errors-log-to-etc-ppp.patch d1067defff79d6c9f67121a9214e41a1bcca1e3b8a345ad905d223fdb8835142bad7cc3b556a3eca509ddf51cf808741773f31f4dca74e834b612a15854a5e6b fix-pppd-magic.h.patch d76237c82af0a3ed7ede9e814d6849b94221f1fd15e4ee68cadd33a308a32d87d635acd14f84508c9e38a10ad0a9e96ce391044da37e217d11b89a4f6631abf7 fix-pppd-pppoe.h.patch d175085eaa93ccf8ade7be4f9818efe353017da7cec41d9312ad2c6685e3763834aff76d673e9d2bb0b44336f926537569ddb86a6035ec33ab8b6a7de2340132 radius-Prevent-buffer-overflow-in-rc_mksid.patch ba0c062f93400008ddf47897ac2ab6a2f5017bc7f4167d1a93dd3a5c04068a922490eb4082b0da80f0c3aea6c87fdfbca3568548724a0abc148588ab86a6df32 fix-bound-check-eap.patch ce1bf3298f3f99a7de643bd070cb0e7e7b1dd9621926637ffc93fd2ef552781424ce9a68c88de6eb25dc2593d543e8e329eccc2d00982bde2493e8efb7903051 pppd-Ignore-received-EAP-messages-when-not-doing-EAP.patch 160260bd2a788beaac395eadb38efbfd1e0e1a458fe151555acacf2c4f3a12381d644672c664f9793db6e3459a4f05a54e3ff6d407b0d37e8014b15bd0f11bcc ip-down 8258c95a6b6e8e94d6001b5cd3a99bd3270f29ba0f2e5050a26c8d5f1b67eead8d039e71ce86a784d45e620047b0a2bb14b258d80a9ea62084ba588a4c2e2d84 ip-up bd6f43588b037367ffdb57f5e331492dcaa5969003e219c2dc8b90e6be1aa407282ff6114b91d1379ebeff766983fa0622456520cc0ac592b4f0b1496acf21bf pppd.initd"