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