packages/net/quagga/Makefile
jow a1edd711af Add default configuration for Quagga daemons
This patch adds default configs for quagga daemons. It adds password zebra
and restricts vty access to everyone except localhost. If these confs do not 
exist the daemons do not start when running quagga init script.


git-svn-id: svn://svn.openwrt.org/openwrt/packages@15678 3c298f89-4303-0410-b956-a3cf2f4a3e73
2009-05-07 13:42:44 +00:00

251 lines
6.9 KiB
Makefile

#
# Copyright (C) 2006 OpenWrt.org
#
# This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information.
#
include $(TOPDIR)/rules.mk
PKG_NAME:=quagga
PKG_VERSION:=0.98.6
PKG_RELEASE:=1
PKG_MD5SUM:=b0d4132039953a0214256873b7d23d68
PKG_SOURCE_URL:=http://www.quagga.net/download/ \
http://www.de.quagga.net/download/ \
http://www.uk.quagga.net/download/
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
include $(INCLUDE_DIR)/package.mk
define Package/quagga/Default
SECTION:=net
CATEGORY:=Network
DEPENDS:=quagga
TITLE:=The Quagga Software Routing Suite
URL:=http://www.quagga.net
endef
define Package/quagga
$(call Package/quagga/Default)
DEPENDS:=
MENU:=1
endef
define Package/quagga/description
A routing software package that provides TCP/IP based routing services
with routing protocols support such as RIPv1, RIPv2, RIPng, OSPFv2,
OSPFv3, BGP-4, and BGP-4+
endef
define Package/quagga-libzebra
$(call Package/quagga/Default)
TITLE:=zebra library
endef
define Package/quagga-libospf
$(call Package/quagga/Default)
TITLE:=OSPF library
endef
define Package/quagga-bgpd
$(call Package/quagga/Default)
DEPENDS += quagga-libzebra
TITLE:=BGPv4, BGPv4+, BGPv4- routing engine
endef
define Package/quagga-isisd
$(call Package/quagga/Default)
TITLE:=IS-IS routing engine
endef
define Package/quagga-ospfd
$(call Package/quagga/Default)
DEPENDS += quagga-libospf quagga-libzebra
TITLE:=OSPFv2 routing engine
endef
define Package/quagga-ospf6d
$(call Package/quagga/Default)
DEPENDS += quagga-libospf quagga-libzebra
TITLE:=OSPFv3 routing engine
endef
define Package/quagga-ripd
$(call Package/quagga/Default)
DEPENDS += quagga-libzebra
TITLE:=RIP routing engine
endef
define Package/quagga-ripngd
$(call Package/quagga/Default)
DEPENDS += quagga-libzebra
TITLE:=RIPNG routing engine
endef
define Package/quagga-vtysh
$(call Package/quagga/Default)
DEPENDS += quagga-libzebra +libreadline +libncurses
TITLE:=integrated shell for Quagga routing software
endef
define Build/Configure
$(call Build/Configure/Default, \
--localstatedir=/var/run/quagga \
--sysconfdir=/etc/quagga/ \
--enable-shared \
--disable-static \
--enable-ipv6 \
--enable-vtysh \
--enable-user=quagga \
--enable-group=quagga \
--enable-multipath=8 \
--enable-isisd \
)
endef
define Build/Compile
$(MAKE) -C $(PKG_BUILD_DIR) \
DESTDIR=$(PKG_INSTALL_DIR) \
all install
endef
define Package/quagga/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/zebra $(1)/usr/sbin/
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/watchquagga $(1)/usr/sbin/
# avoid /etc being set to 0750
$(INSTALL_DIR) $(1)/etc/quagga/
chmod 0750 $(1)/etc/quagga/
$(INSTALL_DATA) ./files/quagga.conf $(1)/etc/quagga/zebra.conf
$(INSTALL_DIR) $(1)/etc/init.d/
$(INSTALL_BIN) ./files/quagga $(1)/usr/sbin/quagga.init
$(INSTALL_BIN) ./files/quagga.init $(1)/etc/init.d/quagga
$(INSTALL_DIR) $(1)/var/run/quagga
endef
define Package/quagga/postinst
#!/bin/sh
name=quagga
id=51
# do not change below
# check if we are on real system
if [ -z "$${IPKG_INSTROOT}" ]; then
# create copies of passwd and group, if we use squashfs
rootfs=`mount |awk '/root/ { print $$5 }'`
if [ "$$rootfs" = "squashfs" ]; then
if [ -h /etc/group ]; then
rm /etc/group
cp /rom/etc/group /etc/group
fi
if [ -h /etc/passwd ]; then
rm /etc/passwd
cp /rom/etc/passwd /etc/passwd
fi
fi
fi
echo ""
if [ -z "$$(grep ^\\$${name}: $${IPKG_INSTROOT}/etc/group)" ]; then
echo "adding group $$name to /etc/group"
echo "$${name}:x:$${id}:" >> $${IPKG_INSTROOT}/etc/group
fi
if [ -z "$$(grep ^\\$${name}: $${IPKG_INSTROOT}/etc/passwd)" ]; then
echo "adding user $$name to /etc/passwd"
echo "$${name}:x:$${id}:$${id}:$${name}:/tmp/.$${name}:/bin/false" >> $${IPKG_INSTROOT}/etc/passwd
fi
grep -q '^zebra[[:space:]]*2601/tcp' $${IPKG_INSTROOT}/etc/services 2>/dev/null
if [ $$? -ne 0 ]; then
echo "zebrasrv 2600/tcp" >>$${IPKG_INSTROOT}/etc/services
echo "zebra 2601/tcp" >>$${IPKG_INSTROOT}/etc/services
echo "ripd 2602/tcp" >>$${IPKG_INSTROOT}/etc/services
echo "ripngd 2603/tcp" >>$${IPKG_INSTROOT}/etc/services
echo "ospfd 2604/tcp" >>$${IPKG_INSTROOT}/etc/services
echo "bgpd 2605/tcp" >>$${IPKG_INSTROOT}/etc/services
echo "ospf6d 2606/tcp" >>$${IPKG_INSTROOT}/etc/services
echo "ospfapi 2607/tcp" >>$${IPKG_INSTROOT}/etc/services
echo "isisd 2608/tcp" >>$${IPKG_INSTROOT}/etc/services
fi
endef
define Package/quagga-bgpd/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/bgpd $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/etc/quagga/
chmod 0750 $(1)/etc/quagga/
$(INSTALL_DATA) ./files/quagga.conf $(1)/etc/quagga/bgpd.conf
endef
define Package/quagga-isisd/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/isisd $(1)/usr/sbin
$(INSTALL_DIR) $(1)/etc/quagga/
chmod 0750 $(1)/etc/quagga/
$(INSTALL_DATA) ./files/quagga.conf $(1)/etc/quagga/isisd.conf
endef
define Package/quagga-ospfd/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/ospfd $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/etc/quagga/
chmod 0750 $(1)/etc/quagga/
$(INSTALL_DATA) ./files/quagga.conf $(1)/etc/quagga/ospfd.conf
endef
define Package/quagga-ospf6d/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/ospf6d $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/etc/quagga/
chmod 0750 $(1)/etc/quagga/
$(INSTALL_DATA) ./files/quagga.conf $(1)/etc/quagga/ospf6d.conf
endef
define Package/quagga-ripd/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/ripd $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/etc/quagga/
chmod 0750 $(1)/etc/quagga/
$(INSTALL_DATA) ./files/quagga.conf $(1)/etc/quagga/ripd.conf
endef
define Package/quagga-ripngd/install
$(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/sbin/ripngd $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/etc/quagga/
chmod 0750 $(1)/etc/quagga/
$(INSTALL_DATA) ./files/quagga.conf $(1)/etc/quagga/ripngd.conf
endef
define Package/quagga-vtysh/install
$(INSTALL_DIR) $(1)/usr/bin
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/usr/bin/vtysh $(1)/usr/bin/
endef
define Package/quagga-libospf/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libospf.so.* $(1)/usr/lib/
endef
define Package/quagga-libzebra/install
$(INSTALL_DIR) $(1)/usr/lib
$(CP) $(PKG_INSTALL_DIR)/usr/lib/libzebra.so.* $(1)/usr/lib
endef
$(eval $(call BuildPackage,quagga))
$(eval $(call BuildPackage,quagga-libzebra))
$(eval $(call BuildPackage,quagga-libospf))
$(eval $(call BuildPackage,quagga-bgpd))
$(eval $(call BuildPackage,quagga-isisd))
$(eval $(call BuildPackage,quagga-ospfd))
$(eval $(call BuildPackage,quagga-ospf6d))
$(eval $(call BuildPackage,quagga-ripd))
$(eval $(call BuildPackage,quagga-ripngd))
$(eval $(call BuildPackage,quagga-vtysh))