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 %define pname openvswitch
28 Summary: Production Quality, Multilayer Open Virtual Switch
30 Name: %{pname}%{_alt_kernel}
34 Group: Networking/Daemons
35 Source0: http://openvswitch.org/releases/%{pname}-%{version}.tar.gz
36 # Source0-md5: fe8b49efe9f86b57abab00166b971106
40 Source4: %{pname}.logrotate
41 Source5: %{pname}.tmpfiles
42 Source6: %{pname}.sysconfig
43 Source7: %{pname}.init
44 #Source8: openvswitch-controller.init
45 #Source9: openvswitch-ipsec.init
46 Source10: %{pname}.service
47 Source11: ovsdbmonitor.desktop
48 Patch0: fix-man-typo.patch
49 URL: http://openvswitch.org/
50 BuildRequires: Zope-Interface
51 BuildRequires: automake
52 BuildRequires: autoconf
53 BuildRequires: graphviz
55 BuildRequires: openssl-devel
56 BuildRequires: openssl-tools
57 BuildRequires: pkgconfig
58 BuildRequires: python-PyQt4-devel
59 BuildRequires: python-PyQt4-devel-tools
60 BuildRequires: python-TwistedConch
61 BuildRequires: python-TwistedCore
62 BuildRequires: python-distribute
63 BuildRequires: rpm-pythonprov
64 BuildRequires: rpmbuild(macros) >= 1.647
66 %{?with_dist_kernel:BuildRequires: kernel%{_alt_kernel}-module-build >= 3:2.6.20.2}
68 Requires: uname(release) >= 3.3
70 Requires(post,preun): /sbin/chkconfig
71 Requires(post,preun,postun): systemd-units >= 38
72 Requires: python-modules
74 Requires: systemd-units >= 38
75 BuildRoot: %{tmpdir}/%{pname}-%{version}-root-%(id -u -n)
78 Open vSwitch is a production quality, multilayer virtual switch
79 licensed under the open source Apache 2.0 license. It is designed to
80 enable massive network automation through programmatic extension,
81 while still supporting standard management interfaces and protocols
82 (e.g. NetFlow, sFlow, SPAN, RSPAN, CLI, LACP, 802.1ag). In addition,
83 it is designed to support distribution across multiple physical
84 servers similar to VMware's vNetwork distributed vswitch or Cisco's
87 #%description -l pl.UTF-8
89 %package -n python-openvswitch
90 Summary: Open vSwitch python bindings
91 Group: Development/Languages/Python
92 Requires: python-modules
94 %description -n python-openvswitch
95 Python bindings for the Open vSwitch database
97 %package -n ovsdbmonitor
98 Summary: Open vSwitch graphical monitoring tool
99 Group: Networking/Admin
100 Requires: Zope-Interface
101 Requires: python-PyQt4-devel-tools
102 Requires: python-TwistedConch
103 Requires: python-TwistedCore
104 Requires: python-modules
105 Requires: python-openvswitch = %{version}-%{release}
107 %description -n ovsdbmonitor
108 A GUI tool for monitoring and troubleshooting local or remote Open
109 vSwitch installations. It presents GUI tables that graphically
110 represent an Open vSwitch kernel flow table (similar to "ovs-dpctl
111 dump-flows") and Open vSwitch database contents (similar to "ovs-vsctl
115 Summary: Open vSwitch test package
116 Group: Networking/Admin
117 Requires: python-modules
118 Requires: python-openvswitch = %{version}-%{release}
121 This package contains utilities that are useful to diagnose
122 performance and connectivity issues in Open vSwitch setup.
124 %package -n kernel%{_alt_kernel}-net-openvswitch
125 Summary: Linux driver for openvswitch
126 Summary(pl.UTF-8): Sterownik dla Linuksa do openvswitch
127 Release: %{rel}@%{_kernel_ver_str}
129 Requires(post,postun): /sbin/depmod
130 %if %{with dist_kernel}
131 %requires_releq_kernel
132 Requires(postun): %releq_kernel
135 %description -n kernel%{_alt_kernel}-net-openvswitch
136 This is driver for openvswitch for Linux.
138 This package contains Linux module.
140 %description -n kernel%{_alt_kernel}-net-openvswitch -l pl.UTF-8
141 Sterownik dla Linuksa do openvswitch.
143 Ten pakiet zawiera moduł jądra Linuksa.
146 %setup -q -n %{pname}-%{version}
156 --with-linux=%{_kernelsrcdir} \
157 --with-linux-source=%{_kernelsrcdir}
163 rm -rf $RPM_BUILD_ROOT
165 %if %{with userspace}
166 install -d $RPM_BUILD_ROOT{%{py_sitescriptdir},%{systemdunitdir},%{systemdtmpfilesdir}} \
167 $RPM_BUILD_ROOT{/etc/{sysconfig,rc.d/init.d,logrotate.d},/lib/rc-scripts} \
168 $RPM_BUILD_ROOT{%{_desktopdir},%{_datadir}/%{pname}/pki}
171 DESTDIR=$RPM_BUILD_ROOT
173 install -p %{SOURCE1} $RPM_BUILD_ROOT/lib/rc-scripts/ifdown-ovs
174 install -p %{SOURCE2} $RPM_BUILD_ROOT/lib/rc-scripts/ifup-ovs
175 install -p %{SOURCE4} $RPM_BUILD_ROOT/etc/logrotate.d/openvswitch
176 install -p %{SOURCE5} $RPM_BUILD_ROOT%{systemdtmpfilesdir}/openvswitch.conf
177 install -p %{SOURCE6} $RPM_BUILD_ROOT/etc/sysconfig/openvswitch
178 install -p %{SOURCE7} $RPM_BUILD_ROOT/etc/rc.d/init.d/openvswitch
179 install -p %{SOURCE10} $RPM_BUILD_ROOT%{systemdunitdir}/openvswitch.service
180 install -p %{SOURCE11} $RPM_BUILD_ROOT%{_desktopdir}
182 %{__mv} $RPM_BUILD_ROOT%{_datadir}/%{pname}/python/{ovs,ovstest} $RPM_BUILD_ROOT%{py_sitescriptdir}
183 %{__rm} -r $RPM_BUILD_ROOT%{_datadir}/%{pname}/python
185 %py_ocomp $RPM_BUILD_ROOT%{py_sitescriptdir}
186 %py_comp $RPM_BUILD_ROOT%{py_sitescriptdir}
188 %py_ocomp $RPM_BUILD_ROOT%{_datadir}/ovsdbmonitor
189 %py_comp $RPM_BUILD_ROOT%{_datadir}/ovsdbmonitor
194 %install_kernel_modules -m openvswitch -d kernel/net/openvswitch
198 rm -rf $RPM_BUILD_ROOT
201 /sbin/chkconfig --add openvswitch
202 %service -n openvswitch restart
204 %systemd_post openvswitch.service
207 if [ "$1" = "0" ]; then
208 %service -q openvswitch stop
209 /sbin/chkconfig --del openvswitch
211 %systemd_preun openvswitch.service
216 %post -n kernel%{_alt_kernel}-net-openvswitch
217 %depmod %{_kernel_ver}
219 %postun -n kernel%{_alt_kernel}-net-openvswitch
220 %depmod %{_kernel_ver}
222 %if %{with userspace}
224 %defattr(644,root,root,755)
225 %doc INSTALL INSTALL.KVM INSTALL.SSL INSTALL.Libvirt INSTALL.XenServer INSTALL.userspace
226 %doc AUTHORS DESIGN NEWS README IntegrationGuide OPENFLOW-1.1+
227 %doc REPORTING-BUGS WHY-OVS README.PLD FAQ
228 %attr(755,root,root) /lib/rc-scripts/ifdown-ovs
229 %attr(755,root,root) /lib/rc-scripts/ifup-ovs
230 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/openvswitch
231 %{systemdtmpfilesdir}/openvswitch.conf
232 %{systemdunitdir}/openvswitch.service
233 %dir %{_datadir}/%{pname}
234 %{_datadir}/%{pname}/pki
235 %dir %{_datadir}/%{pname}/scripts
236 %attr(755,root,root) %{_datadir}/%{pname}/scripts/*
237 %{_datadir}/%{pname}/bugtool-plugins
238 %{_datadir}/%{pname}/vswitch.ovsschema
240 %attr(754,root,root) /etc/rc.d/init.d/openvswitch
241 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/openvswitch
243 %attr(755,root,root) %{_bindir}/ovs-appctl
244 %attr(755,root,root) %{_bindir}/ovs-benchmark
245 %attr(755,root,root) %{_bindir}/ovs-controller
246 %attr(755,root,root) %{_bindir}/ovs-dpctl
247 %attr(755,root,root) %{_bindir}/ovs-l3ping
248 %attr(755,root,root) %{_bindir}/ovs-ofctl
249 %attr(755,root,root) %{_bindir}/ovs-parse-backtrace
250 %attr(755,root,root) %{_bindir}/ovs-parse-leaks
251 %attr(755,root,root) %{_bindir}/ovs-pcap
252 %attr(755,root,root) %{_bindir}/ovs-pki
253 %attr(755,root,root) %{_bindir}/ovs-tcpundump
254 %attr(755,root,root) %{_bindir}/ovs-vsctl
255 %attr(755,root,root) %{_bindir}/ovsdb-client
256 %attr(755,root,root) %{_bindir}/ovsdb-tool
257 %attr(755,root,root) %{_sbindir}/ovs-bugtool
258 %attr(755,root,root) %{_sbindir}/ovs-vlan-bug-workaround
259 %attr(755,root,root) %{_sbindir}/ovs-vswitchd
260 %attr(755,root,root) %{_sbindir}/ovsdb-server
261 %{_mandir}/man1/ovs-benchmark.1*
262 %{_mandir}/man1/ovs-pcap.1*
263 %{_mandir}/man1/ovs-tcpundump.1*
264 %{_mandir}/man1/ovsdb-client.1*
265 %{_mandir}/man1/ovsdb-server.1*
266 %{_mandir}/man1/ovsdb-tool.1*
267 %{_mandir}/man5/ovs-vswitchd.conf.db.5*
268 %{_mandir}/man8/ovs-appctl.8*
269 %{_mandir}/man8/ovs-bugtool.8*
270 %{_mandir}/man8/ovs-controller.8*
271 %{_mandir}/man8/ovs-ctl.8*
272 %{_mandir}/man8/ovs-dpctl.8*
273 %{_mandir}/man8/ovs-l3ping.8*
274 %{_mandir}/man8/ovs-ofctl.8*
275 %{_mandir}/man8/ovs-parse-backtrace.8*
276 %{_mandir}/man8/ovs-parse-leaks.8*
277 %{_mandir}/man8/ovs-pki.8*
278 %{_mandir}/man8/ovs-vlan-bug-workaround.8*
279 %{_mandir}/man8/ovs-vlan-test.8*
280 %{_mandir}/man8/ovs-vsctl.8*
281 %{_mandir}/man8/ovs-vswitchd.8*
283 %files -n python-openvswitch
284 %defattr(644,root,root,755)
285 %dir %{py_sitescriptdir}/ovs
286 %{py_sitescriptdir}/ovs/*.py*
287 %dir %{py_sitescriptdir}/ovs/db
288 %{py_sitescriptdir}/ovs/db/*.py*
289 %dir %{py_sitescriptdir}/ovs/unixctl
290 %{py_sitescriptdir}/ovs/unixctl/*.py*
292 %files -n ovsdbmonitor
293 %defattr(644,root,root,755)
294 %attr(755,root,root) %{_bindir}/ovsdbmonitor
295 %{_datadir}/ovsdbmonitor
296 %{_desktopdir}/ovsdbmonitor.desktop
297 %{_mandir}/man1/ovsdbmonitor.1*
300 %defattr(644,root,root,755)
301 %attr(755,root,root) %{_bindir}/ovs-test
302 %attr(755,root,root) %{_bindir}/ovs-vlan-test
303 %{py_sitescriptdir}/ovstest
304 %{_mandir}/man8/ovs-test.8*
308 %files -n kernel%{_alt_kernel}-net-openvswitch
309 %defattr(644,root,root,755)
310 %dir /lib/modules/%{_kernel_ver}/kernel/net/openvswitch
311 /lib/modules/%{_kernel_ver}/kernel/net/openvswitch/*.ko*