summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--net-misc/quagga/files/quagga-1.1.0-supress-dev-build-logs.patch25
-rw-r--r--net-misc/quagga/quagga-1.1.0-r1.ebuild135
2 files changed, 160 insertions, 0 deletions
diff --git a/net-misc/quagga/files/quagga-1.1.0-supress-dev-build-logs.patch b/net-misc/quagga/files/quagga-1.1.0-supress-dev-build-logs.patch
new file mode 100644
index 000000000000..e0d27d0fd190
--- /dev/null
+++ b/net-misc/quagga/files/quagga-1.1.0-supress-dev-build-logs.patch
@@ -0,0 +1,25 @@
+commit 92193665 warns about duplicate node installs. This should only be
+enabled for dev builds beacuse it causes unwanted noise on production
+builds. I've enclosed the relevant commands in #ifdef DEV_BUILD, which may
+or may not be appropriate. If there's a more appropriate compile-time
+option available, that could be used instead.
+
+---
+ lib/command.c | 2 ++
+ 1 file changed, 2 insertions(+)
+
+diff --git a/lib/command.c b/lib/command.c
+index ab46fc4..bff86e5 100644
+--- a/lib/command.c
++++ b/lib/command.c
+@@ -638,9 +638,11 @@ install_element (enum node_type ntype, struct cmd_element *cmd)
+
+ if (hash_lookup (cnode->cmd_hash, cmd) != NULL)
+ {
++#ifdef DEV_BUILD
+ fprintf (stderr,
+ "Multiple command installs to node %d of command:\n%s\n",
+ ntype, cmd->string);
++#endif
+ return;
+ }
diff --git a/net-misc/quagga/quagga-1.1.0-r1.ebuild b/net-misc/quagga/quagga-1.1.0-r1.ebuild
new file mode 100644
index 000000000000..086618ea6fb2
--- /dev/null
+++ b/net-misc/quagga/quagga-1.1.0-r1.ebuild
@@ -0,0 +1,135 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+CLASSLESS_BGP_PATCH=ht-20040304-classless-bgp.patch
+
+inherit autotools eutils flag-o-matic multilib pam readme.gentoo-r1 systemd user
+
+DESCRIPTION="A free routing daemon replacing Zebra supporting RIP, OSPF and BGP"
+HOMEPAGE="http://quagga.net/"
+SRC_URI="mirror://nongnu/${PN}/${P}.tar.gz
+ bgpclassless? ( http://hasso.linux.ee/stuff/patches/quagga/${CLASSLESS_BGP_PATCH} )"
+
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~alpha ~amd64 ~arm ~hppa ~ppc ~s390 ~sparc ~x86"
+
+IUSE="bgpclassless caps doc elibc_glibc ipv6 multipath ospfapi pam protobuf +readline snmp tcp-zebra"
+
+COMMON_DEPEND="
+ caps? ( sys-libs/libcap )
+ protobuf? ( dev-libs/protobuf:0= )
+ readline? (
+ sys-libs/readline:0=
+ pam? ( sys-libs/pam )
+ )
+ snmp? ( net-analyzer/net-snmp )
+ !elibc_glibc? ( dev-libs/libpcre )"
+DEPEND="${COMMON_DEPEND}
+ sys-apps/gawk
+ sys-devel/libtool:2"
+RDEPEND="${COMMON_DEPEND}
+ sys-apps/iproute2"
+
+PATCHES=(
+ "${FILESDIR}/${PN}-0.99.22.4-ipctl-forwarding.patch"
+ "${FILESDIR}/${P}-supress-dev-build-logs.patch"
+)
+
+DISABLE_AUTOFORMATTING=1
+DOC_CONTENTS="Sample configuration files can be found in /usr/share/doc/${PF}/samples
+You have to create config files in /etc/quagga before
+starting one of the daemons.
+
+You can pass additional options to the daemon by setting the EXTRA_OPTS
+variable in their respective file in /etc/conf.d"
+
+pkg_setup() {
+ enewgroup quagga
+ enewuser quagga -1 -1 /var/empty quagga
+}
+
+src_prepare() {
+ # Classless prefixes for BGP
+ # http://hasso.linux.ee/doku.php/english:network:quagga
+ use bgpclassless && eapply -p0 "${DISTDIR}/${CLASSLESS_BGP_PATCH}"
+
+ eapply ${PATCHES[@]}
+ eapply_user
+ eautoreconf
+}
+
+src_configure() {
+ append-flags -fno-strict-aliasing
+
+ # do not build PDF docs
+ export ac_cv_prog_PDFLATEX=no
+ export ac_cv_prog_LATEXMK=no
+
+ econf \
+ --enable-exampledir=/usr/share/doc/${PF}/samples \
+ --enable-irdp \
+ --enable-isisd \
+ --enable-isis-topology \
+ --enable-pimd \
+ --enable-user=quagga \
+ --enable-group=quagga \
+ --enable-vty-group=quagga \
+ --with-cflags="${CFLAGS}" \
+ --with-pkg-extra-version="-gentoo" \
+ --sysconfdir=/etc/quagga \
+ --localstatedir=/run/quagga \
+ --disable-static \
+ $(use_enable caps capabilities) \
+ $(usex snmp '--enable-snmp' '' '' '') \
+ $(use_enable !elibc_glibc pcreposix) \
+ $(use_enable tcp-zebra) \
+ $(use_enable doc) \
+ $(usex multipath $(use_enable multipath) '' '=0' '') \
+ $(usex ospfapi '--enable-opaque-lsa --enable-ospf-te --enable-ospfclient' '' '' '') \
+ $(use_enable readline vtysh) \
+ $(use_with pam libpam) \
+ $(use_enable protobuf) \
+ $(use_enable ipv6 ripngd) \
+ $(use_enable ipv6 ospf6d) \
+ $(use_enable ipv6 rtadv)
+}
+
+src_install() {
+ default
+ prune_libtool_files
+ readme.gentoo_create_doc
+
+ keepdir /etc/quagga
+ fowners root:quagga /etc/quagga
+ fperms 0770 /etc/quagga
+
+ # Path for PIDs before first reboot should be created here, bug #558194
+ dodir /run/quagga
+ fowners quagga:quagga /run/quagga
+ fperms 0770 /run/quagga
+
+ # Install systemd-related stuff, bug #553136
+ systemd_dotmpfilesd "${FILESDIR}/systemd/quagga.conf"
+ systemd_dounit "${FILESDIR}/systemd/zebra.service"
+
+ # install zebra as a file, symlink the rest
+ newinitd "${FILESDIR}"/quagga-services.init.3 zebra
+
+ for service in bgpd isisd ospfd pimd ripd $(use ipv6 && echo ospf6d ripngd); do
+ dosym zebra /etc/init.d/${service}
+ systemd_dounit "${FILESDIR}/systemd/${service}.service"
+ done
+
+ use readline && use pam && newpamd "${FILESDIR}/quagga.pam" quagga
+
+ insinto /etc/logrotate.d
+ newins redhat/quagga.logrotate quagga
+}
+
+pkg_postinst() {
+ readme.gentoo_print_elog
+}