3 %bcond_without dist_kernel # allow non-distribution kernel
4 %bcond_without kernel # don't build kernel modules
5 %bcond_without userspace # don't build userspace programs
6 %bcond_with verbose # verbose build (V=1)
8 # set kernel_builtin to true for kernels with openvswitch module (>= 3.3)
9 %define kernel_builtin %(echo %{_kernel_ver} | awk '{ split($0, v, "."); vv=v[1]*1000+v[2]; if (vv >= 3003) print 1; else print 0 }')
11 %if %{kernel_builtin} == 1
16 %undefine with_dist_kernel
18 %if "%{_alt_kernel}" != "%{nil}"
19 %undefine with_userspace
21 %if %{without userspace}
22 # nothing to be placed to debuginfo package
23 %define _enable_debug_packages 0
27 Summary: Production Quality, Multilayer Open Virtual Switch
33 Group: Networking/Daemons
34 Source0: http://openvswitch.org/releases/%{name}-%{version}.tar.gz
35 # Source0-md5: 3847c60af329bfe81ff7220b9f489fa5
39 Source4: %{name}.logrotate
40 Source5: %{name}.tmpfiles
41 Source6: %{name}.sysconfig
43 #Source8: openvswitch-controller.init
44 #Source9: openvswitch-ipsec.init
45 Source10: %{name}.service
46 URL: http://openvswitch.org/
47 BuildRequires: graphviz
49 BuildRequires: openssl-devel
50 BuildRequires: openssl-tools
51 BuildRequires: pkgconfig
52 BuildRequires: python-distribute
53 BuildRequires: python-PyQt4-devel
54 BuildRequires: python-PyQt4-devel-tools
55 BuildRequires: python-TwistedConch
56 BuildRequires: python-TwistedCore
57 BuildRequires: rpmbuild(macros) >= 1.647
58 BuildRequires: rpm-pythonprov
60 %{?with_dist_kernel:BuildRequires: kernel%{_alt_kernel}-module-build >= 3:2.6.20.2}
62 Requires(post,preun): /sbin/chkconfig
63 Requires: python-modules
65 Requires: systemd-units
66 BuildRoot: %{tmpdir}/%{name}-%{version}-root-%(id -u -n)
69 Open vSwitch is a production quality, multilayer virtual switch
70 licensed under the open source Apache 2.0 license. It is designed to
71 enable massive network automation through programmatic extension,
72 while still supporting standard management interfaces and protocols
73 (e.g. NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag). In addition,
74 it is designed to support distribution across multiple physical
75 servers similar to VMware's vNetwork distributed vswitch or Cisco's
78 #%description -l pl.UTF-8
81 Summary: Open vSwitch test package
82 Group: Networking/Admin
83 Requires: python-modules
86 This package contains utilities that are useful to diagnose
87 performance and connectivity issues in Open vSwitch setup.
89 %package -n kernel%{_alt_kernel}-net-openvswitch
90 Summary: Linux driver for openvswitch
91 Summary(pl.UTF-8): Sterownik dla Linuksa do openvswitch
92 Release: %{rel}@%{_kernel_ver_str}
94 Requires(post,postun): /sbin/depmod
95 %if %{with dist_kernel}
96 %requires_releq_kernel
97 Requires(postun): %releq_kernel
100 %description -n kernel%{_alt_kernel}-net-openvswitch
101 This is driver for openvswitch for Linux.
103 This package contains Linux module.
105 %description -n kernel%{_alt_kernel}-net-openvswitch -l pl.UTF-8
106 Sterownik dla Linuksa do openvswitch.
108 Ten pakiet zawiera moduł jądra Linuksa.
117 --with-linux=%{_kernelsrcdir} \
118 --with-linux-source=%{_kernelsrcdir}
124 rm -rf $RPM_BUILD_ROOT
126 %if %{with userspace}
127 install -d $RPM_BUILD_ROOT{%{py_sitescriptdir},%{systemdunitdir},%{systemdtmpfilesdir}} \
128 $RPM_BUILD_ROOT{/etc/{sysconfig,rc.d/init.d,logrotate.d},/lib/rc-scripts}
131 DESTDIR=$RPM_BUILD_ROOT
133 install -p %{SOURCE1} $RPM_BUILD_ROOT/lib/rc-scripts/ifdown-ovs
134 install -p %{SOURCE2} $RPM_BUILD_ROOT/lib/rc-scripts/ifup-ovs
135 install -p %{SOURCE4} $RPM_BUILD_ROOT/etc/logrotate.d/openvswitch
136 install -p %{SOURCE5} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/openvswitch.conf
137 install -p %{SOURCE6} $RPM_BUILD_ROOT/etc/sysconfig/openvswitch
138 install -p %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/openvswitch
139 install -p %{SOURCE10} $RPM_BUILD_ROOT%{systemdunitdir}/openvswitch.service
141 %{__mv} $RPM_BUILD_ROOT%{_datadir}/%{name}/python/{ovs,ovstest} $RPM_BUILD_ROOT%{py_sitescriptdir}
142 %{__rm} -r $RPM_BUILD_ROOT%{_datadir}/%{name}/python
144 %py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir}
145 %py_comp $RPM_BUILD_ROOT%{py_sitescriptdir}
150 %install_kernel_modules -m brcompat_mod -d kernel/net/openvswitch
151 %install_kernel_modules -m openvswitch_mod -d kernel/net/openvswitch
155 rm -rf $RPM_BUILD_ROOT
158 /sbin/chkconfig --add openvswitch
159 %service openvswitch restart
160 %systemd_post openvswitch.service
163 if [ "$1" = "0" ]; then
164 %service -q openvswitch stop
165 /sbin/chkconfig --del openvswitch
167 %systemd_preun openvswitch.service
172 %if %{with userspace}
174 %defattr(644,root,root,755)
175 %doc AUTHORS DESIGN INSTALL.KVM INSTALL.SSL INSTALL.bridge INSTALL.userspace NEWS README
176 %doc REPORTING-BUGS WHY-OVS README.PLD
177 %attr(755,root,root) /lib/rc-scripts/ifdown-ovs
178 %attr(755,root,root) /lib/rc-scripts/ifup-ovs
179 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/openvswitch
180 %{systemdtmpfilesdir}/openvswitch.conf
181 %{systemdunitdir}/openvswitch.service
184 %attr(754,root,root) /etc/rc.d/init.d/openvswitch
185 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/openvswitch
187 %attr(755,root,root) %{_bindir}/ovs-appctl
188 %attr(755,root,root) %{_bindir}/ovs-benchmark
189 %attr(755,root,root) %{_bindir}/ovs-controller
190 %attr(755,root,root) %{_bindir}/ovs-dpctl
191 %attr(755,root,root) %{_bindir}/ovs-ofctl
192 %attr(755,root,root) %{_bindir}/ovs-parse-leaks
193 %attr(755,root,root) %{_bindir}/ovs-pcap
194 %attr(755,root,root) %{_bindir}/ovs-pki
195 %attr(755,root,root) %{_bindir}/ovs-tcpundump
196 %attr(755,root,root) %{_bindir}/ovs-vsctl
197 %attr(755,root,root) %{_bindir}/ovsdb-client
198 %attr(755,root,root) %{_bindir}/ovsdb-tool
199 %attr(755,root,root) %{_bindir}/ovsdbmonitor
200 %attr(755,root,root) %{_sbindir}/ovs-brcompatd
201 %attr(755,root,root) %{_sbindir}/ovs-bugtool
202 %attr(755,root,root) %{_sbindir}/ovs-vlan-bug-workaround
203 %attr(755,root,root) %{_sbindir}/ovs-vswitchd
204 %attr(755,root,root) %{_sbindir}/ovsdb-server
205 %{_mandir}/man1/ovs-benchmark.1*
206 %{_mandir}/man1/ovs-pcap.1*
207 %{_mandir}/man1/ovs-tcpundump.1*
208 %{_mandir}/man1/ovsdb-client.1*
209 %{_mandir}/man1/ovsdb-server.1*
210 %{_mandir}/man1/ovsdb-tool.1*
211 %{_mandir}/man1/ovsdbmonitor.1*
212 %{_mandir}/man5/ovs-vswitchd.conf.db.5*
213 %{_mandir}/man8/ovs-appctl.8*
214 %{_mandir}/man8/ovs-brcompatd.8*
215 %{_mandir}/man8/ovs-bugtool.8*
216 %{_mandir}/man8/ovs-controller.8*
217 %{_mandir}/man8/ovs-ctl.8*
218 %{_mandir}/man8/ovs-dpctl.8*
219 %{_mandir}/man8/ovs-ofctl.8*
220 %{_mandir}/man8/ovs-parse-leaks.8*
221 %{_mandir}/man8/ovs-pki.8*
222 %{_mandir}/man8/ovs-vlan-bug-workaround.8*
223 %{_mandir}/man8/ovs-vlan-test.8*
224 %{_mandir}/man8/ovs-vsctl.8*
225 %{_mandir}/man8/ovs-vswitchd.8*
226 %dir %{py_sitescriptdir}/ovs
227 %{py_sitescriptdir}/ovs/*.py*
228 %dir %{py_sitescriptdir}/ovs/db
229 %{py_sitescriptdir}/ovs/db/*.py*
232 %defattr(644,root,root,755)
233 %attr(755,root,root) %{_bindir}/ovs-test
234 %attr(755,root,root) %{_bindir}/ovs-vlan-test
235 %{py_sitescriptdir}/ovstest
236 %{_mandir}/man8/ovs-test.8*
240 %files -n kernel%{_alt_kernel}-net-openvswitch
241 %defattr(644,root,root,755)
242 /lib/modules/%{_kernel_ver}/kernel/net/openvswitch/*.ko*