Mon Feb 19 12:54:09 2024 UTC (96d)
Add a patch to exabgp-4.2.21:

Allow "neighbor *" in route announce command, to match
"all configured neighbors".
Ref. https://github.com/Exa-Networks/exabgp/issues/1179
Adapt the healthcheck module to allow this argument.

Bump PKGREVISION.


(he)
diff -r1.41 -r1.42 pkgsrc/net/exabgp/Makefile
diff -r1.19 -r1.20 pkgsrc/net/exabgp/distinfo
diff -r0 -r1.3 pkgsrc/net/exabgp/patches/patch-lib_exabgp_application_healthcheck.py
diff -r0 -r1.1 pkgsrc/net/exabgp/patches/patch-lib_exabgp_reactor_api_command_limit.py

cvs diff -r1.41 -r1.42 pkgsrc/net/exabgp/Makefile (expand / switch to unified diff)

--- pkgsrc/net/exabgp/Makefile 2023/08/14 05:24:58 1.41
+++ pkgsrc/net/exabgp/Makefile 2024/02/19 12:54:09 1.42
@@ -1,17 +1,17 @@ @@ -1,17 +1,17 @@
1# $NetBSD: Makefile,v 1.41 2023/08/14 05:24:58 wiz Exp $ 1# $NetBSD: Makefile,v 1.42 2024/02/19 12:54:09 he Exp $
2 2
3DISTNAME= exabgp-4.2.21 3DISTNAME= exabgp-4.2.21
4PKGREVISION= 1 4PKGREVISION= 2
5CATEGORIES= net 5CATEGORIES= net
6MASTER_SITES= ${MASTER_SITE_GITHUB:=Exa-Networks/} 6MASTER_SITES= ${MASTER_SITE_GITHUB:=Exa-Networks/}
7 7
8MAINTAINER= he@NetBSD.org 8MAINTAINER= he@NetBSD.org
9HOMEPAGE= https://github.com/Exa-Networks/exabgp/ 9HOMEPAGE= https://github.com/Exa-Networks/exabgp/
10COMMENT= BGP swiss army knife 10COMMENT= BGP swiss army knife
11LICENSE= modified-bsd 11LICENSE= modified-bsd
12 12
13TEST_DEPENDS+= ${PYPKGPREFIX}-test-[0-9]*:../../devel/py-test 13TEST_DEPENDS+= ${PYPKGPREFIX}-test-[0-9]*:../../devel/py-test
14 14
15USE_PKG_RESOURCES= yes 15USE_PKG_RESOURCES= yes
16 16
17USE_TOOLS+= perl:run 17USE_TOOLS+= perl:run

cvs diff -r1.19 -r1.20 pkgsrc/net/exabgp/distinfo (expand / switch to unified diff)

--- pkgsrc/net/exabgp/distinfo 2022/09/18 12:02:00 1.19
+++ pkgsrc/net/exabgp/distinfo 2024/02/19 12:54:09 1.20
@@ -1,5 +1,7 @@ @@ -1,5 +1,7 @@
1$NetBSD: distinfo,v 1.19 2022/09/18 12:02:00 he Exp $ 1$NetBSD: distinfo,v 1.20 2024/02/19 12:54:09 he Exp $
2 2
3BLAKE2s (exabgp-4.2.21.tar.gz) = 16efdd84722201dc7dac7297a9367535c1b5184f952728123a856a93ec4e302a 3BLAKE2s (exabgp-4.2.21.tar.gz) = 16efdd84722201dc7dac7297a9367535c1b5184f952728123a856a93ec4e302a
4SHA512 (exabgp-4.2.21.tar.gz) = 0efc7143191e8b557297e9329354c01e2418e0c4c45753941eba3a1f063e77d17a0efa7a14a3062764e45e709f0598f491c10e2c02e751590bb7c0943b61932b 4SHA512 (exabgp-4.2.21.tar.gz) = 0efc7143191e8b557297e9329354c01e2418e0c4c45753941eba3a1f063e77d17a0efa7a14a3062764e45e709f0598f491c10e2c02e751590bb7c0943b61932b
5Size (exabgp-4.2.21.tar.gz) = 2933721 bytes 5Size (exabgp-4.2.21.tar.gz) = 2933721 bytes
 6SHA1 (patch-lib_exabgp_application_healthcheck.py) = af35c59feb16bcf79abbf615d9ed13205127c534
 7SHA1 (patch-lib_exabgp_reactor_api_command_limit.py) = 322747424f646d1e1e22bde6baa6e057ace51805

File Added: pkgsrc/net/exabgp/patches/patch-lib_exabgp_application_healthcheck.py
$NetBSD: patch-lib_exabgp_application_healthcheck.py,v 1.3 2024/02/19 12:54:09 he Exp $

Change type of `--neighbor` argument from ip_address to str
so that it can support '*' as a value.

--- lib/exabgp/application/healthcheck.py.orig	2024-02-19 12:45:30.545761963 +0000
+++ lib/exabgp/application/healthcheck.py
@@ -222,7 +222,7 @@ def parse():
         help=("Instead of increasing the metric on health failure, " "withdraw the route"),
     )
     g.add_argument("--path-id", metavar='PATHID', type=int, default=None, help="path ID to advertise for the route")
-    g.add_argument("--neighbor", metavar='NEIGHBOR', type=ip_address, dest="neighbors", action="append", help="advertise the route to the selected neigbors")
+    g.add_argument("--neighbor", metavar='NEIGHBOR', type=str, dest="neighbors", action="append", help="advertise the route to the selected neigbors")
 
     g = parser.add_argument_group("reporting")
     g.add_argument("--execute", metavar='CMD', type=str, action="append", help="execute CMD on state change")

File Added: pkgsrc/net/exabgp/patches/patch-lib_exabgp_reactor_api_command_limit.py
$NetBSD: patch-lib_exabgp_reactor_api_command_limit.py,v 1.1 2024/02/19 12:54:09 he Exp $

Allow "neighbor *" in route announce command, to match
"all configured neighbors".
Ref. https://github.com/Exa-Networks/exabgp/issues/1179

--- lib/exabgp/reactor/api/command/limit.py.orig	2024-02-19 12:41:58.477150474 +0000
+++ lib/exabgp/reactor/api/command/limit.py
@@ -63,6 +63,8 @@ def extract_neighbors(command):
 
 def match_neighbor(description, name):
     for string in description:
+        if string.strip() == 'neighbor *':
+            return True
         if re.search(r'(^|\s)%s($|\s|,)' % re.escape(string), name) is None:
             return False
     return True