diff options
author | Paul Eggleton <paul.eggleton@linux.intel.com> | 2012-11-27 11:25:48 +0000 |
---|---|---|
committer | Joe MacDonald <joe.macdonald@windriver.com> | 2012-11-27 14:43:58 -0500 |
commit | e762ce3fc044cc64f473c95e096245e439eb3234 (patch) | |
tree | f8bee569ae46897e40627896679ca708e0cafca3 /meta-networking/recipes-protocols/quagga/quagga.inc | |
parent | 4a851a8f25bb9d8d4f7eb40e4bd0e70f74e3ce12 (diff) | |
download | meta-openembedded-contrib-e762ce3fc044cc64f473c95e096245e439eb3234.tar.gz |
quagga: add from OE-Classic, update and tidy-up
* Update to 0.99.21
* Fix SRC_URI to point to a working download location
* Make LICENSE more accurate
* Add LIC_FILES_CHKSUM
* Add old gentoo patch to fix libcap linking errors
* Put binaries in sbindir
* Use useradd.bbclass to create user/groups
* Handle hardcoded paths in initscript
* Add LSB headers to initscript (borrowed from debian)
* Tidy up packaging and directory references
* Add SUMMARY
Signed-off-by: Paul Eggleton <paul.eggleton@linux.intel.com>
Diffstat (limited to 'meta-networking/recipes-protocols/quagga/quagga.inc')
-rw-r--r-- | meta-networking/recipes-protocols/quagga/quagga.inc | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/meta-networking/recipes-protocols/quagga/quagga.inc b/meta-networking/recipes-protocols/quagga/quagga.inc new file mode 100644 index 0000000000..6ee2455be8 --- /dev/null +++ b/meta-networking/recipes-protocols/quagga/quagga.inc @@ -0,0 +1,153 @@ +SUMMARY = "BGP/OSPF/RIP routing daemon" +DESCRIPTION = "Quagga is a routing software suite, providing \ +implementations of OSPFv2, OSPFv3, RIP v1 and v2, RIPv3 and BGPv4 for \ +Unix platforms, particularly FreeBSD, Linux, Solaris and NetBSD. \ +Quagga is a fork of GNU Zebra which was developed by Kunihiro \ +Ishiguro. The Quagga tree aims to build a more involved community \ +around Quagga than the current centralised model of GNU Zebra." +HOMEPAGE = "http://www.quagga.net/" +SECTION = "network" +LICENSE = "GPL-2.0 & LGPL-2.0" +DEPENDS = "readline ncurses perl-native" + +LIC_FILES_CHKSUM = "file://COPYING;md5=8ca43cbc842c2336e835926c2166c28b \ + file://COPYING.LIB;md5=f30a9716ef3762e3467a2f62bf790f0a" + +INC_PR = "r0" + +QUAGGASUBDIR = "" +# ${QUAGGASUBDIR} is deal with old versions. Set to "/attic" for old +# versions and leave it empty for recent versions. +SRC_URI = "http://download.savannah.gnu.org/releases/quagga${QUAGGASUBDIR}/quagga-${PV}.tar.gz;name=quagga-${PV} \ + file://fix-for-lib-inpath.patch \ + file://quagga-0.99.17-libcap.patch \ + file://quagga.init \ + file://quagga.default \ + file://watchquagga.init \ + file://watchquagga.default \ + file://volatiles.03_quagga" + +inherit autotools update-rc.d useradd + +EXTRA_OECONF = "--sysconfdir=${sysconfdir}/quagga \ + --localstatedir=${localstatedir}/run/quagga \ + --enable-exampledir=${docdir}/quagga/examples/ \ + --enable-vtysh \ + --enable-isisd \ + --enable-watchquagga \ + --enable-ospf-te \ + --enable-opaque-lsa \ + --enable-ipv6 \ + --enable-ospfclient=yes \ + --enable-multipath=64 \ + --enable-user=quagga \ + --enable-group=quagga \ + --enable-vty-group=quaggavty \ + --enable-configfile-mask=0640 \ + --enable-logfile-mask=0640 \ + --enable-rtadv \ + --enable-tcp-md5" + +do_install () { + # Install init script and default settings + install -m 0755 -d ${D}${sysconfdir}/default ${D}${sysconfdir}/init.d \ + ${D}${sysconfdir}/quagga ${D}${sysconfdir}/default/volatiles + install -m 0644 ${WORKDIR}/quagga.default ${D}${sysconfdir}/default/quagga + install -m 0644 ${WORKDIR}/watchquagga.default ${D}${sysconfdir}/default/watchquagga + install -m 0755 ${WORKDIR}/quagga.init ${D}${sysconfdir}/init.d/quagga + install -m 0755 ${WORKDIR}/watchquagga.init ${D}${sysconfdir}/init.d/watchquagga + install -m 0644 ${WORKDIR}/volatiles.03_quagga ${D}${sysconfdir}/default/volatiles/volatiles.03_quagga + # Install quagga + oe_runmake install DESTDIR=${D} prefix=${prefix} \ + sbindir=${sbindir} \ + sysconfdir=${sysconfdir}/quagga \ + localstatedir=${localstatedir}/run/quagga + + # Fix hardcoded paths + sed -i 's!/usr/sbin/!${sbindir}/!g' ${D}${sysconfdir}/init.d/* + sed -i 's!/usr/bin/!${bindir}/!g' ${D}${sysconfdir}/init.d/quagga + sed -i 's!/etc/!${sysconfdir}/!g' ${D}${sysconfdir}/init.d/* ${D}${sysconfdir}/default/watchquagga + sed -i 's!/var/!${localstatedir}/!g' ${D}${sysconfdir}/init.d/* ${D}${sysconfdir}/default/volatiles/volatiles.03_quagga + sed -i 's!^PATH=.*!PATH=${base_sbindir}:${sbindir}:${base_bindir}:${bindir}!' ${D}${sysconfdir}/init.d/* +} + +# Split into a main package and separate per-protocol packages +PACKAGE_BEFORE_PN = "${PN}-ospfd ${PN}-ospf6d ${PN}-babeld ${PN}-bgpd \ + ${PN}-ripd ${PN}-ripngd ${PN}-isisd \ + ${PN}-ospfclient ${PN}-watchquagga" + +FILES_${PN}-ospfd = "${sbindir}/ospfd ${libdir}/libospf.so.*" +FILES_${PN}-ospf6d = "${sbindir}/ospf6d" +FILES_${PN}-babeld = "${sbindir}/babeld" +FILES_${PN}-bgpd = "${sbindir}/bgpd" +FILES_${PN}-ripd = "${sbindir}/ripd" +FILES_${PN}-ripngd = "${sbindir}/ripngd" +FILES_${PN}-isisd = "${sbindir}/isisd" +FILES_${PN}-ospfclient = "${sbindir}/ospfclient ${libdir}/libospfapiclient.so.*" +FILES_${PN}-watchquagga = "${sbindir}/watchquagga ${sysconfdir}/default/watchquagga \ + ${sysconfdir}/init.d/watchquagga" + +# Indicate that the default files are configuration files +CONFFILES_${PN} = "${sysconfdir}/default/quagga" +CONFFILES_${PN}-watchquagga = "${sysconfdir}/default/watchquagga" + +# Stop the names being rewritten due to the internal shared libraries +DEBIAN_NOAUTONAME_${PN}-ospfd = "1" +DEBIAN_NOAUTONAME_${PN}-ospfclient = "1" + +# the "ip" command from busybox is not sufficient (flush by protocol flushes all routes) +RDEPENDS_${PN} += "iproute2" + +# Main init script starts all deamons +# Seperate init script for watchquagga +INITSCRIPT_PACKAGES = "${PN} ${PN}-watchquagga" +INITSCRIPT_NAME_${PN} = "quagga" +INITSCRIPT_PARAMS_${PN} = "defaults 15 85" +INITSCRIPT_NAME_${PN}-watchquagga = "watchquagga" +INITSCRIPT_PARAMS_${PN}-watchquagga = "defaults 90 10" + +USERADD_PACKAGES = "${PN}" +GROUPADD_PARAM_${PN} = "--system quagga ; --system quaggavty" +USERADD_PARAM_${PN} = "--system --home ${localstatedir}/run/quagga/ -M -g quagga quagga" + +pkg_postinst_${PN} () { + for f in bgpd babeld isisd ospfd ripngd zebra ripd ospf6d; do touch ${sysconfdir}/quagga/$f.conf; done + chown quagga:quaggavty ${sysconfdir}/quagga + chown quagga:quagga ${sysconfdir}/quagga/*.conf + chmod 750 ${sysconfdir}/quagga + chown 640 ${sysconfdir}/quagga/*.conf + ${sysconfdir}/init.d/populate-volatile.sh update +} + +# Stop apps before uninstall +pkg_prerm_${PN} () { + ${sysconfdir}/init.d/quagga stop +} + +pkg_prerm_${PN}-ospfd () { + ${sysconfdir}/init.d/quagga stop ospfd +} + +pkg_prerm_${PN}-ospf6d () { + ${sysconfdir}/init.d/quagga stop ospf6d +} + +pkg_prerm_${PN}-babeld () { + ${sysconfdir}/init.d/quagga stop babeld +} + +pkg_prerm_${PN}-bgpd () { + ${sysconfdir}/init.d/quagga stop bgpd +} + +pkg_prerm_${PN}-ripd () { + ${sysconfdir}/init.d/quagga stop ripd +} + +pkg_prerm_${PN}-ripngd () { + ${sysconfdir}/init.d/quagga stop ripngd +} + +pkg_prerm_${PN}-isisd () { + ${sysconfdir}/init.d/quagga stop isisd +} |