diff --git a/backport-docs-5-Run_tbl_preprocessor_in_manpage-check_rule.patch b/backport-docs-5-Run_tbl_preprocessor_in_manpage-check_rule.patch
new file mode 100644
index 0000000000000000000000000000000000000000..dcbc4de09556504ce7bec5088aad10af8badbf68
--- /dev/null
+++ b/backport-docs-5-Run_tbl_preprocessor_in_manpage-check_rule.patch
@@ -0,0 +1,125 @@
+Description: [PATCH v2 5/5] docs: Run tbl preprocessor in manpage-check rule
+Date: Fri, 4 Aug 2023 18:25:33 +0100
+ If we omit this, groff 1.23.0 warns:
+ .
+ tbl preprocessor failed, or it or soelim was not run; table(s) likely
+ not rendered (TE macro called with TW register undefined)
+ .
+Author: Colin Watson
+Bug-Debian: https://bugs.debian.org/1042358
+Last-Update: 2023-08-07
+
+---
+ Makefile.am | 2 +-
+ build-aux/extract-ofp-fields | 15 +++++++++------
+ lib/meta-flow.xml | 25 +++++++++++++------------
+ 3 files changed, 23 insertions(+), 19 deletions(-)
+
+diff --git a/Makefile.am b/Makefile.am
+index 9807d63..c29725d 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -368,7 +368,7 @@ ALL_LOCAL += manpage-check
+ manpage-check: $(man_MANS) $(dist_man_MANS) $(noinst_man_MANS)
+ @error=false; \
+ for manpage in $?; do \
+- LANG=en_US.UTF-8 groff -w mac -w delim -w escape -w input -w missing -w tab -T utf8 -man -p -z $$manpage >$@.tmp 2>&1; \
++ LANG=en_US.UTF-8 groff -t -w mac -w delim -w escape -w input -w missing -w tab -T utf8 -man -p -z $$manpage >$@.tmp 2>&1; \
+ if grep warning: $@.tmp; then error=:; fi; \
+ rm -f $@.tmp; \
+ done; \
+diff --git a/build-aux/extract-ofp-fields b/build-aux/extract-ofp-fields
+index 8766995..5fbdc34 100755
+--- a/build-aux/extract-ofp-fields
++++ b/build-aux/extract-ofp-fields
+@@ -552,12 +552,14 @@ def field_to_xml(field_node, f, body, summary):
+ ovs_version = [int(x) for x in ovs_version_s.split('.')]
+ if min_ovs_version is None or ovs_version < min_ovs_version:
+ min_ovs_version = ovs_version
+- summary += ["\\fB%s\\fR" % f["name"]]
++ summary += ["T{\n\\fB%s\\fR" % f["name"]]
+ if f["extra_name"]:
+ summary += [" aka \\fB%s\\fR" % f["extra_name"]]
+- summary += [";%d" % f["n_bytes"]]
++ summary += ["\nT}"]
++ summary += [";T{\n%d" % f["n_bytes"]]
+ if f["n_bits"] != 8 * f["n_bytes"]:
+ summary += [" (low %d bits)" % f["n_bits"]]
++ summary += ["\nT}"]
+ summary += [";%s;" % {"MFM_NONE": "no", "MFM_FULLY": "yes"}[f["mask"]]]
+ summary += ["%s;" % {True: "yes", False: "no"}[f["writable"]]]
+ summary += ["%s;" % f["prereqs"]]
+@@ -566,7 +568,7 @@ def field_to_xml(field_node, f, body, summary):
+ support += ["OF %s+" % VERSION_REVERSE[min_of_version]]
+ if min_ovs_version is not None:
+ support += ["OVS %s+" % '.'.join([str(x) for x in min_ovs_version])]
+- summary += ' and '.join(support)
++ summary += ["T{\n", " and ".join(support), "\nT}"]
+ summary += ["\n"]
+
+ # Full description.
+@@ -589,8 +591,9 @@ l lx.
+
+ body += ["Width:;"]
+ if f["n_bits"] != 8 * f["n_bytes"]:
+- body += ["%d bits (only the least-significant %d bits "
+- "may be nonzero)" % (f["n_bytes"] * 8, f["n_bits"])]
++ body += ["T{\n", "%d bits (only the least-significant %d bits "
++ "may be nonzero)" % (f["n_bytes"] * 8, f["n_bits"]),
++ "\nT}",]
+ elif f["n_bits"] <= 128:
+ body += ["%d bits" % f["n_bits"]]
+ else:
+@@ -657,7 +660,7 @@ def group_xml_to_nroff(group_node, fields):
+ '.TS\n',
+ 'tab(;);\n',
+ 'l l l l l l l.\n',
+- 'Name;Bytes;Mask;RW?;Prereqs;NXM/OXM Support\n',
++ "Name;Bytes;Mask;RW?;Prereqs;T{\nNXM/OXM Support\nT}\n",
+ '\_;\_;\_;\_;\_;\_\n']
+ content += summary
+ content += ['.TE\n']
+diff --git a/lib/meta-flow.xml b/lib/meta-flow.xml
+index 28865f8..cb612d7 100644
+--- a/lib/meta-flow.xml
++++ b/lib/meta-flow.xml
+@@ -3517,23 +3517,24 @@ actions=clone(load:0->NXM_OF_IN_PORT[],output:123)
+
+
+
++tab(;);
+ r r r r r.
+-Criteria OpenFlow 1.0 OpenFlow 1.1 OpenFlow 1.2+ NXM
+-\_ \_ \_ \_ \_
+-[1] \fL????\fR/\fL1\fR,\fL??\fR/\fL?\fR \fL????\fR/\fL1\fR,\fL??\fR/\fL?\fR \fL0000\fR/\fL0000\fR,\fL--\fR \fL0000\fR/\fL0000\fR
+-[2] \fLffff\fR/\fL0\fR,\fL??\fR/\fL?\fR \fLffff\fR/\fL0\fR,\fL??\fR/\fL?\fR \fL0000\fR/\fLffff\fR,\fL--\fR \fL0000\fR/\fLffff\fR
+-[3] \fL0xxx\fR/\fL0\fR,\fL??\fR/\fL1\fR \fL0xxx\fR/\fL0\fR,\fL??\fR/\fL1\fR \fL1xxx\fR/\fLffff\fR,\fL--\fR \fL1xxx\fR/\fL1fff\fR
+-[4] \fL????\fR/\fL1\fR,\fL0y\fR/\fL0\fR \fLfffe\fR/\fL0\fR,\fL0y\fR/\fL0\fR \fL1000\fR/\fL1000\fR,\fL0y\fR \fLz000\fR/\fLf000\fR
+-[5] \fL0xxx\fR/\fL0\fR,\fL0y\fR/\fL0\fR \fL0xxx\fR/\fL0\fR,\fL0y\fR/\fL0\fR \fL1xxx\fR/\fLffff\fR,\fL0y\fR \fLzxxx\fR/\fLffff\fR
++Criteria;OpenFlow 1.0;OpenFlow 1.1;OpenFlow 1.2+;NXM
++\_;\_;\_;\_;\_
++[1];\fL????\fR/\fL1\fR,\fL??\fR/\fL?\fR;\fL????\fR/\fL1\fR,\fL??\fR/\fL?\fR;\fL0000\fR/\fL0000\fR,\fL--\fR;\fL0000\fR/\fL0000\fR
++[2];\fLffff\fR/\fL0\fR,\fL??\fR/\fL?\fR;\fLffff\fR/\fL0\fR,\fL??\fR/\fL?\fR;\fL0000\fR/\fLffff\fR,\fL--\fR;\fL0000\fR/\fLffff\fR
++[3];\fL0xxx\fR/\fL0\fR,\fL??\fR/\fL1\fR;\fL0xxx\fR/\fL0\fR,\fL??\fR/\fL1\fR;\fL1xxx\fR/\fLffff\fR,\fL--\fR;\fL1xxx\fR/\fL1fff\fR
++[4];\fL????\fR/\fL1\fR,\fL0y\fR/\fL0\fR;\fLfffe\fR/\fL0\fR,\fL0y\fR/\fL0\fR;\fL1000\fR/\fL1000\fR,\fL0y\fR;\fLz000\fR/\fLf000\fR
++[5];\fL0xxx\fR/\fL0\fR,\fL0y\fR/\fL0\fR;\fL0xxx\fR/\fL0\fR,\fL0y\fR/\fL0\fR;\fL1xxx\fR/\fLffff\fR,\fL0y\fR;\fLzxxx\fR/\fLffff\fR
+ .T&
+ r r c c r.
+-[6] (none) (none) \fL1001\fR/\fL1001\fR,\fL--\fR \fL1001\fR/\fL1001\fR
++[6];(none);(none);\fL1001\fR/\fL1001\fR,\fL--\fR;\fL1001\fR/\fL1001\fR
+ .T&
+ r r c c c.
+-[7] (none) (none) (none) \fL3000\fR/\fL3000\fR
+-[8] (none) (none) (none) \fL0000\fR/\fL0fff\fR
+-[9] (none) (none) (none) \fL0000\fR/\fLf000\fR
+-[10] (none) (none) (none) \fL0000\fR/\fLefff\fR
++[7];(none);(none);(none);\fL3000\fR/\fL3000\fR
++[8];(none);(none);(none);\fL0000\fR/\fL0fff\fR
++[9];(none);(none);(none);\fL0000\fR/\fLf000\fR
++[10];(none);(none);(none);\fL0000\fR/\fLefff\fR
+
+
+
+--
+2.27.0
+
diff --git a/openvswitch.spec b/openvswitch.spec
index 0c132ebf2487967d2e02d25e8cef92a1ad6d128c..7b090850d654df21bcf6d3ee3e1ccc5479e5f3f9 100644
--- a/openvswitch.spec
+++ b/openvswitch.spec
@@ -13,7 +13,7 @@ Name: openvswitch
Summary: Open vSwitch daemon/database/utilities
URL: https://www.openvswitch.org/
Version: 2.17.5
-Release: 3
+Release: 4
License: ASL 2.0 and LGPLv2+ and SISSL
Source0: https://www.openvswitch.org/releases/%{name}-%{version}.tar.gz
@@ -23,6 +23,7 @@ Patch0000: 0000-openvswitch-add-stack-protector-strong.patch
Patch0002: 0002-Remove-unsupported-permission-names.patch
Patch0003: fix-selinux-err.patch
Patch6000: backport-CVE-2023-1668.patch
+Patch6001: backport-docs-5-Run_tbl_preprocessor_in_manpage-check_rule.patch
BuildRequires: gcc gcc-c++ make
BuildRequires: autoconf automake libtool
@@ -31,7 +32,7 @@ BuildRequires: python3-devel python3-six python3-setuptools
BuildRequires: python3-sphinx
BuildRequires: desktop-file-utils
BuildRequires: groff-base graphviz
-BuildRequires: unbound-devel
+BuildRequires: unbound-devel groff
# make check dependencies
BuildRequires: procps-ng
@@ -454,6 +455,9 @@ fi
%{_sysusersdir}/openvswitch.conf
%changelog
+* Thu Aug 10 2023 zhangpan - 2.17.5-4
+- fix build fail
+
* Wed Apr 12 2023 zhangpan - 2.17.5-3
- fix CVE-2023-1668