diff --git a/net-misc/openbgpd/files/openbgpd-9999-config.c.patch b/net-misc/openbgpd/files/openbgpd-9999-config.c.patch new file mode 100644 index 0000000000..a4bda1270c --- /dev/null +++ b/net-misc/openbgpd/files/openbgpd-9999-config.c.patch @@ -0,0 +1,12 @@ +--- openbsd/src/usr.sbin/bgpd/config.c 2020-03-20 17:55:04.089577745 +0100 ++++ openbsd/src/usr.sbin/bgpd/config.c 2020-03-20 17:56:01.480205070 +0100 +@@ -343,7 +343,8 @@ + fatal("getifaddrs"); + + for (ifa = ifap; ifa; ifa = ifa->ifa_next) { +- if (ifa->ifa_addr->sa_family != AF_INET) ++ if (ifa->ifa_addr == NULL || ++ ifa->ifa_addr->sa_family != AF_INET) + continue; + cur = ((struct sockaddr_in *)ifa->ifa_addr)->sin_addr.s_addr; + if ((cur & localnet) == localnet) /* skip 127/8 */ diff --git a/net-misc/openbgpd/files/openbgpd-9999-update.patch b/net-misc/openbgpd/files/openbgpd-9999-update.patch new file mode 100644 index 0000000000..a60752d74f --- /dev/null +++ b/net-misc/openbgpd/files/openbgpd-9999-update.patch @@ -0,0 +1,13 @@ +--- update.sh 2020-03-20 15:14:46.462983445 +0100 ++++ update.sh 2020-03-20 15:14:56.473090379 +0100 +@@ -13,10 +13,6 @@ + git clone "${OPENBGPD_GIT}/openbsd" + fi + fi +-(cd openbsd +- git fetch +- git checkout "${openbsd_branch}" +- git pull --rebase) + + # setup source paths + dir=`pwd` diff --git a/net-misc/openbgpd/openbgpd-9999.ebuild b/net-misc/openbgpd/openbgpd-9999.ebuild new file mode 100644 index 0000000000..a7ba28443a --- /dev/null +++ b/net-misc/openbgpd/openbgpd-9999.ebuild @@ -0,0 +1,69 @@ +# Copyright 2020 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +inherit autotools git-r3 systemd + +DESCRIPTION="OpenBGPD is a free implementation of BGPv4" +HOMEPAGE="http://www.openbgpd.org/index.html" +EGIT_REPO_URI="https://github.com/openbgpd-portable/openbgpd-portable.git" + +LICENSE="ISC" +SLOT="0" +KEYWORDS="" +IUSE="" + +DEPEND="" +RDEPEND=" + ${DEPEND} + !!net-misc/quagga + acct-group/_bgpd + acct-user/_bgpd +" +BDEPEND=" + dev-util/byacc + sys-devel/autoconf + sys-devel/automake + sys-devel/libtool +" + +src_unpack() { + git-r3_src_unpack + + cd "${WORKDIR}" + + EGIT_REPO_URI="https://github.com/openbgpd-portable/openbgpd-openbsd.git" + EGIT_BRANCH=$(cat "${S}"/OPENBSD_BRANCH) + EGIT_CHECKOUT_DIR="${S}/openbsd" + git-r3_fetch + git-r3_checkout +} + +src_prepare() { + eapply -p0 "${FILESDIR}/${P}-update.patch" + eapply -p0 "${FILESDIR}/${P}-config.c.patch" + default + ./autogen.sh + eautoreconf +} + +src_configure() { + export YACC=byacc + default +} + +src_install() { + default + + newinitd "${FILESDIR}/${PN}-init.d" bgpd + newconfd "${FILESDIR}/${PN}-conf.d" bgpd + systemd_newunit "${FILESDIR}/${PN}.service" bgpd.service +} + +pkg_postinst() { + ewarn "" + ewarn "OpenBGPD portable (not running on OpenBSD) can’t export its RIB to" + ewarn "the FIB. It’s only suitable for route-reflectors or route-servers." + ewarn "" +}