squid-asnbl: Update to 0.2.5

Message ID 315c2f05-a0cd-4488-b5b2-48b6c6aa3d00@ipfire.org
State Staged
Commit 311f04e46e04c52c0a1b17370da418faacd942ca
Headers
Series squid-asnbl: Update to 0.2.5 |

Commit Message

Peter Müller Aug. 14, 2023, 11:14 p.m. UTC
  This upstream release incorporates the patch added for resolving #13023.

Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
---
 lfs/squid-asnbl                               |   5 +-
 ...les_to_make_compatible_with_python_3.patch | 100 ------------------
 2 files changed, 2 insertions(+), 103 deletions(-)
 delete mode 100644 src/patches/squid/squid-asnbl-0.2.4_initialise_global_variables_to_make_compatible_with_python_3.patch
  

Comments

Adolf Belka Aug. 15, 2023, 11:36 a.m. UTC | #1
Reviewed-by: Adolf Belka <adolf.belka@ipfire.org>

On 15/08/2023 01:14, Peter Müller wrote:
> This upstream release incorporates the patch added for resolving #13023.
>
> Signed-off-by: Peter Müller <peter.mueller@ipfire.org>
> ---
>   lfs/squid-asnbl                               |   5 +-
>   ...les_to_make_compatible_with_python_3.patch | 100 ------------------
>   2 files changed, 2 insertions(+), 103 deletions(-)
>   delete mode 100644 src/patches/squid/squid-asnbl-0.2.4_initialise_global_variables_to_make_compatible_with_python_3.patch
>
> diff --git a/lfs/squid-asnbl b/lfs/squid-asnbl
> index b003d605b..32c109e15 100644
> --- a/lfs/squid-asnbl
> +++ b/lfs/squid-asnbl
> @@ -25,7 +25,7 @@
>   
>   include Config
>   
> -VER        = 0.2.4
> +VER        = 0.2.5
>   
>   THISAPP    = squid-asnbl-$(VER)
>   DL_FILE    = $(THISAPP).tar.gz
> @@ -45,7 +45,7 @@ objects = $(DL_FILE)
>   
>   $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
>   
> -$(DL_FILE)_BLAKE2 = 98bdf0ecff1fc4d4ac0e0eb43d37682acf76900df783bf31b172134ebe31a857594e0a98ee06347da40d97b86a6ac0ce9a63ea7a80a1d73948e338f72d1c3af2
> +$(DL_FILE)_BLAKE2 = 7206b9fe6c4a0509c9ce0301a5d3553274d005daae2050f23e26056d356c328719821d58d94ed2eac7942a6cafb0ca8de2cb619ce28a0f514b6eef413350e249
>   
>   install : $(TARGET)
>   
> @@ -75,7 +75,6 @@ $(subst %,%_BLAKE2,$(objects)) :
>   $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
>   	@$(PREBUILD)
>   	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zvxf $(DIR_DL)/$(DL_FILE)
> -	cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/squid/squid-asnbl-0.2.4_initialise_global_variables_to_make_compatible_with_python_3.patch
>   
>   	# Install ASNBL helper script
>   	cd $(DIR_APP) && install -o root -g root -m 0755 asnbl-helper.py /usr/bin/asnbl-helper.py
> diff --git a/src/patches/squid/squid-asnbl-0.2.4_initialise_global_variables_to_make_compatible_with_python_3.patch b/src/patches/squid/squid-asnbl-0.2.4_initialise_global_variables_to_make_compatible_with_python_3.patch
> deleted file mode 100644
> index e540d4e76..000000000
> --- a/src/patches/squid/squid-asnbl-0.2.4_initialise_global_variables_to_make_compatible_with_python_3.patch
> +++ /dev/null
> @@ -1,100 +0,0 @@
> ---- squid-asnbl-0.2.4/asnbl-helper_orig.py
> -+++ squid-asnbl-0.2.4/asnbl-helper.py
> -@@ -172,17 +172,19 @@
> -     return parsedasns
> -
> -
> --def resolve_asn(ipaddr: str, asndb):
> --    """ Function call: resolve_asn(IP address to be resolved,
> --                                   ASN database instance object)
> --    This function looks up the Autonomous System for the given IP address. It expects
> --    an IPFire location database object to be passed as a second parameter, hence relying
> --    on another function to set that up. """
> -+def resolve_asn(ipaddr: str):
> -+    """ Function call: resolve_asn(IP address to be resolved)
> -+    This function looks up the Autonomous System for the given IP address. """
> -+
> -+    # Fix for #13023
> -+    # Initialize the result variable before it's first use, otherwise python3
> -+    # will sometimes detect a 'mismatch' using global and local variables
> -+    lookup_result = None
> -
> -     # libloc cannot handle ipaddress objects here, so casting into a string is necessary
> -     # for good measure, to avoid exceptions here...
> -     try:
> --        result = asndb.lookup(str(ipaddr))
> -+        lookup_result = ASNDB.lookup(str(ipaddr))
> -     except BlockingIOError:
> -         # XXX: Prevent likely libloc bug from causing this helper to crash
> -         # (see upstream bug https://bugzilla.ipfire.org/show_bug.cgi?id=13023)
> -@@ -190,21 +192,25 @@
> -
> -     # In case nothing was returned above, satisfy result expectation to this function...
> -     try:
> --        if not result.asn:
> -+        if not lookup_result.asn:
> -             return 0
> -     except AttributeError:
> -         return 0
> -
> --    return result.asn
> --
> --
> --def asndb_response_tests(testdata: str, asndb):
> --    """ Function call: asndb_response_tests(response rest data,
> --                                            ASN database instance object)
> -+    return lookup_result.asn
> -+
> -+
> -+def asndb_response_tests(testdata: str):
> -+    """ Function call: asndb_response_tests(response rest data)
> -
> -     This function asserts the given ASN database to return expected ASNs for
> -     given IP addresses in order to be considered operational. It returns
> -     True if this test succeeds, and False otherwise. """
> -+
> -+    # Fix for #13023
> -+    # Initialize the result variable before it's first use, otherwise python3
> -+    # will sometimes detect a 'mismatch' using global and local variables
> -+    lookup_result_test = None
> -
> -     tresult = True
> -
> -@@ -216,13 +222,13 @@
> -
> -     for stestdata in ptdata:
> -         LOGIT.debug("Running response test for '%s' against ASNDB '%s' ...",
> --                    stestdata, asndb)
> --
> --        returndata = resolve_asn(stestdata[0], asndb)
> --
> --        if returndata != int(stestdata[1]):
> -+                    stestdata, ASNDB)
> -+
> -+        lookup_result_test = resolve_asn(stestdata[0])
> -+
> -+        if lookup_result_test != int(stestdata[1]):
> -             LOGIT.error("Response test failed for ASNDB '%s' (tuple: %s), aborting",
> --                        asndb, stestdata)
> -+                        ASNDB, stestdata)
> -             tresult = False
> -             break
> -
> -@@ -428,7 +434,7 @@
> - ASNDB = set_up_location_database(config["GENERAL"]["ASNDB_PATH"])
> -
> - LOGIT.debug("Running ASN database response tests...")
> --if asndb_response_tests(config["GENERAL"]["TESTDATA"], ASNDB):
> -+if asndb_response_tests(config["GENERAL"]["TESTDATA"]):
> -     LOGIT.debug("ASN database operational - excellent. Waiting for input...")
> - else:
> -     LOGIT.error("ASN database response tests failed, aborting")
> -@@ -490,7 +496,7 @@
> -     ASNS = []
> -     for singleip in IPS:
> -         # Enumerate ASN for this IP address...
> --        resolvedasn = resolve_asn(singleip, ASNDB)
> -+        resolvedasn = resolve_asn(singleip)
> -
> -         # In case protection against destinations without public AS announcements for their
> -         # IP addresses is desired, the query will be denied in case ASN = 0 appears in an
  

Patch

diff --git a/lfs/squid-asnbl b/lfs/squid-asnbl
index b003d605b..32c109e15 100644
--- a/lfs/squid-asnbl
+++ b/lfs/squid-asnbl
@@ -25,7 +25,7 @@ 
 
 include Config
 
-VER        = 0.2.4
+VER        = 0.2.5
 
 THISAPP    = squid-asnbl-$(VER)
 DL_FILE    = $(THISAPP).tar.gz
@@ -45,7 +45,7 @@  objects = $(DL_FILE)
 
 $(DL_FILE) = $(DL_FROM)/$(DL_FILE)
 
-$(DL_FILE)_BLAKE2 = 98bdf0ecff1fc4d4ac0e0eb43d37682acf76900df783bf31b172134ebe31a857594e0a98ee06347da40d97b86a6ac0ce9a63ea7a80a1d73948e338f72d1c3af2
+$(DL_FILE)_BLAKE2 = 7206b9fe6c4a0509c9ce0301a5d3553274d005daae2050f23e26056d356c328719821d58d94ed2eac7942a6cafb0ca8de2cb619ce28a0f514b6eef413350e249
 
 install : $(TARGET)
 
@@ -75,7 +75,6 @@  $(subst %,%_BLAKE2,$(objects)) :
 $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
 	@$(PREBUILD)
 	@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zvxf $(DIR_DL)/$(DL_FILE)
-	cd $(DIR_APP) && patch -Np1 -i $(DIR_SRC)/src/patches/squid/squid-asnbl-0.2.4_initialise_global_variables_to_make_compatible_with_python_3.patch
 
 	# Install ASNBL helper script
 	cd $(DIR_APP) && install -o root -g root -m 0755 asnbl-helper.py /usr/bin/asnbl-helper.py
diff --git a/src/patches/squid/squid-asnbl-0.2.4_initialise_global_variables_to_make_compatible_with_python_3.patch b/src/patches/squid/squid-asnbl-0.2.4_initialise_global_variables_to_make_compatible_with_python_3.patch
deleted file mode 100644
index e540d4e76..000000000
--- a/src/patches/squid/squid-asnbl-0.2.4_initialise_global_variables_to_make_compatible_with_python_3.patch
+++ /dev/null
@@ -1,100 +0,0 @@ 
---- squid-asnbl-0.2.4/asnbl-helper_orig.py
-+++ squid-asnbl-0.2.4/asnbl-helper.py
-@@ -172,17 +172,19 @@
-     return parsedasns
- 
- 
--def resolve_asn(ipaddr: str, asndb):
--    """ Function call: resolve_asn(IP address to be resolved,
--                                   ASN database instance object)
--    This function looks up the Autonomous System for the given IP address. It expects
--    an IPFire location database object to be passed as a second parameter, hence relying
--    on another function to set that up. """
-+def resolve_asn(ipaddr: str):
-+    """ Function call: resolve_asn(IP address to be resolved)
-+    This function looks up the Autonomous System for the given IP address. """
-+
-+    # Fix for #13023
-+    # Initialize the result variable before it's first use, otherwise python3
-+    # will sometimes detect a 'mismatch' using global and local variables
-+    lookup_result = None
- 
-     # libloc cannot handle ipaddress objects here, so casting into a string is necessary
-     # for good measure, to avoid exceptions here...
-     try:
--        result = asndb.lookup(str(ipaddr))
-+        lookup_result = ASNDB.lookup(str(ipaddr))
-     except BlockingIOError:
-         # XXX: Prevent likely libloc bug from causing this helper to crash
-         # (see upstream bug https://bugzilla.ipfire.org/show_bug.cgi?id=13023)
-@@ -190,21 +192,25 @@
- 
-     # In case nothing was returned above, satisfy result expectation to this function...
-     try:
--        if not result.asn:
-+        if not lookup_result.asn:
-             return 0
-     except AttributeError:
-         return 0
- 
--    return result.asn
--
--
--def asndb_response_tests(testdata: str, asndb):
--    """ Function call: asndb_response_tests(response rest data,
--                                            ASN database instance object)
-+    return lookup_result.asn
-+
-+
-+def asndb_response_tests(testdata: str):
-+    """ Function call: asndb_response_tests(response rest data)
- 
-     This function asserts the given ASN database to return expected ASNs for
-     given IP addresses in order to be considered operational. It returns
-     True if this test succeeds, and False otherwise. """
-+
-+    # Fix for #13023
-+    # Initialize the result variable before it's first use, otherwise python3
-+    # will sometimes detect a 'mismatch' using global and local variables
-+    lookup_result_test = None
- 
-     tresult = True
- 
-@@ -216,13 +222,13 @@
- 
-     for stestdata in ptdata:
-         LOGIT.debug("Running response test for '%s' against ASNDB '%s' ...",
--                    stestdata, asndb)
--
--        returndata = resolve_asn(stestdata[0], asndb)
--
--        if returndata != int(stestdata[1]):
-+                    stestdata, ASNDB)
-+
-+        lookup_result_test = resolve_asn(stestdata[0])
-+
-+        if lookup_result_test != int(stestdata[1]):
-             LOGIT.error("Response test failed for ASNDB '%s' (tuple: %s), aborting",
--                        asndb, stestdata)
-+                        ASNDB, stestdata)
-             tresult = False
-             break
- 
-@@ -428,7 +434,7 @@
- ASNDB = set_up_location_database(config["GENERAL"]["ASNDB_PATH"])
- 
- LOGIT.debug("Running ASN database response tests...")
--if asndb_response_tests(config["GENERAL"]["TESTDATA"], ASNDB):
-+if asndb_response_tests(config["GENERAL"]["TESTDATA"]):
-     LOGIT.debug("ASN database operational - excellent. Waiting for input...")
- else:
-     LOGIT.error("ASN database response tests failed, aborting")
-@@ -490,7 +496,7 @@
-     ASNS = []
-     for singleip in IPS:
-         # Enumerate ASN for this IP address...
--        resolvedasn = resolve_asn(singleip, ASNDB)
-+        resolvedasn = resolve_asn(singleip)
- 
-         # In case protection against destinations without public AS announcements for their
-         # IP addresses is desired, the query will be denied in case ASN = 0 appears in an