Browse Source

bird: new package

The BIRD project aims to develop a dynamic IP routing daemon with full
support of all modern routing protocols, easy to use configuration
interface and powerful route filtering language

Signed-off-by: Adrien Gallouët <adrien@gallouet.fr>
[Thomas:
 - Do not make ncurses/readline mandatory dependencies, since they are
   not. They are only needed when building the BIRD client. Added a
   Config.in sub-option to enable/disable the client. As part of this,
   added ncurses/readline to <pkg>_DEPENDENCIES.
 - Add a patch to fix the installation when the BIRD client is
   disabled, the patch has been submitted upstream.
 - Added host-flex and host-bison to <pkg>_DEPENDENCIES since
   flex/bison are used during the build process.
 - Add BR2_USE_MMU dependency, the code uses fork()
 - Fix alphabetic ordering in DEVELOPERS file.]
Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
Adrien Gallouët 6 years ago
parent
commit
f3f296a53e

+ 1 - 0
DEVELOPERS

@@ -71,6 +71,7 @@ F:	package/webkitgtk/
 F:	package/woff2/
 F:	package/woff2/
 
 
 N:	Adrien Gallouët <adrien@gallouet.fr>
 N:	Adrien Gallouët <adrien@gallouet.fr>
+F:	package/bird/
 F:	package/glorytun/
 F:	package/glorytun/
 
 
 N:	Aleksander Morgado <aleksander@aleksander.es>
 N:	Aleksander Morgado <aleksander@aleksander.es>

+ 1 - 0
package/Config.in

@@ -1761,6 +1761,7 @@ menu "Networking applications"
 	source "package/batctl/Config.in"
 	source "package/batctl/Config.in"
 	source "package/bcusdk/Config.in"
 	source "package/bcusdk/Config.in"
 	source "package/bind/Config.in"
 	source "package/bind/Config.in"
+	source "package/bird/Config.in"
 	source "package/bluez-tools/Config.in"
 	source "package/bluez-tools/Config.in"
 	source "package/bluez_utils/Config.in"
 	source "package/bluez_utils/Config.in"
 	source "package/bluez5_utils/Config.in"
 	source "package/bluez5_utils/Config.in"

+ 41 - 0
package/bird/0001-Makefile.in-fix-installation-with-disable-client.patch

@@ -0,0 +1,41 @@
+From 6cb15abfc00cb5e492175a9efc71bfdfd1aa457c Mon Sep 17 00:00:00 2001
+From: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
+Date: Tue, 9 Oct 2018 12:51:08 +0200
+Subject: [PATCH] Makefile.in: fix installation with --disable-client
+
+The configure.ac script initializes the CLIENT variable this way:
+
+CLIENT=birdcl
+if client enabled
+ CLIENT=$CLIENT birdc
+fi
+
+This means that checking if @CLIENT@ is empty to decide whether birdc
+should be installed or not doesn't work, and causes a failure at
+installation time when --disable-client is passed.
+
+Instead, check if the birdc binary has been produced or not to decide
+whether it should be installed.
+
+Signed-off-by: Thomas Petazzoni <thomas.petazzoni@bootlin.com>
+Upstream-status: http://trubka.network.cz/pipermail/bird-users/2018-October/012763.html
+---
+ Makefile.in | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index c8168bbe..fea3683e 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -171,7 +171,7 @@ install: all
+ 	$(INSTALL) -d $(DESTDIR)/$(sbindir) $(DESTDIR)/$(sysconfdir) $(DESTDIR)/@runtimedir@
+ 	$(INSTALL_PROGRAM) $(exedir)/bird $(DESTDIR)/$(sbindir)/bird
+ 	$(INSTALL_PROGRAM) $(exedir)/birdcl $(DESTDIR)/$(sbindir)/birdcl
+-	if test -n "@CLIENT@" ; then								\
++	if test -f $(exedir)/birdc ; then							\
+ 		$(INSTALL_PROGRAM) $(exedir)/birdc $(DESTDIR)/$(sbindir)/birdc ;		\
+ 	fi
+ 	if ! test -f $(DESTDIR)/@CONFIG_FILE@ ; then						\
+-- 
+2.14.4
+

+ 23 - 0
package/bird/Config.in

@@ -0,0 +1,23 @@
+config BR2_PACKAGE_BIRD
+	bool "bird"
+	depends on BR2_USE_MMU # fork()
+	help
+	  BIRD Internet Routing Daemon
+
+	  The BIRD project aims to develop a dynamic IP routing daemon
+	  with full support of all modern routing protocols, easy to
+	  use configuration interface and powerful route filtering
+	  language
+
+	  http://bird.network.cz/
+
+if BR2_PACKAGE_BIRD
+
+config BR2_PACKAGE_BIRD_CLIENT
+	bool "birdc"
+	select BR2_PACKAGE_NCURSES
+	select BR2_PACKAGE_READLINE
+	help
+	  Enable the BIRD client
+
+endif

+ 2 - 0
package/bird/bird.hash

@@ -0,0 +1,2 @@
+sha256 bd42d48fbcc2c0046d544f1183cd98193ff15b792d332ff45f386b0180b09335  bird-v2.0.2.tar.gz
+sha256 f018596a97af0108efc446320631e2fddc0c1d1f3ffab3129327ccdb4f0c29ed  README

+ 22 - 0
package/bird/bird.mk

@@ -0,0 +1,22 @@
+################################################################################
+#
+# bird
+#
+################################################################################
+
+BIRD_VERSION = v2.0.2
+BIRD_SITE = $(call github,BIRD,bird,$(BIRD_VERSION))
+BIRD_LICENSE = GPL-2.0+
+BIRD_LICENSE_FILES = README
+# autoreconf is needed since the package is fetched from github
+BIRD_AUTORECONF = YES
+BIRD_DEPENDENCIES = host-flex host-bison
+
+ifeq ($(BR2_PACKAGE_BIRD_CLIENT),y)
+BIRD_CONF_OPTS += --enable-client
+BIRD_DEPENDENCIES += ncurses readline
+else
+BIRD_CONF_OPTS += --disable-client
+endif
+
+$(eval $(autotools-package))