diff --git a/SOURCES/openvswitch-3.2.0.patch b/SOURCES/openvswitch-3.2.0.patch index f6218d9..2f41776 100644 --- a/SOURCES/openvswitch-3.2.0.patch +++ b/SOURCES/openvswitch-3.2.0.patch @@ -3179,6 +3179,31 @@ index cca3408797..1ee585b941 100644 max_rate = current_speed ? current_speed / 8 * 1000000ULL : NETDEV_DEFAULT_BPS / 8; } +diff --git a/lib/netdev-native-tnl.c b/lib/netdev-native-tnl.c +index 715bbab2be..54b7c09581 100644 +--- a/lib/netdev-native-tnl.c ++++ b/lib/netdev-native-tnl.c +@@ -828,9 +828,9 @@ netdev_srv6_build_header(const struct netdev *netdev, + const struct netdev_tnl_build_header_params *params) + { + const struct netdev_tunnel_config *tnl_cfg; ++ union ovs_16aligned_in6_addr *s; + const struct in6_addr *segs; + struct srv6_base_hdr *srh; +- struct in6_addr *s; + ovs_be16 dl_type; + int nr_segs; + int i; +@@ -874,8 +874,7 @@ netdev_srv6_build_header(const struct netdev *netdev, + return EOPNOTSUPP; + } + +- s = ALIGNED_CAST(struct in6_addr *, +- (char *) srh + sizeof *srh); ++ s = (union ovs_16aligned_in6_addr *) (srh + 1); + for (i = 0; i < nr_segs; i++) { + /* Segment list is written to the header in reverse order. */ + memcpy(s, &segs[nr_segs - i - 1], sizeof *s); diff --git a/lib/netdev-offload-dpdk.c b/lib/netdev-offload-dpdk.c index 14bc877719..992627fa23 100644 --- a/lib/netdev-offload-dpdk.c @@ -3400,9 +3425,28 @@ index 80da20d9f0..5cb1fc89ae 100644 if (retval < 0) { retval = -retval; diff --git a/lib/odp-util.c b/lib/odp-util.c -index 3eb2c3cb98..9306c9b4d4 100644 +index 3eb2c3cb98..5e4f34cf74 100644 --- a/lib/odp-util.c +++ b/lib/odp-util.c +@@ -1797,8 +1797,8 @@ ovs_parse_tnl_push(const char *s, struct ovs_action_push_tnl *data) + } else if (ovs_scan_len(s, &n, "srv6(segments_left=%"SCNu8, + &segments_left)) { + struct srv6_base_hdr *srh = (struct srv6_base_hdr *) (ip6 + 1); ++ union ovs_16aligned_in6_addr *segs; + char seg_s[IPV6_SCAN_LEN + 1]; +- struct in6_addr *segs; + struct in6_addr seg; + uint8_t n_segs = 0; + +@@ -1821,7 +1821,7 @@ ovs_parse_tnl_push(const char *s, struct ovs_action_push_tnl *data) + return -EINVAL; + } + +- segs = ALIGNED_CAST(struct in6_addr *, srh + 1); ++ segs = (union ovs_16aligned_in6_addr *) (srh + 1); + segs += segments_left; + + while (ovs_scan_len(s, &n, IPV6_SCAN_FMT, seg_s) @@ -6464,12 +6464,10 @@ odp_flow_key_from_flow__(const struct odp_flow_key_parms *parms, icmpv6_key->icmpv6_code = ntohs(data->tp_dst); @@ -5939,6 +5983,15 @@ diff --git a/python/build/soutil.py b/python/ovs_build_helpers/soutil.py similarity index 100% rename from python/build/soutil.py rename to python/ovs_build_helpers/soutil.py +diff --git a/python/test_requirements.txt b/python/test_requirements.txt +index 6aaee13e3f..6e96ce50b3 100644 +--- a/python/test_requirements.txt ++++ b/python/test_requirements.txt +@@ -1,3 +1,4 @@ ++packaging + pytest + netaddr + pyparsing diff --git a/rhel/usr_lib_systemd_system_ovsdb-server.service b/rhel/usr_lib_systemd_system_ovsdb-server.service index 49dc06e38c..558632320c 100644 --- a/rhel/usr_lib_systemd_system_ovsdb-server.service @@ -5960,6 +6013,53 @@ index 83b1cb3b48..3a8c459756 100644 /idltest.c /idltest.h /idltest.ovsidl +diff --git a/tests/atlocal.in b/tests/atlocal.in +index 1013098a18..b33d50673f 100644 +--- a/tests/atlocal.in ++++ b/tests/atlocal.in +@@ -239,18 +239,35 @@ export UBSAN_OPTIONS + REQUIREMENT_PATH=$abs_top_srcdir/python/test_requirements.txt $PYTHON3 -c ' + import os + import pathlib +-import pkg_resources + import sys + ++PACKAGING = True ++try: ++ from packaging import requirements ++ from importlib import metadata ++except ModuleNotFoundError: ++ PACKAGING = False ++ import pkg_resources ++ + with pathlib.Path(os.path.join(os.getenv("REQUIREMENT_PATH"))).open() as reqs: +- for req in pkg_resources.parse_requirements(reqs): +- try: +- pkg_resources.require(str(req)) +- except pkg_resources.DistributionNotFound: +- sys.exit(2) ++ if PACKAGING: ++ for req in reqs.readlines(): ++ try: ++ r = requirements.Requirement(req.strip()) ++ if metadata.version(r.name) not in r.specifier: ++ raise metadata.PackageNotFoundError ++ except metadata.PackageNotFoundError: ++ sys.exit(2) ++ else: ++ for req in pkg_resources.parse_requirements(reqs): ++ try: ++ pkg_resources.require(str(req)) ++ except pkg_resources.DistributionNotFound: ++ sys.exit(2) + ' + case $? in + 0) HAVE_PYTEST=yes ;; + 2) HAVE_PYTEST=no ;; +- *) echo "$0: unexpected error probing Python unit test requirements" >&2 ;; ++ *) HAVE_PYTEST=no ++ echo "$0: unexpected error probing Python unit test requirements" >&2 ;; + esac diff --git a/tests/learn.at b/tests/learn.at index d127fed348..d0bcc83633 100644 --- a/tests/learn.at diff --git a/SPECS/openvswitch3.2.spec b/SPECS/openvswitch3.2.spec index 453b782..d7159c3 100644 --- a/SPECS/openvswitch3.2.spec +++ b/SPECS/openvswitch3.2.spec @@ -57,7 +57,7 @@ Summary: Open vSwitch Group: System Environment/Daemons daemon/database/utilities URL: http://www.openvswitch.org/ Version: 3.2.0 -Release: 79%{?dist} +Release: 80%{?dist} # Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the # lib/sflow*.[ch] files are SISSL @@ -761,6 +761,14 @@ exit 0 %endif %changelog +* Thu May 23 2024 Open vSwitch CI - 3.2.0-80 +- Merging upstream branch-3.2 [RH git: 5da09bcf5e] + Commit list: + c212b9b20a atlocal: Replace deprecated pkg_resources. + a341983a65 atlocal: Fix setting HAVE_PYTEST on unexpected errors. + 7d1b0b11da srv6: Fix misaligned writes to segment list. + + * Fri May 17 2024 Open vSwitch CI - 3.2.0-79 - Merging upstream branch-3.2 [RH git: c37953f11f] Commit list: