diff --git a/SOURCES/openvswitch-3.3.0.patch b/SOURCES/openvswitch-3.3.0.patch index 015485c..5c7a982 100644 --- a/SOURCES/openvswitch-3.3.0.patch +++ b/SOURCES/openvswitch-3.3.0.patch @@ -870,6 +870,31 @@ index cd7e85a818..e8bbf8d514 100644 unixctl_command_reply(conn, "OK"); } else { unixctl_command_reply_error(conn, error); +diff --git a/lib/netdev-native-tnl.c b/lib/netdev-native-tnl.c +index dee9ab344e..b21176037b 100644 +--- a/lib/netdev-native-tnl.c ++++ b/lib/netdev-native-tnl.c +@@ -932,9 +932,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; +@@ -978,8 +978,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/netlink-protocol.h b/lib/netlink-protocol.h index 6eaa7035a4..e4bb28ac9f 100644 --- a/lib/netlink-protocol.h @@ -918,6 +943,29 @@ index 80da20d9f0..5cb1fc89ae 100644 retval = get_socket_rcvbuf(sock->fd); if (retval < 0) { retval = -retval; +diff --git a/lib/odp-util.c b/lib/odp-util.c +index 9306c9b4d4..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) diff --git a/lib/ofpbuf.c b/lib/ofpbuf.c index d3d42b4148..232ebeb97b 100644 --- a/lib/ofpbuf.c @@ -2325,6 +2373,16 @@ index cb2e99e87d..16a7e78a03 100644 class Alarm (threading.Thread): def __init__(self, timeout): +diff --git a/python/test_requirements.txt b/python/test_requirements.txt +index 5043c71e22..a1424506b6 100644 +--- a/python/test_requirements.txt ++++ b/python/test_requirements.txt +@@ -1,4 +1,5 @@ + netaddr ++packaging + pyftpdlib + pyparsing + pytest 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 @@ -2334,6 +2392,53 @@ index 49dc06e38c..558632320c 100644 ${OVS_USER_OPT} \ --no-monitor restart $OPTIONS +TimeoutSec=300 +diff --git a/tests/atlocal.in b/tests/atlocal.in +index f321bae55f..8565a0bae9 100644 +--- a/tests/atlocal.in ++++ b/tests/atlocal.in +@@ -229,18 +229,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/library.at b/tests/library.at index 7b4acebb8a..d962e1b3fd 100644 --- a/tests/library.at diff --git a/SPECS/openvswitch3.3.spec b/SPECS/openvswitch3.3.spec index 3ad7441..1343962 100644 --- a/SPECS/openvswitch3.3.spec +++ b/SPECS/openvswitch3.3.spec @@ -57,7 +57,7 @@ Summary: Open vSwitch Group: System Environment/Daemons daemon/database/utilities URL: http://www.openvswitch.org/ Version: 3.3.0 -Release: 19%{?dist} +Release: 20%{?dist} # Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the # lib/sflow*.[ch] files are SISSL @@ -767,6 +767,14 @@ exit 0 %endif %changelog +* Thu May 23 2024 Open vSwitch CI - 3.3.0-20 +- Merging upstream branch-3.3 [RH git: e37661f387] + Commit list: + ffbce0c428 atlocal: Replace deprecated pkg_resources. + 1f0423a4ee atlocal: Fix setting HAVE_PYTEST on unexpected errors. + 95baf295af srv6: Fix misaligned writes to segment list. + + * Fri May 17 2024 Open vSwitch CI - 3.3.0-19 - Merging upstream branch-3.3 [RH git: f3bdc58258] Commit list: