Group: System Environment/Daemons
URL: http://www.openvswitch.org/
Version: %{vswitch_version}
-License: GPL3
+
+# The entire source code is ASL 2.0 except datapath/ which is GPLv2
+License: ASL 2.0 and GPLv2
Release: 1
Source: openvswitch-%{vswitch_version}.tar.gz
Buildroot: /tmp/vswitch-xen-rpm
install -m 755 xenserver/etc_init.d_vswitch-xapi-update \
$RPM_BUILD_ROOT/etc/init.d/vswitch-xapi-update
install -d -m 755 $RPM_BUILD_ROOT/etc/sysconfig
-install -m 755 xenserver/etc_sysconfig_vswitch.example \
- $RPM_BUILD_ROOT/etc/sysconfig/vswitch.example
install -d -m 755 $RPM_BUILD_ROOT/etc/logrotate.d
install -m 755 xenserver/etc_logrotate.d_vswitch \
$RPM_BUILD_ROOT/etc/logrotate.d/vswitch
$RPM_BUILD_ROOT%{_prefix}/scripts/vif
install -m 755 xenserver/root_vswitch_scripts_dump-vif-details \
$RPM_BUILD_ROOT%{_prefix}/scripts/dump-vif-details
+install -m 755 xenserver/usr_sbin_xen-bugtool \
+ $RPM_BUILD_ROOT%{_prefix}/scripts/xen-bugtool
+install -m 755 xenserver/usr_sbin_brctl \
+ $RPM_BUILD_ROOT%{_prefix}/scripts/brctl
+install -m 755 xenserver/root_vswitch_scripts_sysconfig.template \
+ $RPM_BUILD_ROOT/root/vswitch/scripts/sysconfig.template
install -m 644 \
xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py \
$RPM_BUILD_ROOT%{_prefix}/scripts/XSFeatureVSwitch.py
if ! md5sum -c --status <<EOF
b8e9835862ef1a9cec2a3f477d26c989 /etc/xensource/scripts/vif
51970ad613a3996d5997e18e44db47da /opt/xensource/libexec/interface-reconfigure
+5654c8c36699fcc8744ca9cd5b855414 /usr/sbin/xen-bugtool
EOF
then
printf "\nThe original XenServer scripts replaced by this package\n"
printf "are different than expected. This could lead to unexpected\n"
printf "behavior of your server. Unless you are sure you know what\n"
- printf "you are doing, it is highly recomended that you remove this\n"
+ printf "you are doing, it is highly recommended that you remove this\n"
printf "package immediately after the install completes, which\n"
printf "will restore the XenServer scripts that you were previously\n"
printf "using.\n\n"
fi
+ if test "`/usr/sbin/brctl --version`" != "bridge-utils, 1.1"; then
+cat <<EOF
+
+/usr/sbin/brctl replaced by this package reports the following version:
+
+`/usr/sbin/brctl --version`
+
+The expected version was:
+
+bridge-utils, 1.1
+
+Unless you are sure you know what you are doing, it is highly recommended that
+you remove this package immediately after the install completes, which will
+restore the original /usr/sbin/brctl.
+
+EOF
+ fi
fi
if test ! -e /etc/ovs-vswitch.dbcache; then
fi
%post
-source /etc/xensource-inventory
-
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
EOF
fi
-xe host-param-set \
- "other-config:vSwitchVersion=%{version}" uuid="$INSTALLATION_UUID" ||
- echo "Could not set vSwitchVersion config parameter"
-
# Ensure ovs-vswitchd.conf exists
touch /etc/ovs-vswitchd.conf
-# Replace original XenServer files
+# Create default or update existing /etc/sysconfig/vswitch.
+SYSCONFIG=/etc/sysconfig/vswitch
+TEMPLATE=/root/vswitch/scripts/sysconfig.template
+if [ ! -e $SYSCONFIG ]; then
+ cp $TEMPLATE $SYSCONFIG
+else
+ for var in $(awk -F'[ :]' '/^# [_A-Z0-9]+:/{print $2}' $TEMPLATE)
+ do
+ if ! grep $var $SYSCONFIG >/dev/null 2>&1; then
+ echo >> $SYSCONFIG
+ sed -n "/$var:/,/$var=/p" $TEMPLATE >> $SYSCONFIG
+ fi
+ done
+fi
+
+# Replace XenServer files by our versions.
mkdir -p %{_prefix}/xs-original \
|| printf "Could not create script backup directory.\n"
for f in \
/opt/xensource/libexec/interface-reconfigure \
- /etc/xensource/scripts/vif
+ /etc/xensource/scripts/vif \
+ /usr/sbin/xen-bugtool \
+ /usr/sbin/brctl
do
s=$(basename "$f")
t=$(readlink "$f")
# Restore original XenServer scripts
for f in \
/opt/xensource/libexec/interface-reconfigure \
- /etc/xensource/scripts/vif
+ /etc/xensource/scripts/vif \
+ /usr/sbin/xen-bugtool \
+ /usr/sbin/brctl
do
s=$(basename "$f")
if [ ! -f "%{_prefix}/xs-original/$s" ]; then
rm -f /var/log/vswitch*
rm -f /etc/ovs-vswitchd.cacert
- if [ ! -f /etc/xensource-inventory ]; then
- printf "XenSource inventory not present in /etc/xensource-inventory\n"
- printf "Could not remove vSwitchVersion from XAPI database.\n"
- exit 1
- else
- source /etc/xensource-inventory
- xe host-param-remove \
- param-name=other-config param-key=vSwitchVersion \
- uuid="$INSTALLATION_UUID" ||
- echo "Could not clear vSwitchVersion config parameter."
- 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 "server or any hosted VM will fail until after the reboot and\n"
/etc/init.d/vswitch
/etc/init.d/vswitch-xapi-update
/etc/xapi.d/plugins/vswitch-cfg-update
-/etc/sysconfig/vswitch.example
/etc/logrotate.d/vswitch
/etc/profile.d/vswitch.sh
/root/vswitch/kernel_modules/brcompat_mod.ko
/root/vswitch/scripts/dump-vif-details
/root/vswitch/scripts/interface-reconfigure
/root/vswitch/scripts/vif
+/root/vswitch/scripts/xen-bugtool
/root/vswitch/scripts/XSFeatureVSwitch.py
+/root/vswitch/scripts/brctl
+/root/vswitch/scripts/sysconfig.template
# Following two files are generated automatically by rpm. We don't
# really need them and they won't be used on the XenServer, but there
# isn't an obvious place to get rid of them since they are generated