summaryrefslogtreecommitdiff
blob: 0c3f01ac4268c485c210b95b73b4bd3656de8b17 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# Copyright 1999-2004 Gentoo Technologies, Inc.
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-misc/zebra/zebra-0.93b-r2.ebuild,v 1.4 2004/04/27 21:56:49 agriffis Exp $

inherit eutils
S=${WORKDIR}/${P}
IUSE="pam snmp ipv6 ospfapi"

DESCRIPTION="Multithreaded TCP/IP Routing Software that supports BGP-4, RIPv1, RIPv2 and OSPFv2. Includes OSPFAPI"
SRC_URI="ftp://ftp.zebra.org/pub/zebra/${P}.tar.gz \
		ospfapi? ( http://www.tik.ee.ethz.ch/~keller/ospfapi/src/ospfapi-release_0_93b-2003-01-25.tar.gz )"

HOMEPAGE="http://www.zebra.org"
# Homepage for ospfapi
HOMEPAGE="${HOMEPAGE} http://www.tik.ee.ethz.ch/~keller/ospfapi"
KEYWORDS="~x86 ~sparc ~amd64"
LICENSE="GPL-2"
SLOT="0"

DEPEND="virtual/glibc
	sys-devel/binutils
	pam? ( >=pam-0.75-r11 )
	snmp? ( virtual/snmp )"

RDEPEND="virtual/glibc
	sys-devel/binutils"

src_unpack() {
	unpack ${A} || die
	cd ${WORKDIR}
	ln -s ${S} zebra
	if [ `use ospfapi` ]; then
		epatch ospfapi-release_*-200[3-9]-[0-9][0-9]-[0-9][0-9].patch
	else
		# This fix is for zebra-0.93b only
		cd ${S}/ospfd || die
		[ -f ${FILESDIR}/${P}/ospfd-assert-fix.patch ] &&
			epatch  ${FILESDIR}/${P}/ospfd-assert-fix.patch
		[ -f ${FILESDIR}/${P}/ospfd-nbr-fix.patch ] &&
			epatch ${FILESDIR}/${P}/ospfd-nbr-fix.patch
	fi
}

src_compile() {
	local myconf="--enable-vtysh --enable-tcp-zebra"

	# use libpam for PAM support in vtysh
	use  pam && myconf="${myconf} --with-libpam" || myconf="${myconf} --disable-pam"
	use snmp && myconf="${myconf} --enable-snmp" || myconf="${myconf} --disable-snmp"
	use ipv6 && myconf="${myconf} --enable-ipv6" || myconf="${myconf} --disable-ipv6"

	use ospfapi && myconf="${myconf} --enable-opaque-lsa --enable-ospf-te \
		--enable-nssa"
	use ospfapi && ./update-autotools

	econf --prefix=/usr --sysconfdir=/etc/zebra ${myconf} || \
		die "econf failed"
	emake || die "emake failed"

	if [ `use ospfapi` ]  ; then
		cd apiclient
		econf --prefix=/usr --sysconfdir=/etc/zebra ${myconf} || \
			die "econf failed in ospsapi-apiclient"
		emake || die "emake failed in ospsapi-apiclient"
		cd ..
	fi
}

src_install() {
	make \
		prefix=${D}/usr \
		sysconfdir=${D}/etc/zebra \
		localstatedir=${D}/var \
		infodir=${D}/usr/share/info \
		mandir=${D}/usr/share/man \
		install || die "zebra installation failed"

	mkdir -p ${D}/etc/zebra/sample
	# dodir ${D}/etc/ {D}/etc/zebra/ ${D}/etc/zebra/sample
	cp */*.conf.sample* ${D}/etc/zebra/
	mv ${D}/etc/zebra/*.conf.sample* ${D}/etc/zebra/sample

	for proto in zebra bgpd ospfd ripd; do
		insinto /etc/conf.d
		newins ${FILESDIR}/conf.d/${proto}.confd ${proto}
		exeinto /etc/init.d
		newexe ${FILESDIR}/init.d/${proto}.initd ${proto}
	done

	# second loop for ipv6
	use ipv6 && for proto in ospf6d ripngd; do
		insinto /etc/conf.d
		newins ${FILESDIR}/conf.d/${proto}.confd ${proto}
		exeinto /etc/init.d
		newexe ${FILESDIR}/init.d/${proto}.initd ${proto}
	done

	dodoc AUTHORS COPYING ChangeLog INSTALL NEWS README REPORTING-BUGS SERVICES TODO
}

pkg_postinst() {
	einfo "Sample configuration files can be found in /etc/zebra/sample"
	einfo "You have to create config files in /etc/zebra before"
	einfo "starting any one of the daemons."
	echo
	einfo "Please note this is the last planned zebra release that Gentoo should support"
	einfo "GNU Zebra almost does not qualify as GNU Software, read the zebra mailing list for more info."
	einfo "Gentoo will continue it's support of routing software using Quagga a GNU Zebra fork"

}