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
20 # Enable PIE, bz#955181
21 %global _hardened_build 1
23 # some distros (e.g: RHEL-7) don't define _rundir macro yet
24 # Fedora 15 onwards uses /run as _rundir
31 Group: System Environment/Daemons
32 URL: http://www.openvswitch.org/
35 # Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the
36 # lib/sflow*.[ch] files are SISSL
37 # datapath/ is GPLv2 (although not built into any of the binary packages)
38 License: ASL 2.0 and LGPLv2+ and SISSL
40 Source: http://openvswitch.org/releases/%{name}-%{version}.tar.gz
42 BuildRequires: autoconf automake libtool
43 BuildRequires: systemd-units openssl openssl-devel
44 BuildRequires: python python-twisted-core python-zope-interface PyQt4
45 BuildRequires: desktop-file-utils
46 BuildRequires: groff graphviz
47 # make check dependencies
48 BuildRequires: procps-ng
50 BuildRequires: libcap-ng libcap-ng-devel
53 Requires: openssl iproute module-init-tools
54 #Upstream kernel commit 4f647e0a3c37b8d5086214128614a136064110c3
55 #Requires: kernel >= 3.15.0-0
57 Requires(post): systemd-units
58 Requires(preun): systemd-units
59 Requires(postun): systemd-units
60 Obsoletes: openvswitch-controller <= 0:2.1.0-1
65 Open vSwitch provides standard network bridging functions and
66 support for the OpenFlow protocol for remote per-flow control of
69 %package -n python-openvswitch
70 Summary: Open vSwitch python bindings
75 %description -n python-openvswitch
76 Python bindings for the Open vSwitch database
79 Summary: Open vSwitch testing utilities
82 Requires: python-openvswitch = %{version}-%{release}
83 Requires: python python-twisted-core python-twisted-web
86 Utilities that are useful to diagnose performance and connectivity
87 issues in Open vSwitch setup.
90 Summary: Open vSwitch OpenFlow development package (library, headers)
92 Provides: openvswitch-static = %{version}-%{release}
95 This provides static library, libopenswitch.a and the openvswitch header
96 files needed to build an external application.
99 Summary: Open vSwitch - Open Virtual Network support
101 Requires: openvswitch
104 OVN, the Open Virtual Network, is a system to support virtual network
105 abstraction. OVN complements the existing capabilities of OVS to add
106 native support for virtual network abstractions, such as virtual L2 and L3
107 overlays and security groups.
121 --with-pkidir=%{_sharedstatedir}/openvswitch/pki
126 rm -rf $RPM_BUILD_ROOT
127 make install DESTDIR=$RPM_BUILD_ROOT
129 install -d -m 0755 $RPM_BUILD_ROOT%{_sysconfdir}/openvswitch
131 install -p -D -m 0644 \
132 rhel/usr_share_openvswitch_scripts_systemd_sysconfig.template \
133 $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/openvswitch
134 for service in openvswitch openvswitch-nonetwork \
135 ovn-controller ovn-controller-vtep ovn-northd; do
136 install -p -D -m 0644 \
137 rhel/usr_lib_systemd_system_${service}.service \
138 $RPM_BUILD_ROOT%{_unitdir}/${service}.service
140 install -m 0755 rhel/etc_init.d_openvswitch \
141 $RPM_BUILD_ROOT%{_datadir}/openvswitch/scripts/openvswitch.init
143 install -p -D -m 0644 rhel/etc_logrotate.d_openvswitch \
144 $RPM_BUILD_ROOT/%{_sysconfdir}/logrotate.d/openvswitch
146 install -m 0644 vswitchd/vswitch.ovsschema \
147 $RPM_BUILD_ROOT/%{_datadir}/openvswitch/vswitch.ovsschema
149 install -d -m 0755 $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/network-scripts/
150 install -p -m 0755 rhel/etc_sysconfig_network-scripts_ifdown-ovs \
151 $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/network-scripts/ifdown-ovs
152 install -p -m 0755 rhel/etc_sysconfig_network-scripts_ifup-ovs \
153 $RPM_BUILD_ROOT/%{_sysconfdir}/sysconfig/network-scripts/ifup-ovs
155 install -d -m 0755 $RPM_BUILD_ROOT%{python_sitelib}
156 mv $RPM_BUILD_ROOT/%{_datadir}/openvswitch/python/* \
157 $RPM_BUILD_ROOT%{python_sitelib}
158 rmdir $RPM_BUILD_ROOT/%{_datadir}/openvswitch/python/
160 install -d -m 0755 $RPM_BUILD_ROOT/%{_sharedstatedir}/openvswitch
162 touch $RPM_BUILD_ROOT%{_sysconfdir}/openvswitch/conf.db
163 touch $RPM_BUILD_ROOT%{_sysconfdir}/openvswitch/system-id.conf
165 # remove unpackaged files
166 rm -f $RPM_BUILD_ROOT%{_bindir}/ovs-benchmark \
167 $RPM_BUILD_ROOT%{_bindir}/ovs-parse-backtrace \
168 $RPM_BUILD_ROOT%{_bindir}/ovs-pcap \
169 $RPM_BUILD_ROOT%{_bindir}/ovs-tcpundump \
170 $RPM_BUILD_ROOT%{_sbindir}/ovs-vlan-bug-workaround \
171 $RPM_BUILD_ROOT%{_mandir}/man1/ovs-benchmark.1 \
172 $RPM_BUILD_ROOT%{_mandir}/man1/ovs-pcap.1 \
173 $RPM_BUILD_ROOT%{_mandir}/man1/ovs-tcpundump.1 \
174 $RPM_BUILD_ROOT%{_mandir}/man8/ovs-vlan-bug-workaround.8 \
175 $RPM_BUILD_ROOT%{_datadir}/openvswitch/scripts/ovs-save
179 if make check TESTSUITEFLAGS='%{_smp_mflags}' ||
180 make check TESTSUITEFLAGS='--recheck'; then :;
182 cat tests/testsuite.log
188 rm -rf $RPM_BUILD_ROOT
191 %if 0%{?systemd_preun:1}
192 %systemd_preun %{name}.service
194 if [ $1 -eq 0 ] ; then
195 # Package removal, not upgrade
196 /bin/systemctl --no-reload disable %{name}.service >/dev/null 2>&1 || :
197 /bin/systemctl stop %{name}.service >/dev/null 2>&1 || :
202 %if 0%{?systemd_preun:1}
203 %systemd_preun ovn-controller.service
204 %systemd_preun ovn-controller-vtep.service
205 %systemd_preun ovn-northd.service
207 if [ $1 -eq 0 ] ; then
208 # Package removal, not upgrade
209 /bin/systemctl --no-reload disable ovn-controller.service >/dev/null 2>&1 || :
210 /bin/systemctl stop ovn-controller.service >/dev/null 2>&1 || :
211 /bin/systemctl --no-reload disable ovn-controller-vtep.service >/dev/null 2>&1 || :
212 /bin/systemctl stop ovn-controller-vtep.service >/dev/null 2>&1 || :
213 /bin/systemctl --no-reload disable ovn-northd.service >/dev/null 2>&1 || :
214 /bin/systemctl stop ovn-northd.service >/dev/null 2>&1 || :
219 %if 0%{?systemd_post:1}
220 %systemd_post %{name}.service
222 # Package install, not upgrade
223 if [ $1 -eq 1 ]; then
224 /bin/systemctl daemon-reload >dev/null || :
229 %if 0%{?systemd_post:1}
230 %systemd_post ovn-controller.service
231 %systemd_post ovn-controller-vtep.service
232 %systemd_post ovn-northd.service
234 # Package install, not upgrade
235 if [ $1 -eq 1 ]; then
236 /bin/systemctl daemon-reload >dev/null || :
241 %if 0%{?systemd_postun_with_restart:1}
242 %systemd_postun_with_restart %{name}.service
244 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
245 if [ "$1" -ge "1" ] ; then
246 # Package upgrade, not uninstall
247 /bin/systemctl try-restart %{name}.service >/dev/null 2>&1 || :
252 %if 0%{?systemd_postun_with_restart:1}
253 %systemd_postun_with_restart ovn-controller.service
254 %systemd_postun_with_restart ovn-controller-vtep.service
255 %systemd_postun_with_restart ovn-northd.service
257 /bin/systemctl daemon-reload >/dev/null 2>&1 || :
258 if [ "$1" -ge "1" ] ; then
259 # Package upgrade, not uninstall
260 /bin/systemctl try-restart ovn-controller.service >/dev/null 2>&1 || :
261 /bin/systemctl try-restart ovn-controller-vtep.service >/dev/null 2>&1 || :
262 /bin/systemctl try-restart ovn-northd.service >/dev/null 2>&1 || :
266 %files -n python-openvswitch
267 %{python_sitelib}/ovs
272 %{_bindir}/ovs-vlan-test
273 %{_bindir}/ovs-l3ping
274 %{_mandir}/man8/ovs-test.8*
275 %{_mandir}/man8/ovs-vlan-test.8*
276 %{_mandir}/man8/ovs-l3ping.8*
277 %{python_sitelib}/ovstest
282 %{_libdir}/pkgconfig/*.pc
283 %{_includedir}/openvswitch/*
284 %{_includedir}/openflow/*
287 %defattr(-,root,root)
288 %{_sysconfdir}/bash_completion.d/ovs-appctl-bashcomp.bash
289 %{_sysconfdir}/bash_completion.d/ovs-vsctl-bashcomp.bash
290 %dir %{_sysconfdir}/openvswitch
291 %config %ghost %{_sysconfdir}/openvswitch/conf.db
292 %config %ghost %{_sysconfdir}/openvswitch/system-id.conf
293 %config(noreplace) %{_sysconfdir}/sysconfig/openvswitch
294 %config(noreplace) %{_sysconfdir}/logrotate.d/openvswitch
295 %{_unitdir}/openvswitch.service
296 %{_unitdir}/openvswitch-nonetwork.service
297 %{_datadir}/openvswitch/scripts/openvswitch.init
298 %{_sysconfdir}/sysconfig/network-scripts/ifup-ovs
299 %{_sysconfdir}/sysconfig/network-scripts/ifdown-ovs
300 %{_datadir}/openvswitch/bugtool-plugins/
301 %{_datadir}/openvswitch/scripts/ovs-bugtool-*
302 %{_datadir}/openvswitch/scripts/ovs-check-dead-ifs
303 %{_datadir}/openvswitch/scripts/ovs-lib
304 %{_datadir}/openvswitch/scripts/ovs-vtep
305 %{_datadir}/openvswitch/scripts/ovs-ctl
306 %config %{_datadir}/openvswitch/vswitch.ovsschema
307 %config %{_datadir}/openvswitch/vtep.ovsschema
308 %{_bindir}/ovs-appctl
309 %{_bindir}/ovs-docker
311 %{_bindir}/ovs-dpctl-top
314 %{_bindir}/ovsdb-client
315 %{_bindir}/ovsdb-tool
316 %{_bindir}/ovs-testcontroller
319 %{_sbindir}/ovs-bugtool
320 %{_sbindir}/ovs-vswitchd
321 %{_sbindir}/ovsdb-server
322 %{_mandir}/man1/ovsdb-client.1*
323 %{_mandir}/man1/ovsdb-server.1*
324 %{_mandir}/man1/ovsdb-tool.1*
325 %{_mandir}/man5/ovs-vswitchd.conf.db.5*
326 %{_mandir}/man5/vtep.5*
327 %{_mandir}/man8/vtep-ctl.8*
328 %{_mandir}/man8/ovs-appctl.8*
329 %{_mandir}/man8/ovs-bugtool.8*
330 %{_mandir}/man8/ovs-ctl.8*
331 %{_mandir}/man8/ovs-dpctl.8*
332 %{_mandir}/man8/ovs-dpctl-top.8*
333 %{_mandir}/man8/ovs-ofctl.8*
334 %{_mandir}/man8/ovs-pki.8*
335 %{_mandir}/man8/ovs-vsctl.8*
336 %{_mandir}/man8/ovs-vswitchd.8*
337 %{_mandir}/man8/ovs-parse-backtrace.8*
338 %{_mandir}/man8/ovs-testcontroller.8*
339 %doc COPYING DESIGN.md INSTALL.SSL.md NOTICE README.md WHY-OVS.md
340 %doc FAQ.md NEWS INSTALL.DPDK.md rhel/README.RHEL
343 %ghost %attr(755,root,root) %{_rundir}/openvswitch
346 %{_bindir}/ovn-controller
347 %{_bindir}/ovn-controller-vtep
348 %{_bindir}/ovn-docker-overlay-driver
349 %{_bindir}/ovn-docker-underlay-driver
351 %{_bindir}/ovn-northd
353 %{_datadir}/openvswitch/scripts/ovn-ctl
354 %{_mandir}/man8/ovs-testcontroller.8*
355 %{_mandir}/man5/ovn-nb.5*
356 %{_mandir}/man5/ovn-sb.5*
357 %{_mandir}/man7/ovn-architecture.7*
358 %{_mandir}/man8/ovn-controller.8*
359 %{_mandir}/man8/ovn-controller-vtep.8*
360 %{_mandir}/man8/ovn-ctl.8*
361 %{_mandir}/man8/ovn-nbctl.8*
362 %{_mandir}/man8/ovn-northd.8*
363 %{_mandir}/man8/ovn-sbctl.8*
364 %config %{_datadir}/openvswitch/ovn-nb.ovsschema
365 %config %{_datadir}/openvswitch/ovn-sb.ovsschema
366 %{_unitdir}/ovn-controller.service
367 %{_unitdir}/ovn-controller-vtep.service
368 %{_unitdir}/ovn-northd.service
371 * Wed Jan 12 2011 Ralf Spenneberg <ralf@os-s.net>