# Spec file for Open vSwitch.
-# Copyright (C) 2009, 2010, 2013, 2014, 2015 Nicira Networks, Inc.
+# Copyright (C) 2009, 2010, 2013, 2014, 2015, 2016 Nicira Networks, Inc.
#
# Copying and distribution of this file, with or without modification,
# are permitted in any medium without royalty provided the copyright
# If libcap-ng isn't available and there is no need for running OVS
# as regular user, specify the '--without libcapng'
%bcond_without libcapng
+# To enable DPDK support, specify '--with dpdk' when building
+%bcond_with dpdk
# Enable PIE, bz#955181
%global _hardened_build 1
BuildRequires: python python-twisted-core python-zope-interface PyQt4 python-six
BuildRequires: desktop-file-utils
BuildRequires: groff graphviz
+BuildRequires: checkpolicy, selinux-policy-devel
# make check dependencies
BuildRequires: procps-ng
%if %{with libcapng}
BuildRequires: libcap-ng libcap-ng-devel
%endif
+%if %{with dpdk}
+BuildRequires: dpdk-devel >= 2.2.0
+Provides: %{name}-dpdk = %{version}-%{release}
+%endif
Requires: openssl iproute module-init-tools
#Upstream kernel commit 4f647e0a3c37b8d5086214128614a136064110c3
support for the OpenFlow protocol for remote per-flow control of
traffic.
+%package selinux-policy
+Summary: Open vSwitch SELinux policy
+License: ASL 2.0
+BuildArch: noarch
+Requires: selinux-policy-targeted
+
+%description selinux-policy
+Tailored Open vSwitch SELinux policy
+
%package -n python-openvswitch
Summary: Open vSwitch python bindings
License: ASL 2.0
--enable-libcapng \
%else
--disable-libcapng \
+%endif
+%if %{with dpdk}
+ --with-dpdk=$(dirname %{_datadir}/dpdk/*/.config) \
%endif
--enable-ssl \
--with-pkidir=%{_sharedstatedir}/openvswitch/pki
make %{?_smp_mflags}
+cd selinux
+make -f %{_datadir}/selinux/devel/Makefile
%install
rm -rf $RPM_BUILD_ROOT
touch $RPM_BUILD_ROOT%{_sysconfdir}/openvswitch/conf.db
touch $RPM_BUILD_ROOT%{_sysconfdir}/openvswitch/system-id.conf
+install -p -m 644 -D selinux/openvswitch-custom.pp \
+ $RPM_BUILD_ROOT%{_datadir}/selinux/packages/%{name}/openvswitch-custom.pp
+
# remove unpackaged files
-rm -f $RPM_BUILD_ROOT%{_bindir}/ovs-benchmark \
- $RPM_BUILD_ROOT%{_bindir}/ovs-parse-backtrace \
+rm -f $RPM_BUILD_ROOT%{_bindir}/ovs-parse-backtrace \
$RPM_BUILD_ROOT%{_bindir}/ovs-pcap \
$RPM_BUILD_ROOT%{_bindir}/ovs-tcpundump \
$RPM_BUILD_ROOT%{_sbindir}/ovs-vlan-bug-workaround \
- $RPM_BUILD_ROOT%{_mandir}/man1/ovs-benchmark.1 \
$RPM_BUILD_ROOT%{_mandir}/man1/ovs-pcap.1 \
$RPM_BUILD_ROOT%{_mandir}/man1/ovs-tcpundump.1 \
- $RPM_BUILD_ROOT%{_mandir}/man8/ovs-vlan-bug-workaround.8 \
- $RPM_BUILD_ROOT%{_datadir}/openvswitch/scripts/ovs-save
+ $RPM_BUILD_ROOT%{_mandir}/man8/ovs-vlan-bug-workaround.8
%check
%if %{with check}
- if make check TESTSUITEFLAGS='%{_smp_mflags}' ||
- make check TESTSUITEFLAGS='--recheck'; then :;
+ if make check TESTSUITEFLAGS='%{_smp_mflags}' RECHECK=yes; then :;
else
cat tests/testsuite.log
exit 1
fi
%endif
+%post selinux-policy
+/usr/sbin/semodule -i %{_datadir}/selinux/packages/%{name}/openvswitch-custom.pp &> /dev/null || :
+
%postun
%if 0%{?systemd_postun_with_restart:1}
%systemd_postun_with_restart %{name}.service
fi
%endif
+%postun selinux-policy
+if [ $1 -eq 0 ] ; then
+ /usr/sbin/semodule -r openvswitch-custom &> /dev/null || :
+fi
+
+%files selinux-policy
+%defattr(-,root,root)
+%{_datadir}/selinux/packages/%{name}/openvswitch-custom.pp
+
%files -n python-openvswitch
%{python_sitelib}/ovs
%doc COPYING
%{_datadir}/openvswitch/scripts/ovs-bugtool-*
%{_datadir}/openvswitch/scripts/ovs-check-dead-ifs
%{_datadir}/openvswitch/scripts/ovs-lib
+%{_datadir}/openvswitch/scripts/ovs-save
%{_datadir}/openvswitch/scripts/ovs-vtep
%{_datadir}/openvswitch/scripts/ovs-ctl
%config %{_datadir}/openvswitch/vswitch.ovsschema
%{_bindir}/ovn-northd
%{_bindir}/ovn-sbctl
%{_datadir}/openvswitch/scripts/ovn-ctl
+%{_datadir}/openvswitch/scripts/ovn-bugtool-nbctl-show
+%{_datadir}/openvswitch/scripts/ovn-bugtool-sbctl-lflow-list
+%{_datadir}/openvswitch/scripts/ovn-bugtool-sbctl-show
%{_mandir}/man8/ovs-testcontroller.8*
%{_mandir}/man5/ovn-nb.5*
%{_mandir}/man5/ovn-sb.5*