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 openvswitch restart
203 %systemd_post openvswitch.service
206 if [ "$1" = "0" ]; then
207 %service -q openvswitch stop
208 /sbin/chkconfig --del openvswitch
210 %systemd_preun openvswitch.service
215 %post -n kernel%{_alt_kernel}-net-openvswitch
216 %depmod %{_kernel_ver}
218 %postun -n kernel%{_alt_kernel}-net-openvswitch
219 %depmod %{_kernel_ver}
221 %if %{with userspace}
223 %defattr(644,root,root,755)
224 %doc INSTALL INSTALL.KVM INSTALL.SSL INSTALL.Libvirt INSTALL.XenServer INSTALL.userspace
225 %doc AUTHORS DESIGN NEWS README IntegrationGuide OPENFLOW-1.1+
226 %doc REPORTING-BUGS WHY-OVS README.PLD FAQ
227 %attr(755,root,root) /lib/rc-scripts/ifdown-ovs
228 %attr(755,root,root) /lib/rc-scripts/ifup-ovs
229 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/openvswitch
230 %{systemdtmpfilesdir}/openvswitch.conf
231 %{systemdunitdir}/openvswitch.service
232 %dir %{_datadir}/%{pname}
233 %{_datadir}/%{pname}/pki
234 %dir %{_datadir}/%{pname}/scripts
235 %attr(755,root,root) %{_datadir}/%{pname}/scripts/*
236 %{_datadir}/%{pname}/bugtool-plugins
237 %{_datadir}/%{pname}/vswitch.ovsschema
239 %attr(754,root,root) /etc/rc.d/init.d/openvswitch
240 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/openvswitch
242 %attr(755,root,root) %{_bindir}/ovs-appctl
243 %attr(755,root,root) %{_bindir}/ovs-benchmark
244 %attr(755,root,root) %{_bindir}/ovs-controller
245 %attr(755,root,root) %{_bindir}/ovs-dpctl
246 %attr(755,root,root) %{_bindir}/ovs-l3ping
247 %attr(755,root,root) %{_bindir}/ovs-ofctl
248 %attr(755,root,root) %{_bindir}/ovs-parse-backtrace
249 %attr(755,root,root) %{_bindir}/ovs-parse-leaks
250 %attr(755,root,root) %{_bindir}/ovs-pcap
251 %attr(755,root,root) %{_bindir}/ovs-pki
252 %attr(755,root,root) %{_bindir}/ovs-tcpundump
253 %attr(755,root,root) %{_bindir}/ovs-vsctl
254 %attr(755,root,root) %{_bindir}/ovsdb-client
255 %attr(755,root,root) %{_bindir}/ovsdb-tool
256 %attr(755,root,root) %{_sbindir}/ovs-bugtool
257 %attr(755,root,root) %{_sbindir}/ovs-vlan-bug-workaround
258 %attr(755,root,root) %{_sbindir}/ovs-vswitchd
259 %attr(755,root,root) %{_sbindir}/ovsdb-server
260 %{_mandir}/man1/ovs-benchmark.1*
261 %{_mandir}/man1/ovs-pcap.1*
262 %{_mandir}/man1/ovs-tcpundump.1*
263 %{_mandir}/man1/ovsdb-client.1*
264 %{_mandir}/man1/ovsdb-server.1*
265 %{_mandir}/man1/ovsdb-tool.1*
266 %{_mandir}/man5/ovs-vswitchd.conf.db.5*
267 %{_mandir}/man8/ovs-appctl.8*
268 %{_mandir}/man8/ovs-bugtool.8*
269 %{_mandir}/man8/ovs-controller.8*
270 %{_mandir}/man8/ovs-ctl.8*
271 %{_mandir}/man8/ovs-dpctl.8*
272 %{_mandir}/man8/ovs-l3ping.8*
273 %{_mandir}/man8/ovs-ofctl.8*
274 %{_mandir}/man8/ovs-parse-backtrace.8*
275 %{_mandir}/man8/ovs-parse-leaks.8*
276 %{_mandir}/man8/ovs-pki.8*
277 %{_mandir}/man8/ovs-vlan-bug-workaround.8*
278 %{_mandir}/man8/ovs-vlan-test.8*
279 %{_mandir}/man8/ovs-vsctl.8*
280 %{_mandir}/man8/ovs-vswitchd.8*
282 %files -n python-openvswitch
283 %defattr(644,root,root,755)
284 %dir %{py_sitescriptdir}/ovs
285 %{py_sitescriptdir}/ovs/*.py*
286 %dir %{py_sitescriptdir}/ovs/db
287 %{py_sitescriptdir}/ovs/db/*.py*
288 %dir %{py_sitescriptdir}/ovs/unixctl
289 %{py_sitescriptdir}/ovs/unixctl/*.py*
291 %files -n ovsdbmonitor
292 %defattr(644,root,root,755)
293 %attr(755,root,root) %{_bindir}/ovsdbmonitor
294 %{_datadir}/ovsdbmonitor
295 %{_desktopdir}/ovsdbmonitor.desktop
296 %{_mandir}/man1/ovsdbmonitor.1*
299 %defattr(644,root,root,755)
300 %attr(755,root,root) %{_bindir}/ovs-test
301 %attr(755,root,root) %{_bindir}/ovs-vlan-test
302 %{py_sitescriptdir}/ovstest
303 %{_mandir}/man8/ovs-test.8*
307 %files -n kernel%{_alt_kernel}-net-openvswitch
308 %defattr(644,root,root,755)
309 %dir /lib/modules/%{_kernel_ver}/kernel/net/openvswitch
310 /lib/modules/%{_kernel_ver}/kernel/net/openvswitch/*.ko*