openvswitch/openvswitch.spec

443 lines
14 KiB
RPMSpec
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#
# Copyright (c) 2013 SUSE LINUX Products 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 http://bugs.opensuse.org/
#
# Enable KMP building by default:
%bcond_without kmp
# Don't build in-kernel module, the shipped one is more feature rich:
%bcond_with kernel_kmp
# IpSec build disabled temporarily (need to upgrade ipsec-tools):
%bcond_with ipsec
# Disable GUI building by default (heavy Qt4 dependencies):
%bcond_with gui
Name: openvswitch
Version: 1.9.0
Release: 0
License: Apache-2.0
Summary: An open source, production quality, multilayer virtual switch
Url: http://openswitch.org/
Group: Productivity/Networking/System
Source0: http://openvswitch.org/releases/%{name}-%{version}.tar.gz
Source1: preamble
Source2: openvswitch-switch.init
Source3: openvswitch-switch.template
Source4: openvswitch-switch.logrotate
Source5: openvswitch-controller.init
Source6: openvswitch-controller.sysconfig
# brcompat is going to be deprecated soon
# PATCH-FEATURE-UPSTREAM openvswitch-1.7.0-stp-fwd-delay.patch -- Set STP bridge forward delay
Patch1: %{name}-1.7.0-stp-fwd-delay.patch
BuildRequires: autoconf
BuildRequires: automake
BuildRequires: gcc
BuildRequires: glibc-devel
BuildRequires: graphviz
BuildRequires: libopenssl-devel
BuildRequires: libtool
BuildRequires: make
BuildRequires: openssl
BuildRequires: perl
BuildRequires: pkg-config
BuildRequires: python-devel
BuildRequires: valgrind-devel
Requires: logrotate
Requires: openssl
Requires: python
Provides: openvswitch-common = %{version}
Obsoletes: openvswitch-common <= 1.9.0
BuildRoot: %{_tmppath}/%{name}-%{version}-build
%py_requires
%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
VMwares vNetwork distributed vswitch or Ciscos Nexus 1000V.
%if %{with kmp}
%package kmp
Summary: Open vSwitch kernel modules
Group: System/Kernel
BuildRequires: %kernel_module_package_buildreqs
%if %{with kernel_kmp}
BuildRequires: kernel-source
%endif
%suse_kernel_module_package -p %_sourcedir/preamble ec2 xen xenpae vmi um
%description -n %{name}-kmp
Kernel modules supporting the openvswitch datapath
%endif
%if %{with ipsec}
%package ipsec
Summary: Open vSwitch GRE-over-IPsec support
Group: Productivity/Networking/System
Requires: %{name} = %{version}
Requires: %{name}-switch = %{version}
Requires: ipsec-tools >= 0.8
Requires: python
Requires: python-argparse
Requires: python-openvswitch = %{version}
Requires: racoon >= 0.8
%description ipsec
The ovs-monitor-ipsec script provides support for encrypting GRE
tunnels with IPsec.
Open vSwitch is a full-featured software-based Ethernet switch.
%endif
%package switch
Summary: Open vSwitch switch implementations
Group: Productivity/Networking/System
Requires(pre): %fillup_prereq
Requires(pre): %insserv_prereq
Requires: module-init-tools
Requires: openvswitch = %{version}
Requires: procps
Requires: python
Requires: uuid-runtime
Suggests: openvswitch-kmp
%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 pki
Summary: Open vSwitch public key infrastructure dependency package
Group: Productivity/Networking/System
Requires: openvswitch = %{version}
%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 controller
Summary: Open vSwitch controller implementation
Group: Productivity/Networking/System
Requires: openvswitch = %{version}
%description controller
The Open vSwitch controller enables OpenFlow switches that connect to it
to act as MAC-learning Ethernet switches.
Open vSwitch is a full-featured software-based Ethernet switch.
%package brcompat
Summary: Open vSwitch bridge compatibility support (deprecated)
Group: Productivity/Networking/System
Requires: openvswitch-switch = %{version}
Recommends: bridge-utils
%description brcompat
openvswitch-brcompat provides a way for applications that use the
Linux bridge to gradually migrate to Open vSwitch. Programs that
ordinarily control the Linux bridge module, such as "brctl", instead
control the Open vSwitch kernel-based switch. Please note that this
feature is deprecated and will ve removed soon.
Once this package is installed, adding BRCOMPAT=yes in
/etc/default/openvswitch-switch enables bridge compatibility.
Open vSwitch is a full-featured software-based Ethernet switch.
%package -n python-openvswitch
Summary: Python bindings for Open vSwitch
Group: Productivity/Networking/System
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
Group: Productivity/Networking/System
Requires: python
%description -n python-openvswitch-test
This package contains the full Python bindings for Open vSwitch database.
%if %{with gui}
%package ovsdbmonitor
Summary: Open vSwitch graphical monitoring tool
Group: Productivity/Networking/System
BuildRequires: python-pyside
BuildRequires: python-qt4-devel
BuildRequires: python-twisted
BuildRequires: python-zopeinterface
Requires: python-openvswitch
Requires: python-pyasn1
Requires: python-pyside
Requires: python-qt4
Requires: python-twisted
Requires: python-zopeinterface
%description ovsdbmonitor
This package is a GUI tool for monitoring and troubleshooting local
or remote Open vSwitch installations. It presents GUI tables that
graphically represent an Open vSwitch kernel flow table (similar to
"ovs-dpctl dump-flows") and Open vSwitch database contents (similar
to "ovs-vsctl list <table>").
Open vSwitch is a full-featured software-based Ethernet switch.
%endif
%package test
Summary: Open vSwitch test package
Group: Productivity/Networking/System
Requires: python
Requires: python-argparse
Requires: python-openvswitch-test = %{version}
Requires: python-twisted
%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
%patch1 -p1
set -- *
mkdir source
mv "$@" source/
mkdir obj
%build
pushd source
# don't call boot.sh, we don't have appropriate autoconf there
%if ! 0%{?sles_version}
bash -x boot.sh
%endif
popd
%if %{with kmp}
%if %{with kernel_kmp}
for flavor in %flavors_to_build; do
mkdir -p $flavor
cp -a $RPM_SOURCE_DIR/Module.supported $flavor/
krel=$(make -s -C /usr/src/linux-obj/%_target_cpu/$flavor kernelrelease)
kernel_source_dir=$(readlink /lib/modules/$krel/source)
cp -a $kernel_source_dir/net/openvswitch/* $flavor/
make -C %{kernel_source $flavor} modules M=$PWD/$flavor
done
%else
export EXTRA_CFLAGS='-DVERSION=\"%{version}\"'
for flavor in %flavors_to_build; do
rm -rf obj/$flavor
cp -r source obj/$flavor
pushd obj/$flavor
%configure \
--with-logdir=/var/log \
--with-linux=/usr/src/linux-obj/%_target_cpu/$flavor \
--with-linux-source=/usr/src/linux
cd datapath/linux
make
popd
done
%endif
%endif
ls source
pushd source
%configure \
--with-logdir=/var/log
make %{?_smp_mflags}
popd
%install
%if %{with kmp}
export INSTALL_MOD_PATH=%{buildroot}
export INSTALL_MOD_DIR=updates
for flavor in %flavors_to_build; do
%if %{with kernel_kmp}
make -C %{kernel_source $flavor} modules_install M=$PWD/$flavor
%else
pushd obj/$flavor/datapath/linux
make -C /usr/src/linux-obj/%_target_cpu/$flavor modules_install M=$PWD
popd
%endif
done
%endif
pushd source
%make_install
install -d -m 755 %{buildroot}/%{_sysconfdir}/init.d
install -d -m 755 %{buildroot}%{_localstatedir}/adm/fillup-templates
install -m 644 %{SOURCE3} \
%{buildroot}%{_localstatedir}/adm/fillup-templates/sysconfig.%{name}-switch
install -m 644 %{SOURCE6} \
%{buildroot}%{_localstatedir}/adm/fillup-templates/sysconfig.%{name}-controller
install -m 755 %{SOURCE2} \
%{buildroot}/%{_sysconfdir}/init.d/%{name}-switch
ln -s %{_sysconfdir}/init.d/%{name}-switch %{buildroot}%{_sbindir}/rc%{name}-switch
install -m 755 %{SOURCE5} \
%{buildroot}/%{_sysconfdir}/init.d/%{name}-controller
ln -s %{_sysconfdir}/init.d/%{name}-controller %{buildroot}%{_sbindir}/rc%{name}-controller
install -d -m 755 %{buildroot}/%{_sysconfdir}/sysconfig
install -d -m 755 %{buildroot}/%{_sysconfdir}/logrotate.d
install -m 644 %{SOURCE4} \
%{buildroot}/%{_sysconfdir}/logrotate.d/%{name}-switch
install -d -m 755 %{buildroot}/%{_sysconfdir}/profile.d
install -d -m 755 %{buildroot}/%{_datadir}/%{name}/scripts
install -m 644 vswitchd/vswitch.ovsschema \
%{buildroot}/%{_datadir}/%{name}/vswitch.ovsschema
%if %{with ipsec}
install -m 755 debian/ovs-monitor-ipsec \
%{buildroot}/%{_datadir}/%{name}/ovs-monitor-ipsec
%endif
popd
mkdir -p %{buildroot}%{py_sitedir}
mv %{buildroot}%{_datadir}/%{name}/python/* %{buildroot}%{py_sitedir}
rmdir %{buildroot}%{_datadir}/%{name}/python
%post switch
%{fillup_and_insserv openvswitch-switch}
%preun switch
%stop_on_removal openvswitch-switch
%files brcompat
%defattr(-,root,root)
%{_sbindir}/ovs-brcompatd
%{_mandir}/man8/ovs-brcompatd.8.gz
%files
%defattr(-,root,root)
%dir %{_datadir}/openvswitch
%doc source/AUTHORS source/DESIGN source/INSTALL.* source/NOTICE
%doc source/REPORTING-BUGS source/PORTING
%doc source/SubmittingPatches source/CodingStyle source/README
%doc source/WHY-OVS source/COPYING source/README-gcov
%{_bindir}/ovs-appctl
%{_bindir}/ovs-benchmark
%{_bindir}/ovs-ofctl
%{_bindir}/ovs-parse-leaks
%{_bindir}/ovsdb-client
%{_bindir}/ovs-parse-backtrace
%{_sbindir}/ovs-bugtool
%{_sbindir}/ovs-vlan-bug-workaround
%dir %{_datadir}/openvswitch/scripts
%{_datadir}/openvswitch/bugtool-plugins
%{_datadir}/openvswitch/scripts/ovs-bugtool-cfm-show
%{_datadir}/openvswitch/scripts/ovs-bugtool-lacp-show
%{_datadir}/openvswitch/scripts/ovs-bugtool-tc-class-show
%{_datadir}/openvswitch/scripts/ovs-bugtool-ovsdb-dump
%{_datadir}/openvswitch/scripts/ovs-bugtool-bond-show
%{_datadir}/openvswitch/scripts/ovs-bugtool-coverage-show
%{_datadir}/openvswitch/scripts/ovs-bugtool-daemons-ver
%{_datadir}/openvswitch/scripts/ovs-bugtool-vsctl-show
%{_datadir}/openvswitch/scripts/ovs-bugtool-memory-show
%{_mandir}/man1/ovs-benchmark.1.gz
%{_mandir}/man1/ovsdb-client.1.gz
%{_mandir}/man8/ovs-appctl.8.gz
%{_mandir}/man8/ovs-bugtool.8.gz
%{_mandir}/man8/ovs-ofctl.8.gz
%{_mandir}/man8/ovs-parse-leaks.8.gz
%{_mandir}/man8/ovs-vlan-bug-workaround.8.gz
%{_mandir}/man8/ovs-parse-backtrace.8.gz
%files pki
%defattr(-,root,root)
%{_mandir}/man8/ovs-pki.8.gz
%{_bindir}/ovs-pki
%files controller
%defattr(-,root,root)
%{_bindir}/ovs-controller
%{_sysconfdir}/init.d/openvswitch-controller
%{_sbindir}/rc%{name}-controller
%{_mandir}/man8/ovs-controller.8.gz
%{_localstatedir}/adm/fillup-templates/sysconfig.openvswitch-controller
%files -n python-openvswitch
%defattr(-,root,root)
%{py_sitedir}/ovs/
%files -n python-openvswitch-test
%defattr(-,root,root)
%{py_sitedir}/ovstest/
%if %{with ipsec}
%files ipsec
%defattr(-,root,root)
%{_datadir}/openvswitch/ovs-monitor-ipsec
%endif
%files switch
%defattr(-,root,root)
%{_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
%{_localstatedir}/adm/fillup-templates/sysconfig.openvswitch-switch
%{_sysconfdir}/init.d/openvswitch-switch
%{_sbindir}/rc%{name}-switch
%config(noreplace) %{_sysconfdir}/logrotate.d/openvswitch-switch
%{_mandir}/man8/ovs-dpctl.8.gz
%{_mandir}/man1/ovs-tcpundump.1.gz
%{_mandir}/man1/ovs-pcap.1.gz
%{_mandir}/man8/ovs-vsctl.8.gz
%{_mandir}/man1/ovsdb-tool.1.gz
%{_mandir}/man8/ovs-vswitchd.8.gz
%{_mandir}/man1/ovsdb-server.1.gz
%{_mandir}/man5/ovs-vswitchd.conf.db.5.gz
%{_mandir}/man8/ovs-ctl.8.gz
%files test
%defattr(-,root,root)
%{_bindir}/ovs-test
%{_bindir}/ovs-l3ping
%{_bindir}/ovs-vlan-test
%{_mandir}/man8/ovs-test.8.gz
%{_mandir}/man8/ovs-l3ping.8.gz
%{_mandir}/man8/ovs-vlan-test.8.gz
%if %{with gui}
%files ovsdbmonitor
%defattr(-,root,root)
%{_bindir}/ovsdbmonitor
%dir %{_datadir}/ovsdbmonitor
%{_datadir}/applications/ovsdbmonitor.desktop
%{_datadir}/ovsdbmonitor/*
%{_mandir}/man1/ovsdbmonitor.1.gz
%endif
%changelog