Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12-SP3:GA
openvswitch.10750
openvswitch-dpdk.spec
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File openvswitch-dpdk.spec of Package openvswitch.10750
# # spec file for package openvswitch-dpdk # # Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany. # # All modifications and additions to the file contributed by third parties # remain the property of their copyright owners, unless otherwise agreed # upon. The license for this file, and modifications and additions to the # file, is the same license as for the pristine package itself (unless the # license for the pristine package is not an Open Source License, in which # case the license is the MIT License). An "Open Source License" is a # license that conforms to the Open Source Definition (Version 1.9) # published by the Open Source Initiative. # Please submit bugfixes or comments via https://bugs.opensuse.org/ # # needssslcertforbuild # Build external kernel datapath for SLE 12 SP1 %if 0%{?sle_version} == 120100 %bcond_without kmp %else # Disable building the external kernel datapath by default %bcond_with kmp %endif # DPDK build disabled by default. It's enabled in the # openvswitch-dpdk.spec file (generated by pre_checkin.sh) %bcond_without dpdk # The testsuite is somewhat fragile for continuous testing in OBS # but keep it here as an option %bcond_with check # Do NOT edit this auto generated file! Edit openvswitch.spec instead # and run 'pre_checkin.sh' before committing Name: openvswitch-dpdk Version: 2.5.6 Release: 0 Summary: An open source, production quality, multilayer virtual switch (DPDK) # All code is Apache-2.0 except # - lib/sflow* which is SISSL # - utilities/bugtool which is LGPL-2.1 License: Apache-2.0 AND LGPL-2.1-only AND SISSL Group: Productivity/Networking/System Url: http://openvswitch.org/ Source0: http://openvswitch.org/releases/openvswitch-%{version}.tar.gz Source1: preamble Source2: openvswitch-switch.logrotate Source3: openvswitch.service Source89: Module.supported.updates # PATCH-FIX-UPSTREAM: openvswitch-2.5.0-detect-dpdk-installation.patch (fate#319170) Patch0: openvswitch-2.5.0-detect-dpdk-installation.patch # PATCH-FIX-UPSTREAM: 0001-Remove-broken-pipe-warning-logs-from-ovsdb-server.lo.patch Patch1: 0001-Remove-broken-pipe-warning-logs-from-ovsdb-server.lo.patch # PATCH-FIX-SUSE: 0001-ovs-ctl-Add-new-DPDK_OPTIONS-environment-variable.patch (bsc#987265) Patch2: 0001-ovs-ctl-Add-new-DPDK_OPTIONS-environment-variable.patch # PATCH-FIX-UPSTREAM: 0001-datapath-backport-tunnels-Remove-encapsulation-offlo.patch (bsc#1009682) Patch3: 0001-datapath-backport-tunnels-Remove-encapsulation-offlo.patch # PATCH-FIX-UPSTREAM: 0001-dpif-netlink-don-t-allocate-per-thread-netlink-socke.patch (bsc#1110865) Patch4: 0001-dpif-netlink-don-t-allocate-per-thread-netlink-socke.patch # PATCH-FIX_UPSTREAM: 0002-dpif-netlink-Fix-null-pointer.patch Patch5: 0002-dpif-netlink-Fix-null-pointer.patch BuildRequires: autoconf BuildRequires: automake BuildRequires: fdupes BuildRequires: gcc BuildRequires: glibc-devel BuildRequires: graphviz BuildRequires: libcap-ng-devel BuildRequires: libtool BuildRequires: make BuildRequires: openssl BuildRequires: perl BuildRequires: pkgconfig # Needed by the testsuite BuildRequires: procps BuildRequires: python-devel BuildRequires: python-xml BuildRequires: valgrind-devel BuildRequires: pkgconfig(openssl) Requires: logrotate Requires: python Provides: openvswitch-common = %{version} Obsoletes: openvswitch-common < %{version} Provides: openvswitch-controller = %{version} Obsoletes: openvswitch-controller < %{version} BuildRoot: %{_tmppath}/%{name}-%{version}-build %py_requires %if %{with dpdk} # We need to be a bit strict with the dpdk version since # it's very possible for DPDK to change it's API between # releases. OVS currently requires 2.2.0. We may have to # provide multiple versions of dpdk if OVS and DPDK get # out of sync too often. BuildRequires: dpdk-devel = 2.2.0 # We can't have openvswitch and openvswitch-dpdk in parallel Conflicts: openvswitch ExclusiveArch: aarch64 x86_64 %{ix86} %endif %description Open vSwitch is a production quality, multilayer virtual switch licensed under the open source Apache 2.0 license. It is designed to enable massive network automation through programmatic extension, while still supporting standard management interfaces and protocols (e.g. NetFlow, sFlow, RSPAN, ERSPAN, CLI, LACP, 802.1ag). In addition, it is designed to support distribution across multiple physical servers similar to VMware’s vNetwork distributed vswitch or Cisco’s Nexus 1000V. %if ! %{with dpdk} %if %{with kmp} %package kmp Summary: Open vSwitch kernel modules (DPDK) License: GPL-2.0-or-later Group: System/Kernel BuildRequires: %{kernel_module_package_buildreqs} %suse_kernel_module_package -p %{_sourcedir}/preamble ec2 xenpae vmi um %description kmp Kernel modules supporting the openvswitch datapath. %endif %endif %package devel Summary: Open vSwitch Devel Libraries (DPDK) License: Apache-2.0 Group: Development/Libraries/C and C++ Requires: %{name} = %{version} Provides: openvswitch-any-devel = %{version} %if %{with dpdk} Conflicts: openvswitch-devel %endif %description devel Devel libraries and headers for Open vSwitch. %package switch Summary: Open vSwitch switch implementations (DPDK) License: Apache-2.0 Group: Productivity/Networking/System Requires: %{name} = %{version} Requires: modutils Requires: procps Requires: python # ovs-ctl / ovs-pki use /usr/bin/uuidgen: Requires: util-linux Requires(post): %fillup_prereq Suggests: logrotate Provides: openvswitch-any-switch = %{version} %{?systemd_requires} %if %{with dpdk} Conflicts: openvswitch-switch %endif %if %{with kmp} Suggests: openvswitch-kmp %endif %description switch openvswitch-switch provides the userspace components and utilities for the Open vSwitch kernel-based switch. Open vSwitch is a full-featured software-based Ethernet switch. %package ovn Summary: Open vSwitch - Open Virtual Network support (DPDK) License: Apache-2.0 Group: Productivity/Networking/System Requires: %{name} = %{version} Requires: %{name}-switch = %{version} Requires: %{name}-vtep = %{version} Provides: openvswitch-any-ovn = %{version} %if %{with dpdk} Conflicts: openvswitch-ovn %endif %description ovn OVN, the Open Virtual Network, is a system to support virtual network abstraction. OVN complements the existing capabilities of OVS to add native support for virtual network abstractions, such as virtual L2 and L3 overlays and security groups. %package pki Summary: Open vSwitch public key infrastructure dependency package (DPDK) License: Apache-2.0 Group: Productivity/Networking/System Requires: %{name} = %{version} Provides: openvswitch-any-pki = %{version} %if %{with dpdk} Conflicts: openvswitch-pki %endif %description pki openvswitch-pki provides PKI (public key infrastructure) support for Open vSwitch switches and controllers, reducing the risk of man-in-the-middle attacks on the Open vSwitch network infrastructure. Open vSwitch is a full-featured software-based Ethernet switch. %package vtep Summary: Open vSwitch VTEP emulator (DPDK) License: Apache-2.0 Group: Productivity/Networking/System Requires: %{name} = %{version} Requires: %{name}-switch = %{version} # Since openvswitch/scripts/ovs-vtep requires various ovs python modules. Requires: python-openvswitch = %{version} Provides: openvswitch-any-vtep = %{version} %if %{with dpdk} Conflicts: openvswitch-vtep %endif %description vtep A VTEP (VXLAN Tunnel EndPoint) emulator that uses Open vSwitch for forwarding. Open vSwitch is a full-featured software-based Ethernet switch. %if ! %{with dpdk} %package -n python-openvswitch Summary: Python bindings for Open vSwitch (DPDK) License: Python-2.0 Group: Productivity/Networking/System Requires: openvswitch-common = %{version} Requires: python %description -n python-openvswitch This package contains the full Python bindings for Open vSwitch database. %package -n python-openvswitch-test Summary: Python bindings for Open vSwitch (DPDK) License: Python-2.0 Group: Productivity/Networking/System Requires: openvswitch-common = %{version} Requires: python Requires: python-openvswitch = %{version} Requires: python-twisted %description -n python-openvswitch-test This package contains the full Python bindings for Open vSwitch database. %endif %package test Summary: Open vSwitch test package (DPDK) License: Apache-2.0 Group: Productivity/Networking/System Requires: %{name} = %{version} Requires: python Requires: python-argparse Requires: python-openvswitch-test = %{version} Requires: python-twisted Provides: openvswitch-any-test = %{version} %if %{with dpdk} Conflicts: openvswitch-test %endif %description test This package contains utilities that are useful to diagnose performance and connectivity issues in Open vSwitch setup. Open vSwitch is a full-featured software-based Ethernet switch. %prep %setup -q -n openvswitch-%{version} %patch0 -p1 %patch1 -p1 %patch2 -p1 %patch3 -p1 %patch4 -p1 %patch5 -p1 %build set -- * .travis* mkdir source mv "$@" source/ mkdir obj pushd source perl -i -pe 's{__(DATE|TIME)__}{""}g' include/openvswitch/util.h # only call boot.sh for distros with autoconf >= 2.64 bash -x boot.sh popd %if ! %{with dpdk} %if %{with kmp} export EXTRA_CFLAGS='-DVERSION=\"%{version}\"' for flavor in %{flavors_to_build}; do rm -rf obj/$flavor cp -r source obj/$flavor cp -a %{SOURCE89} obj/$flavor/datapath/linux/Module.supported pushd obj/$flavor %configure \ --with-logdir=%{_localstatedir}/log/openvswitch \ --with-linux=%{_prefix}/src/linux-obj/%{_target_cpu}/$flavor \ --with-linux-source=%{_prefix}/src/linux cd datapath/linux make %{?_smp_mflags} popd done %endif %endif pushd source %if %{with dpdk} dpdk_opt="--with-dpdk" %endif %configure \ --disable-static \ --enable-libcapng \ --enable-shared \ --enable-ssl \ ${dpdk_opt} \ --with-logdir=%{_localstatedir}/log/openvswitch make %{?_smp_mflags} popd %check %if %{with check} pushd source # Recheck tests before we declare them broken. If that fails, dump # the log and exit. >2.5.0 uses the RECHECK env variable so this # needs to be taken into consideration for future releases. if make check TESTSUITEFLAGS="%{?_smp_mflags}" || make check TESTSUITEFLAGS='--recheck'; then :; else cat tests/testsuite.log exit 1 fi popd %endif %install %if ! %{with dpdk} %if %{with kmp} export NO_BRP_STALE_LINK_ERROR=yes export INSTALL_MOD_PATH=%{buildroot} export INSTALL_MOD_DIR=updates export BRP_PESIGN_FILES="*.ko /lib/firmware" for flavor in %{flavors_to_build}; do pushd obj/$flavor/datapath/linux make -C %{_prefix}/src/linux-obj/%{_target_cpu}/$flavor modules_install M=$PWD popd done %endif %endif pushd source make %{?_smp_mflags} DESTDIR=%{buildroot} install for service in ovn-controller ovn-controller-vtep ovn-northd; do install -D -m 644 rhel/usr_lib_systemd_system_${service}.service \ %{buildroot}%{_unitdir}/${service}.service done # We use our own openvswitch.service install -D -m 644 %{SOURCE3} %{buildroot}%{_unitdir}/openvswitch.service ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rcopenvswitch ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rcovn-controller ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rcovn-controller-vtep ln -sf %{_sbindir}/service %{buildroot}%{_sbindir}/rcovn-northd install -D -m 644 rhel/usr_share_openvswitch_scripts_systemd_sysconfig.template \ %{buildroot}/%{_localstatedir}/adm/fillup-templates/sysconfig.openvswitch install -d -m 755 %{buildroot}/%{_sysconfdir}/logrotate.d install -d -m 755 %{buildroot}/%{_localstatedir}/log/openvswitch install -m 644 %{SOURCE2} \ %{buildroot}/%{_sysconfdir}/logrotate.d/openvswitch-switch install -d -m 755 %{buildroot}/%{_sysconfdir}/profile.d install -m 644 vswitchd/vswitch.ovsschema \ %{buildroot}/%{_datadir}/openvswitch/vswitch.ovsschema popd mkdir -p %{buildroot}%{py_sitedir} mv %{buildroot}%{_datadir}/openvswitch/python/* %{buildroot}%{py_sitedir} rmdir %{buildroot}%{_datadir}/openvswitch/python find %{buildroot} -type f -name "*.la" -delete -print # Remove unpackaged files for the dpdk case %if %{with dpdk} rm -rf %{buildroot}%{py_sitedir} %else %fdupes %{buildroot}%{py_sitedir} %endif %post -p /sbin/ldconfig %postun -p /sbin/ldconfig %pre switch %service_add_pre openvswitch.service %post switch %service_add_post openvswitch.service %{fillup_only -n openvswitch} %preun switch # This facilitates package updates to 2.7 which has moved the # openvswitch.service to the openvswitch package and also # prevent networking breakages on package removals. When the # new openvswitch package is installed the old openvswitch-switch # runs this scriplet since this package is removed and not updated # so we need to make sure that the service remains active. export DISABLE_STOP_ON_REMOVAL=yes %service_del_preun openvswitch.service %postun switch # Do not restart the openvswitch service on package updates. # Restarting the service may break the existing network state. # For example, openflow rules are not automatically re-installed # after an OvS update if no SDN controller is used. Moreover, restaring # the OvS can break remote administration during the update so let the # admin decide when it's the best time for an OvS restart. # 5771f476573445710834234a6a9f7bd999a027e7 ("fedora: do not restart the service # on a pkg upgrade") export DISABLE_RESTART_ON_UPDATE=yes %service_del_postun openvswitch.service %pre ovn %service_add_pre ovn-controller.service ovn-controller-vtep.service ovn-northd.service %post ovn /sbin/ldconfig %service_add_post ovn-controller.service ovn-controller-vtep.service ovn-northd.service %preun ovn %service_del_preun ovn-controller.service ovn-controller-vtep.service ovn-northd.service %postun ovn %service_del_postun ovn-controller.service ovn-controller-vtep.service ovn-northd.service /sbin/ldconfig %preun test %stop_on_removal openvswitch-testcontroller %postun test %restart_on_update openvswitch-testcontroller %post vtep -p /sbin/ldconfig %postun vtep -p /sbin/ldconfig %files %defattr(-,root,root) %dir %{_datadir}/openvswitch %doc source/AUTHORS %doc source/CONTRIBUTING.md %doc source/COPYING %doc source/CodingStyle.md %doc source/DESIGN.md %doc source/FAQ.md %doc source/IntegrationGuide.md %doc source/NEWS %doc source/NOTICE %doc source/OPENFLOW-1.1+.md %doc source/PORTING.md %doc source/README* %doc source/SECURITY.md %doc source/TODO.md %doc source/WHY-OVS.md %{_bindir}/ovs-appctl %{_bindir}/ovs-benchmark %{_bindir}/ovs-ofctl %{_bindir}/ovsdb-client %{_bindir}/ovs-parse-backtrace %{_bindir}/ovs-dpctl-top %{_sbindir}/ovs-bugtool %{_sbindir}/ovs-vlan-bug-workaround %dir %{_datadir}/openvswitch/scripts %{_datadir}/openvswitch/bugtool-plugins %{_datadir}/openvswitch/scripts/ovs-bugtool-* %{_libdir}/libofproto.so.* %{_libdir}/libopenvswitch.so.* %{_libdir}/libovsdb.so.* %{_libdir}/libsflow.so.* %{_mandir}/man1/ovs-benchmark.1%{ext_man} %{_mandir}/man1/ovsdb-client.1%{ext_man} %{_mandir}/man8/ovs-appctl.8%{ext_man} %{_mandir}/man8/ovs-bugtool.8%{ext_man} %{_mandir}/man8/ovs-ofctl.8%{ext_man} %{_mandir}/man8/ovs-vlan-bug-workaround.8%{ext_man} %{_mandir}/man8/ovs-parse-backtrace.8%{ext_man} %{_mandir}/man8/ovs-dpctl-top.8%{ext_man} %{_sysconfdir}/bash_completion.d/ovs-appctl-bashcomp.bash %files pki %defattr(-,root,root) %{_mandir}/man8/ovs-pki.8%{ext_man} %{_bindir}/ovs-pki %files vtep %defattr(-,root,root) %{_bindir}/vtep-ctl %{_mandir}/man5/vtep.5%{ext_man} %{_mandir}/man8/vtep-ctl.8%{ext_man} %{_datadir}/openvswitch/scripts/ovs-vtep %{_datadir}/openvswitch/vtep.ovsschema %{_libdir}/libvtep.so.* %if ! %{with dpdk} %files -n python-openvswitch %defattr(-,root,root) %{py_sitedir}/ovs/ %files -n python-openvswitch-test %defattr(-,root,root) %{py_sitedir}/ovstest/ %endif %files switch %defattr(-,root,root) %{_bindir}/ovs-docker %{_bindir}/ovs-dpctl %{_bindir}/ovs-tcpundump %{_bindir}/ovs-pcap %{_bindir}/ovs-vsctl %{_bindir}/ovsdb-tool %{_sbindir}/ovs-vswitchd %{_sbindir}/ovsdb-server %{_datadir}/openvswitch/scripts/ovs-check-dead-ifs %{_datadir}/openvswitch/scripts/ovs-ctl %{_datadir}/openvswitch/scripts/ovs-lib %{_datadir}/openvswitch/scripts/ovs-save %{_datadir}/openvswitch/vswitch.ovsschema %{_sysconfdir}/bash_completion.d/ovs-vsctl-bashcomp.bash %config(noreplace) %{_sysconfdir}/logrotate.d/openvswitch-switch %{_mandir}/man8/ovs-dpctl.8%{ext_man} %{_mandir}/man1/ovs-tcpundump.1%{ext_man} %{_mandir}/man1/ovs-pcap.1%{ext_man} %{_mandir}/man8/ovs-vsctl.8%{ext_man} %{_mandir}/man1/ovsdb-tool.1%{ext_man} %{_mandir}/man8/ovs-vswitchd.8%{ext_man} %{_mandir}/man1/ovsdb-server.1%{ext_man} %{_mandir}/man5/ovs-vswitchd.conf.db.5%{ext_man} %{_mandir}/man8/ovs-ctl.8%{ext_man} %{_sbindir}/rcopenvswitch %{_unitdir}/openvswitch.service %{_localstatedir}/adm/fillup-templates/sysconfig.openvswitch %dir %{_localstatedir}/log/openvswitch %files ovn %defattr(-,root,root) %{_bindir}/ovn-controller %{_bindir}/ovn-controller-vtep %{_bindir}/ovn-docker-overlay-driver %{_bindir}/ovn-docker-underlay-driver %{_bindir}/ovn-nbctl %{_bindir}/ovn-northd %{_bindir}/ovn-sbctl %{_datadir}/openvswitch/scripts/ovn-ctl %{_libdir}/libovn.so.* %{_mandir}/man5/ovn-nb.5* %{_mandir}/man5/ovn-sb.5* %{_mandir}/man7/ovn-architecture.7* %{_mandir}/man8/ovn-controller.8* %{_mandir}/man8/ovn-controller-vtep.8* %{_mandir}/man8/ovn-ctl.8* %{_mandir}/man8/ovn-nbctl.8* %{_mandir}/man8/ovn-northd.8* %{_mandir}/man8/ovn-sbctl.8* %config %{_datadir}/openvswitch/ovn-nb.ovsschema %config %{_datadir}/openvswitch/ovn-sb.ovsschema %{_sbindir}/rcovn-controller %{_sbindir}/rcovn-controller-vtep %{_sbindir}/rcovn-northd %{_unitdir}/ovn-controller.service %{_unitdir}/ovn-controller-vtep.service %{_unitdir}/ovn-northd.service %files test %defattr(-,root,root) %{_bindir}/ovs-test %{_bindir}/ovs-l3ping %{_bindir}/ovs-vlan-test %{_bindir}/ovs-testcontroller %{_mandir}/man8/ovs-test.8%{ext_man} %{_mandir}/man8/ovs-l3ping.8%{ext_man} %{_mandir}/man8/ovs-vlan-test.8%{ext_man} %{_mandir}/man8/ovs-testcontroller.8%{ext_man} %files devel %defattr(-,root,root) %{_libdir}/libofproto.so %{_libdir}/libopenvswitch.so %{_libdir}/libovn.so %{_libdir}/libovsdb.so %{_libdir}/libsflow.so %{_libdir}/libvtep.so %{_includedir}/openflow/ %{_includedir}/openvswitch/ %{_libdir}/pkgconfig/*.pc %changelog
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor