5fb77982db27a3c0a028b6d3a5bfda508ed74f41
[cascardo/ovs.git] / xenserver / openvswitch-xen.spec.in
1 # Spec file for Open vSwitch.
2
3 # Copyright (C) 2009, 2010, 2011, 2012, 2013, 2014, 2015 Nicira, Inc.
4 #
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.
9
10 # For XenServer version < 6.5, when building, the rpmbuild command line
11 # should define openvswitch_version, kernel_name, kernel_version and
12 # kernel_flavor using -D arguments.
13 # for example:
14 #
15 #    rpmbuild -D "openvswitch_version 1.1.0+build123"
16 #      -D "kernel_name  NAME-xen"
17 #      -D "kernel_version 2.6.32.12-0.7.1.xs5.6.100.323.170596"
18 #      -D "kernel_flavor xen"
19 #      -bb /usr/src/redhat/SPECS/openvswitch-xen.spec
20 #
21 # For XenServer version >= 6.5, use kernel_uname which should be
22 # the `uname -r` output.
23 # for example:
24 #
25 #    rpmbuild -D "openvswitch_version 2.3.0+build123"
26 #      -D "kernel_uname  3.10.0+2"
27 #      -bb /usr/src/redhat/SPECS/openvswitch-xen.spec
28 #
29 # If tests have to be skipped while building, specify the '--without check'
30 # option. For example:
31 # rpmbuild -bb --without check xenserver/openvswitch-xen.spec
32
33 %if %{?openvswitch_version:0}%{!?openvswitch_version:1}
34 %define openvswitch_version @VERSION@
35 %endif
36
37 %if %{?kernel_uname:1}%{!?kernel_uname:0}
38 %define kernel_name kernel
39 %define kernel_version %{kernel_uname}
40 %endif
41
42 %if %{?kernel_name:0}%{!?kernel_name:1}
43 %define kernel %(rpm -qa 'kernel*xen-devel' | head -1)
44 %define kernel_name %(rpm -q --queryformat "%%{Name}" %{kernel} | sed 's/-devel//' | sed 's/kernel-//')
45 %define kernel_version %(rpm -q --queryformat "%%{Version}-%%{Release}" %{kernel})
46 %define kernel_flavor xen
47 %endif
48
49 %if %{?xen_version:0}%{!?xen_version:1}
50 %define xen_version %{kernel_version}%{?kernel_flavor:%{kernel_flavor}}
51 %endif
52
53 # bump this when breaking compatibility with userspace
54 %define module_abi_version 0
55
56 # build-supplemental-pack.sh requires this naming for kernel module packages
57 %define module_package modules%{?kernel_flavor:-%{kernel_flavor}}-%{kernel_version}
58
59 %bcond_without check
60
61 Name: openvswitch
62 Summary: Open vSwitch daemon/database/utilities
63 Group: System Environment/Daemons
64 URL: http://www.openvswitch.org/
65 Vendor: Nicira, Inc.
66 Version: %{openvswitch_version}
67
68 License: ASL 2.0
69 Release: 1
70 Source: openvswitch-%{openvswitch_version}.tar.gz
71 Buildroot: /tmp/openvswitch-xen-rpm
72 Requires: openvswitch.ko.%{module_abi_version}
73
74 %description
75 Open vSwitch provides standard network bridging functions augmented with
76 support for the OpenFlow protocol for remote per-flow control of
77 traffic.
78
79 %package %{module_package}
80 Summary: Open vSwitch kernel module
81 Group: System Environment/Kernel
82 License: GPLv2
83 Provides: %{name}-modules%{?kernel_flavor:-%{kernel_flavor}} = %{kernel_version}, openvswitch.ko.%{module_abi_version}
84 %if %{?kernel_uname:0}%{!?kernel_uname:1}
85 Requires: kernel%{?kernel_flavor:-%{kernel_flavor}} = %{kernel_version}
86 %endif
87 %if %{?kernel_uname:1}%{!?kernel_uname:0}
88 Requires: kernel-uname-r = %{kernel_version}
89 %endif
90
91 %description %{module_package}
92 Open vSwitch Linux kernel module compiled against kernel version
93 %{kernel_version}%{?kernel_flavor:%{kernel_flavor}}.
94
95 %prep
96 %setup -q -n openvswitch-%{openvswitch_version}
97
98 %build
99 ./configure --prefix=/usr --sysconfdir=/etc --localstatedir=%{_localstatedir} --with-linux=/lib/modules/%{xen_version}/build --enable-ssl CFLAGS='-g -O2 -msse -msse2'
100 make %{_smp_mflags}
101
102 %install
103 rm -rf $RPM_BUILD_ROOT
104 make install DESTDIR=$RPM_BUILD_ROOT
105 install -d -m 755 $RPM_BUILD_ROOT/etc
106 install -d -m 755 $RPM_BUILD_ROOT/etc/init.d
107 install -m 755 xenserver/etc_init.d_openvswitch \
108          $RPM_BUILD_ROOT/etc/init.d/openvswitch
109 install -m 755 xenserver/etc_init.d_openvswitch-xapi-update \
110          $RPM_BUILD_ROOT/etc/init.d/openvswitch-xapi-update
111 install -d -m 755 $RPM_BUILD_ROOT/etc/sysconfig
112 install -d -m 755 $RPM_BUILD_ROOT/etc/logrotate.d
113 install -m 755 xenserver/etc_logrotate.d_openvswitch \
114          $RPM_BUILD_ROOT/etc/logrotate.d/openvswitch
115 install -d -m 755 $RPM_BUILD_ROOT/etc/profile.d
116 install -m 755 xenserver/etc_profile.d_openvswitch.sh \
117          $RPM_BUILD_ROOT/etc/profile.d/openvswitch.sh
118 install -d -m 755 $RPM_BUILD_ROOT/etc/xapi.d/plugins
119 install -m 755 xenserver/etc_xapi.d_plugins_openvswitch-cfg-update \
120          $RPM_BUILD_ROOT/etc/xapi.d/plugins/openvswitch-cfg-update
121 install -d -m 755 $RPM_BUILD_ROOT/usr/share/openvswitch/scripts
122 install -m 755 xenserver/opt_xensource_libexec_interface-reconfigure \
123              $RPM_BUILD_ROOT/usr/share/openvswitch/scripts/interface-reconfigure
124 install -m 644 xenserver/opt_xensource_libexec_InterfaceReconfigure.py \
125              $RPM_BUILD_ROOT/usr/share/openvswitch/scripts/InterfaceReconfigure.py
126 install -m 644 xenserver/opt_xensource_libexec_InterfaceReconfigureBridge.py \
127              $RPM_BUILD_ROOT/usr/share/openvswitch/scripts/InterfaceReconfigureBridge.py
128 install -m 644 xenserver/opt_xensource_libexec_InterfaceReconfigureVswitch.py \
129              $RPM_BUILD_ROOT/usr/share/openvswitch/scripts/InterfaceReconfigureVswitch.py
130 install -m 755 xenserver/etc_xensource_scripts_vif \
131              $RPM_BUILD_ROOT/usr/share/openvswitch/scripts/vif
132 install -m 755 xenserver/usr_share_openvswitch_scripts_ovs-xapi-sync \
133                $RPM_BUILD_ROOT/usr/share/openvswitch/scripts/ovs-xapi-sync
134 install -m 755 xenserver/usr_share_openvswitch_scripts_sysconfig.template \
135          $RPM_BUILD_ROOT/usr/share/openvswitch/scripts/sysconfig.template
136 install -d -m 755 $RPM_BUILD_ROOT/usr/lib/xsconsole/plugins-base
137 install -m 644 \
138         xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py \
139                $RPM_BUILD_ROOT/usr/lib/xsconsole/plugins-base/XSFeatureVSwitch.py
140
141 install -d -m 755 $RPM_BUILD_ROOT/lib/modules/%{xen_version}/extra/openvswitch
142 find datapath/linux -name *.ko -exec install -m 755  \{\} $RPM_BUILD_ROOT/lib/modules/%{xen_version}/extra/openvswitch \;
143
144 install -d -m 755 $RPM_BUILD_ROOT/etc/xensource/bugtool
145 cp -rf $RPM_BUILD_ROOT/usr/share/openvswitch/bugtool-plugins/* $RPM_BUILD_ROOT/etc/xensource/bugtool
146
147 # Get rid of stuff we don't want to make RPM happy.
148 rm \
149     $RPM_BUILD_ROOT/usr/bin/ovs-benchmark \
150     $RPM_BUILD_ROOT/usr/bin/ovs-testcontroller \
151     $RPM_BUILD_ROOT/usr/bin/ovs-l3ping \
152     $RPM_BUILD_ROOT/usr/bin/ovs-pki \
153     $RPM_BUILD_ROOT/usr/bin/ovs-test \
154     $RPM_BUILD_ROOT/usr/share/man/man1/ovs-benchmark.1 \
155     $RPM_BUILD_ROOT/usr/share/man/man8/ovs-testcontroller.8 \
156     $RPM_BUILD_ROOT/usr/share/man/man8/ovs-l3ping.8 \
157     $RPM_BUILD_ROOT/usr/share/man/man8/ovs-pki.8 \
158     $RPM_BUILD_ROOT/usr/share/man/man8/ovs-test.8
159 (cd "$RPM_BUILD_ROOT" && rm -f usr/lib/lib*)
160 (cd "$RPM_BUILD_ROOT" && rm -rf usr/include)
161 (cd "$RPM_BUILD_ROOT" && rm -rf usr/lib/pkgconfig)
162
163 install -d -m 755 $RPM_BUILD_ROOT/var/lib/openvswitch
164
165 %check
166 %if %{with check}
167     if make check TESTSUITEFLAGS='%{_smp_mflags}' ||
168        make check TESTSUITEFLAGS='--recheck'; then :;
169     else
170         cat tests/testsuite.log
171         exit 1
172     fi
173 %endif
174
175 %clean
176 rm -rf $RPM_BUILD_ROOT
177
178 %post
179 # A list of Citrix XenServer scripts that we might need to replace
180 # with our own versions.
181 scripts="
182     /etc/xensource/scripts/vif
183     /opt/xensource/libexec/InterfaceReconfigure.py
184     /opt/xensource/libexec/InterfaceReconfigureBridge.py
185     /opt/xensource/libexec/InterfaceReconfigureVswitch.py
186     /opt/xensource/libexec/interface-reconfigure"
187
188 # Calculate into $md5sums a comma-separated set of md5sums of the
189 # Citrix XenServer scripts that we might need to replace.  We might be
190 # upgrading an older version of the package that moved the files out
191 # of the way, so we need to look for the files in those out-of-the-way
192 # locations first.
193 md5sums=
194 for script in $scripts; do
195     b=$(basename "$script")
196     if test -e /usr/lib/openvswitch/xs-saved/"$b"; then
197         f=/usr/lib/openvswitch/xs-saved/"$b"
198     elif test -e /usr/lib/openvswitch/xs-original/"$b"; then
199         f=/usr/lib/openvswitch/xs-original/"$b"
200     elif test -e "$script" && test ! -h "$script"; then
201         f=$script
202     else
203         printf "\n$script: not found\n"
204         f=/dev/null
205     fi
206     md5sums="$md5sums,$(md5sum $f | awk '{print $1}')"
207 done
208 md5sums=${md5sums#,}
209
210 # Now check the md5sums against the known sets of md5sums:
211 #
212 #   - If they are known to be a version of XenServer scripts that we should
213 #     replace, we replace them (by putting $scripts into $replace_files).
214 #
215 #   - Otherwise, we guess that it's better not to replace them, because the
216 #     improvements that our versions of the scripts provide are minimal, so
217 #     it's better to avoid possibly breaking any changes made upstream by
218 #     Citrix.
219 case $md5sums in
220     cf09a68d9f8b434e79a4c83b01a3bb4b,395866df1b0b20c12c4dd2f7de0ecdb4,9d493545ae81463239d3162cbc798852,862d0939b441de9264a900628e950fe9,21f85db25599d7f026cd489385d58aa6)
221         keep_files=
222         replace_files=$scripts
223         printf "\nVerified host scripts from XenServer 6.0.0.\n"
224         ;;
225
226     c5f48246577a17cf1b971fb5ce4e920b,2e2c912f86f9c536c89adc34ff3c2b2b,28d3ff72d72bdec4f37d70699f5edb76,67e1d0af16fc1ddf10009c5c063ad2ba,f3feff30aa3b3f8b514664a96a8dc0ab)
227         keep_files=
228         replace_files=$scripts
229         printf "\nVerified host scripts from XenServer 5.6-SP2.\n"
230         ;;
231         
232     c5f48246577a17cf1b971fb5ce4e920b,2e2c912f86f9c536c89adc34ff3c2b2b,28d3ff72d72bdec4f37d70699f5edb76,67e1d0af16fc1ddf10009c5c063ad2ba,24bae6906d182ba47668174f8e480cc6)
233         keep_files=
234         replace_files=$scripts
235         printf "\nVerified host scripts from XenServer 5.6-FP1.\n"
236         ;;
237
238     *)
239         keep_files=$scripts
240         replace_files=
241         cat <<EOF
242
243 The host scripts on this machine are not those of any supported
244 version of XenServer.  On XenServer earlier than 5.6-FP1, your Open
245 vSwitch installation will not work.  On XenServer 5.6-FP1 or later,
246 Open vSwitch is not verified to work, which could lead to unexpected
247 behavior.
248
249 EOF
250         ;;
251 esac
252
253 if grep -F net.ipv4.conf.all.arp_filter /etc/sysctl.conf >/dev/null 2>&1; then :; else
254     cat >>/etc/sysctl.conf <<EOF
255 # This works around an issue in xhad, which binds to a particular
256 # Ethernet device, which in turn causes ICMP port unreachable messages
257 # if packets are received are on the wrong interface, which in turn
258 # can happen if we send out ARP replies on every interface (as Linux
259 # does by default) instead of just on the interface that has the IP
260 # address being ARPed for, which this sysctl setting in turn works
261 # around.
262 #
263 # Bug #1378.
264 net.ipv4.conf.all.arp_filter = 1
265 EOF
266 fi
267
268 if test ! -e /etc/openvswitch/conf.db; then
269     install -d -m 755 -o root -g root /etc/openvswitch
270
271     # Create ovs-vswitchd config database
272     ovsdb-tool -vconsole:off create /etc/openvswitch/conf.db \
273             /usr/share/openvswitch/vswitch.ovsschema
274
275     # Create initial table in config database
276     ovsdb-tool -vconsole:off transact /etc/openvswitch/conf.db \
277             '[{"op": "insert", "table": "Open_vSwitch", "row": {}}]' \
278             > /dev/null
279 fi
280
281 # Create default or update existing /etc/sysconfig/openvswitch.
282 SYSCONFIG=/etc/sysconfig/openvswitch
283 TEMPLATE=/usr/share/openvswitch/scripts/sysconfig.template
284 if [ ! -e $SYSCONFIG ]; then
285     cp $TEMPLATE $SYSCONFIG
286 else
287     for var in $(awk -F'[ :]' '/^# [_A-Z0-9]+:/{print $2}' $TEMPLATE)
288     do
289         if ! grep $var $SYSCONFIG >/dev/null 2>&1; then
290             echo >> $SYSCONFIG
291             sed -n "/$var:/,/$var=/p" $TEMPLATE >> $SYSCONFIG
292         fi
293     done
294 fi
295
296 # Deliberately break %postun in broken OVS builds that revert original
297 # XenServer scripts during rpm -U by moving the directory where it thinks
298 # they are saved.
299 if [ -d /usr/lib/openvswitch/xs-original ]; then
300     mkdir -p /usr/lib/openvswitch/xs-saved
301     mv /usr/lib/openvswitch/xs-original/* /usr/lib/openvswitch/xs-saved/ &&
302         rmdir /usr/lib/openvswitch/xs-original
303 fi
304
305 # Replace XenServer files by our versions.
306 mkdir -p /usr/lib/openvswitch/xs-saved \
307     || printf "Could not create script backup directory.\n"
308 for f in $replace_files; do
309     s=$(basename "$f")
310     t=$(readlink "$f")
311     if [ -f "$f" ] && [ "$t" != "/usr/share/openvswitch/scripts/$s" ]; then
312         mv "$f" /usr/lib/openvswitch/xs-saved/ \
313             || printf "Could not save original XenServer $s script\n"
314         ln -s "/usr/share/openvswitch/scripts/$s" "$f" \
315             || printf "Could not link to Open vSwitch $s script\n"
316     fi
317 done
318
319 # Clean up dangling symlinks to removed OVS replacement scripts no longer
320 # provided by OVS. Any time a replacement script is removed from OVS,
321 # it should be added here to ensure correct reversion from old versions of
322 # OVS that don't clean up dangling symlinks during the uninstall phase.
323 for orig in /usr/sbin/xen-bugtool $keep_files; do
324     saved=/usr/lib/openvswitch/xs-saved/$(basename "$orig")
325     [ -e "$saved" ] && mv -f "$saved" "$orig"
326 done
327
328 # Ensure all required services are set to run
329 for s in openvswitch openvswitch-xapi-update; do
330     if chkconfig --list $s >/dev/null 2>&1; then
331         chkconfig --del $s || printf "Could not remove $s init script.\n"
332     fi
333     chkconfig --add $s || printf "Could not add $s init script.\n"
334     chkconfig $s on || printf "Could not enable $s init script.\n"
335 done
336
337 if [ "$1" = "1" ]; then    # $1 = 1 for install
338     # Configure system to use Open vSwitch
339     /opt/xensource/bin/xe-switch-network-backend vswitch
340 else    # $1 = 2 for upgrade
341
342     mode=$(cat /etc/xensource/network.conf)
343     if [ "$mode" != "vswitch" ] && [ "$mode" != "openvswitch" ]; then
344         printf "\nThe server is not configured to run Open vSwitch.  To run in\n"
345         printf "vswitch mode, you must run the following command:\n\n"
346         printf "\txe-switch-network-backend vswitch"
347         printf "\n\n"
348     fi
349 fi
350
351 %posttrans %{module_package}
352 # Ensure that modprobe will find our modules.
353 #
354 # This has to be in %posttrans instead of %post because older versions
355 # installed modules into a different directory and "rpm -U" runs the
356 # new version's %post before removing the old version's files, so if
357 # we use %post then depmod may find the old versions that are about to
358 # be removed.
359 depmod %{xen_version}
360
361 mode=$(cat /etc/xensource/network.conf)
362 if [ "$mode" = "vswitch" ] || [ "$mode" = "openvswitch" ]; then
363     printf "\nTo use the newly installed Open vSwitch kernel module, you\n"
364     printf "will either have to reboot the hypervisor or follow any\n"
365     printf "workarounds provided by your administration guide. Failure to do\n"
366     printf "so may result in incorrect operation."
367     printf "\n\n"
368 fi
369
370 %preun
371 if [ "$1" = "0" ]; then     # $1 = 0 for uninstall
372     # Configure system to use bridge
373     /opt/xensource/bin/xe-switch-network-backend bridge
374
375     # The "openvswitch" service should have been removed from
376     # "xe-switch-network-backend bridge".
377     for s in openvswitch openvswitch-xapi-update; do
378         if chkconfig --list $s >/dev/null 2>&1; then
379             chkconfig --del $s || printf "Could not remove $s init script."
380         fi
381     done
382 fi
383
384 %postun
385 # Restore original XenServer scripts if the OVS equivalent no longer exists.
386 # This works both in the upgrade and erase cases.
387 # This lists every file that every version of OVS has ever replaced. Never
388 # remove old files that OVS no longer replaces, or upgrades from old versions
389 # will fail to restore the XS originals, leaving the system in a broken state.
390 # Also be sure to add removed script paths to the %post scriptlet above to
391 # prevent the same problem when upgrading from old versions of OVS that lack
392 # this restore-on-upgrade logic.
393 for f in \
394     /etc/xensource/scripts/vif \
395     /usr/sbin/xen-bugtool \
396     /opt/xensource/libexec/interface-reconfigure \
397     /opt/xensource/libexec/InterfaceReconfigure.py \
398     /opt/xensource/libexec/InterfaceReconfigureBridge.py \
399     /opt/xensource/libexec/InterfaceReconfigureVswitch.py
400 do
401     # Only revert dangling symlinks.
402     if [ -h "$f" ] && [ ! -e "$f" ]; then
403         s=$(basename "$f")
404         if [ ! -f "/usr/lib/openvswitch/xs-saved/$s" ]; then
405             printf "Original XenServer $s script not present in /usr/lib/openvswitch/xs-saved\n" >&2
406             printf "Could not restore original XenServer script.\n" >&2
407         else
408             (rm -f "$f" \
409                 && mv "/usr/lib/openvswitch/xs-saved/$s" "$f") \
410                 || printf "Could not restore original XenServer $s script.\n" >&2
411         fi
412     fi
413 done
414
415 if [ "$1" = "0" ]; then     # $1 = 0 for uninstall
416     rm -f /usr/lib/xsconsole/plugins-base/XSFeatureVSwitch.pyc \
417         /usr/lib/xsconsole/plugins-base/XSFeatureVSwitch.pyo
418
419     rm -f /usr/share/openvswitch/scripts/InterfaceReconfigure.pyc \
420         /usr/share/openvswitch/scripts/InterfaceReconfigure.pyo \
421         /usr/share/openvswitch/scripts/InterfaceReconfigureBridge.pyc \
422         /usr/share/openvswitch/scripts/InterfaceReconfigureBridge.pyo \
423         /usr/share/openvswitch/scripts/InterfaceReconfigureVSwitch.pyc \
424         /usr/share/openvswitch/scripts/InterfaceReconfigureVSwitch.pyo
425
426     # Remove all configuration files
427     rm -f /etc/openvswitch/conf.db
428     rm -f /etc/sysconfig/openvswitch
429     rm -f /etc/openvswitch/vswitchd.cacert
430
431     # Remove saved XenServer scripts directory, but only if it's empty
432     rmdir -p /usr/lib/openvswitch/xs-saved 2>/dev/null
433 fi
434
435 exit 0
436
437 %files
438 %defattr(-,root,root)
439 /etc/bash_completion.d/ovs-appctl-bashcomp.bash
440 /etc/bash_completion.d/ovs-vsctl-bashcomp.bash
441 /etc/init.d/openvswitch
442 /etc/init.d/openvswitch-xapi-update
443 /etc/xapi.d/plugins/openvswitch-cfg-update
444 /etc/xensource/bugtool/*
445 /etc/logrotate.d/openvswitch
446 /etc/profile.d/openvswitch.sh
447 /usr/share/openvswitch/python/
448 /usr/share/openvswitch/bugtool-plugins/*
449 /usr/share/openvswitch/scripts/ovs-check-dead-ifs
450 /usr/share/openvswitch/scripts/ovs-xapi-sync
451 /usr/share/openvswitch/scripts/interface-reconfigure
452 /usr/share/openvswitch/scripts/InterfaceReconfigure.py
453 /usr/share/openvswitch/scripts/InterfaceReconfigureBridge.py
454 /usr/share/openvswitch/scripts/InterfaceReconfigureVswitch.py
455 /usr/share/openvswitch/scripts/vif
456 /usr/share/openvswitch/scripts/sysconfig.template
457 /usr/share/openvswitch/scripts/ovs-bugtool-*
458 /usr/share/openvswitch/scripts/ovs-save
459 /usr/share/openvswitch/scripts/ovs-ctl
460 /usr/share/openvswitch/scripts/ovs-lib
461 /usr/share/openvswitch/scripts/ovs-vtep
462 /usr/share/openvswitch/vswitch.ovsschema
463 /usr/share/openvswitch/vtep.ovsschema
464 /usr/sbin/ovs-bugtool
465 /usr/sbin/ovs-vlan-bug-workaround
466 /usr/sbin/ovs-vswitchd
467 /usr/sbin/ovsdb-server
468 /usr/bin/ovs-appctl
469 /usr/bin/ovs-dpctl
470 /usr/bin/ovs-dpctl-top
471 /usr/bin/ovs-docker
472 /usr/bin/ovs-ofctl
473 /usr/bin/ovs-parse-backtrace
474 /usr/bin/ovs-pcap
475 /usr/bin/ovs-tcpundump
476 /usr/bin/ovs-vlan-test
477 /usr/bin/ovs-vsctl
478 /usr/bin/ovsdb-client
479 /usr/bin/ovsdb-tool
480 /usr/bin/vtep-ctl
481 /usr/lib/xsconsole/plugins-base/XSFeatureVSwitch.py
482 /usr/share/man/man1/ovsdb-client.1.gz
483 /usr/share/man/man1/ovsdb-server.1.gz
484 /usr/share/man/man1/ovsdb-tool.1.gz
485 /usr/share/man/man5/ovs-vswitchd.conf.db.5.gz
486 /usr/share/man/man5/vtep.5.gz
487 /usr/share/man/man8/ovs-appctl.8.gz
488 /usr/share/man/man8/ovs-bugtool.8.gz
489 /usr/share/man/man8/ovs-ctl.8.gz
490 /usr/share/man/man8/ovs-dpctl.8.gz
491 /usr/share/man/man8/ovs-dpctl-top.8.gz
492 /usr/share/man/man8/ovs-ofctl.8.gz
493 /usr/share/man/man8/ovs-parse-backtrace.8.gz
494 /usr/share/man/man1/ovs-pcap.1.gz
495 /usr/share/man/man1/ovs-tcpundump.1.gz
496 /usr/share/man/man8/ovs-vlan-bug-workaround.8.gz
497 /usr/share/man/man8/ovs-vlan-test.8.gz
498 /usr/share/man/man8/ovs-vsctl.8.gz
499 /usr/share/man/man8/ovs-vswitchd.8.gz
500 /usr/share/man/man8/vtep-ctl.8.gz
501 /var/lib/openvswitch
502 /var/log/openvswitch
503 %exclude /usr/lib/xsconsole/plugins-base/*.py[co]
504 %exclude /usr/share/openvswitch/scripts/*.py[co]
505 %exclude /usr/share/openvswitch/python/*.py[co]
506 %exclude /usr/share/openvswitch/python/ovs/*.py[co]
507 %exclude /usr/share/openvswitch/python/ovs/db/*.py[co]
508 %exclude /usr/bin/ovn-*
509 %exclude /usr/share/man/man1/ovs-sim.1.gz
510 %exclude /usr/share/man/man5/ovn-*
511 %exclude /usr/share/man/man7/ovn-*
512 %exclude /usr/share/man/man8/ovn-*
513 %exclude /usr/share/openvswitch/ovn-*
514 %exclude /usr/share/openvswitch/scripts/ovn-*
515
516 %files %{module_package}
517 /lib/modules/%{xen_version}/extra/openvswitch/openvswitch.ko
518 /lib/modules/%{xen_version}/extra/openvswitch/vport-*.ko