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,18 +13,19 @@
# 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/
@ -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: automake
BuildRequires: gcc BuildRequires: gcc
BuildRequires: make
BuildRequires: pkg-config
BuildRequires: perl
BuildRequires: glibc-devel BuildRequires: glibc-devel
BuildRequires: openssl libopenssl-devel
BuildRequires: valgrind-devel
BuildRequires: graphviz BuildRequires: graphviz
BuildRequires: libopenssl-devel
BuildRequires: libtool
BuildRequires: make
BuildRequires: openssl
BuildRequires: perl
BuildRequires: pkg-config
BuildRequires: python-devel BuildRequires: python-devel
Requires: python BuildRequires: valgrind-devel
Requires: openssl
Requires: logrotate Requires: logrotate
Provides: openvswitch-common = %version 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,13 +69,12 @@ 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
License: GPLv2
Summary: Open vSwitch kernel modules Summary: Open vSwitch kernel modules
Group: System/Kernel
BuildRequires: %kernel_module_package_buildreqs BuildRequires: %kernel_module_package_buildreqs
%if 0%{?build_in_kernel_kmp} %if %{with 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: %{name} = %{version}
Requires: %{name}-switch = %{version}
Requires: ipsec-tools >= 0.8
Requires: python Requires: python
Requires: python-argparse Requires: python-argparse
Requires: ipsec-tools >= 0.8
Requires: racoon >= 0.8
Requires: openvswitch = %{version}
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
PreReq: %insserv_prereq %fillup_prereq
Requires: openvswitch = %{version}
Requires: module-init-tools
Requires: procps
Requires: uuid-runtime
Requires: python
Summary: Open vSwitch switch implementations Summary: Open vSwitch switch implementations
Group: Productivity/Networking/System 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 %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}
Recommends: bridge-utils
Summary: Open vSwitch bridge compatibility support (deprecated) Summary: Open vSwitch bridge compatibility support (deprecated)
Group: Productivity/Networking/System Group: Productivity/Networking/System
Requires: openvswitch-switch = %{version}
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
Summary: Open vSwitch graphical monitoring tool
Group: Productivity/Networking/System
BuildRequires: python-pyside
BuildRequires: python-qt4-devel BuildRequires: python-qt4-devel
BuildRequires: python-twisted BuildRequires: python-twisted
BuildRequires: python-zopeinterface BuildRequires: python-zopeinterface
BuildRequires: python-pyside Requires: python-openvswitch
Requires: python-pyasn1
Requires: python-pyside Requires: python-pyside
Requires: python-qt4 Requires: python-qt4
Requires: python-twisted Requires: python-twisted
Requires: python-zopeinterface Requires: python-zopeinterface
Requires: python-openvswitch
Requires: python-pyasn1
Summary: Open vSwitch graphical monitoring tool
Group: Productivity/Networking/System
%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
Group: Productivity/Networking/System
Requires: python Requires: python
Requires: python-argparse Requires: python-argparse
Requires: python-openvswitch-test = %{version} Requires: python-openvswitch-test = %{version}
Summary: Open vSwitch test package Requires: python-twisted
Group: Productivity/Networking/System
%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