This commit is contained in:
Álvaro Fernández Rojas 2018-01-13 18:37:45 +00:00 committed by GitHub
commit 0f109d7b6c
4 changed files with 76 additions and 190 deletions

View file

@ -1,5 +1,5 @@
# #
# Copyright (C) 2009-2016 OpenWrt.org # Copyright (C) 2009-2017 OpenWrt.org
# #
# This is free software, licensed under the GNU General Public License v2. # This is free software, licensed under the GNU General Public License v2.
# See /LICENSE for more information. # See /LICENSE for more information.
@ -7,12 +7,12 @@
include $(TOPDIR)/rules.mk include $(TOPDIR)/rules.mk
PKG_NAME:=bird PKG_NAME:=bird
PKG_VERSION:=1.6.3 PKG_VERSION:=2.0.0
PKG_RELEASE:=1 PKG_RELEASE:=1
PKG_SOURCE:=bird-$(PKG_VERSION).tar.gz PKG_SOURCE:=bird-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=ftp://bird.network.cz/pub/bird PKG_SOURCE_URL:=ftp://bird.network.cz/pub/bird
PKG_MD5SUM:=39c51cf57c3ba8b5978b2a657ffa2f647ec7f3ae643e91cf42ee5cb070cf7e7c PKG_MD5SUM:=a76300e1dabd9ae7178f12219ce7dc265438e48cc2d55667a94e00caf7028351
PKG_BUILD_DEPENDS:=libncurses libreadline PKG_BUILD_DEPENDS:=libncurses libreadline
PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com> PKG_MAINTAINER:=Álvaro Fernández Rojas <noltari@gmail.com>
@ -20,24 +20,7 @@ PKG_LICENSE:=GPL-2.0
include $(INCLUDE_DIR)/package.mk include $(INCLUDE_DIR)/package.mk
define Package/bird/Default define Package/bird/Default/description
TITLE:=The BIRD Internet Routing Daemon
URL:=http://bird.network.cz/
DEPENDS:=+libpthread
endef
define Package/birdc/Default
TITLE:=The BIRD command-line client
URL:=http://bird.network.cz/
DEPENDS:= +libreadline +libncurses
endef
define Package/birdcl/Default
TITLE:=The BIRD lightweight command-line client
URL:=http://bird.network.cz/
endef
define Package/bird/Default/description1
BIRD is an internet routing daemon which manages TCP/IP routing tables BIRD is an internet routing daemon which manages TCP/IP routing tables
with support of modern routing protocols, easy to use configuration with support of modern routing protocols, easy to use configuration
interface and powerful route filtering language. It is lightweight and interface and powerful route filtering language. It is lightweight and
@ -45,16 +28,49 @@ efficient and therefore appropriate for small embedded routers.
endef endef
define Package/bird/Default/description2 define Package/bird
TITLE:=The BIRD Internet Routing Daemon
URL:=http://bird.network.cz/
SECTION:=net
CATEGORY:=Network
SUBMENU:=Routing and Redirection
DEPENDS:=+libpthread
endef
define Package/birdc
TITLE:=The BIRD command-line client
URL:=http://bird.network.cz/
SECTION:=net
CATEGORY:=Network
SUBMENU:=Routing and Redirection
DEPENDS:=+bird +libreadline +libncurses
endef
define Package/birdcl
TITLE:=The BIRD lightweight command-line client
URL:=http://bird.network.cz/
SECTION:=net
CATEGORY:=Network
SUBMENU:=Routing and Redirection
DEPENDS:=+bird
endef
define Package/bird/description
$(call Package/bird/Default/description)
BIRD supports OSPFv2, RIPv2 and BGP protocols for IPv4 and
OSPFv3, RIPng and BGP protocols for IPv6.
In BGP, BIRD supports communities, multiprotocol extensions, MD5 In BGP, BIRD supports communities, multiprotocol extensions, MD5
authentication, 32bit AS numbers and could act as a route server or a authentication, 32bit AS numbers and could act as a route server or a
route reflector. BIRD also supports multiple RIBs, multiple kernel route reflector. BIRD also supports multiple RIBs, multiple kernel
routing tables and redistribution between the protocols with a powerful routing tables and redistribution between the protocols with a powerful
configuration syntax. configuration syntax.
endef endef
define Package/bird/Default/description3 define Package/birdc/description
$(call Package/bird/Default/description)
This is a BIRD command-line client. It is used to send commands to BIRD, This is a BIRD command-line client. It is used to send commands to BIRD,
commands can perform simple actions such as enabling/disabling of commands can perform simple actions such as enabling/disabling of
protocols, telling BIRD to show various information, telling it to show protocols, telling BIRD to show various information, telling it to show
@ -62,153 +78,46 @@ a routing table filtered by a filter, or asking BIRD to reconfigure.
Unless you can't afford dependency on ncurses and readline, you Unless you can't afford dependency on ncurses and readline, you
should install BIRD command-line client together with BIRD. should install BIRD command-line client together with BIRD.
endef endef
define Package/bird/Default/description4 define Package/birdcl/description
This is a BIRD lightweight command-line client. It is used to send commands to BIRD, $(call Package/bird/Default/description)
commands can perform simple actions such as enabling/disabling of
This is a BIRD lightweight command-line client. It is used to send commands
to BIRD, commands can perform simple actions such as enabling/disabling of
protocols, telling BIRD to show various information, telling it to show protocols, telling BIRD to show various information, telling it to show
a routing table filtered by a filter, or asking BIRD to reconfigure. a routing table filtered by a filter, or asking BIRD to reconfigure.
endef
define Package/bird4
$(call Package/bird/Default)
SECTION:=net
CATEGORY:=Network
SUBMENU:=Routing and Redirection
TITLE+= (IPv4)
endef
define Package/birdc4
$(call Package/birdc/Default)
SECTION:=net
CATEGORY:=Network
SUBMENU:=Routing and Redirection
TITLE+= (IPv4)
DEPENDS+= +bird4
endef
define Package/birdcl4
$(call Package/birdcl/Default)
SECTION:=net
CATEGORY:=Network
SUBMENU:=Routing and Redirection
TITLE+= (IPv4)
DEPENDS+= +bird4
endef
define Package/bird6
$(call Package/bird/Default)
SECTION:=net
CATEGORY:=Network
SUBMENU:=Routing and Redirection
TITLE+= (IPv6)
endef
define Package/birdc6
$(call Package/birdc/Default)
SECTION:=net
CATEGORY:=Network
SUBMENU:=Routing and Redirection
TITLE+= (IPv6)
DEPENDS+= +bird6
endef
define Package/birdcl6
$(call Package/birdcl/Default)
SECTION:=net
CATEGORY:=Network
SUBMENU:=Routing and Redirection
TITLE+= (IPv6)
DEPENDS+= +bird6
endef
define Package/bird4/description
$(call Package/bird/Default/description1)
This is IPv4 version of BIRD, it supports OSPFv2, RIPv2 and BGP
protocols.
$(call Package/bird/Default/description2)
endef
define Package/birdc4/description
$(call Package/bird/Default/description1)
$(call Package/bird/Default/description3)
endef
define Package/birdcl4/description
$(call Package/bird/Default/description1)
$(call Package/bird/Default/description4)
endef
define Package/bird6/description
$(call Package/bird/Default/description1)
This is IPv6 version of BIRD, it supports OSPFv3, RIPng and BGP
protocols.
$(call Package/bird/Default/description2)
endef
define Package/birdc6/description
$(call Package/bird/Default/description1)
$(call Package/bird/Default/description3)
endef
define Package/birdcl6/description
$(call Package/bird/Default/description1)
$(call Package/bird/Default/description4)
endef endef
CONFIGURE_ARGS += --with-linux-headers="$(LINUX_DIR)" CONFIGURE_ARGS += --with-linux-headers="$(LINUX_DIR)"
TARGET_CFLAGS+=-std=gnu89 define Package/bird/conffiles
/etc/bird.conf
define Build/Template /etc/bird4.conf
/etc/bird6.conf
$(STAMP_BUILT)-$(2): $(STAMP_PREPARED)
$(call Build/Configure/Default,$(3))
$(call Build/Compile/Default,)
( cd $(PKG_BUILD_DIR); mv -f bird bird$(2); mv -f birdc birdc$(2); mv -f birdcl birdcl$(2) )
-$(MAKE) -C $(PKG_BUILD_DIR) clean
touch $$@
$(STAMP_BUILT): $(STAMP_BUILT)-$(2)
define Package/bird$(2)/install
$(INSTALL_DIR) $$(1)/usr/sbin
$(INSTALL_BIN) $$(PKG_BUILD_DIR)/bird$(2) $$(1)/usr/sbin/
$(INSTALL_DIR) $$(1)/etc
$(INSTALL_DATA) ./files/bird$(2).conf $$(1)/etc/
$(INSTALL_DIR) $$(1)/etc/init.d
$(INSTALL_BIN) ./files/bird$(2).init $$(1)/etc/init.d/bird$(2)
endef endef
define Package/bird$(2)/conffiles define Package/bird/install
/etc/bird$(2).conf $(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $(PKG_BUILD_DIR)/bird $(1)/usr/sbin/
$(INSTALL_DIR) $(1)/etc
$(INSTALL_DATA) ./files/bird.conf $(1)/etc/
$(INSTALL_DATA) ./files/bird4.conf $(1)/etc/
$(INSTALL_DATA) ./files/bird6.conf $(1)/etc/
$(INSTALL_DIR) $(1)/etc/init.d
$(INSTALL_BIN) ./files/bird.init $(1)/etc/init.d/bird
endef endef
define Package/birdc$(2)/install define Package/birdc/install
$(INSTALL_DIR) $$(1)/usr/sbin $(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $$(PKG_BUILD_DIR)/birdc$(2) $$(1)/usr/sbin/ $(INSTALL_BIN) $(PKG_BUILD_DIR)/birdc $(1)/usr/sbin/
endef endef
define Package/birdcl$(2)/install define Package/birdcl/install
$(INSTALL_DIR) $$(1)/usr/sbin $(INSTALL_DIR) $(1)/usr/sbin
$(INSTALL_BIN) $$(PKG_BUILD_DIR)/birdcl$(2) $$(1)/usr/sbin/ $(INSTALL_BIN) $(PKG_BUILD_DIR)/birdcl $(1)/usr/sbin/
endef endef
endef $(eval $(call BuildPackage,bird))
$(eval $(call BuildPackage,birdc))
$(eval $(call BuildPackage,birdcl))
$(eval $(call Build/Template,bird4,4, --disable-ipv6))
$(eval $(call Build/Template,bird6,6, --enable-ipv6))
$(eval $(call BuildPackage,bird4))
$(eval $(call BuildPackage,birdc4))
$(eval $(call BuildPackage,birdcl4))
$(eval $(call BuildPackage,bird6))
$(eval $(call BuildPackage,birdc6))
$(eval $(call BuildPackage,birdcl6))

5
bird/files/bird.conf Normal file
View file

@ -0,0 +1,5 @@
# THIS CONFIG FILE IS NOT A COMPLETE DOCUMENTATION
# PLEASE LOOK IN THE BIRD DOCUMENTATION FOR MORE INFO
include "bird4.conf";
include "bird6.conf";

View file

@ -1,17 +1,15 @@
#!/bin/sh /etc/rc.common #!/bin/sh /etc/rc.common
# Copyright (C) 2010-2014 OpenWrt.org # Copyright (C) 2010-2017 OpenWrt.org
BIRD="bird4"
START=99 START=99
STOP=10 STOP=10
SERVICE_DAEMONIZE=1 SERVICE_DAEMONIZE=1
SERVICE_USE_PID=1 SERVICE_USE_PID=1
SERVICE_PID_FILE="/var/run/$BIRD.pid" SERVICE_PID_FILE="/var/run/bird.pid"
BIRD_BIN="/usr/sbin/$BIRD" BIRD_BIN="/usr/sbin/bird"
BIRD_CONF="/etc/$BIRD.conf" BIRD_CONF="/etc/bird.conf"
start() { start() {
service_start $BIRD_BIN -d -c $BIRD_CONF -P $SERVICE_PID_FILE service_start $BIRD_BIN -d -c $BIRD_CONF -P $SERVICE_PID_FILE

View file

@ -1,26 +0,0 @@
#!/bin/sh /etc/rc.common
# Copyright (C) 2010-2014 OpenWrt.org
BIRD="bird6"
START=99
STOP=10
SERVICE_DAEMONIZE=1
SERVICE_USE_PID=1
SERVICE_PID_FILE="/var/run/$BIRD.pid"
BIRD_BIN="/usr/sbin/$BIRD"
BIRD_CONF="/etc/$BIRD.conf"
start() {
service_start $BIRD_BIN -d -c $BIRD_CONF -P $SERVICE_PID_FILE
}
stop() {
service_stop $BIRD_BIN
}
reload() {
service_reload $BIRD_BIN
}