# Maintainer: Natanael Copa pkgname=ppp pkgver=2.4.7 pkgrel=6 pkgdesc="A daemon which implements the PPP protocol for dial-up networking" url="http://www.samba.org/ppp/" 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://ftp.samba.org/pub/ppp/ppp-$pkgver.tar.gz defaultroute-metric.3.patch musl-fix-headers.patch fix-paths.patch 0011-build-sys-don-t-put-connect-errors-log-to-etc-ppp.patch ip-down ip-up pppd.initd" _builddir="$srcdir"/$pkgname-$pkgver prepare() { local i cd "$_builddir" for i in $source; do case $i in *.patch) msg $i; patch -p1 -i "$srcdir"/$i || return 1;; esac done } build () { cd "$_builddir" # 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 ./configure \ --build=$CBUILD \ --host=$CHOST \ --prefix=/usr \ --localstatedir=/var \ || return 1 make COPTS="$CFLAGS" || return 1 } package() { cd "$_builddir" make INSTROOT="$pkgdir" install || return 1 install -Dm644 include/net/ppp_defs.h \ "$pkgdir"/usr/include/net/ppp_defs.h || return 1 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 || return 1 install -D -m755 scripts/poff "$pkgdir"/usr/bin/poff || return 1 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/ || return 1 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"/ || return 1 } sha512sums="e34ce24020af6a73e7a26c83c4f73a9c83fa455b7b363794dba27bf01f70368be06bff779777843949bd77f4bc9385d6ad455ea48bf8fff4e0d73cc8fef16ae2 ppp-2.4.7.tar.gz fccc7a6809ae4a617796ccf1d2132de8edb1cc0c71d76a95393585a5970b92be2a54da558702db355c8aea8d37b4dfffc64406129a2b3322f0b10e8f0481f685 defaultroute-metric.3.patch 2f071ea9db15e4abf1bed6cce8130dc81b710a31bfef5fa8f9370c353f845dbc47674b1551b8e040478e5156add6f98d480530206125e8bb308f0f4288d1eec6 musl-fix-headers.patch 8384afb992a98a7f97b484866e6aa1b1de51e901d7837f84f7ce2beba6815591450fab43957f03b65804424c4940c59640a9cd878979240a171aa77427e9c4ff fix-paths.patch b490971d03fef4de66b61123f80a0087270bcb88466ae8ed98ea9a08b35d4c7c46b2dadd304e2970a4206bb5760a14370d7e3873de6240119d88e927ecef840c 0011-build-sys-don-t-put-connect-errors-log-to-etc-ppp.patch 160260bd2a788beaac395eadb38efbfd1e0e1a458fe151555acacf2c4f3a12381d644672c664f9793db6e3459a4f05a54e3ff6d407b0d37e8014b15bd0f11bcc ip-down 8258c95a6b6e8e94d6001b5cd3a99bd3270f29ba0f2e5050a26c8d5f1b67eead8d039e71ce86a784d45e620047b0a2bb14b258d80a9ea62084ba588a4c2e2d84 ip-up bd6f43588b037367ffdb57f5e331492dcaa5969003e219c2dc8b90e6be1aa407282ff6114b91d1379ebeff766983fa0622456520cc0ac592b4f0b1496acf21bf pppd.initd"