1 # Spec file for Open vSwitch.
3 # Copyright (C) 2009, 2010, 2013, 2014, 2015 Nicira Networks, Inc.
5 # Copying and distribution of this file, with or without modification,
6 # are permitted in any medium without royalty provided the copyright
7 # notice and this notice are preserved. This file is offered as-is,
8 # without warranty of any kind.
10 # If tests have to be skipped while building, specify the '--without check'
11 # option. For example:
12 # rpmbuild -bb --without check rhel/openvswitch-fedora.spec
14 #%define kernel 2.6.40.4-5.fc15.x86_64
16 # If libcap-ng isn't available and there is no need for running OVS
17 # as regular user, specify the '--without libcapng'
18 %bcond_without libcapng
19 # To enable DPDK support, specify '--with dpdk' when building
22 # Enable PIE, bz#955181
23 %global _hardened_build 1
25 # some distros (e.g: RHEL-7) don't define _rundir macro yet
26 # Fedora 15 onwards uses /run as _rundir
33 Group: System Environment/Daemons
34 URL: http://www.openvswitch.org/
37 # Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the
38 # lib/sflow*.[ch] files are SISSL
39 # datapath/ is GPLv2 (although not built into any of the binary packages)
40 License: ASL 2.0 and LGPLv2+ and SISSL
42 Source: http://openvswitch.org/releases/%{name}-%{version}.tar.gz
44 BuildRequires: autoconf automake libtool
45 BuildRequires: systemd-units openssl openssl-devel
46 BuildRequires: python python-twisted-core python-zope-interface PyQt4 python-six
47 BuildRequires: desktop-file-utils
48 BuildRequires: groff graphviz
49 # make check dependencies
50 BuildRequires: procps-ng
52 BuildRequires: libcap-ng libcap-ng-devel
55 BuildRequires: dpdk-devel >= 2.2.0
56 Provides: %{name}-dpdk = %{version}-%{release}
59 Requires: openssl iproute module-init-tools
60 #Upstream kernel commit 4f647e0a3c37b8d5086214128614a136064110c3
61 #Requires: kernel >= 3.15.0-0
63 Requires(post): systemd-units
64 Requires(preun): systemd-units
65 Requires(postun): systemd-units
66 Obsoletes: openvswitch-controller <= 0:2.1.0-1
71 Open vSwitch provides standard network bridging functions and
72 support for the OpenFlow protocol for remote per-flow control of
75 %package -n python-openvswitch
76 Summary: Open vSwitch python bindings
82 %description -n python-openvswitch
83 Python bindings for the Open vSwitch database
86 Summary: Open vSwitch testing utilities
89 Requires: python-openvswitch = %{version}-%{release}
90 Requires: python python-twisted-core python-twisted-web
93 Utilities that are useful to diagnose performance and connectivity
94 issues in Open vSwitch setup.
97 Summary: Open vSwitch OpenFlow development package (library, headers)
99 Provides: openvswitch-static = %{version}-%{release}
102 This provides static library, libopenswitch.a and the openvswitch header
103 files needed to build an external application.
106 Summary: Open vSwitch - Open Virtual Network support
108 Requires: openvswitch
111 OVN, the Open Virtual Network, is a system to support virtual network
112 abstraction. OVN complements the existing capabilities of OVS to add
113 native support for virtual network abstractions, such as virtual L2 and L3
114 overlays and security groups.
128 --with-dpdk=$(dirname %{_datadir}/dpdk/*/.config) \
131 --with-pkidir=%{_sharedstatedir}/openvswitch/pki
136 rm -rf $RPM_BUILD_ROOT
137 make install DESTDIR=$RPM_BUILD_ROOT
139 install -d -m 0755 $RPM_BUILD_ROOT%{_sysconfdir}/openvswitch
141 install -p -D -m 0644 \
142 rhel/usr_share_openvswitch_scripts_systemd_sysconfig.template \
143 $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/openvswitch
144 for service in openvswitch openvswitch-nonetwork \
145 ovn-controller ovn-controller-vtep ovn-northd; do
146 install -p -D -m 0644 \
147 rhel/usr_lib_systemd_system_${service}.service \
148 $RPM_BUILD_ROOT%{_unitdir}/${service}.service
150 install -m 0755 rhel/etc_init.d_openvswitch \
151 $RPM_BUILD_ROOT%{_datadir}/openvswitch/scripts/openvswitch.init
153 install -p -D -m 0644 rhel/etc_logrotate.d_openvswitch \
154 $RPM_BUILD_ROOT/%{_sysconfdir}/logrotate.d/openvswitch
156 install -m 0644 vswitchd/vswitch.ovsschema \
157 $RPM_BUILD_ROOT/%{_datadir}/openvswitch/vswitch.ovsschema
159 install -d -m 0755 $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/network-scripts/
160 install -p -m 0755 rhel/etc_sysconfig_network-scripts_ifdown-ovs \
161 $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/network-scripts/ifdown-ovs
162 install -p -m 0755 rhel/etc_sysconfig_network-scripts_ifup-ovs \
163 $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/network-scripts/ifup-ovs
165 install -d -m 0755 $RPM_BUILD_ROOT%{python_sitelib}
166 mv $RPM_BUILD_ROOT/%{_datadir}/openvswitch/python/* \
167 $RPM_BUILD_ROOT%{python_sitelib}
168 rmdir $RPM_BUILD_ROOT/%{_datadir}/openvswitch/python/
170 install -d -m 0755 $RPM_BUILD_ROOT/%{_sharedstatedir}/openvswitch
172 touch $RPM_BUILD_ROOT%{_sysconfdir}/openvswitch/conf.db
173 touch $RPM_BUILD_ROOT%{_sysconfdir}/openvswitch/system-id.conf
175 # remove unpackaged files
176 rm -f $RPM_BUILD_ROOT%{_bindir}/ovs-benchmark \
177 $RPM_BUILD_ROOT%{_bindir}/ovs-parse-backtrace \
178 $RPM_BUILD_ROOT%{_bindir}/ovs-pcap \
179 $RPM_BUILD_ROOT%{_bindir}/ovs-tcpundump \
180 $RPM_BUILD_ROOT%{_sbindir}/ovs-vlan-bug-workaround \
181 $RPM_BUILD_ROOT%{_mandir}/man1/ovs-benchmark.1 \
182 $RPM_BUILD_ROOT%{_mandir}/man1/ovs-pcap.1 \
183 $RPM_BUILD_ROOT%{_mandir}/man1/ovs-tcpundump.1 \
184 $RPM_BUILD_ROOT%{_mandir}/man8/ovs-vlan-bug-workaround.8 \
185 $RPM_BUILD_ROOT%{_datadir}/openvswitch/scripts/ovs-save
189 if make check TESTSUITEFLAGS='%{_smp_mflags}' ||
190 make check TESTSUITEFLAGS='--recheck'; then :;
192 cat tests/testsuite.log
198 rm -rf $RPM_BUILD_ROOT
201 %if 0%{?systemd_preun:1}
202 %systemd_preun %{name}.service
204 if [ $1 -eq 0 ] ; then
205 # Package removal, not upgrade
206 /bin/systemctl --no-reload disable %{name}.service >/dev/null 2>&1 || :
207 /bin/systemctl stop %{name}.service >/dev/null 2>&1 || :
212 %if 0%{?systemd_preun:1}
213 %systemd_preun ovn-controller.service
214 %systemd_preun ovn-controller-vtep.service
215 %systemd_preun ovn-northd.service
217 if [ $1 -eq 0 ] ; then
218 # Package removal, not upgrade
219 /bin/systemctl --no-reload disable ovn-controller.service >/dev/null 2>&1 || :
220 /bin/systemctl stop ovn-controller.service >/dev/null 2>&1 || :
221 /bin/systemctl --no-reload disable ovn-controller-vtep.service >/dev/null 2>&1 || :
222 /bin/systemctl stop ovn-controller-vtep.service >/dev/null 2>&1 || :
223 /bin/systemctl --no-reload disable ovn-northd.service >/dev/null 2>&1 || :
224 /bin/systemctl stop ovn-northd.service >/dev/null 2>&1 || :
229 %if 0%{?systemd_post:1}
230 %systemd_post %{name}.service
232 # Package install, not upgrade
233 if [ $1 -eq 1 ]; then
234 /bin/systemctl daemon-reload >dev/null || :
239 %if 0%{?systemd_post:1}
240 %systemd_post ovn-controller.service
241 %systemd_post ovn-controller-vtep.service
242 %systemd_post ovn-northd.service
244 # Package install, not upgrade
245 if [ $1 -eq 1 ]; then
246 /bin/systemctl daemon-reload >dev/null || :
251 %if 0%{?systemd_postun_with_restart:1}
252 %systemd_postun_with_restart %{name}.service
254 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
255 if [ "$1" -ge "1" ] ; then
256 # Package upgrade, not uninstall
257 /bin/systemctl try-restart %{name}.service >/dev/null 2>&1 || :
262 %if 0%{?systemd_postun_with_restart:1}
263 %systemd_postun_with_restart ovn-controller.service
264 %systemd_postun_with_restart ovn-controller-vtep.service
265 %systemd_postun_with_restart ovn-northd.service
267 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
268 if [ "$1" -ge "1" ] ; then
269 # Package upgrade, not uninstall
270 /bin/systemctl try-restart ovn-controller.service >/dev/null 2>&1 || :
271 /bin/systemctl try-restart ovn-controller-vtep.service >/dev/null 2>&1 || :
272 /bin/systemctl try-restart ovn-northd.service >/dev/null 2>&1 || :
276 %files -n python-openvswitch
277 %{python_sitelib}/ovs
282 %{_bindir}/ovs-vlan-test
283 %{_bindir}/ovs-l3ping
284 %{_mandir}/man8/ovs-test.8*
285 %{_mandir}/man8/ovs-vlan-test.8*
286 %{_mandir}/man8/ovs-l3ping.8*
287 %{python_sitelib}/ovstest
292 %{_libdir}/pkgconfig/*.pc
293 %{_includedir}/openvswitch/*
294 %{_includedir}/openflow/*
297 %defattr(-,root,root)
298 %{_sysconfdir}/bash_completion.d/ovs-appctl-bashcomp.bash
299 %{_sysconfdir}/bash_completion.d/ovs-vsctl-bashcomp.bash
300 %dir %{_sysconfdir}/openvswitch
301 %config %ghost %{_sysconfdir}/openvswitch/conf.db
302 %config %ghost %{_sysconfdir}/openvswitch/system-id.conf
303 %config(noreplace) %{_sysconfdir}/sysconfig/openvswitch
304 %config(noreplace) %{_sysconfdir}/logrotate.d/openvswitch
305 %{_unitdir}/openvswitch.service
306 %{_unitdir}/openvswitch-nonetwork.service
307 %{_datadir}/openvswitch/scripts/openvswitch.init
308 %{_sysconfdir}/sysconfig/network-scripts/ifup-ovs
309 %{_sysconfdir}/sysconfig/network-scripts/ifdown-ovs
310 %{_datadir}/openvswitch/bugtool-plugins/
311 %{_datadir}/openvswitch/scripts/ovs-bugtool-*
312 %{_datadir}/openvswitch/scripts/ovs-check-dead-ifs
313 %{_datadir}/openvswitch/scripts/ovs-lib
314 %{_datadir}/openvswitch/scripts/ovs-vtep
315 %{_datadir}/openvswitch/scripts/ovs-ctl
316 %config %{_datadir}/openvswitch/vswitch.ovsschema
317 %config %{_datadir}/openvswitch/vtep.ovsschema
318 %{_bindir}/ovs-appctl
319 %{_bindir}/ovs-docker
321 %{_bindir}/ovs-dpctl-top
324 %{_bindir}/ovsdb-client
325 %{_bindir}/ovsdb-tool
326 %{_bindir}/ovs-testcontroller
329 %{_sbindir}/ovs-bugtool
330 %{_sbindir}/ovs-vswitchd
331 %{_sbindir}/ovsdb-server
332 %{_mandir}/man1/ovsdb-client.1*
333 %{_mandir}/man1/ovsdb-server.1*
334 %{_mandir}/man1/ovsdb-tool.1*
335 %{_mandir}/man5/ovs-vswitchd.conf.db.5*
336 %{_mandir}/man5/vtep.5*
337 %{_mandir}/man8/vtep-ctl.8*
338 %{_mandir}/man8/ovs-appctl.8*
339 %{_mandir}/man8/ovs-bugtool.8*
340 %{_mandir}/man8/ovs-ctl.8*
341 %{_mandir}/man8/ovs-dpctl.8*
342 %{_mandir}/man8/ovs-dpctl-top.8*
343 %{_mandir}/man8/ovs-ofctl.8*
344 %{_mandir}/man8/ovs-pki.8*
345 %{_mandir}/man8/ovs-vsctl.8*
346 %{_mandir}/man8/ovs-vswitchd.8*
347 %{_mandir}/man8/ovs-parse-backtrace.8*
348 %{_mandir}/man8/ovs-testcontroller.8*
349 %doc COPYING DESIGN.md INSTALL.SSL.md NOTICE README.md WHY-OVS.md
350 %doc FAQ.md NEWS INSTALL.DPDK.md rhel/README.RHEL
353 %ghost %attr(755,root,root) %{_rundir}/openvswitch
356 %{_bindir}/ovn-controller
357 %{_bindir}/ovn-controller-vtep
358 %{_bindir}/ovn-docker-overlay-driver
359 %{_bindir}/ovn-docker-underlay-driver
361 %{_bindir}/ovn-northd
363 %{_datadir}/openvswitch/scripts/ovn-ctl
364 %{_mandir}/man8/ovs-testcontroller.8*
365 %{_mandir}/man5/ovn-nb.5*
366 %{_mandir}/man5/ovn-sb.5*
367 %{_mandir}/man7/ovn-architecture.7*
368 %{_mandir}/man8/ovn-controller.8*
369 %{_mandir}/man8/ovn-controller-vtep.8*
370 %{_mandir}/man8/ovn-ctl.8*
371 %{_mandir}/man8/ovn-nbctl.8*
372 %{_mandir}/man8/ovn-northd.8*
373 %{_mandir}/man8/ovn-sbctl.8*
374 %config %{_datadir}/openvswitch/ovn-nb.ovsschema
375 %config %{_datadir}/openvswitch/ovn-sb.ovsschema
376 %{_unitdir}/ovn-controller.service
377 %{_unitdir}/ovn-controller-vtep.service
378 %{_unitdir}/ovn-northd.service
381 * Wed Jan 12 2011 Ralf Spenneberg <ralf@os-s.net>