ofproto: Avoid using ODPFF_ZERO_TCP_FLAGS.
[sliver-openvswitch.git] / xenserver / openvswitch-xen.spec
index ac2f2a0..deb1fd3 100644 (file)
@@ -73,20 +73,24 @@ install -m 644 xenserver/opt_xensource_libexec_InterfaceReconfigureVswitch.py \
              $RPM_BUILD_ROOT/usr/share/openvswitch/scripts/InterfaceReconfigureVswitch.py
 install -m 755 xenserver/etc_xensource_scripts_vif \
              $RPM_BUILD_ROOT/usr/share/openvswitch/scripts/vif
              $RPM_BUILD_ROOT/usr/share/openvswitch/scripts/InterfaceReconfigureVswitch.py
 install -m 755 xenserver/etc_xensource_scripts_vif \
              $RPM_BUILD_ROOT/usr/share/openvswitch/scripts/vif
-install -m 755 xenserver/usr_share_openvswitch_scripts_refresh-network-uuids \
-               $RPM_BUILD_ROOT/usr/share/openvswitch/scripts/refresh-network-uuids
+install -m 755 xenserver/usr_share_openvswitch_scripts_ovs-external-ids \
+               $RPM_BUILD_ROOT/usr/share/openvswitch/scripts/ovs-external-ids
+install -m 755 xenserver/usr_share_openvswitch_scripts_refresh-xs-network-uuids \
+               $RPM_BUILD_ROOT/usr/share/openvswitch/scripts/refresh-xs-network-uuids
 install -m 755 xenserver/usr_sbin_xen-bugtool \
              $RPM_BUILD_ROOT/usr/share/openvswitch/scripts/xen-bugtool
 install -m 755 xenserver/usr_sbin_brctl \
              $RPM_BUILD_ROOT/usr/share/openvswitch/scripts/brctl
 install -m 755 xenserver/usr_share_openvswitch_scripts_sysconfig.template \
          $RPM_BUILD_ROOT/usr/share/openvswitch/scripts/sysconfig.template
 install -m 755 xenserver/usr_sbin_xen-bugtool \
              $RPM_BUILD_ROOT/usr/share/openvswitch/scripts/xen-bugtool
 install -m 755 xenserver/usr_sbin_brctl \
              $RPM_BUILD_ROOT/usr/share/openvswitch/scripts/brctl
 install -m 755 xenserver/usr_share_openvswitch_scripts_sysconfig.template \
          $RPM_BUILD_ROOT/usr/share/openvswitch/scripts/sysconfig.template
+install -d -m 755 $RPM_BUILD_ROOT/usr/lib/xsconsole/plugins-base
 install -m 644 \
         xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py \
 install -m 644 \
         xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py \
-               $RPM_BUILD_ROOT/usr/share/openvswitch/scripts/XSFeatureVSwitch.py
+               $RPM_BUILD_ROOT/usr/lib/xsconsole/plugins-base/XSFeatureVSwitch.py
 
 
-install -d -m 755 $RPM_BUILD_ROOT/lib/modules/%{xen_version}/kernel/net/openvswitch
-find datapath/linux-2.6 -name *.ko -exec install -m 755  \{\} $RPM_BUILD_ROOT/lib/modules/%{xen_version}/kernel/net/openvswitch \;
+install -d -m 755 $RPM_BUILD_ROOT/lib/modules/%{xen_version}/kernel/extra/openvswitch
+find datapath/linux-2.6 -name *.ko -exec install -m 755  \{\} $RPM_BUILD_ROOT/lib/modules/%{xen_version}/kernel/extra/openvswitch \;
+install xenserver/uuid.py $RPM_BUILD_ROOT/usr/share/openvswitch/python
 
 # Get rid of stuff we don't want to make RPM happy.
 rm \
 
 # Get rid of stuff we don't want to make RPM happy.
 rm \
@@ -95,14 +99,11 @@ rm \
     $RPM_BUILD_ROOT/usr/bin/ovs-kill \
     $RPM_BUILD_ROOT/usr/bin/ovs-openflowd \
     $RPM_BUILD_ROOT/usr/bin/ovs-pki \
     $RPM_BUILD_ROOT/usr/bin/ovs-kill \
     $RPM_BUILD_ROOT/usr/bin/ovs-openflowd \
     $RPM_BUILD_ROOT/usr/bin/ovs-pki \
-    $RPM_BUILD_ROOT/usr/bin/ovs-wdt \
-    $RPM_BUILD_ROOT/usr/sbin/ovs-monitor \
     $RPM_BUILD_ROOT/usr/share/man/man8/ovs-controller.8 \
     $RPM_BUILD_ROOT/usr/share/man/man8/ovs-discover.8 \
     $RPM_BUILD_ROOT/usr/share/man/man8/ovs-kill.8 \
     $RPM_BUILD_ROOT/usr/share/man/man8/ovs-openflowd.8 \
     $RPM_BUILD_ROOT/usr/share/man/man8/ovs-pki.8
     $RPM_BUILD_ROOT/usr/share/man/man8/ovs-controller.8 \
     $RPM_BUILD_ROOT/usr/share/man/man8/ovs-discover.8 \
     $RPM_BUILD_ROOT/usr/share/man/man8/ovs-kill.8 \
     $RPM_BUILD_ROOT/usr/share/man/man8/ovs-openflowd.8 \
     $RPM_BUILD_ROOT/usr/share/man/man8/ovs-pki.8
-rm -f $RPM_BUILD_ROOT/lib/modules/%{xen_version}/kernel/net/openvswitch/veth_mod.ko
 
 install -d -m 755 $RPM_BUILD_ROOT/var/lib/openvswitch
 
 
 install -d -m 755 $RPM_BUILD_ROOT/var/lib/openvswitch
 
@@ -114,6 +115,7 @@ if [ ! -f /etc/xensource-inventory ]; then
     printf "XenSource inventory not present in /etc/xensource-inventory"
     exit 1
 fi
     printf "XenSource inventory not present in /etc/xensource-inventory"
     exit 1
 fi
+. /etc/xensource-inventory
 
 if [ "$1" = "1" ]; then
     if md5sum -c --status <<EOF
 
 if [ "$1" = "1" ]; then
     if md5sum -c --status <<EOF
@@ -158,6 +160,28 @@ EOF
     fi
 fi
 
     fi
 fi
 
+# On XenServer 5.5.0, we need refresh-xs-network-uuids to run whenever
+# XAPI starts or restarts.  (On XenServer 5.6.0, XAPI calls the
+# "update" method of the vswitch-cfg-update plugin whenever it starts
+# or restarts, so this is no longer necessary.)
+if test "$PRODUCT_VERSION" = "5.5.0"; then
+    RNU=/usr/share/openvswitch/scripts/refresh-xs-network-uuids
+    XSS=/opt/xensource/libexec/xapi-startup-script
+    if test -e $XSS && (test ! -L $XSS || test "`readlink $XSS`" != $RNU); then
+        echo "$XSS is already in use, refusing to overwrite"
+        exit 1
+    fi
+    rm -f $XSS
+    ln -s $RNU $XSS
+
+    # If /etc/xensource/network.conf doesn't exist (it was added in 5.6.0),
+    # then interface-reconfigure will be unhappy when we run it below.
+    if test ! -e /etc/xensource/network.conf; then
+        echo bridge > /etc/xensource/network.conf
+    fi
+fi
+
+
 if test ! -e /var/xapi/network.dbcache; then
     if test "$1" = 1; then
         printf "Creating xapi database cache...  "
 if test ! -e /var/xapi/network.dbcache; then
     if test "$1" = 1; then
         printf "Creating xapi database cache...  "
@@ -201,7 +225,7 @@ if test ! -e /etc/openvswitch/conf.db; then
 
     # Create ovs-vswitchd config database
     ovsdb-tool -vANY:console:emer create /etc/openvswitch/conf.db \
 
     # Create ovs-vswitchd config database
     ovsdb-tool -vANY:console:emer create /etc/openvswitch/conf.db \
-            /usr/share/openvswitch/vswitch.ovsschema \
+            /usr/share/openvswitch/vswitch.ovsschema
 
     # Create initial table in config database
     ovsdb-tool -vANY:console:emer transact /etc/openvswitch/conf.db \
 
     # Create initial table in config database
     ovsdb-tool -vANY:console:emer transact /etc/openvswitch/conf.db \
@@ -246,13 +270,6 @@ do
     fi
 done
 
     fi
 done
 
-# Install xsconsole plugin
-plugin=$(readlink /usr/lib/xsconsole/plugins-base/XSFeatureVSwitch.py)
-if [ "$plugin" != "/usr/share/openvswitch/scripts/XSFeatureVSwitch.py" ]; then
-    rm -f /usr/lib/xsconsole/plugins-base/XSFeatureVSwitch.py
-    ln -s /usr/share/openvswitch/scripts/XSFeatureVSwitch.py /usr/lib/xsconsole/plugins-base/ || printf "Could not link to vSswitch xsconsole plugin.\n"
-fi
-
 # Ensure all required services are set to run
 for s in openvswitch openvswitch-xapi-update; do
     if chkconfig --list $s >/dev/null 2>&1; then
 # Ensure all required services are set to run
 for s in openvswitch openvswitch-xapi-update; do
     if chkconfig --list $s >/dev/null 2>&1; then
@@ -286,15 +303,28 @@ fi
 
 %postun
 if [ "$1" = "0" ]; then     # $1 = 1 for upgrade
 
 %postun
 if [ "$1" = "0" ]; then     # $1 = 1 for upgrade
+    . /etc/xensource-inventory
+    if test "$PRODUCT_VERSION" = "5.5.0"; then
+        XSS=/opt/xensource/libexec/xapi-startup-script
+        rm -f $XSS
+    fi
 
 
-    rm -f /usr/lib/xsconsole/plugins-base/XSFeatureVSwitch.py \
-        /usr/lib/xsconsole/plugins-base/XSFeatureVSwitch.pyc \
-        /usr/lib/xsconsole/plugins-base/XSFeatureVSwitch.pyo \
-        || printf "Could not remove Open vSwitch xsconsole plugin.\n"
+    rm -f /usr/lib/xsconsole/plugins-base/XSFeatureVSwitch.pyc \
+        /usr/lib/xsconsole/plugins-base/XSFeatureVSwitch.pyo
+
+    rm -f /usr/share/openvswitch/scripts/InterfaceReconfigure.pyc \
+        /usr/share/openvswitch/scripts/InterfaceReconfigure.pyo \
+        /usr/share/openvswitch/scripts/InterfaceReconfigureBridge.pyc \
+        /usr/share/openvswitch/scripts/InterfaceReconfigureBridge.pyo \
+        /usr/share/openvswitch/scripts/InterfaceReconfigureVSwitch.pyc \
+        /usr/share/openvswitch/scripts/InterfaceReconfigureVSwitch.pyo 
 
     # Restore original XenServer scripts
     for f in \
         /opt/xensource/libexec/interface-reconfigure \
 
     # Restore original XenServer scripts
     for f in \
         /opt/xensource/libexec/interface-reconfigure \
+        /opt/xensource/libexec/InterfaceReconfigure.py \
+        /opt/xensource/libexec/InterfaceReconfigureBridge.py \
+        /opt/xensource/libexec/InterfaceReconfigureVswitch.py \
         /etc/xensource/scripts/vif \
         /usr/sbin/xen-bugtool \
         /usr/sbin/brctl
         /etc/xensource/scripts/vif \
         /usr/sbin/xen-bugtool \
         /usr/sbin/brctl
@@ -316,8 +346,13 @@ if [ "$1" = "0" ]; then     # $1 = 1 for upgrade
     rm -f /etc/openvswitch/vswitchd.cacert
     rm -f /var/xapi/network.dbcache
 
     rm -f /etc/openvswitch/vswitchd.cacert
     rm -f /var/xapi/network.dbcache
 
-    # Configure system to use bridge
-    echo bridge > /etc/xensource/network.conf
+    if test "$PRODUCT_VERSION" != "5.5.0"; then
+        # Configure system to use bridge
+        echo bridge > /etc/xensource/network.conf
+    else
+        # Get rid of network.conf entirely, to make the system pristine.
+        rm -f /etc/xensource/network.conf
+    fi
 
     printf "\nYou MUST reboot the server now to complete the change to\n"
     printf "standard Xen networking.  Attempts to modify networking on the\n"
 
     printf "\nYou MUST reboot the server now to complete the change to\n"
     printf "standard Xen networking.  Attempts to modify networking on the\n"
@@ -333,19 +368,38 @@ fi
 /etc/xapi.d/plugins/openvswitch-cfg-update
 /etc/logrotate.d/openvswitch
 /etc/profile.d/openvswitch.sh
 /etc/xapi.d/plugins/openvswitch-cfg-update
 /etc/logrotate.d/openvswitch
 /etc/profile.d/openvswitch.sh
-/lib/modules/%{xen_version}/kernel/net/openvswitch/openvswitch_mod.ko
-/lib/modules/%{xen_version}/kernel/net/openvswitch/brcompat_mod.ko
-%if %(echo '%{xen_version}'|awk -F"." '{if ($3>=18) print 1; else print 0;}')
-/lib/modules/%{xen_version}/kernel/net/openvswitch/ip_gre_mod.ko
-%endif
-/usr/share/openvswitch/scripts/refresh-network-uuids
+/lib/modules/%{xen_version}/kernel/extra/openvswitch/openvswitch_mod.ko
+/lib/modules/%{xen_version}/kernel/extra/openvswitch/brcompat_mod.ko
+/usr/share/openvswitch/python/ovs/__init__.py
+/usr/share/openvswitch/python/ovs/daemon.py
+/usr/share/openvswitch/python/ovs/db/__init__.py
+/usr/share/openvswitch/python/ovs/db/data.py
+/usr/share/openvswitch/python/ovs/db/error.py
+/usr/share/openvswitch/python/ovs/db/idl.py
+/usr/share/openvswitch/python/ovs/db/parser.py
+/usr/share/openvswitch/python/ovs/db/schema.py
+/usr/share/openvswitch/python/ovs/db/types.py
+/usr/share/openvswitch/python/ovs/dirs.py
+/usr/share/openvswitch/python/ovs/fatal_signal.py
+/usr/share/openvswitch/python/ovs/json.py
+/usr/share/openvswitch/python/ovs/jsonrpc.py
+/usr/share/openvswitch/python/ovs/ovsuuid.py
+/usr/share/openvswitch/python/ovs/poller.py
+/usr/share/openvswitch/python/ovs/process.py
+/usr/share/openvswitch/python/ovs/reconnect.py
+/usr/share/openvswitch/python/ovs/socket_util.py
+/usr/share/openvswitch/python/ovs/stream.py
+/usr/share/openvswitch/python/ovs/timeval.py
+/usr/share/openvswitch/python/ovs/util.py
+/usr/share/openvswitch/python/uuid.py
+/usr/share/openvswitch/scripts/ovs-external-ids
+/usr/share/openvswitch/scripts/refresh-xs-network-uuids
 /usr/share/openvswitch/scripts/interface-reconfigure
 /usr/share/openvswitch/scripts/InterfaceReconfigure.py
 /usr/share/openvswitch/scripts/InterfaceReconfigureBridge.py
 /usr/share/openvswitch/scripts/InterfaceReconfigureVswitch.py
 /usr/share/openvswitch/scripts/vif
 /usr/share/openvswitch/scripts/xen-bugtool
 /usr/share/openvswitch/scripts/interface-reconfigure
 /usr/share/openvswitch/scripts/InterfaceReconfigure.py
 /usr/share/openvswitch/scripts/InterfaceReconfigureBridge.py
 /usr/share/openvswitch/scripts/InterfaceReconfigureVswitch.py
 /usr/share/openvswitch/scripts/vif
 /usr/share/openvswitch/scripts/xen-bugtool
-/usr/share/openvswitch/scripts/XSFeatureVSwitch.py
 /usr/share/openvswitch/scripts/brctl
 /usr/share/openvswitch/scripts/sysconfig.template
 /usr/share/openvswitch/vswitch.ovsschema
 /usr/share/openvswitch/scripts/brctl
 /usr/share/openvswitch/scripts/sysconfig.template
 /usr/share/openvswitch/vswitch.ovsschema
@@ -355,9 +409,13 @@ fi
 /usr/bin/ovs-appctl
 /usr/bin/ovs-dpctl
 /usr/bin/ovs-ofctl
 /usr/bin/ovs-appctl
 /usr/bin/ovs-dpctl
 /usr/bin/ovs-ofctl
+/usr/bin/ovs-pcap
+/usr/bin/ovs-tcpundump
+/usr/bin/ovs-vlan-test
 /usr/bin/ovs-vsctl
 /usr/bin/ovsdb-client
 /usr/bin/ovsdb-tool
 /usr/bin/ovs-vsctl
 /usr/bin/ovsdb-client
 /usr/bin/ovsdb-tool
+/usr/lib/xsconsole/plugins-base/XSFeatureVSwitch.py
 /usr/share/man/man1/ovsdb-client.1.gz
 /usr/share/man/man1/ovsdb-server.1.gz
 /usr/share/man/man1/ovsdb-tool.1.gz
 /usr/share/man/man1/ovsdb-client.1.gz
 /usr/share/man/man1/ovsdb-server.1.gz
 /usr/share/man/man1/ovsdb-tool.1.gz
@@ -366,8 +424,15 @@ fi
 /usr/share/man/man8/ovs-brcompatd.8.gz
 /usr/share/man/man8/ovs-dpctl.8.gz
 /usr/share/man/man8/ovs-ofctl.8.gz
 /usr/share/man/man8/ovs-brcompatd.8.gz
 /usr/share/man/man8/ovs-dpctl.8.gz
 /usr/share/man/man8/ovs-ofctl.8.gz
+/usr/share/man/man8/ovs-parse-leaks.8.gz
+/usr/share/man/man1/ovs-pcap.1.gz
+/usr/share/man/man1/ovs-tcpundump.1.gz
+/usr/share/man/man8/ovs-vlan-test.8.gz
 /usr/share/man/man8/ovs-vsctl.8.gz
 /usr/share/man/man8/ovs-vswitchd.8.gz
 /var/lib/openvswitch
 /usr/share/man/man8/ovs-vsctl.8.gz
 /usr/share/man/man8/ovs-vswitchd.8.gz
 /var/lib/openvswitch
-%exclude /usr/share/openvswitch/scripts/*.pyc
-%exclude /usr/share/openvswitch/scripts/*.pyo
+%exclude /usr/lib/xsconsole/plugins-base/*.py[co]
+%exclude /usr/share/openvswitch/scripts/*.py[co]
+%exclude /usr/share/openvswitch/python/*.py[co]
+%exclude /usr/share/openvswitch/python/ovs/*.py[co]
+%exclude /usr/share/openvswitch/python/ovs/db/*.py[co]