1 # Spec file for Open vSwitch.
3 # Copyright (C) 2009, 2010, 2013, 2014, 2015, 2016 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-parse-backtrace \
177 $RPM_BUILD_ROOT%{_bindir}/ovs-pcap \
178 $RPM_BUILD_ROOT%{_bindir}/ovs-tcpundump \
179 $RPM_BUILD_ROOT%{_sbindir}/ovs-vlan-bug-workaround \
180 $RPM_BUILD_ROOT%{_mandir}/man1/ovs-pcap.1 \
181 $RPM_BUILD_ROOT%{_mandir}/man1/ovs-tcpundump.1 \
182 $RPM_BUILD_ROOT%{_mandir}/man8/ovs-vlan-bug-workaround.8 \
183 $RPM_BUILD_ROOT%{_datadir}/openvswitch/scripts/ovs-save
187 if make check TESTSUITEFLAGS='%{_smp_mflags}' ||
188 make check TESTSUITEFLAGS='--recheck'; then :;
190 cat tests/testsuite.log
196 rm -rf $RPM_BUILD_ROOT
199 %if 0%{?systemd_preun:1}
200 %systemd_preun %{name}.service
202 if [ $1 -eq 0 ] ; then
203 # Package removal, not upgrade
204 /bin/systemctl --no-reload disable %{name}.service >/dev/null 2>&1 || :
205 /bin/systemctl stop %{name}.service >/dev/null 2>&1 || :
210 %if 0%{?systemd_preun:1}
211 %systemd_preun ovn-controller.service
212 %systemd_preun ovn-controller-vtep.service
213 %systemd_preun ovn-northd.service
215 if [ $1 -eq 0 ] ; then
216 # Package removal, not upgrade
217 /bin/systemctl --no-reload disable ovn-controller.service >/dev/null 2>&1 || :
218 /bin/systemctl stop ovn-controller.service >/dev/null 2>&1 || :
219 /bin/systemctl --no-reload disable ovn-controller-vtep.service >/dev/null 2>&1 || :
220 /bin/systemctl stop ovn-controller-vtep.service >/dev/null 2>&1 || :
221 /bin/systemctl --no-reload disable ovn-northd.service >/dev/null 2>&1 || :
222 /bin/systemctl stop ovn-northd.service >/dev/null 2>&1 || :
227 %if 0%{?systemd_post:1}
228 %systemd_post %{name}.service
230 # Package install, not upgrade
231 if [ $1 -eq 1 ]; then
232 /bin/systemctl daemon-reload >dev/null || :
237 %if 0%{?systemd_post:1}
238 %systemd_post ovn-controller.service
239 %systemd_post ovn-controller-vtep.service
240 %systemd_post ovn-northd.service
242 # Package install, not upgrade
243 if [ $1 -eq 1 ]; then
244 /bin/systemctl daemon-reload >dev/null || :
249 %if 0%{?systemd_postun_with_restart:1}
250 %systemd_postun_with_restart %{name}.service
252 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
253 if [ "$1" -ge "1" ] ; then
254 # Package upgrade, not uninstall
255 /bin/systemctl try-restart %{name}.service >/dev/null 2>&1 || :
260 %if 0%{?systemd_postun_with_restart:1}
261 %systemd_postun_with_restart ovn-controller.service
262 %systemd_postun_with_restart ovn-controller-vtep.service
263 %systemd_postun_with_restart ovn-northd.service
265 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
266 if [ "$1" -ge "1" ] ; then
267 # Package upgrade, not uninstall
268 /bin/systemctl try-restart ovn-controller.service >/dev/null 2>&1 || :
269 /bin/systemctl try-restart ovn-controller-vtep.service >/dev/null 2>&1 || :
270 /bin/systemctl try-restart ovn-northd.service >/dev/null 2>&1 || :
274 %files -n python-openvswitch
275 %{python_sitelib}/ovs
280 %{_bindir}/ovs-vlan-test
281 %{_bindir}/ovs-l3ping
282 %{_mandir}/man8/ovs-test.8*
283 %{_mandir}/man8/ovs-vlan-test.8*
284 %{_mandir}/man8/ovs-l3ping.8*
285 %{python_sitelib}/ovstest
290 %{_libdir}/pkgconfig/*.pc
291 %{_includedir}/openvswitch/*
292 %{_includedir}/openflow/*
295 %defattr(-,root,root)
296 %{_sysconfdir}/bash_completion.d/ovs-appctl-bashcomp.bash
297 %{_sysconfdir}/bash_completion.d/ovs-vsctl-bashcomp.bash
298 %dir %{_sysconfdir}/openvswitch
299 %config %ghost %{_sysconfdir}/openvswitch/conf.db
300 %config %ghost %{_sysconfdir}/openvswitch/system-id.conf
301 %config(noreplace) %{_sysconfdir}/sysconfig/openvswitch
302 %config(noreplace) %{_sysconfdir}/logrotate.d/openvswitch
303 %{_unitdir}/openvswitch.service
304 %{_unitdir}/openvswitch-nonetwork.service
305 %{_datadir}/openvswitch/scripts/openvswitch.init
306 %{_sysconfdir}/sysconfig/network-scripts/ifup-ovs
307 %{_sysconfdir}/sysconfig/network-scripts/ifdown-ovs
308 %{_datadir}/openvswitch/bugtool-plugins/
309 %{_datadir}/openvswitch/scripts/ovs-bugtool-*
310 %{_datadir}/openvswitch/scripts/ovs-check-dead-ifs
311 %{_datadir}/openvswitch/scripts/ovs-lib
312 %{_datadir}/openvswitch/scripts/ovs-vtep
313 %{_datadir}/openvswitch/scripts/ovs-ctl
314 %config %{_datadir}/openvswitch/vswitch.ovsschema
315 %config %{_datadir}/openvswitch/vtep.ovsschema
316 %{_bindir}/ovs-appctl
317 %{_bindir}/ovs-docker
319 %{_bindir}/ovs-dpctl-top
322 %{_bindir}/ovsdb-client
323 %{_bindir}/ovsdb-tool
324 %{_bindir}/ovs-testcontroller
327 %{_sbindir}/ovs-bugtool
328 %{_sbindir}/ovs-vswitchd
329 %{_sbindir}/ovsdb-server
330 %{_mandir}/man1/ovsdb-client.1*
331 %{_mandir}/man1/ovsdb-server.1*
332 %{_mandir}/man1/ovsdb-tool.1*
333 %{_mandir}/man5/ovs-vswitchd.conf.db.5*
334 %{_mandir}/man5/vtep.5*
335 %{_mandir}/man8/vtep-ctl.8*
336 %{_mandir}/man8/ovs-appctl.8*
337 %{_mandir}/man8/ovs-bugtool.8*
338 %{_mandir}/man8/ovs-ctl.8*
339 %{_mandir}/man8/ovs-dpctl.8*
340 %{_mandir}/man8/ovs-dpctl-top.8*
341 %{_mandir}/man8/ovs-ofctl.8*
342 %{_mandir}/man8/ovs-pki.8*
343 %{_mandir}/man8/ovs-vsctl.8*
344 %{_mandir}/man8/ovs-vswitchd.8*
345 %{_mandir}/man8/ovs-parse-backtrace.8*
346 %{_mandir}/man8/ovs-testcontroller.8*
347 %doc COPYING DESIGN.md INSTALL.SSL.md NOTICE README.md WHY-OVS.md
348 %doc FAQ.md NEWS INSTALL.DPDK.md rhel/README.RHEL
351 %ghost %attr(755,root,root) %{_rundir}/openvswitch
354 %{_bindir}/ovn-controller
355 %{_bindir}/ovn-controller-vtep
356 %{_bindir}/ovn-docker-overlay-driver
357 %{_bindir}/ovn-docker-underlay-driver
359 %{_bindir}/ovn-northd
361 %{_datadir}/openvswitch/scripts/ovn-ctl
362 %{_mandir}/man8/ovs-testcontroller.8*
363 %{_mandir}/man5/ovn-nb.5*
364 %{_mandir}/man5/ovn-sb.5*
365 %{_mandir}/man7/ovn-architecture.7*
366 %{_mandir}/man8/ovn-controller.8*
367 %{_mandir}/man8/ovn-controller-vtep.8*
368 %{_mandir}/man8/ovn-ctl.8*
369 %{_mandir}/man8/ovn-nbctl.8*
370 %{_mandir}/man8/ovn-northd.8*
371 %{_mandir}/man8/ovn-sbctl.8*
372 %config %{_datadir}/openvswitch/ovn-nb.ovsschema
373 %config %{_datadir}/openvswitch/ovn-sb.ovsschema
374 %{_unitdir}/ovn-controller.service
375 %{_unitdir}/ovn-controller-vtep.service
376 %{_unitdir}/ovn-northd.service
379 * Wed Jan 12 2011 Ralf Spenneberg <ralf@os-s.net>