bird: new package
authorAdrien Gallouët <adrien@gallouet.fr>
Thu, 27 Sep 2018 22:21:01 +0000 (22:21 +0000)
committerThomas Petazzoni <thomas.petazzoni@bootlin.com>
Tue, 9 Oct 2018 12:46:45 +0000 (14:46 +0200)
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>
DEVELOPERS
package/Config.in
package/bird/0001-Makefile.in-fix-installation-with-disable-client.patch [new file with mode: 0644]
package/bird/Config.in [new file with mode: 0644]
package/bird/bird.hash [new file with mode: 0644]
package/bird/bird.mk [new file with mode: 0644]

index b4294e2c485e11acf8ddae2fc19dcdbb729bd37a..b54d3a9bc222d4f332b32e13a65fbca951ac2a2c 100644 (file)
@@ -71,6 +71,7 @@ F:    package/webkitgtk/
 F:     package/woff2/
 
 N:     Adrien Gallouët <adrien@gallouet.fr>
+F:     package/bird/
 F:     package/glorytun/
 
 N:     Aleksander Morgado <aleksander@aleksander.es>
index 1f3c7e7f4ecef97e3bebe72c3ee71bb7a3ce793f..700afea6886ff94a36af272968f059483dd23aeb 100644 (file)
@@ -1761,6 +1761,7 @@ menu "Networking applications"
        source "package/batctl/Config.in"
        source "package/bcusdk/Config.in"
        source "package/bind/Config.in"
+       source "package/bird/Config.in"
        source "package/bluez-tools/Config.in"
        source "package/bluez_utils/Config.in"
        source "package/bluez5_utils/Config.in"
diff --git a/package/bird/0001-Makefile.in-fix-installation-with-disable-client.patch b/package/bird/0001-Makefile.in-fix-installation-with-disable-client.patch
new file mode 100644 (file)
index 0000000..c0faec2
--- /dev/null
@@ -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
+
diff --git a/package/bird/Config.in b/package/bird/Config.in
new file mode 100644 (file)
index 0000000..a69551f
--- /dev/null
@@ -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
diff --git a/package/bird/bird.hash b/package/bird/bird.hash
new file mode 100644 (file)
index 0000000..449e8af
--- /dev/null
@@ -0,0 +1,2 @@
+sha256 bd42d48fbcc2c0046d544f1183cd98193ff15b792d332ff45f386b0180b09335  bird-v2.0.2.tar.gz
+sha256 f018596a97af0108efc446320631e2fddc0c1d1f3ffab3129327ccdb4f0c29ed  README
diff --git a/package/bird/bird.mk b/package/bird/bird.mk
new file mode 100644 (file)
index 0000000..297e21d
--- /dev/null
@@ -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))