summaryrefslogtreecommitdiff
blob: 4cf5743e270418742d1f58cdf4ea5f57c7f9e306 (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
# Copyright 1999-2004 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: /var/cvsroot/gentoo-x86/net-misc/zebra/zebra-0.93b-r1.ebuild,v 1.9 2004/06/25 00:22:04 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"
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

	use ospfapi &&
	 	epatch ospfapi-release_*-200[3-9]-[0-9][0-9]-[0-9][0-9].patch

	##################################
	# This fix is for zebra-0.93b only
	##################################
	cd ${S}/ospfd || die
	epatch ${FILESDIR}/${P}/ospfd-assert-fix.patch
	epatch ${FILESDIR}/${P}/ospfd-nbr-fix.patch
	##################################
}

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."
}