1 DESCRIPTION = "Quagga is a routing software suite, providing \
2 implementations of OSPFv2, OSPFv3, RIP v1 and v2, RIPv3 and BGPv4 for \
3 Unix platforms, particularly FreeBSD, Linux, Solaris and NetBSD. \
4 Quagga is a fork of GNU Zebra which was developed by Kunihiro \
5 Ishiguro. The Quagga tree aims to build a more involved community \
6 around Quagga than the current centralised model of GNU Zebra."
7 HOMEPAGE = "http://www.quagga.net/"
10 DEPENDS = "readline ncurses perl-native"
11 # Each of the per-protocol packages depends on the main package
12 RDEPENDS_${PN}-ospfd = "${PN}"
13 RDEPENDS_${PN}-ospf6d = "${PN}"
14 RDEPENDS_${PN}-bgpd = "${PN}"
15 RDEPENDS_${PN}-ripd = "${PN}"
16 RDEPENDS_${PN}-ripngd = "${PN}"
17 RDEPENDS_${PN}-isisd = "${PN}"
18 RDEPENDS_${PN}-ospfclient = "${PN}"
19 RDEPENDS_${PN}-doc = ""
20 RDEPENDS_${PN}-watchquagga = "${PN}"
21 # the "ip" command from busybox is not sufficient (flush by protocol flushes all routes)
22 RDEPENDS_${PN} += "iproute2"
26 # ${QUAGGASUBDIR} is deal with old versions. Set to "/attic" for old
27 # versions and leave it empty for recent versions.
28 SRC_URI = "http://www.quagga.net/download${QUAGGASUBDIR}/quagga-${PV}.tar.gz \
29 file://fix-for-lib-inpath.patch;patch=1 \
31 file://quagga.default \
32 file://watchquagga.init \
33 file://watchquagga.default \
34 file://volatiles.03_quagga"
36 inherit autotools update-rc.d
38 # Turn on options and changes paths.
39 # This matches the layout and configuration of the debian quagga package
40 EXTRA_OECONF = "--prefix=${prefix} \
41 --libexecdir=${libexecdir}/quagga \
42 --sbindir=${libdir}/quagga \
43 --sysconfdir=${sysconfdir}/quagga \
44 --localstatedir=${localstatedir}/run/quagga \
45 --enable-exampledir=${docdir}/quagga/examples/ \
48 --enable-watchquagga \
52 --enable-ospfclient=yes \
53 --enable-multipath=64 \
54 --enable-user=quagga \
55 --enable-group=quagga \
56 --enable-vty-group=quaggavty \
57 --enable-configfile-mask=0640 \
58 --enable-logfile-mask=0640 \
63 # Install init script and default settings
64 install -m 0755 -d ${D}${sysconfdir}/default ${D}${sysconfdir}/init.d \
65 ${D}${sysconfdir}/quagga ${D}${sysconfdir}/default/volatiles
66 install -m 0644 ${WORKDIR}/quagga.default ${D}${sysconfdir}/default/quagga
67 install -m 0644 ${WORKDIR}/watchquagga.default ${D}${sysconfdir}/default/watchquagga
68 install -m 0755 ${WORKDIR}/quagga.init ${D}${sysconfdir}/init.d/quagga
69 install -m 0755 ${WORKDIR}/watchquagga.init ${D}${sysconfdir}/init.d/watchquagga
70 install -m 0644 ${WORKDIR}/volatiles.03_quagga ${D}${sysconfdir}/default/volatiles/volatiles.03_quagga
72 oe_runmake install DESTDIR=${D} prefix=${prefix} \
73 libexecdir=${libexecdir}/quagga \
74 sbindir=${libdir}/quagga \
75 sysconfdir=${sysconfdir}/quagga \
76 localstatedir=${localstatedir}/run/quagga
79 # Split into a main package and seperate per-protocol packages
80 PACKAGES = "${PN}-dbg ${PN} \
81 ${PN}-ospfd ${PN}-ospf6d ${PN}-bgpd ${PN}-ripd ${PN}-ripngd ${PN}-isisd \
82 ${PN}-ospfclient ${PN}-watchquagga ${PN}-dev ${PN}-doc"
84 FILES_${PN}-ospfd = "${libdir}/quagga/ospfd /usr/lib/libospf.so.*"
85 FILES_${PN}-ospf6d = "${libdir}/quagga/ospf6d"
86 FILES_${PN}-bgpd = "${libdir}/quagga/bgpd"
87 FILES_${PN}-ripd = "${libdir}/quagga/ripd"
88 FILES_${PN}-ripngd = "${libdir}/quagga/ripngd"
89 FILES_${PN}-isisd = "${libdir}/quagga/isisd"
90 FILES_${PN}-ospfclient = "${libdir}/quagga/ospfclient /usr/lib/libospfapiclient.so.*"
91 FILES_${PN}-dev = "/usr/include /usr/lib/lib*.so /usr/lib/*.la /usr/lib/*.a"
92 FILES_${PN}-doc = "/usr/share/doc /usr/share/man /usr/share/info"
93 FILES_${PN}-watchquagga = "${libdir}/quagga/watchquagga ${sysconfdir}/default/watchquagga \
94 ${sysconfdir}/init.d/watchquagga"
95 FILES_${PN} = "${bindir}/vtysh ${libdir}/quagga/zebra /usr/lib/libzebra*.so.* \
96 ${sysconfdir}/default/volatiles/volatiles.03_quagga \
97 ${sysconfdir}/quagga \
98 ${sysconfdir}/default/quagga ${sysconfdir}/init.d/quagga"
100 # Indicate that the default files are configuration files
101 CONFFILES_${PN} = "${sysconfdir}/default/quagga"
102 CONFFILES_${PN}-watchquagga = "${sysconfdir}/default/watchquagga"
104 # Stop the names being rewritten due to the internal shared libraries
105 DEBIAN_NOAUTONAME_${PN}-ospfd = "1"
106 DEBIAN_NOAUTONAME_${PN}-ospfclient = "1"
108 # Main init script starts all deamons
109 # Seperate init script for watchquagga
110 INITSCRIPT_PACKAGES = "${PN} ${PN}-watchquagga"
111 INITSCRIPT_NAME_${PN} = "quagga"
112 INITSCRIPT_PARAMS_${PN} = "defaults 15 85"
113 INITSCRIPT_NAME_${PN}-watchquagga = "watchquagga"
114 INITSCRIPT_PARAMS_${PN}-watchquagga = "defaults 90 10"
116 # Add quagga's user and groups
117 pkg_postinst_${PN} () {
118 grep -q quagga: /etc/group || addgroup quagga
119 grep -q quaggavty: /etc/group || addgroup quaggavty
120 grep -q quagga: /etc/passwd || \
121 adduser --disabled-password --home=/var/run/quagga/ --system \
122 --ingroup quagga --no-create-home -g "Quagga routing suite" quagga
123 /etc/init.d/populate-volatile.sh update
126 # Stop apps before uninstall
128 ${sysconfdir}/init.d/quagga stop
131 pkg_prerm_${PN}-ospfd () {
132 ${sysconfdir}/init.d/quagga stop ospfd
135 pkg_prerm_${PN}-ospf6d () {
136 ${sysconfdir}/init.d/quagga stop ospf6d
139 pkg_prerm_${PN}-bgpd () {
140 ${sysconfdir}/init.d/quagga stop bgpd
143 pkg_prerm_${PN}-ripd () {
144 ${sysconfdir}/init.d/quagga stop ripd
147 pkg_prerm_${PN}-ripngd () {
148 ${sysconfdir}/init.d/quagga stop ripngd
151 pkg_prerm_${PN}-isisd () {
152 ${sysconfdir}/init.d/quagga stop isisd