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 %post -n kernel%{_alt_kernel}-net-openvswitch
173 %depmod %{_kernel_ver}
175 %postun -n kernel%{_alt_kernel}-net-openvswitch
176 %depmod %{_kernel_ver}
178 %if %{with userspace}
180 %defattr(644,root,root,755)
181 %doc AUTHORS DESIGN INSTALL.KVM INSTALL.SSL INSTALL.bridge INSTALL.userspace NEWS README
182 %doc REPORTING-BUGS WHY-OVS README.PLD
183 %attr(755,root,root) /lib/rc-scripts/ifdown-ovs
184 %attr(755,root,root) /lib/rc-scripts/ifup-ovs
185 %attr(640,root,root) %config(noreplace) %verify(not md5 mtime size) /etc/logrotate.d/openvswitch
186 %{systemdtmpfilesdir}/openvswitch.conf
187 %{systemdunitdir}/openvswitch.service
188 %dir %{_datadir}/%{name}
189 %{_datadir}/%{name}/pki
190 %dir %{_datadir}/%{name}/scripts
191 %attr(755,root,root) %{_datadir}/%{name}/scripts/*
192 %{_datadir}/%{name}/ovsdbmonitor
193 %{_datadir}/%{name}/bugtool-plugins
194 %{_datadir}/%{name}/vswitch.ovsschema
196 %attr(754,root,root) /etc/rc.d/init.d/openvswitch
197 %config(noreplace) %verify(not md5 mtime size) /etc/sysconfig/openvswitch
199 %attr(755,root,root) %{_bindir}/ovs-appctl
200 %attr(755,root,root) %{_bindir}/ovs-benchmark
201 %attr(755,root,root) %{_bindir}/ovs-controller
202 %attr(755,root,root) %{_bindir}/ovs-dpctl
203 %attr(755,root,root) %{_bindir}/ovs-ofctl
204 %attr(755,root,root) %{_bindir}/ovs-parse-leaks
205 %attr(755,root,root) %{_bindir}/ovs-pcap
206 %attr(755,root,root) %{_bindir}/ovs-pki
207 %attr(755,root,root) %{_bindir}/ovs-tcpundump
208 %attr(755,root,root) %{_bindir}/ovs-vsctl
209 %attr(755,root,root) %{_bindir}/ovsdb-client
210 %attr(755,root,root) %{_bindir}/ovsdb-tool
211 %attr(755,root,root) %{_bindir}/ovsdbmonitor
212 %attr(755,root,root) %{_sbindir}/ovs-brcompatd
213 %attr(755,root,root) %{_sbindir}/ovs-bugtool
214 %attr(755,root,root) %{_sbindir}/ovs-vlan-bug-workaround
215 %attr(755,root,root) %{_sbindir}/ovs-vswitchd
216 %attr(755,root,root) %{_sbindir}/ovsdb-server
217 %{_mandir}/man1/ovs-benchmark.1*
218 %{_mandir}/man1/ovs-pcap.1*
219 %{_mandir}/man1/ovs-tcpundump.1*
220 %{_mandir}/man1/ovsdb-client.1*
221 %{_mandir}/man1/ovsdb-server.1*
222 %{_mandir}/man1/ovsdb-tool.1*
223 %{_mandir}/man1/ovsdbmonitor.1*
224 %{_mandir}/man5/ovs-vswitchd.conf.db.5*
225 %{_mandir}/man8/ovs-appctl.8*
226 %{_mandir}/man8/ovs-brcompatd.8*
227 %{_mandir}/man8/ovs-bugtool.8*
228 %{_mandir}/man8/ovs-controller.8*
229 %{_mandir}/man8/ovs-ctl.8*
230 %{_mandir}/man8/ovs-dpctl.8*
231 %{_mandir}/man8/ovs-ofctl.8*
232 %{_mandir}/man8/ovs-parse-leaks.8*
233 %{_mandir}/man8/ovs-pki.8*
234 %{_mandir}/man8/ovs-vlan-bug-workaround.8*
235 %{_mandir}/man8/ovs-vlan-test.8*
236 %{_mandir}/man8/ovs-vsctl.8*
237 %{_mandir}/man8/ovs-vswitchd.8*
238 %dir %{py_sitescriptdir}/ovs
239 %{py_sitescriptdir}/ovs/*.py*
240 %dir %{py_sitescriptdir}/ovs/db
241 %{py_sitescriptdir}/ovs/db/*.py*
244 %defattr(644,root,root,755)
245 %attr(755,root,root) %{_bindir}/ovs-test
246 %attr(755,root,root) %{_bindir}/ovs-vlan-test
247 %{py_sitescriptdir}/ovstest
248 %{_mandir}/man8/ovs-test.8*
252 %files -n kernel%{_alt_kernel}-net-openvswitch
253 %defattr(644,root,root,755)
254 /lib/modules/%{_kernel_ver}/kernel/net/openvswitch/*.ko*