From 81e2e7dd402b7cae4e2591bd07b958948b7e335b Mon Sep 17 00:00:00 2001
From: Sam James <sam@gentoo.org>
Date: Mon, 12 Jun 2023 11:50:40 +0100
Subject: net-dialup/ppp: backport radiusclient.conf parsing fix

Closes: https://bugs.gentoo.org/908396
Signed-off-by: Sam James <sam@gentoo.org>
---
 .../ppp-2.5.0-radiusclient.conf-parsing.patch      |  48 +++++++++
 net-dialup/ppp/ppp-2.5.0-r4.ebuild                 | 119 +++++++++++++++++++++
 2 files changed, 167 insertions(+)
 create mode 100644 net-dialup/ppp/files/ppp-2.5.0-radiusclient.conf-parsing.patch
 create mode 100644 net-dialup/ppp/ppp-2.5.0-r4.ebuild

(limited to 'net-dialup')

diff --git a/net-dialup/ppp/files/ppp-2.5.0-radiusclient.conf-parsing.patch b/net-dialup/ppp/files/ppp-2.5.0-radiusclient.conf-parsing.patch
new file mode 100644
index 000000000000..9916f766c7af
--- /dev/null
+++ b/net-dialup/ppp/files/ppp-2.5.0-radiusclient.conf-parsing.patch
@@ -0,0 +1,48 @@
+https://github.com/ppp-project/ppp/issues/411
+https://github.com/ppp-project/ppp/commit/7f89208b860ea0c41636410bfdb6a609b2772f47
+https://bugs.gentoo.org/908396
+
+From 7f89208b860ea0c41636410bfdb6a609b2772f47 Mon Sep 17 00:00:00 2001
+From: Eivind Naess <eivnaes@yahoo.com>
+Date: Sun, 23 Apr 2023 11:37:01 -0700
+Subject: [PATCH] Closes #411, Fixing up parsing in radiusclient.conf
+
+Adding curly braces to fix the code.
+
+Signed-off-by: Eivind Naess <eivnaes@yahoo.com>
+--- a/pppd/plugins/radius/config.c
++++ b/pppd/plugins/radius/config.c
+@@ -235,24 +235,28 @@ int rc_read_config(char *filename)
+ 
+ 		switch (option->type) {
+ 			case OT_STR:
+-				 if (set_option_str(filename, line, option, p) < 0)
++				if (set_option_str(filename, line, option, p) < 0) {
+ 					fclose(configfd);
+ 					return (-1);
++				}
+ 				break;
+ 			case OT_INT:
+-				 if (set_option_int(filename, line, option, p) < 0)
++				if (set_option_int(filename, line, option, p) < 0) {
+ 					fclose(configfd);
+ 					return (-1);
++				}
+ 				break;
+ 			case OT_SRV:
+-				 if (set_option_srv(filename, line, option, p) < 0)
++				if (set_option_srv(filename, line, option, p) < 0) {
+ 					fclose(configfd);
+ 					return (-1);
++				}
+ 				break;
+ 			case OT_AUO:
+-				 if (set_option_auo(filename, line, option, p) < 0)
++				if (set_option_auo(filename, line, option, p) < 0) {
+ 					fclose(configfd);
+ 					return (-1);
++				}
+ 				break;
+ 			default:
+ 				fatal("rc_read_config: impossible case branch!");
+
diff --git a/net-dialup/ppp/ppp-2.5.0-r4.ebuild b/net-dialup/ppp/ppp-2.5.0-r4.ebuild
new file mode 100644
index 000000000000..70a453504c7b
--- /dev/null
+++ b/net-dialup/ppp/ppp-2.5.0-r4.ebuild
@@ -0,0 +1,119 @@
+# Copyright 1999-2023 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit linux-info pam tmpfiles
+
+DESCRIPTION="Point-to-Point Protocol (PPP)"
+HOMEPAGE="https://ppp.samba.org/"
+SRC_URI="
+	https://download.samba.org/pub/ppp/${P}.tar.gz
+	https://raw.githubusercontent.com/ppp-project/ppp/${P}/contrib/pppgetpass/pppgetpass.8
+"
+
+LICENSE="BSD GPL-2"
+SLOT="0/${PV}"
+KEYWORDS="~alpha ~amd64 ~arm ~arm64 ~hppa ~ia64 ~loong ~mips ~ppc ~ppc64 ~riscv ~s390 ~sparc ~x86"
+IUSE="activefilter atm gtk pam systemd"
+
+DEPEND="
+	dev-libs/openssl:0=
+	virtual/libcrypt:=
+	activefilter? ( net-libs/libpcap )
+	atm? ( net-dialup/linux-atm )
+	gtk? ( x11-libs/gtk+:2 )
+	pam? ( sys-libs/pam )
+	systemd? ( sys-apps/systemd )
+"
+RDEPEND="
+	${DEPEND}
+	!<net-misc/netifrc-0.7.1-r2
+"
+BDEPEND="virtual/pkgconfig"
+PDEPEND="net-dialup/ppp-scripts"
+
+PATCHES=(
+	"${FILESDIR}"/ppp-2.5.0-passwordfd-read-early.patch
+	"${FILESDIR}"/ppp-2.5.0-pidfile.patch
+	"${FILESDIR}"/${P}-radiusclient.conf-parsing.patch
+)
+
+pkg_setup() {
+	local CONFIG_CHECK="~PPP ~PPP_ASYNC ~PPP_SYNC_TTY"
+	local ERROR_PPP="CONFIG_PPP:\t missing PPP support (REQUIRED)"
+	local ERROR_PPP_ASYNC="CONFIG_PPP_ASYNC:\t missing asynchronous serial line discipline"
+	ERROR_PPP_ASYNC+=" (optional, but highly recommended)"
+	local WARNING_PPP_SYNC_TTY="CONFIG_PPP_SYNC_TTY:\t missing synchronous serial line discipline"
+	WARNING_PPP_SYNC_TTY+=" (optional; used by 'sync' pppd option)"
+	if use activefilter ; then
+		CONFIG_CHECK+=" ~PPP_FILTER"
+		local ERROR_PPP_FILTER="CONFIG_PPP_FILTER:\t missing PPP filtering support (REQUIRED)"
+	fi
+	CONFIG_CHECK+=" ~PPP_DEFLATE ~PPP_BSDCOMP ~PPP_MPPE"
+	local ERROR_PPP_DEFLATE="CONFIG_PPP_DEFLATE:\t missing Deflate compression (optional, but highly recommended)"
+	local ERROR_PPP_BSDCOMP="CONFIG_PPP_BSDCOMP:\t missing BSD-Compress compression (optional, but highly recommended)"
+	local WARNING_PPP_MPPE="CONFIG_PPP_MPPE:\t missing MPPE encryption (optional, mostly used by PPTP links)"
+	CONFIG_CHECK+=" ~PPPOE ~PACKET"
+	local WARNING_PPPOE="CONFIG_PPPOE:\t missing PPPoE support (optional, needed by pppoe plugin)"
+	local WARNING_PACKET="CONFIG_PACKET:\t missing AF_PACKET support (optional, used by pppoe plugin)"
+	if use atm ; then
+		CONFIG_CHECK+=" ~PPPOATM"
+		local WARNING_PPPOATM="CONFIG_PPPOATM:\t missing PPPoA support (optional, needed by pppoatm plugin)"
+	fi
+
+	linux-info_pkg_setup
+}
+
+src_configure() {
+	local args=(
+		--localstatedir="${EPREFIX}"/var
+		--runstatedir="${EPREFIX}"/run
+		$(use_enable systemd)
+		$(use_with atm)
+		$(use_with pam)
+		$(use_with activefilter pcap)
+		$(use_with gtk)
+		--enable-cbcp
+	)
+	econf "${args[@]}"
+}
+
+src_install() {
+	default
+
+	find "${ED}" -name '*.la' -type f -delete || die
+
+	if use pam; then
+		pamd_mimic_system ppp auth account session
+	fi
+
+	insinto /etc/modprobe.d
+	newins "${FILESDIR}/modules.ppp" ppp.conf
+
+	dosbin scripts/p{on,off,log}
+	doman scripts/pon.1
+	dosym pon.1 /usr/share/man/man1/poff.1
+	dosym pon.1 /usr/share/man/man1/plog.1
+
+	# Adding misc. specialized scripts to doc dir
+	dodoc -r scripts
+
+	if use gtk ; then
+		dosbin contrib/pppgetpass/pppgetpass.{gtk,vt}
+		newsbin contrib/pppgetpass/pppgetpass.sh pppgetpass
+	else
+		newsbin contrib/pppgetpass/pppgetpass.vt pppgetpass
+	fi
+
+	newtmpfiles "${FILESDIR}/pppd.tmpfiles" pppd.conf
+
+	# Missing from upstream tarball
+	# https://github.com/ppp-project/ppp/pull/412
+	#doman contrib/pppgetpass/pppgetpass.8
+	doman "${DISTDIR}/pppgetpass.8"
+}
+
+pkg_postinst() {
+	tmpfiles_process pppd.conf
+}
-- 
cgit v1.2.3-65-gdbad