diff options
| author | Yi Zhao <yi.zhao@windriver.com> | 2016-12-29 14:11:23 +0800 |
|---|---|---|
| committer | Martin Jansa <Martin.Jansa@gmail.com> | 2017-01-19 09:26:15 +0100 |
| commit | 807be0aeed9706f2c8b95340a9b4c391e8513200 (patch) | |
| tree | 258b3cecac78704e0be6326801528ee8299b4a85 | |
| parent | c0ff097fae3c7ad35a7cbdf4170363875316271c (diff) | |
| download | meta-openembedded-807be0aeed9706f2c8b95340a9b4c391e8513200.tar.gz | |
quagga: update to 1.1.0
* remove the following 3 patches which already fixed in upstream:
0001-ospf6d-check-ospf6-before-using-it-in-ospf6_clean.patch
quagga-Avoid-duplicate-connected-address.patch
ripd-fix-two-bugs-after-received-SIGHUP.patch
* inherit pkgconfig to fix configure errors:
| configure.ac:97: error: possibly undefined macro: AC_MSG_RESULT
| If this token and others are legitimate, please use m4_pattern_allow.
| See the Autoconf documentation.
* add user quagga to quaggavty supplementary group to fix startup error:
Starting Quagga daemons: zebra
privs_init: user(quagga) is not part of vty group specified(quaggavty)
* remove babeld related code from initscript becasue it had been removed
from quagga
Signed-off-by: Yi Zhao <yi.zhao@windriver.com>
Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
8 files changed, 9 insertions, 148 deletions
diff --git a/meta-networking/recipes-protocols/quagga/files/0001-ospf6d-check-ospf6-before-using-it-in-ospf6_clean.patch b/meta-networking/recipes-protocols/quagga/files/0001-ospf6d-check-ospf6-before-using-it-in-ospf6_clean.patch deleted file mode 100644 index f08bb572da..0000000000 --- a/meta-networking/recipes-protocols/quagga/files/0001-ospf6d-check-ospf6-before-using-it-in-ospf6_clean.patch +++ /dev/null | |||
| @@ -1,28 +0,0 @@ | |||
| 1 | Upstream-Status: Pending | ||
| 2 | |||
| 3 | Subject: ospf6d: check ospf6 before using it in ospf6_clean | ||
| 4 | |||
| 5 | The ospf6 variable might be 'NULL' causing segment fault error. | ||
| 6 | Check it before referencing it. | ||
| 7 | |||
| 8 | Signed-off-by: Chen Qi <Qi.Chen@windriver.com> | ||
| 9 | --- | ||
| 10 | ospf6d/ospf6d.c | 2 ++ | ||
| 11 | 1 file changed, 2 insertions(+) | ||
| 12 | |||
| 13 | diff --git a/ospf6d/ospf6d.c b/ospf6d/ospf6d.c | ||
| 14 | index 3cdd5c1..e3bf1af 100644 | ||
| 15 | --- a/ospf6d/ospf6d.c | ||
| 16 | +++ b/ospf6d/ospf6d.c | ||
| 17 | @@ -1892,6 +1892,8 @@ ospf6_init (void) | ||
| 18 | void | ||
| 19 | ospf6_clean (void) | ||
| 20 | { | ||
| 21 | + if (ospf6 == NULL) | ||
| 22 | + return; | ||
| 23 | if (ospf6->route_table) | ||
| 24 | ospf6_route_remove_all (ospf6->route_table); | ||
| 25 | if (ospf6->brouter_table) | ||
| 26 | -- | ||
| 27 | 1.9.1 | ||
| 28 | |||
diff --git a/meta-networking/recipes-protocols/quagga/files/quagga-Avoid-duplicate-connected-address.patch b/meta-networking/recipes-protocols/quagga/files/quagga-Avoid-duplicate-connected-address.patch deleted file mode 100644 index a07e33f9fd..0000000000 --- a/meta-networking/recipes-protocols/quagga/files/quagga-Avoid-duplicate-connected-address.patch +++ /dev/null | |||
| @@ -1,54 +0,0 @@ | |||
| 1 | quagga: Avoid duplicate connected address adding to the list | ||
| 2 | |||
| 3 | commit 27ba970b9("quagga/ripd: Fix two bugs after received SIGHUP signal") | ||
| 4 | introduces an regression: ifp->connected list is cleaned up when ripd is | ||
| 5 | restarting, however, for interface addresses which are not specified in | ||
| 6 | ripd configuration file, they are never to be added into ifp->connected | ||
| 7 | again, this will lead to some abnormal behavior for route advertising. | ||
| 8 | |||
| 9 | Instead of cleaning up the ifp->connected list to avoid duplicated | ||
| 10 | connected address being added into this list, we can check this | ||
| 11 | condition during interface address adding process and return early | ||
| 12 | when an identical address has already been added. | ||
| 13 | |||
| 14 | Upstream-Status: Pending | ||
| 15 | |||
| 16 | Signed-off-by: Hu Yadi <Yadi.hu@windriver.com> | ||
| 17 | Signed-off-by: Xufeng Zhang <xufeng.zhang@windriver.com> | ||
| 18 | Signed-off-by: Joe MacDonald <joe@deserted.net> | ||
| 19 | --- | ||
| 20 | --- a/lib/if.c | ||
| 21 | +++ b/lib/if.c | ||
| 22 | @@ -738,6 +738,16 @@ connected_add_by_prefix (struct interfac | ||
| 23 | struct prefix *destination) | ||
| 24 | { | ||
| 25 | struct connected *ifc; | ||
| 26 | + struct listnode *cnode; | ||
| 27 | + struct connected *c; | ||
| 28 | + int ret = 0; | ||
| 29 | + | ||
| 30 | + for (ALL_LIST_ELEMENTS_RO (ifp->connected, cnode, c)) | ||
| 31 | + { | ||
| 32 | + ret = connected_same_prefix (p, (c->address)); | ||
| 33 | + if(ret == 1) | ||
| 34 | + return NULL; | ||
| 35 | + } | ||
| 36 | |||
| 37 | /* Allocate new connected address. */ | ||
| 38 | ifc = connected_new (); | ||
| 39 | --- a/ripd/rip_interface.c | ||
| 40 | +++ b/ripd/rip_interface.c | ||
| 41 | @@ -516,13 +516,6 @@ rip_interface_clean (void) | ||
| 42 | thread_cancel (ri->t_wakeup); | ||
| 43 | ri->t_wakeup = NULL; | ||
| 44 | } | ||
| 45 | - | ||
| 46 | - for (conn_node = listhead (ifp->connected); conn_node; conn_node = next) | ||
| 47 | - { | ||
| 48 | - ifc = listgetdata (conn_node); | ||
| 49 | - next = conn_node->next; | ||
| 50 | - listnode_delete (ifp->connected, ifc); | ||
| 51 | - } | ||
| 52 | } | ||
| 53 | } | ||
| 54 | |||
diff --git a/meta-networking/recipes-protocols/quagga/files/quagga.default b/meta-networking/recipes-protocols/quagga/files/quagga.default index 0c1ce6c042..4c4bc23071 100644 --- a/meta-networking/recipes-protocols/quagga/files/quagga.default +++ b/meta-networking/recipes-protocols/quagga/files/quagga.default | |||
| @@ -4,7 +4,6 @@ vtysh_enable=yes | |||
| 4 | 4 | ||
| 5 | # Bind all daemons to loopback only by default | 5 | # Bind all daemons to loopback only by default |
| 6 | zebra_options=" --daemon -A 127.0.0.1" | 6 | zebra_options=" --daemon -A 127.0.0.1" |
| 7 | babeld_options="--daemon -A 127.0.0.1" | ||
| 8 | bgpd_options=" --daemon -A 127.0.0.1" | 7 | bgpd_options=" --daemon -A 127.0.0.1" |
| 9 | ospfd_options=" --daemon -A 127.0.0.1" | 8 | ospfd_options=" --daemon -A 127.0.0.1" |
| 10 | ospf6d_options="--daemon -A ::1" | 9 | ospf6d_options="--daemon -A ::1" |
diff --git a/meta-networking/recipes-protocols/quagga/files/quagga.init b/meta-networking/recipes-protocols/quagga/files/quagga.init index 60b5ab01a1..df1beb7123 100644 --- a/meta-networking/recipes-protocols/quagga/files/quagga.init +++ b/meta-networking/recipes-protocols/quagga/files/quagga.init | |||
| @@ -26,7 +26,7 @@ D_PATH=/usr/sbin | |||
| 26 | C_PATH=/etc/quagga | 26 | C_PATH=/etc/quagga |
| 27 | 27 | ||
| 28 | # Keep zebra first and do not list watchquagga! | 28 | # Keep zebra first and do not list watchquagga! |
| 29 | DAEMONS="zebra bgpd ripd ripngd ospfd ospf6d isisd babeld" | 29 | DAEMONS="zebra bgpd ripd ripngd ospfd ospf6d isisd" |
| 30 | 30 | ||
| 31 | # Print the name of the pidfile. | 31 | # Print the name of the pidfile. |
| 32 | pidfile() | 32 | pidfile() |
diff --git a/meta-networking/recipes-protocols/quagga/files/ripd-fix-two-bugs-after-received-SIGHUP.patch b/meta-networking/recipes-protocols/quagga/files/ripd-fix-two-bugs-after-received-SIGHUP.patch deleted file mode 100644 index 4b8c9a929b..0000000000 --- a/meta-networking/recipes-protocols/quagga/files/ripd-fix-two-bugs-after-received-SIGHUP.patch +++ /dev/null | |||
| @@ -1,50 +0,0 @@ | |||
| 1 | ripd: Fix two bugs after received SIGHUP signal | ||
| 2 | |||
| 3 | There are two problems for ripd implementation after received | ||
| 4 | SIGHUP signal: | ||
| 5 | 1). ripd didn't clean up ifp->connected list before reload | ||
| 6 | configuration file. | ||
| 7 | 2). ripd reset ri->split_horizon flag to RIP_NO_SPLIT_HORIZON | ||
| 8 | which lead to the unnecessary route to be advertised. | ||
| 9 | |||
| 10 | Upstream-Status: Submitted [http://patchwork.diac24.net/patch/604/] | ||
| 11 | |||
| 12 | Signed-off-by: Xufeng Zhang <xufeng.zhang@windriver.com> | ||
| 13 | Signed-off-by: Joe MacDonald <joe@deserted.net> | ||
| 14 | --- | ||
| 15 | --- a/ripd/rip_interface.c | ||
| 16 | +++ b/ripd/rip_interface.c | ||
| 17 | @@ -500,6 +500,8 @@ | ||
| 18 | struct listnode *node; | ||
| 19 | struct interface *ifp; | ||
| 20 | struct rip_interface *ri; | ||
| 21 | + struct connected *ifc; | ||
| 22 | + struct listnode *conn_node, *next; | ||
| 23 | |||
| 24 | for (ALL_LIST_ELEMENTS_RO (iflist, node, ifp)) | ||
| 25 | { | ||
| 26 | @@ -514,6 +516,13 @@ | ||
| 27 | thread_cancel (ri->t_wakeup); | ||
| 28 | ri->t_wakeup = NULL; | ||
| 29 | } | ||
| 30 | + | ||
| 31 | + for (conn_node = listhead (ifp->connected); conn_node; conn_node = next) | ||
| 32 | + { | ||
| 33 | + ifc = listgetdata (conn_node); | ||
| 34 | + next = conn_node->next; | ||
| 35 | + listnode_delete (ifp->connected, ifc); | ||
| 36 | + } | ||
| 37 | } | ||
| 38 | } | ||
| 39 | |||
| 40 | @@ -548,8 +557,8 @@ | ||
| 41 | ri->key_chain = NULL; | ||
| 42 | } | ||
| 43 | |||
| 44 | - ri->split_horizon = RIP_NO_SPLIT_HORIZON; | ||
| 45 | - ri->split_horizon_default = RIP_NO_SPLIT_HORIZON; | ||
| 46 | + ri->split_horizon = RIP_SPLIT_HORIZON; | ||
| 47 | + ri->split_horizon_default = RIP_SPLIT_HORIZON; | ||
| 48 | |||
| 49 | ri->list[RIP_FILTER_IN] = NULL; | ||
| 50 | ri->list[RIP_FILTER_OUT] = NULL; | ||
diff --git a/meta-networking/recipes-protocols/quagga/quagga.inc b/meta-networking/recipes-protocols/quagga/quagga.inc index ae08a2d323..bf0b89efd9 100644 --- a/meta-networking/recipes-protocols/quagga/quagga.inc +++ b/meta-networking/recipes-protocols/quagga/quagga.inc | |||
| @@ -28,8 +28,6 @@ SRC_URI = "${SAVANNAH_GNU_MIRROR}/quagga${QUAGGASUBDIR}/quagga-${PV}.tar.gz; \ | |||
| 28 | file://watchquagga.default \ | 28 | file://watchquagga.default \ |
| 29 | file://volatiles.03_quagga \ | 29 | file://volatiles.03_quagga \ |
| 30 | file://quagga.pam \ | 30 | file://quagga.pam \ |
| 31 | file://ripd-fix-two-bugs-after-received-SIGHUP.patch \ | ||
| 32 | file://quagga-Avoid-duplicate-connected-address.patch \ | ||
| 33 | file://bgpd.service \ | 31 | file://bgpd.service \ |
| 34 | file://isisd.service \ | 32 | file://isisd.service \ |
| 35 | file://ospf6d.service \ | 33 | file://ospf6d.service \ |
| @@ -43,7 +41,7 @@ PACKAGECONFIG ??= "${@bb.utils.contains('DISTRO_FEATURES', 'pam', 'pam', '', d)} | |||
| 43 | PACKAGECONFIG[cap] = "--enable-capabilities,--disable-capabilities,libcap" | 41 | PACKAGECONFIG[cap] = "--enable-capabilities,--disable-capabilities,libcap" |
| 44 | PACKAGECONFIG[pam] = "--with-libpam, --without-libpam, libpam" | 42 | PACKAGECONFIG[pam] = "--with-libpam, --without-libpam, libpam" |
| 45 | 43 | ||
| 46 | inherit autotools update-rc.d useradd systemd | 44 | inherit autotools update-rc.d useradd systemd pkgconfig |
| 47 | 45 | ||
| 48 | SYSTEMD_PACKAGES = "${PN} ${PN}-bgpd ${PN}-isisd ${PN}-ospf6d ${PN}-ospfd ${PN}-ripd ${PN}-ripngd" | 46 | SYSTEMD_PACKAGES = "${PN} ${PN}-bgpd ${PN}-isisd ${PN}-ospf6d ${PN}-ospfd ${PN}-ripd ${PN}-ripngd" |
| 49 | SYSTEMD_SERVICE_${PN}-bgpd = "bgpd.service" | 47 | SYSTEMD_SERVICE_${PN}-bgpd = "bgpd.service" |
| @@ -202,7 +200,7 @@ INITSCRIPT_PARAMS_${PN}-watchquagga = "defaults 90 10" | |||
| 202 | # Add quagga's user and group | 200 | # Add quagga's user and group |
| 203 | USERADD_PACKAGES = "${PN}" | 201 | USERADD_PACKAGES = "${PN}" |
| 204 | GROUPADD_PARAM_${PN} = "--system quagga ; --system quaggavty" | 202 | GROUPADD_PARAM_${PN} = "--system quagga ; --system quaggavty" |
| 205 | USERADD_PARAM_${PN} = "--system --home ${localstatedir}/run/quagga/ -M -g quagga --shell /bin/false quagga" | 203 | USERADD_PARAM_${PN} = "--system --home ${localstatedir}/run/quagga/ -M -g quagga -G quaggavty --shell /bin/false quagga" |
| 206 | 204 | ||
| 207 | pkg_postinst_${PN} () { | 205 | pkg_postinst_${PN} () { |
| 208 | if [ -z "$D" ] && [ -e /etc/init.d/populate-volatile.sh ] ; then | 206 | if [ -z "$D" ] && [ -e /etc/init.d/populate-volatile.sh ] ; then |
diff --git a/meta-networking/recipes-protocols/quagga/quagga_1.0.20160315.bb b/meta-networking/recipes-protocols/quagga/quagga_1.0.20160315.bb deleted file mode 100644 index d1657818c4..0000000000 --- a/meta-networking/recipes-protocols/quagga/quagga_1.0.20160315.bb +++ /dev/null | |||
| @@ -1,10 +0,0 @@ | |||
| 1 | require quagga.inc | ||
| 2 | |||
| 3 | SRC_URI += " \ | ||
| 4 | file://0001-ospf6d-check-ospf6-before-using-it-in-ospf6_clean.patch \ | ||
| 5 | " | ||
| 6 | |||
| 7 | SRC_URI[md5sum] = "e73d6e527fb80240f180de420cfe8042" | ||
| 8 | SRC_URI[sha256sum] = "21ffb7bad0ef5f130f18dd299d219ea1cb4f5c03d473b6b32c83c340cd853263" | ||
| 9 | |||
| 10 | QUAGGASUBDIR = "" | ||
diff --git a/meta-networking/recipes-protocols/quagga/quagga_1.1.0.bb b/meta-networking/recipes-protocols/quagga/quagga_1.1.0.bb new file mode 100644 index 0000000000..1b5c34c87d --- /dev/null +++ b/meta-networking/recipes-protocols/quagga/quagga_1.1.0.bb | |||
| @@ -0,0 +1,6 @@ | |||
| 1 | require quagga.inc | ||
| 2 | |||
| 3 | SRC_URI[md5sum] = "daa303871e07ea5856aae6fd79e89722" | ||
| 4 | SRC_URI[sha256sum] = "f7a43a9c59bfd3722002210530b2553c8d5cc05bfea5acd56d4f102b9f55dc63" | ||
| 5 | |||
| 6 | QUAGGASUBDIR = "" | ||
