SHA256
1
0
forked from pool/openvswitch

- Use build conditionals instead of %define and disable GUI by default

everywhere

OBS-URL: https://build.opensuse.org/package/show/network/openvswitch?expand=0&rev=21
This commit is contained in:
Sascha Peilicke 2013-03-27 12:25:19 +00:00 committed by Git OBS Bridge
parent ef809c2ca7
commit 4b0966a15e
2 changed files with 133 additions and 128 deletions

View File

@ -1,3 +1,9 @@
-------------------------------------------------------------------
Tue Mar 26 11:21:37 UTC 2013 - speilicke@suse.com
- Use build conditionals instead of %define and disable GUI by default
everywhere
------------------------------------------------------------------- -------------------------------------------------------------------
Thu Mar 21 13:23:36 UTC 2013 - tpaszkowski@novell.com Thu Mar 21 13:23:36 UTC 2013 - tpaszkowski@novell.com

View File

@ -1,3 +1,4 @@
#
# Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany. # Copyright (c) 2013 SUSE LINUX Products GmbH, Nuernberg, Germany.
# #
# All modifications and additions to the file contributed by third parties # All modifications and additions to the file contributed by third parties
@ -12,24 +13,25 @@
# Please submit bugfixes or comments via http://bugs.opensuse.org/ # Please submit bugfixes or comments via http://bugs.opensuse.org/
# #
# norootforbuild
%define build_kmp 1 # Enable KMP building by default:
# never build in kernel module, as openvswitch shipped one is more feature %bcond_without kmp
# rich # Don't build in-kernel module, the shipped one is more feature rich:
%define build_in_kernel_kmp 0 %bcond_with kernel_kmp
## ipsec build tempoaaryr disabled (need to upgrade ipsec-tools) # IpSec build disabled temporarily (need to upgrade ipsec-tools):
%define build_ipsec 0 %bcond_with ipsec
# Disable GUI building by default (heavy Qt4 dependencies):
%bcond_with gui
Name: openvswitch Name: openvswitch
Version: 1.9.0 Version: 1.9.0
Release: 2 Release: 0
License: Apache-2.0 License: Apache-2.0
Summary: An open source, production quality, multilayer virtual switch Summary: An open source, production quality, multilayer virtual switch
Url: http://openswitch.org/ Url: http://openswitch.org/
Group: Productivity/Networking/System Group: Productivity/Networking/System
Source0: http://openvswitch.org/releases/%{name}-%{version}.tar.gz Source0: http://openvswitch.org/releases/%{name}-%{version}.tar.gz
Source1: preamble Source1: preamble
Source2: openvswitch-switch.init Source2: openvswitch-switch.init
Source3: openvswitch-switch.template Source3: openvswitch-switch.template
Source4: openvswitch-switch.logrotate Source4: openvswitch-switch.logrotate
@ -37,24 +39,27 @@ Source5: openvswitch-controller.init
Source6: openvswitch-controller.sysconfig Source6: openvswitch-controller.sysconfig
# brcompat is going to be deprecated soon # brcompat is going to be deprecated soon
# PATCH-FEATURE-UPSTREAM openvswitch-1.7.0-stp-fwd-delay.patch -- Set STP bridge forward delay # 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 Patch1: %{name}-1.7.0-stp-fwd-delay.patch
BuildRequires: autoconf automake libtool BuildRequires: autoconf
BuildRequires: gcc BuildRequires: automake
BuildRequires: make BuildRequires: gcc
BuildRequires: pkg-config BuildRequires: glibc-devel
BuildRequires: perl BuildRequires: graphviz
BuildRequires: glibc-devel BuildRequires: libopenssl-devel
BuildRequires: openssl libopenssl-devel BuildRequires: libtool
BuildRequires: valgrind-devel BuildRequires: make
BuildRequires: graphviz BuildRequires: openssl
BuildRequires: python-devel BuildRequires: perl
Requires: python BuildRequires: pkg-config
Requires: openssl BuildRequires: python-devel
Requires: logrotate BuildRequires: valgrind-devel
Provides: openvswitch-common = %version Requires: logrotate
Requires: openssl
Requires: python
Provides: openvswitch-common = %{version}
Obsoletes: openvswitch-common <= 1.9.0 Obsoletes: openvswitch-common <= 1.9.0
%py_requires
BuildRoot: %{_tmppath}/%{name}-%{version}-build BuildRoot: %{_tmppath}/%{name}-%{version}-build
%py_requires
%description %description
Open vSwitch is a production quality, multilayer virtual switch licensed under Open vSwitch is a production quality, multilayer virtual switch licensed under
@ -64,14 +69,13 @@ and protocols (e.g. NetFlow, sFlow, RSPAN, ERSPAN, CLI, LACP, 802.1ag). In addit
it is designed to support distribution across multiple physical servers similar to it is designed to support distribution across multiple physical servers similar to
VMwares vNetwork distributed vswitch or Ciscos Nexus 1000V. VMwares vNetwork distributed vswitch or Ciscos Nexus 1000V.
%if 0%{?build_kmp} %if %{with kmp}
%package -n %{name}-kmp %package kmp
Group: System/Kernel Summary: Open vSwitch kernel modules
License: GPLv2 Group: System/Kernel
Summary: Open vSwitch kernel modules BuildRequires: %kernel_module_package_buildreqs
BuildRequires: %kernel_module_package_buildreqs %if %{with kernel_kmp}
%if 0%{?build_in_kernel_kmp} BuildRequires: kernel-source
BuildRequires: kernel-source
%endif %endif
%suse_kernel_module_package -p %_sourcedir/preamble ec2 xen xenpae vmi um %suse_kernel_module_package -p %_sourcedir/preamble ec2 xen xenpae vmi um
@ -79,18 +83,17 @@ BuildRequires: kernel-source
Kernel modules supporting the openvswitch datapath Kernel modules supporting the openvswitch datapath
%endif %endif
%if %{with ipsec}
%if 0%{?build_ipsec}
%package ipsec %package ipsec
Summary: Open vSwitch GRE-over-IPsec support Summary: Open vSwitch GRE-over-IPsec support
Group: Productivity/Networking/System Group: Productivity/Networking/System
Requires: python Requires: %{name} = %{version}
Requires: python-argparse Requires: %{name}-switch = %{version}
Requires: ipsec-tools >= 0.8 Requires: ipsec-tools >= 0.8
Requires: racoon >= 0.8 Requires: python
Requires: openvswitch = %{version} Requires: python-argparse
Requires: openvswitch-switch = %{version} Requires: python-openvswitch = %{version}
Requires: python-openvswitch = %{version} Requires: racoon >= 0.8
%description ipsec %description ipsec
The ovs-monitor-ipsec script provides support for encrypting GRE The ovs-monitor-ipsec script provides support for encrypting GRE
@ -100,26 +103,27 @@ Open vSwitch is a full-featured software-based Ethernet switch.
%endif %endif
%package switch %package switch
Suggests: openvswitch-kmp Summary: Open vSwitch switch implementations
PreReq: %insserv_prereq %fillup_prereq Group: Productivity/Networking/System
Requires: openvswitch = %{version} Requires(pre): %fillup_prereq
Requires: module-init-tools Requires(pre): %insserv_prereq
Requires: procps Requires: module-init-tools
Requires: uuid-runtime Requires: openvswitch = %{version}
Requires: python Requires: procps
Summary: Open vSwitch switch implementations Requires: python
Group: Productivity/Networking/System Requires: uuid-runtime
Suggests: openvswitch-kmp
%description switch %description switch
openvswitch-switch provides the userspace components and utilities for openvswitch-switch provides the userspace components and utilities for
he Open vSwitch kernel-based switch. the Open vSwitch kernel-based switch.
Open vSwitch is a full-featured software-based Ethernet switch. Open vSwitch is a full-featured software-based Ethernet switch.
%package pki %package pki
Requires: openvswitch = %{version} Summary: Open vSwitch public key infrastructure dependency package
Summary: Open vSwitch public key infrastructure dependency package Group: Productivity/Networking/System
Group: Productivity/Networking/System Requires: openvswitch = %{version}
%description pki %description pki
openvswitch-pki provides PKI (public key infrastructure) support for openvswitch-pki provides PKI (public key infrastructure) support for
@ -129,9 +133,9 @@ man-in-the-middle attacks on the Open vSwitch network infrastructure.
Open vSwitch is a full-featured software-based Ethernet switch. Open vSwitch is a full-featured software-based Ethernet switch.
%package controller %package controller
Requires: openvswitch = %{version} Summary: Open vSwitch controller implementation
Summary: Open vSwitch controller implementation Group: Productivity/Networking/System
Group: Productivity/Networking/System Requires: openvswitch = %{version}
%description controller %description controller
The Open vSwitch controller enables OpenFlow switches that connect to it The Open vSwitch controller enables OpenFlow switches that connect to it
@ -140,10 +144,10 @@ to act as MAC-learning Ethernet switches.
Open vSwitch is a full-featured software-based Ethernet switch. Open vSwitch is a full-featured software-based Ethernet switch.
%package brcompat %package brcompat
Requires: openvswitch-switch = %{version} Summary: Open vSwitch bridge compatibility support (deprecated)
Recommends: bridge-utils Group: Productivity/Networking/System
Summary: Open vSwitch bridge compatibility support (deprecated) Requires: openvswitch-switch = %{version}
Group: Productivity/Networking/System Recommends: bridge-utils
%description brcompat %description brcompat
openvswitch-brcompat provides a way for applications that use the openvswitch-brcompat provides a way for applications that use the
@ -158,35 +162,35 @@ Once this package is installed, adding BRCOMPAT=yes in
Open vSwitch is a full-featured software-based Ethernet switch. Open vSwitch is a full-featured software-based Ethernet switch.
%package -n python-openvswitch %package -n python-openvswitch
Requires: python Summary: Python bindings for Open vSwitch
Summary: Python bindings for Open vSwitch Group: Productivity/Networking/System
Group: Productivity/Networking/System Requires: python
%description -n python-openvswitch %description -n python-openvswitch
This package contains the full Python bindings for Open vSwitch database. This package contains the full Python bindings for Open vSwitch database.
%package -n python-openvswitch-test %package -n python-openvswitch-test
Requires: python Summary: Python bindings for Open vSwitch
Summary: Python bindings for Open vSwitch Group: Productivity/Networking/System
Group: Productivity/Networking/System Requires: python
%description -n python-openvswitch-test %description -n python-openvswitch-test
This package contains the full Python bindings for Open vSwitch database. This package contains the full Python bindings for Open vSwitch database.
%if ! 0%{?sles_version} %if %{with gui}
%package ovsdbmonitor %package ovsdbmonitor
BuildRequires: python-qt4-devel Summary: Open vSwitch graphical monitoring tool
Group: Productivity/Networking/System
BuildRequires: python-pyside
BuildRequires: python-qt4-devel
BuildRequires: python-twisted BuildRequires: python-twisted
BuildRequires: python-zopeinterface BuildRequires: python-zopeinterface
BuildRequires: python-pyside
Requires: python-pyside
Requires: python-qt4
Requires: python-twisted
Requires: python-zopeinterface
Requires: python-openvswitch Requires: python-openvswitch
Requires: python-pyasn1 Requires: python-pyasn1
Summary: Open vSwitch graphical monitoring tool Requires: python-pyside
Group: Productivity/Networking/System Requires: python-qt4
Requires: python-twisted
Requires: python-zopeinterface
%description ovsdbmonitor %description ovsdbmonitor
This package is a GUI tool for monitoring and troubleshooting local This package is a GUI tool for monitoring and troubleshooting local
@ -199,12 +203,12 @@ Open vSwitch is a full-featured software-based Ethernet switch.
%endif %endif
%package test %package test
Requires: python-twisted Summary: Open vSwitch test package
Requires: python Group: Productivity/Networking/System
Requires: python-argparse Requires: python
Requires: python-openvswitch-test = %{version} Requires: python-argparse
Summary: Open vSwitch test package Requires: python-openvswitch-test = %{version}
Group: Productivity/Networking/System Requires: python-twisted
%description test %description test
This package contains utilities that are useful to diagnose This package contains utilities that are useful to diagnose
@ -228,8 +232,8 @@ pushd source
bash -x boot.sh bash -x boot.sh
%endif %endif
popd popd
%if 0%{?build_kmp} %if %{with kmp}
%if 0%{?build_in_kernel_kmp} %if %{with kernel_kmp}
for flavor in %flavors_to_build; do for flavor in %flavors_to_build; do
mkdir -p $flavor mkdir -p $flavor
cp -a $RPM_SOURCE_DIR/Module.supported $flavor/ cp -a $RPM_SOURCE_DIR/Module.supported $flavor/
@ -239,7 +243,7 @@ for flavor in %flavors_to_build; do
make -C %{kernel_source $flavor} modules M=$PWD/$flavor make -C %{kernel_source $flavor} modules M=$PWD/$flavor
done done
%else %else
export EXTRA_CFLAGS='-DVERSION=\"%version\"' export EXTRA_CFLAGS='-DVERSION=\"%{version}\"'
for flavor in %flavors_to_build; do for flavor in %flavors_to_build; do
rm -rf obj/$flavor rm -rf obj/$flavor
cp -r source obj/$flavor cp -r source obj/$flavor
@ -262,11 +266,11 @@ make %{?_smp_mflags}
popd popd
%install %install
%if 0%{?build_kmp} %if %{with kmp}
export INSTALL_MOD_PATH=%{buildroot} export INSTALL_MOD_PATH=%{buildroot}
export INSTALL_MOD_DIR=updates export INSTALL_MOD_DIR=updates
for flavor in %flavors_to_build; do for flavor in %flavors_to_build; do
%if 0%{?build_in_kernel_kmp} %if %{with kernel_kmp}
make -C %{kernel_source $flavor} modules_install M=$PWD/$flavor make -C %{kernel_source $flavor} modules_install M=$PWD/$flavor
%else %else
pushd obj/$flavor/datapath/linux pushd obj/$flavor/datapath/linux
@ -277,46 +281,43 @@ done
%endif %endif
pushd source pushd source
%makeinstall %make_install
install -d -m 755 %{buildroot}/%_sysconfdir/init.d install -d -m 755 %{buildroot}/%{_sysconfdir}/init.d
install -d -m 755 %{buildroot}/var/adm/fillup-templates install -d -m 755 %{buildroot}%{_localstatedir}/adm/fillup-templates
install -m 644 %SOURCE3 \ install -m 644 %{SOURCE3} \
%{buildroot}/var/adm/fillup-templates/sysconfig.%{name}-switch %{buildroot}%{_localstatedir}/adm/fillup-templates/sysconfig.%{name}-switch
install -m 644 %SOURCE6 \ install -m 644 %{SOURCE6} \
%{buildroot}/var/adm/fillup-templates/sysconfig.%{name}-controller %{buildroot}%{_localstatedir}/adm/fillup-templates/sysconfig.%{name}-controller
install -m 755 %SOURCE2 \ install -m 755 %{SOURCE2} \
%{buildroot}/%_sysconfdir/init.d/%{name}-switch %{buildroot}/%{_sysconfdir}/init.d/%{name}-switch
ln -s %_sysconfdir/init.d/%{name}-switch %{buildroot}%{_sbindir}/rc%{name}-switch ln -s %{_sysconfdir}/init.d/%{name}-switch %{buildroot}%{_sbindir}/rc%{name}-switch
install -m 755 %SOURCE5 \ install -m 755 %{SOURCE5} \
%{buildroot}/%_sysconfdir/init.d/%{name}-controller %{buildroot}/%{_sysconfdir}/init.d/%{name}-controller
ln -s %_sysconfdir/init.d/%{name}-controller %{buildroot}%{_sbindir}/rc%{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}/sysconfig
install -d -m 755 %{buildroot}/%_sysconfdir/logrotate.d install -d -m 755 %{buildroot}/%{_sysconfdir}/logrotate.d
install -m 644 %SOURCE4 \ install -m 644 %{SOURCE4} \
%{buildroot}/%_sysconfdir/logrotate.d/%{name}-switch %{buildroot}/%{_sysconfdir}/logrotate.d/%{name}-switch
install -d -m 755 %{buildroot}/%_sysconfdir/profile.d install -d -m 755 %{buildroot}/%{_sysconfdir}/profile.d
install -d -m 755 %{buildroot}/%{_datadir}/%{name}/scripts install -d -m 755 %{buildroot}/%{_datadir}/%{name}/scripts
install -m 644 vswitchd/vswitch.ovsschema \ install -m 644 vswitchd/vswitch.ovsschema \
%{buildroot}/%{_datadir}/%{name}/vswitch.ovsschema %{buildroot}/%{_datadir}/%{name}/vswitch.ovsschema
%if 0%{?build_ipsec} %if %{with ipsec}
install -m 755 debian/ovs-monitor-ipsec \ install -m 755 debian/ovs-monitor-ipsec \
%{buildroot}/%{_datadir}/%{name}/ovs-monitor-ipsec %{buildroot}/%{_datadir}/%{name}/ovs-monitor-ipsec
%endif %endif
popd popd
%{__mkdir_p} %{buildroot}%{py_sitedir} mkdir -p %{buildroot}%{py_sitedir}
mv %{buildroot}%{_datadir}/%{name}/python/* %{buildroot}%{py_sitedir} mv %{buildroot}%{_datadir}/%{name}/python/* %{buildroot}%{py_sitedir}
rmdir %{buildroot}%{_datadir}/%{name}/python rmdir %{buildroot}%{_datadir}/%{name}/python
%clean
%{?buildroot:%__rm -rf "%{buildroot}"}
%post switch %post switch
%{fillup_and_insserv openvswitch-switch} %{fillup_and_insserv openvswitch-switch}
@ -375,19 +376,17 @@ rmdir %{buildroot}%{_datadir}/%{name}/python
%{_sysconfdir}/init.d/openvswitch-controller %{_sysconfdir}/init.d/openvswitch-controller
%{_sbindir}/rc%{name}-controller %{_sbindir}/rc%{name}-controller
%{_mandir}/man8/ovs-controller.8.gz %{_mandir}/man8/ovs-controller.8.gz
/var/adm/fillup-templates/sysconfig.openvswitch-controller %{_localstatedir}/adm/fillup-templates/sysconfig.openvswitch-controller
%files -n python-openvswitch %files -n python-openvswitch
%defattr(-,root,root) %defattr(-,root,root)
%dir %{py_sitedir}/ovs %{py_sitedir}/ovs/
%{py_sitedir}/ovs/*
%files -n python-openvswitch-test %files -n python-openvswitch-test
%defattr(-,root,root) %defattr(-,root,root)
%dir %{py_sitedir}/ovstest %{py_sitedir}/ovstest/
%{py_sitedir}/ovstest/*
%if 0%{?build_ipsec} %if %{with ipsec}
%files ipsec %files ipsec
%defattr(-,root,root) %defattr(-,root,root)
%{_datadir}/openvswitch/ovs-monitor-ipsec %{_datadir}/openvswitch/ovs-monitor-ipsec
@ -407,7 +406,7 @@ rmdir %{buildroot}%{_datadir}/%{name}/python
%{_datadir}/openvswitch/scripts/ovs-lib %{_datadir}/openvswitch/scripts/ovs-lib
%{_datadir}/openvswitch/scripts/ovs-save %{_datadir}/openvswitch/scripts/ovs-save
%{_datadir}/openvswitch/vswitch.ovsschema %{_datadir}/openvswitch/vswitch.ovsschema
/var/adm/fillup-templates/sysconfig.openvswitch-switch %{_localstatedir}/adm/fillup-templates/sysconfig.openvswitch-switch
%{_sysconfdir}/init.d/openvswitch-switch %{_sysconfdir}/init.d/openvswitch-switch
%{_sbindir}/rc%{name}-switch %{_sbindir}/rc%{name}-switch
%config(noreplace) %{_sysconfdir}/logrotate.d/openvswitch-switch %config(noreplace) %{_sysconfdir}/logrotate.d/openvswitch-switch
@ -430,7 +429,7 @@ rmdir %{buildroot}%{_datadir}/%{name}/python
%{_mandir}/man8/ovs-l3ping.8.gz %{_mandir}/man8/ovs-l3ping.8.gz
%{_mandir}/man8/ovs-vlan-test.8.gz %{_mandir}/man8/ovs-vlan-test.8.gz
%if ! 0%{?sles_version} %if %{with gui}
%files ovsdbmonitor %files ovsdbmonitor
%defattr(-,root,root) %defattr(-,root,root)
%{_bindir}/ovsdbmonitor %{_bindir}/ovsdbmonitor