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 BuildRequires
: checkpolicy
, selinux
-policy
-devel
50 # make check dependencies
51 BuildRequires
: procps
-ng
53 BuildRequires
: libcap
-ng libcap
-ng
-devel
56 BuildRequires
: dpdk
-devel
>= 2.2.0
57 Provides: %{name}-dpdk = %{version}-%{release}
60 Requires: openssl iproute module
-init
-tools
61 #Upstream kernel commit 4f647e0a3c37b8d5086214128614a136064110c3
62 #Requires: kernel >= 3.15.0-0
64 Requires(post
): systemd
-units
65 Requires(preun
): systemd
-units
66 Requires(postun
): systemd
-units
67 Obsoletes
: openvswitch
-controller
<= 0:2.1.0-1
72 Open vSwitch provides standard network bridging functions and
73 support
for the OpenFlow protocol
for remote per
-flow control of
76 %package selinux
-policy
77 Summary: Open vSwitch SELinux policy
80 Requires: selinux
-policy
-targeted
82 %description selinux
-policy
83 Tailored Open vSwitch SELinux policy
85 %package -n python
-openvswitch
86 Summary: Open vSwitch python bindings
92 %description -n python
-openvswitch
93 Python bindings
for the Open vSwitch database
96 Summary: Open vSwitch testing utilities
99 Requires: python
-openvswitch
= %{version}-%{release}
100 Requires: python python
-twisted
-core python
-twisted
-web
103 Utilities that are useful to diagnose performance and connectivity
104 issues
in Open vSwitch setup.
107 Summary: Open vSwitch OpenFlow development package
(library
, headers
)
109 Provides: openvswitch
-static
= %{version}-%{release}
112 This provides static library
, libopenswitch.a and the openvswitch header
113 files needed to build an external application.
116 Summary: Open vSwitch
- Open Virtual Network support
118 Requires: openvswitch
121 OVN
, the Open Virtual Network
, is a system to support virtual network
122 abstraction. OVN complements the existing capabilities of OVS to add
123 native support
for virtual network abstractions
, such as virtual L2 and L3
124 overlays and security groups.
138 --with
-dpdk
=$
(dirname
%{_datadir}/dpdk
/*/.config
) \
141 --with
-pkidir
=%{_sharedstatedir}/openvswitch
/pki
145 make -f
%{_datadir}/selinux
/devel
/Makefile
148 rm -rf $RPM_BUILD_ROOT
149 make install DESTDIR
=$RPM_BUILD_ROOT
151 install -d
-m
0755 $RPM_BUILD_ROOT
%{_sysconfdir}/openvswitch
153 install -p
-D
-m
0644 \
154 rhel
/usr_share_openvswitch_scripts_systemd_sysconfig.template \
155 $RPM_BUILD_ROOT
/%{_sysconfdir}/sysconfig
/openvswitch
156 for service
in openvswitch openvswitch
-nonetwork \
157 ovn
-controller ovn
-controller
-vtep ovn
-northd
; do
158 install -p
-D
-m
0644 \
159 rhel
/usr_lib_systemd_system_$
{service
}.service \
160 $RPM_BUILD_ROOT
%{_unitdir}/${service}.service
162 install -m
0755 rhel
/etc_init.d_openvswitch \
163 $RPM_BUILD_ROOT
%{_datadir}/openvswitch
/scripts
/openvswitch.init
165 install -p
-D
-m
0644 rhel
/etc_logrotate.d_openvswitch \
166 $RPM_BUILD_ROOT
/%{_sysconfdir}/logrotate.d
/openvswitch
168 install -m
0644 vswitchd
/vswitch.ovsschema \
169 $RPM_BUILD_ROOT
/%{_datadir}/openvswitch
/vswitch.ovsschema
171 install -d
-m
0755 $RPM_BUILD_ROOT
/%{_sysconfdir}/sysconfig
/network
-scripts
/
172 install -p
-m
0755 rhel
/etc_sysconfig_network
-scripts_ifdown
-ovs \
173 $RPM_BUILD_ROOT
/%{_sysconfdir}/sysconfig
/network
-scripts
/ifdown
-ovs
174 install -p
-m
0755 rhel
/etc_sysconfig_network
-scripts_ifup
-ovs \
175 $RPM_BUILD_ROOT
/%{_sysconfdir}/sysconfig
/network
-scripts
/ifup
-ovs
177 install -d
-m
0755 $RPM_BUILD_ROOT
%{python_sitelib}
178 mv $RPM_BUILD_ROOT
/%{_datadir}/openvswitch
/python
/* \
179 $RPM_BUILD_ROOT
%{python_sitelib}
180 rmdir $RPM_BUILD_ROOT
/%{_datadir}/openvswitch
/python
/
182 install -d
-m
0755 $RPM_BUILD_ROOT
/%{_sharedstatedir}/openvswitch
184 touch $RPM_BUILD_ROOT
%{_sysconfdir}/openvswitch
/conf.db
185 touch $RPM_BUILD_ROOT
%{_sysconfdir}/openvswitch
/system
-id.conf
187 install -p
-m
644 -D selinux
/openvswitch
-custom.pp \
188 $RPM_BUILD_ROOT
%{_datadir}/selinux/packages/%{name}/openvswitch
-custom.pp
190 # remove unpackaged files
191 rm -f $RPM_BUILD_ROOT
%{_bindir}/ovs
-parse
-backtrace \
192 $RPM_BUILD_ROOT
%{_bindir}/ovs
-pcap \
193 $RPM_BUILD_ROOT
%{_bindir}/ovs
-tcpundump \
194 $RPM_BUILD_ROOT
%{_sbindir}/ovs
-vlan
-bug
-workaround \
195 $RPM_BUILD_ROOT
%{_mandir}/man1
/ovs
-pcap
.1 \
196 $RPM_BUILD_ROOT
%{_mandir}/man1
/ovs
-tcpundump
.1 \
197 $RPM_BUILD_ROOT
%{_mandir}/man8
/ovs
-vlan
-bug
-workaround
.8
201 if make check TESTSUITEFLAGS
='
%{_smp_mflags}' RECHECK
=yes
; then :;
203 cat tests
/testsuite.log
209 rm -rf $RPM_BUILD_ROOT
212 %if 0%{?systemd_preun:1}
213 %systemd_preun %{name}.service
215 if [ $
1 -eq
0 ] ; then
216 # Package removal, not upgrade
217 /bin
/systemctl
--no
-reload disable
%{name}.service
>/dev
/null
2>&1 ||
:
218 /bin
/systemctl stop
%{name}.service
>/dev
/null
2>&1 ||
:
223 %if 0%{?systemd_preun:1}
224 %systemd_preun ovn
-controller.service
225 %systemd_preun ovn
-controller
-vtep.service
226 %systemd_preun ovn
-northd.service
228 if [ $
1 -eq
0 ] ; then
229 # Package removal, not upgrade
230 /bin
/systemctl
--no
-reload disable ovn
-controller.service
>/dev
/null
2>&1 ||
:
231 /bin
/systemctl stop ovn
-controller.service
>/dev
/null
2>&1 ||
:
232 /bin
/systemctl
--no
-reload disable ovn
-controller
-vtep.service
>/dev
/null
2>&1 ||
:
233 /bin
/systemctl stop ovn
-controller
-vtep.service
>/dev
/null
2>&1 ||
:
234 /bin
/systemctl
--no
-reload disable ovn
-northd.service
>/dev
/null
2>&1 ||
:
235 /bin
/systemctl stop ovn
-northd.service
>/dev
/null
2>&1 ||
:
240 %if 0%{?systemd_post:1}
241 %systemd_post %{name}.service
243 # Package install, not upgrade
244 if [ $
1 -eq
1 ]; then
245 /bin
/systemctl daemon
-reload
>dev
/null ||
:
250 %if 0%{?systemd_post:1}
251 %systemd_post ovn
-controller.service
252 %systemd_post ovn
-controller
-vtep.service
253 %systemd_post ovn
-northd.service
255 # Package install, not upgrade
256 if [ $
1 -eq
1 ]; then
257 /bin
/systemctl daemon
-reload
>dev
/null ||
:
262 /usr
/sbin
/semodule
-i
%{_datadir}/selinux/packages/%{name}/openvswitch
-custom.pp
&> /dev
/null ||
:
265 %if 0%{?systemd_postun_with_restart:1}
266 %systemd_postun_with_restart %{name}.service
268 /bin
/systemctl daemon
-reload
>/dev
/null
2>&1 ||
:
269 if [ "$
1"
-ge "
1"
] ; then
270 # Package upgrade, not uninstall
271 /bin
/systemctl try
-restart
%{name}.service
>/dev
/null
2>&1 ||
:
276 %if 0%{?systemd_postun_with_restart:1}
277 %systemd_postun_with_restart ovn
-controller.service
278 %systemd_postun_with_restart ovn
-controller
-vtep.service
279 %systemd_postun_with_restart ovn
-northd.service
281 /bin
/systemctl daemon
-reload
>/dev
/null
2>&1 ||
:
282 if [ "$
1"
-ge "
1"
] ; then
283 # Package upgrade, not uninstall
284 /bin
/systemctl try
-restart ovn
-controller.service
>/dev
/null
2>&1 ||
:
285 /bin
/systemctl try
-restart ovn
-controller
-vtep.service
>/dev
/null
2>&1 ||
:
286 /bin
/systemctl try
-restart ovn
-northd.service
>/dev
/null
2>&1 ||
:
290 %postun selinux
-policy
291 if [ $
1 -eq
0 ] ; then
292 /usr
/sbin
/semodule
-r openvswitch
-custom
&> /dev
/null ||
:
295 %files selinux
-policy
296 %defattr(-,root
,root
)
297 %{_datadir}/selinux/packages/%{name}/openvswitch
-custom.pp
299 %files -n python
-openvswitch
300 %{python_sitelib}/ovs
305 %{_bindir}/ovs
-vlan
-test
306 %{_bindir}/ovs
-l3ping
307 %{_mandir}/man8
/ovs
-test.8*
308 %{_mandir}/man8
/ovs
-vlan
-test.8*
309 %{_mandir}/man8
/ovs
-l3ping
.8*
310 %{python_sitelib}/ovstest
315 %{_libdir}/pkgconfig
/*.pc
316 %{_includedir}/openvswitch
/*
317 %{_includedir}/openflow
/*
320 %defattr(-,root
,root
)
321 %{_sysconfdir}/bash_completion.d
/ovs
-appctl
-bashcomp.bash
322 %{_sysconfdir}/bash_completion.d
/ovs
-vsctl
-bashcomp.bash
323 %dir %{_sysconfdir}/openvswitch
324 %config %ghost %{_sysconfdir}/openvswitch
/conf.db
325 %config %ghost %{_sysconfdir}/openvswitch
/system
-id.conf
326 %config(noreplace
) %{_sysconfdir}/sysconfig
/openvswitch
327 %config(noreplace
) %{_sysconfdir}/logrotate.d
/openvswitch
328 %{_unitdir}/openvswitch.service
329 %{_unitdir}/openvswitch
-nonetwork.service
330 %{_datadir}/openvswitch
/scripts
/openvswitch.init
331 %{_sysconfdir}/sysconfig
/network
-scripts
/ifup
-ovs
332 %{_sysconfdir}/sysconfig
/network
-scripts
/ifdown
-ovs
333 %{_datadir}/openvswitch
/bugtool
-plugins
/
334 %{_datadir}/openvswitch
/scripts
/ovs
-bugtool
-*
335 %{_datadir}/openvswitch
/scripts
/ovs
-check
-dead
-ifs
336 %{_datadir}/openvswitch
/scripts
/ovs
-lib
337 %{_datadir}/openvswitch
/scripts
/ovs
-save
338 %{_datadir}/openvswitch
/scripts
/ovs
-vtep
339 %{_datadir}/openvswitch
/scripts
/ovs
-ctl
340 %config %{_datadir}/openvswitch
/vswitch.ovsschema
341 %config %{_datadir}/openvswitch
/vtep.ovsschema
342 %{_bindir}/ovs
-appctl
343 %{_bindir}/ovs
-docker
345 %{_bindir}/ovs
-dpctl
-top
348 %{_bindir}/ovsdb
-client
349 %{_bindir}/ovsdb
-tool
350 %{_bindir}/ovs
-testcontroller
353 %{_sbindir}/ovs
-bugtool
354 %{_sbindir}/ovs
-vswitchd
355 %{_sbindir}/ovsdb
-server
356 %{_mandir}/man1
/ovsdb
-client
.1*
357 %{_mandir}/man1
/ovsdb
-server
.1*
358 %{_mandir}/man1
/ovsdb
-tool
.1*
359 %{_mandir}/man5
/ovs
-vswitchd.conf.db
.5*
360 %{_mandir}/man5
/vtep
.5*
361 %{_mandir}/man8
/vtep
-ctl
.8*
362 %{_mandir}/man8
/ovs
-appctl
.8*
363 %{_mandir}/man8
/ovs
-bugtool
.8*
364 %{_mandir}/man8
/ovs
-ctl
.8*
365 %{_mandir}/man8
/ovs
-dpctl
.8*
366 %{_mandir}/man8
/ovs
-dpctl
-top
.8*
367 %{_mandir}/man8
/ovs
-ofctl
.8*
368 %{_mandir}/man8
/ovs
-pki
.8*
369 %{_mandir}/man8
/ovs
-vsctl
.8*
370 %{_mandir}/man8
/ovs
-vswitchd
.8*
371 %{_mandir}/man8
/ovs
-parse
-backtrace
.8*
372 %{_mandir}/man8
/ovs
-testcontroller
.8*
373 %doc COPYING DESIGN.md INSTALL.SSL.md NOTICE README.md WHY
-OVS.md
374 %doc FAQ.md NEWS INSTALL.DPDK.md rhel
/README.RHEL
377 %ghost %attr(755,root
,root
) %{_rundir}/openvswitch
380 %{_bindir}/ovn
-controller
381 %{_bindir}/ovn
-controller
-vtep
382 %{_bindir}/ovn
-docker
-overlay
-driver
383 %{_bindir}/ovn
-docker
-underlay
-driver
385 %{_bindir}/ovn
-northd
387 %{_datadir}/openvswitch
/scripts
/ovn
-ctl
388 %{_datadir}/openvswitch
/scripts
/ovn
-bugtool
-nbctl
-show
389 %{_datadir}/openvswitch
/scripts
/ovn
-bugtool
-sbctl
-lflow
-list
390 %{_datadir}/openvswitch
/scripts
/ovn
-bugtool
-sbctl
-show
391 %{_mandir}/man8
/ovs
-testcontroller
.8*
392 %{_mandir}/man5
/ovn
-nb
.5*
393 %{_mandir}/man5
/ovn
-sb
.5*
394 %{_mandir}/man7
/ovn
-architecture
.7*
395 %{_mandir}/man8
/ovn
-controller
.8*
396 %{_mandir}/man8
/ovn
-controller
-vtep
.8*
397 %{_mandir}/man8
/ovn
-ctl
.8*
398 %{_mandir}/man8
/ovn
-nbctl
.8*
399 %{_mandir}/man8
/ovn
-northd
.8*
400 %{_mandir}/man8
/ovn
-sbctl
.8*
401 %config %{_datadir}/openvswitch
/ovn
-nb.ovsschema
402 %config %{_datadir}/openvswitch
/ovn
-sb.ovsschema
403 %{_unitdir}/ovn
-controller.service
404 %{_unitdir}/ovn
-controller
-vtep.service
405 %{_unitdir}/ovn
-northd.service
408 * Wed Jan
12 2011 Ralf Spenneberg
<ralf@os
-s.net
>