From 7a67e14dd20beef25ca669af36e5e93a46909b17 Mon Sep 17 00:00:00 2001 From: openeuler-netdev Date: Thu, 24 Sep 2020 17:24:22 +0800 Subject: [PATCH] Fix ovs-tcpdump import error --- ...llback-to-read-proc-net-dev-on-linux.patch | 41 +++++++++++++++++++ openvswitch.spec | 15 ++++++- 2 files changed, 54 insertions(+), 2 deletions(-) create mode 100644 0003-Fallback-to-read-proc-net-dev-on-linux.patch diff --git a/0003-Fallback-to-read-proc-net-dev-on-linux.patch b/0003-Fallback-to-read-proc-net-dev-on-linux.patch new file mode 100644 index 0000000..12b0b07 --- /dev/null +++ b/0003-Fallback-to-read-proc-net-dev-on-linux.patch @@ -0,0 +1,41 @@ +diff --git a/utilities/ovs-tcpdump.in b/utilities/ovs-tcpdump.in +index 11624c5..cdba1d5 100755 +--- a/utilities/ovs-tcpdump.in ++++ b/utilities/ovs-tcpdump.in +@@ -24,7 +24,21 @@ import subprocess + import sys + import time + +-import netifaces ++try: ++ from netifaces import interfaces ++except ImportError: ++ if sys.platform in ['linux', 'linux2']: ++ def interfaces(): ++ devices = [] ++ with open("/proc/net/dev", "r") as f_netdev: ++ for line in f_netdev: ++ if ":" not in line: ++ continue ++ devices.append(line.split(":")[0].strip()) ++ return devices ++ else: ++ print("ERROR: Please install netifaces Python library.") ++ sys.exit(1) + + try: + from ovs.db import idl +@@ -438,11 +452,11 @@ def main(): + mirror_interface = _make_mirror_name[sys.platform](interface) + + if sys.platform in _make_taps and \ +- mirror_interface not in netifaces.interfaces(): ++ mirror_interface not in interfaces(): + _make_taps[sys.platform](mirror_interface, + ovsdb.interface_mtu(interface)) + +- if mirror_interface not in netifaces.interfaces(): ++ if mirror_interface not in interfaces(): + print("ERROR: Please create an interface called `%s`" % + mirror_interface) + print("See your OS guide for how to do this.") diff --git a/openvswitch.spec b/openvswitch.spec index 9f9dc69..986aa43 100644 --- a/openvswitch.spec +++ b/openvswitch.spec @@ -3,12 +3,13 @@ Summary: Production Quality, Multilayer Open Virtual Switch URL: http://www.openvswitch.org/ Version: 2.12.0 License: ASL 2.0 -Release: 9 +Release: 10 Source: https://www.openvswitch.org/releases/openvswitch-%{version}.tar.gz Buildroot: /tmp/openvswitch-rpm Patch0000: 0000-openvswitch-add-stack-protector-strong.patch Patch0001: 0001-fix-dict-change-during-iteration.patch Patch0002: 0002-Remove-unsupported-permission-names.patch +Patch0003: 0003-Fallback-to-read-proc-net-dev-on-linux.patch Requires: logrotate hostname python >= 3.8 python3-six selinux-policy-targeted BuildRequires: python3-six, openssl-devel checkpolicy selinux-policy-devel autoconf automake libtool python-sphinx unbound-devel Provides: openvswitch-selinux-policy = %{version}-%{release} @@ -93,6 +94,12 @@ install -m 0644 lib/*.h $RPM_BUILD_ROOT/%{_includedir}/openvs install -D -m 0644 lib/.libs/libopenvswitch.a \ $RPM_BUILD_ROOT/%{_libdir}/libopenvswitch.a +install -d -m 0755 $RPM_BUILD_ROOT%{python3_sitelib} +cp -a $RPM_BUILD_ROOT/%{_datadir}/openvswitch/python/* \ + $RPM_BUILD_ROOT%{python3_sitelib} + +rm -rf $RPM_BUILD_ROOT/%{_datadir}/openvswitch/python/ + %clean rm -rf $RPM_BUILD_ROOT @@ -164,7 +171,8 @@ exit 0 %{_libdir}/lib*.so.* /usr/sbin/ovs-vswitchd /usr/sbin/ovsdb-server -/usr/share/openvswitch/python/ +%{python3_sitelib}/ovs +%{python3_sitelib}/ovstest /usr/share/openvswitch/scripts/ovs-check-dead-ifs /usr/share/openvswitch/scripts/ovs-ctl /usr/share/openvswitch/scripts/ovs-kmod-ctl @@ -196,6 +204,9 @@ exit 0 %doc README.rst NEWS rhel/README.RHEL.rst %changelog +* Tue Sep 24 2020 luosuwang - 2.12.0-10 +- Fix ovs-tcpdump import error + * Tue Sep 22 2020 luosuwang - 2.12.0-9 - Remove openvswitch-kmod package -- Gitee