diff options
| -rw-r--r-- | INSTALL.XenServer | 27 | ||||
| -rw-r--r-- | xenserver/openvswitch-xen.spec | 44 |
2 files changed, 48 insertions, 23 deletions
diff --git a/INSTALL.XenServer b/INSTALL.XenServer index e7be494cd..48f81785f 100644 --- a/INSTALL.XenServer +++ b/INSTALL.XenServer @@ -41,27 +41,30 @@ where: appears as the name of a directory in /lib/modules inside the VM. It always ends in "xen". -Two RPMs will be output into /usr/src/redhat/RPMS/i386, whose names -begin with "openvswitch" and "openvswitch-debuginfo". +Three RPMs will be output into /usr/src/redhat/RPMS/i386, whose names begin +with "openvswitch", "openvswitch-modules-xen", and "openvswitch-debuginfo". Installing Open vSwitch for XenServer ------------------------------------- -To install Open vSwitch on a XenServer host, or to upgrade to a newer -version, copy the "openvswitch" RPM to that host with "scp", then install -it with "rpm -U", e.g.: +To install Open vSwitch on a XenServer host, or to upgrade to a newer version, +copy the "openvswitch" and "openvswitch-modules-xen" RPMs to that host with +"scp", then install them with "rpm -U", e.g.: - scp openvswitch-$VERSION-1.i386.rpm root@<host>: -(At this point you will have to enter <host>'s root password.) + scp openvswitch-$VERSION-1.i386.rpm \ + openvswitch-modules-xen-$XEN_KERNEL_VERSION-$VERSION-1.i386.rpm \ + root@<host>: +(At this point you will have to enter <host>'s root password.) ssh root@<host> -(At this point you will have to enter <host>'s root password again.) - rpm -U openvswitch-$VERSION-1.i386.rpm +(At this point you will have to enter <host>'s root password again.) + rpm -U openvswitch-$VERSION-1.i386.rpm \ + openvswitch-modules-xen-$XEN_KERNEL_VERSION-$VERSION-1.i386.rpm -To uninstall Open vSwitch from a XenServer host, remove the package: +To uninstall Open vSwitch from a XenServer host, remove the packages: ssh root@<host> -(At this point you will have to enter <host>'s root password again.) - rpm -e openvswitch +(At this point you will have to enter <host>'s root password again.) + rpm -e openvswitch openvswitch-modules-xen-$XEN_KERNEL_VERSION After installing or uninstalling Open vSwitch, the XenServer should be rebooted as soon as possible. diff --git a/xenserver/openvswitch-xen.spec b/xenserver/openvswitch-xen.spec index a5df6d6e0..05229de5c 100644 --- a/xenserver/openvswitch-xen.spec +++ b/xenserver/openvswitch-xen.spec @@ -12,28 +12,48 @@ # for example: # # rpmbuild -D "openvswitch_version 0.8.9~1+build123" -D "xen_version 2.6.18-128.1.1.el5.xs5.1.0.483.1000xen" -D "build_number --with-build-number=123" -bb /usr/src/redhat/SPECS/openvswitch-xen.spec -# + %define version %{openvswitch_version}-%{xen_version} +# bump this when breaking compatibility with userspace +%define module_abi_version 0 + +# extract kernel type (xen or kdump) +%define binsuffix -%(echo '%{xen_version}' | sed -r 's/^.*[0-9]+//') +# kernel version string w/o kernel type +%define kernel_version %(echo '%{xen_version}' | sed -r 's/[a-z]+$//') +# build-supplemental-pack.sh requires this naming for kernel module packages +%define module_package modules%{binsuffix}-%{kernel_version} + Name: openvswitch -Summary: Virtual switch +Summary: Open vSwitch daemon/database/utilities Group: System Environment/Daemons URL: http://www.openvswitch.org/ Vendor: Nicira Networks, Inc. Version: %{openvswitch_version} -# The entire source code is ASL 2.0 except datapath/ which is GPLv2 -License: ASL 2.0 and GPLv2 +License: ASL 2.0 Release: 1 Source: openvswitch-%{openvswitch_version}.tar.gz Buildroot: /tmp/openvswitch-xen-rpm -Requires: kernel-xen = %(echo '%{xen_version}' | sed 's/xen$//') +Requires: openvswitch_mod.ko.%{module_abi_version} %description Open vSwitch provides standard network bridging functions augmented with support for the OpenFlow protocol for remote per-flow control of traffic. +%package %{module_package} +Summary: Open vSwitch kernel module +Group: System Environment/Kernel +License: GPLv2 +Provides: %{name}-modules = %{kernel_version}, openvswitch_mod.ko.%{module_abi_version} +Requires: kernel%{binsuffix} = %{kernel_version} + +%description %{module_package} +Open vSwitch Linux kernel module compiled against kernel version +%{xen_version}. + %prep %setup -q -n openvswitch-%{openvswitch_version} @@ -135,9 +155,6 @@ if runlevel >/dev/null 2>&1; then fi fi -# Ensure that modprobe will find our modules. -depmod %{xen_version} - if grep -F net.ipv4.conf.all.arp_filter /etc/sysctl.conf >/dev/null 2>&1; then :; else cat >>/etc/sysctl.conf <<EOF # This works around an issue in xhad, which binds to a particular @@ -245,6 +262,10 @@ else printf "\n\n" fi +%post %{module_package} +# Ensure that modprobe will find our modules. +depmod %{xen_version} + %preun if [ "$1" = "0" ]; then # $1 = 1 for upgrade for s in openvswitch openvswitch-xapi-update; do @@ -252,7 +273,6 @@ if [ "$1" = "0" ]; then # $1 = 1 for upgrade done fi - %postun # Restore original XenServer scripts if the OVS equivalent no longer exists. # This works both in the upgrade and erase cases. @@ -322,7 +342,6 @@ fi /etc/xensource/bugtool/network-status/openvswitch.xml /etc/logrotate.d/openvswitch /etc/profile.d/openvswitch.sh -/lib/modules/%{xen_version}/kernel/extra/openvswitch/openvswitch_mod.ko /usr/share/openvswitch/python/ovs/__init__.py /usr/share/openvswitch/python/ovs/daemon.py /usr/share/openvswitch/python/ovs/db/__init__.py @@ -381,7 +400,6 @@ fi /usr/share/man/man8/ovs-vsctl.8.gz /usr/share/man/man8/ovs-vswitchd.8.gz /var/lib/openvswitch -%exclude /lib/modules/%{xen_version}/kernel/extra/openvswitch/brcompat_mod.ko %exclude /usr/lib/xsconsole/plugins-base/*.py[co] %exclude /usr/sbin/ovs-brcompatd %exclude /usr/share/man/man8/ovs-brcompatd.8.gz @@ -389,3 +407,7 @@ fi %exclude /usr/share/openvswitch/python/*.py[co] %exclude /usr/share/openvswitch/python/ovs/*.py[co] %exclude /usr/share/openvswitch/python/ovs/db/*.py[co] + +%files %{module_package} +/lib/modules/%{xen_version}/kernel/extra/openvswitch/openvswitch_mod.ko +%exclude /lib/modules/%{xen_version}/kernel/extra/openvswitch/brcompat_mod.ko |
