for i in $(seq $timeout); do
# We look for
# - the link-local address (starts with fe80)
- # - without tentative flag (bit 0x40 in the flags field; the first char of the flags field begins 38 columns after the fe80 prefix
+ # - without tentative flag (bit 0x40 in the flags field; the first char of the fifth field is evaluated)
# - on interface $iface
if awk '
BEGIN { RET=1 }
- /^fe80.{37} [012389ab]/ { if ($6 == "'"$iface"'") RET=0 }
+ $1 ~ /^fe80/ && $5 ~ /^[012389ab]/ && $6 == "'"$iface"'" { RET=0 }
END { exit RET }
' /proc/net/if_inet6; then
return
PKG_SOURCE_URL:=git://github.com/bmx-routing/bmx7.git
#PKG_SOURCE_URL:=file:///usr/src/bmx-routing/bmx7.git
-PKG_REV:=f78db8298dd8b3658f6fcfa90df2644a15b99924
-PKG_MIRROR_HASH:=80ca8e04603d824e4dede0055030c765bd9e69f7945c01ffb953de37b228028e
-PKG_VERSION:=r2018030903
-PKG_RELEASE:=3
+PKG_REV:=9883383dc26df16da67b9ef7ba99efe62f79c4e7
+PKG_MIRROR_HASH:=012178aba42016d3e0961715f99bf1e322c2c6c22b1cc6635375468360cb4d68
+PKG_VERSION:=r2018042501
+PKG_RELEASE:=1
PKG_LICENSE:=GPL-2.0
PKG_SOURCE_VERSION:=$(PKG_REV)
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_HASH:=9677aeccadf73b4bf8bb9d832c32b5da8266b4d58eed888f3fd43d7656405643
-PKG_MAINTAINER:=Markus Stenberg <fingon@iki.fi>
PKG_LICENSE:=BSD-3-Clause
include $(INCLUDE_DIR)/package.mk
+++ /dev/null
-include $(TOPDIR)/rules.mk
-
-PKG_NAME:=prince
-PKG_VERSION:=v0.3.1
-PKG_RELEASE:=2
-
-PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(PKG_VERSION)
-PKG_USE_MIPS16:=0
-PKG_SOURCE_PROTO:=git
-PKG_SOURCE:=prince-$(PKG_VERSION).tar.gz
-PKG_SOURCE_URL:=https://github.com/gabri94/poprouting.git
-PKG_SOURCE_VERSION:=v0.3.1
-PKG_SOURCE_SUBDIR:=$(PKG_NAME)-$(PKG_SOURCE_VERSION)
-include $(INCLUDE_DIR)/package.mk
-
-define Package/prince
- SECTION:=net
- CATEGORY:=Network
- SUBMENU:=Routing and Redirection
- MAINTAINER:=Gabriele Gemmi <gabriel@autistici.org>
- TITLE:=PopRouting daemon
- URL:=https://github.com/gabri94/poprouting
- DEPENDS:= +libjson-c +libpthread
-endef
-
-define Package/prince/description
-Prince is an open source implementation of the PopRouting Algorithm.
-It has been developed as a Google Summer of Code Project in collaboration with Freifunk and the University of Trento.
-
-It work by fetching topology data from a Link State routing demon(OONF, OLSR, OSPF, etc),
-calculating the betweenness centrality using the topology, then using these data
-the timer's value are optimized. Finally the timers are pushed back to the routing demon.
-Currently it only supports OLSRd2 (aka OONF).
-endef
-
-CFLAGS += $(TARGET_CFLAGS) $(TARGET_CPPFLAGS)
-LDFLAGS += $(TARGET_LDFLAGS)
-
-define Package/prince/install
- $(INSTALL_DIR) $(1)/usr/lib
- $(INSTALL_DIR) $(1)/usr/sbin
- $(INSTALL_BIN) $(PKG_BUILD_DIR)/output/prince $(1)/usr/sbin/
- $(INSTALL_DATA) $(PKG_BUILD_DIR)/output/libprince_oonf_c.so $(1)/usr/lib/
-endef
-
-
-$(eval $(call BuildPackage,prince))
+++ /dev/null
-From dda5c5a0cd2204816f2f83f18e7820ded6c962df Mon Sep 17 00:00:00 2001
-From: Florian Fainelli <f.fainelli@gmail.com>
-Date: Mon, 5 Jun 2017 17:30:24 -0700
-Subject: [PATCH] Honor CFLAGS and LDFLAGS when passed
-
----
- Makefile | 4 ++--
- 1 file changed, 2 insertions(+), 2 deletions(-)
-
-Index: prince-v0.3.1/Makefile
-===================================================================
---- prince-v0.3.1.orig/Makefile
-+++ prince-v0.3.1/Makefile
-@@ -1,11 +1,11 @@
- CFLAGS+=-lm -ldl -ljson-c -pthread
- poprouting:out libs
- cp prince/src/common_c.h prince/src/common.h
-- $(CC) $(LDFLAGS) prince/src/prince.c prince/src/lib/ini.c prince/src/parser.c prince/src/socket.c graph-parser_c/src/brandes.c graph-parser_c/src/biconnected.c graph-parser_c/src/graph_parser.c graph-parser_c/src/graph/graph.c graph-parser_c/src/graph/list.c graph-parser_c/src/network_change.c -o output/prince $(CFLAGS)
-+ $(CC) $(LDFLAGS) $(CFLAGS) prince/src/prince.c prince/src/lib/ini.c prince/src/parser.c prince/src/socket.c graph-parser_c/src/brandes.c graph-parser_c/src/biconnected.c graph-parser_c/src/graph_parser.c graph-parser_c/src/graph/graph.c graph-parser_c/src/graph/list.c graph-parser_c/src/network_change.c -o output/prince
- rm prince/src/common.h
- libs:
- cp prince/src/common_c.h prince/src/common.h
-- $(CC) -shared -fPIC -o output/libprince_oonf_c.so prince/src/oonf.c prince/src/socket.c prince/src/parser.c graph-parser_c/src/brandes.c graph-parser_c/src/biconnected.c graph-parser_c/src/graph_parser.c graph-parser_c/src/graph/graph.c graph-parser_c/src/graph/list.c graph-parser_c/src/network_change.c
-+ $(CC) $(LDFLAGS) $(CFLAGS) -shared -fPIC -o output/libprince_oonf_c.so prince/src/oonf.c prince/src/socket.c prince/src/parser.c graph-parser_c/src/brandes.c graph-parser_c/src/biconnected.c graph-parser_c/src/graph_parser.c graph-parser_c/src/graph/graph.c graph-parser_c/src/graph/list.c graph-parser_c/src/network_change.c
- clean:
- rm output/*
-
--- /dev/null
+#
+# Copyright (C) 2009-2018 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:=prince
+PKG_VERSION:=v0.4
+PKG_RELEASE:=1
+
+# out of source build
+CMAKE_BINARY_SUBDIR:=build
+
+PKG_BUILD_DIR:=$(BUILD_DIR)/prince-$(PKG_VERSION)
+PKG_MIRROR_HASH:=19a3cae09f28a5ef07fc0f5ff12cf62c776a94fbf1626336ab04951775c104de
+PKG_INSTALL:=0
+PKG_LICENSE:=MIT
+PKG_SOURCE:=prince-$(PKG_VERSION).tar.xz
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_SUBDIR:=prince-$(PKG_VERSION)
+PKG_SOURCE_URL:=https://github.com/AdvancedNetworkingSystems/prince.git
+PKG_SOURCE_VERSION:=v0.4
+PKG_USE_MIPS16:=0
+
+include $(INCLUDE_DIR)/package.mk
+include $(INCLUDE_DIR)/cmake.mk
+
+define Package/prince
+ SECTION :=net
+ CATEGORY :=Network
+ SUBMENU :=Routing and Redirection
+ Mantainer :=Gabriele Gemmi <gabriel@autistici.org>
+ TITLE :=Prince
+ URL :=https://github.com/AdvancedNetworkingSystems/prince
+ MENU :=0
+ DEPENDS := +libjson-c +libpthread
+endef
+
+define Package/prince/description
+ Prince is an open source implementation of the PopRouting Algorithm.
+ It has been developed as a Google Summer of Code Project in collaboration with Freifunk and the University of Trento.
+
+ Prince fetches topology data from a Link State routing daemon (OONF, OLSR, OSPF, etc),
+ calculates the betweenness centrality using the topology and then computes the
+ the timers' optimal values using these data. At the end of the computation the timers are pushed back to the routing daemon.
+ Since v0.4 it supports both OONF and OLSRd.
+endef
+
+define Package/prince/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_DIR) $(1)/usr/lib
+ $(INSTALL_DIR) $(1)/etc/init.d
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/build/prince $(1)/usr/bin/prince
+ $(INSTALL_BIN) ./files/prince.init $(1)/etc/init.d/prince
+ $(INSTALL_DATA) ./files/prince.conf $(1)/etc/prince.conf
+ $(INSTALL_DATA) $(PKG_BUILD_DIR)/build/libprince_oonf.so $(1)/usr/lib
+ $(INSTALL_DATA) $(PKG_BUILD_DIR)/build/libprince_olsr.so $(1)/usr/lib
+endef
+
+CFLAGS += $(TARGET_CFLAGS) $(TARGET_CPPFLAGS)
+LDFLAGS += $(TARGET_LDFLAGS)
+
+$(eval $(call BuildPackage,prince))
--- /dev/null
+{
+ "proto": {
+ "protocol": "oonf",
+ "host": "127.0.0.1",
+ "port": 2009 ,
+ "refresh": 10,
+ "timer_port": 2009
+ },
+ "graph-parser": {
+ "heuristic": 1,
+ "weights": 1,
+ "recursive": 0,
+ "stop_unchanged": 0,
+ "multithreaded": 0
+ }
+}
--- /dev/null
+#!/bin/sh /etc/rc.common
+# Init script for Prince
+# Copyright (C) 2018 OpenWrt.org
+
+USE_PROCD=1
+START=99
+STOP=15
+
+PROG="/usr/bin/prince"
+CONF="/etc/prince.conf"
+
+start_service(){
+ procd_open_instance
+ procd_set_param command $PROG $CONF
+ procd_set_param stdout 1
+ procd_set_param stderr 1
+ procd_set_param user nobody
+ procd_close_instance
+ echo "Prince started"
+}