X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=xenserver%2Fvswitch-xen.spec;h=d8e32e48f5cef210c5fea99839a3a8f870d31a31;hb=bdc0da5ca1264511191b6fa86c2bc56d375e13d1;hp=58e35dec95e6b8cc23f5bb8e78dece0d6d8b8933;hpb=064af42167bf4fc9aaea2702d80ce08074b889c0;p=sliver-openvswitch.git diff --git a/xenserver/vswitch-xen.spec b/xenserver/vswitch-xen.spec index 58e35dec9..d8e32e48f 100644 --- a/xenserver/vswitch-xen.spec +++ b/xenserver/vswitch-xen.spec @@ -14,17 +14,26 @@ # rpmbuild -D "vswitch_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/vswitch-xen.spec # %define version %{vswitch_version}-%{xen_version} -%define _prefix /root/vswitch Name: vswitch Summary: Virtual switch Group: System Environment/Daemons -URL: http://www.vswitch.org/ +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 +Requires: kernel-xen = %(echo '%{xen_version}' | sed 's/xen$//') +# The following Conflicts prevents the "vswitch" package generated by +# this spec file from installing at the same time as the "openvswitch" +# package shipped with XenServer 5.5.900. In fact, the packages +# contain some files with identical names anyhow, so they will not +# coexist, but adding an explicit Conflicts makes this conflict more +# obvious. +Conflicts: openvswitch %description The vswitch provides standard network bridging functions augmented with @@ -35,12 +44,12 @@ traffic. %setup -q -n openvswitch-%{vswitch_version} %build -./configure --prefix=%{_prefix} --localstatedir=%{_localstatedir} --with-l26=/lib/modules/%{xen_version}/build --enable-ssl %{build_number} -make +./configure --prefix=/usr --sysconfdir=/etc --localstatedir=%{_localstatedir} --with-l26=/lib/modules/%{xen_version}/build --enable-ssl %{build_number} +make %{_smp_mflags} %install rm -rf $RPM_BUILD_ROOT -make install DESTDIR=$RPM_BUILD_ROOT prefix=%{_prefix} +make install DESTDIR=$RPM_BUILD_ROOT install -d -m 755 $RPM_BUILD_ROOT/etc install -d -m 755 $RPM_BUILD_ROOT/etc/init.d install -m 755 xenserver/etc_init.d_vswitch \ @@ -48,8 +57,6 @@ install -m 755 xenserver/etc_init.d_vswitch \ 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 @@ -59,62 +66,89 @@ install -m 755 xenserver/etc_profile.d_vswitch.sh \ install -d -m 755 $RPM_BUILD_ROOT/etc/xapi.d/plugins install -m 755 xenserver/etc_xapi.d_plugins_vswitch-cfg-update \ $RPM_BUILD_ROOT/etc/xapi.d/plugins/vswitch-cfg-update -install -d -m 755 $RPM_BUILD_ROOT%{_prefix}/scripts +install -d -m 755 $RPM_BUILD_ROOT/usr/share/vswitch/scripts install -m 755 xenserver/opt_xensource_libexec_interface-reconfigure \ - $RPM_BUILD_ROOT%{_prefix}/scripts/interface-reconfigure + $RPM_BUILD_ROOT/usr/share/vswitch/scripts/interface-reconfigure install -m 755 xenserver/etc_xensource_scripts_vif \ - $RPM_BUILD_ROOT%{_prefix}/scripts/vif -install -m 755 \ + $RPM_BUILD_ROOT/usr/share/vswitch/scripts/vif +install -m 755 xenserver/usr_share_vswitch_scripts_dump-vif-details \ + $RPM_BUILD_ROOT/usr/share/vswitch/scripts/dump-vif-details +install -m 755 xenserver/usr_share_vswitch_scripts_refresh-xs-network-uuids \ + $RPM_BUILD_ROOT/usr/share/vswitch/scripts/refresh-xs-network-uuids +install -m 755 xenserver/usr_sbin_xen-bugtool \ + $RPM_BUILD_ROOT/usr/share/vswitch/scripts/xen-bugtool +install -m 755 xenserver/usr_sbin_brctl \ + $RPM_BUILD_ROOT/usr/share/vswitch/scripts/brctl +install -m 755 xenserver/usr_share_vswitch_scripts_sysconfig.template \ + $RPM_BUILD_ROOT/usr/share/vswitch/scripts/sysconfig.template +install -m 644 \ xenserver/usr_lib_xsconsole_plugins-base_XSFeatureVSwitch.py \ - $RPM_BUILD_ROOT%{_prefix}/scripts/XSFeatureVSwitch.py + $RPM_BUILD_ROOT/usr/share/vswitch/scripts/XSFeatureVSwitch.py -install -d -m 755 $RPM_BUILD_ROOT%{_prefix}/kernel_modules -find datapath/linux-2.6 -name *.ko -exec install -m 755 \{\} $RPM_BUILD_ROOT%{_prefix}/kernel_modules/ \; +install -d -m 755 $RPM_BUILD_ROOT/lib/modules/%{xen_version}/kernel/net/vswitch +find datapath/linux-2.6 -name *.ko -exec install -m 755 \{\} $RPM_BUILD_ROOT/lib/modules/%{xen_version}/kernel/net/vswitch \; # Get rid of stuff we don't want to make RPM happy. -rm -rf \ - $RPM_BUILD_ROOT/root/vswitch/bin/ezio-term \ - $RPM_BUILD_ROOT/root/vswitch/bin/ovs-controller \ - $RPM_BUILD_ROOT/root/vswitch/bin/ovs-discover \ - $RPM_BUILD_ROOT/root/vswitch/bin/ovs-kill \ - $RPM_BUILD_ROOT/root/vswitch/bin/ovs-pki \ - $RPM_BUILD_ROOT/root/vswitch/bin/ovs-switchui \ - $RPM_BUILD_ROOT/root/vswitch/bin/ovs-wdt \ - $RPM_BUILD_ROOT/root/vswitch/bin/secchan \ - $RPM_BUILD_ROOT/root/vswitch/sbin/ovs-monitor \ - $RPM_BUILD_ROOT/root/vswitch/share/man/man8/ovs-controller.8 \ - $RPM_BUILD_ROOT/root/vswitch/share/man/man8/ovs-discover.8 \ - $RPM_BUILD_ROOT/root/vswitch/share/man/man8/ovs-kill.8 \ - $RPM_BUILD_ROOT/root/vswitch/share/man/man8/ovs-pki.8 \ - $RPM_BUILD_ROOT/root/vswitch/share/man/man8/secchan.8 \ - $RPM_BUILD_ROOT/root/vswitch/share/openvswitch +rm \ + $RPM_BUILD_ROOT/usr/bin/ovs-controller \ + $RPM_BUILD_ROOT/usr/bin/ovs-discover \ + $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 +rm -f $RPM_BUILD_ROOT/lib/modules/%{xen_version}/kernel/net/vswitch/veth_mod.ko +rm -r \ + $RPM_BUILD_ROOT/usr/share/openvswitch/commands + +install -d -m 755 $RPM_BUILD_ROOT/var/lib/openvswitch %clean rm -rf $RPM_BUILD_ROOT -%pre +%post if [ ! -f /etc/xensource-inventory ]; then printf "XenSource inventory not present in /etc/xensource-inventory" exit 1 fi if [ "$1" = "1" ]; then - if ! md5sum -c --status </dev/null 2>&1; then :; else + cat >>/etc/sysctl.conf </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 /usr/lib/vswitch/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") - if [ "$t" != "%{_prefix}/scripts/$s" ]; then - mv "$f" %{_prefix}/xs-original/ \ + if [ "$t" != "/usr/share/vswitch/scripts/$s" ]; then + mv "$f" /usr/lib/vswitch/xs-original/ \ || printf "Could not save original XenServer $s script\n" - ln -s "%{_prefix}/scripts/$s" "$f" \ + ln -s "/usr/share/vswitch/scripts/$s" "$f" \ || printf "Could not link to vSwitch $s script\n" fi done # Install xsconsole plugin plugin=$(readlink /usr/lib/xsconsole/plugins-base/XSFeatureVSwitch.py) -if [ "$plugin" != "/root/vswitch/scripts/XSFeatureVSwitch.py" ]; then +if [ "$plugin" != "/usr/share/vswitch/scripts/XSFeatureVSwitch.py" ]; then rm -f /usr/lib/xsconsole/plugins-base/XSFeatureVSwitch.py - ln -s /root/vswitch/scripts/XSFeatureVSwitch.py /usr/lib/xsconsole/plugins-base/ || printf "Could not link to vSswitch xsconsole plugin.\n" + ln -s /usr/share/vswitch/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 @@ -233,39 +268,26 @@ if [ "$1" = "0" ]; then # $1 = 1 for upgrade # 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 - printf "Original XenServer $s script not present in %{_prefix}/xs-original\n" + if [ ! -f "/usr/lib/vswitch/xs-original/$s" ]; then + printf "Original XenServer $s script not present in /usr/lib/vswitch/xs-original\n" printf "Could not restore original XenServer script.\n" else (rm -f "$f" \ - && mv "%{_prefix}/xs-original/$s" "$f") \ + && mv "/usr/lib/vswitch/xs-original/$s" "$f") \ || printf "Could not restore original XenServer $s script.\n" fi done - find %{_prefix} -type d -depth -exec rmdir \{\} \; \ - || printf "Could not remove vSwitch install directory.\n" - - # Remove all configuration and log files + # Remove all configuration files rm -f /etc/ovs-vswitchd.conf rm -f /etc/sysconfig/vswitch - 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 + rm -f /var/lib/openvswitch/dbcache printf "\nYou MUST reboot the server now to complete the change to\n" printf "standard Xen networking. Attempts to modify networking on the\n" @@ -279,32 +301,38 @@ fi /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/kernel_modules/openvswitch_mod.ko -/root/vswitch/kernel_modules/veth_mod.ko -/root/vswitch/scripts/interface-reconfigure -/root/vswitch/scripts/vif -/root/vswitch/scripts/XSFeatureVSwitch.py +/lib/modules/%{xen_version}/kernel/net/vswitch/openvswitch_mod.ko +/lib/modules/%{xen_version}/kernel/net/vswitch/brcompat_mod.ko +/usr/share/vswitch/scripts/dump-vif-details +/usr/share/vswitch/scripts/refresh-xs-network-uuids +/usr/share/vswitch/scripts/interface-reconfigure +/usr/share/vswitch/scripts/vif +/usr/share/vswitch/scripts/xen-bugtool +/usr/share/vswitch/scripts/XSFeatureVSwitch.py +/usr/share/vswitch/scripts/brctl +/usr/share/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 # after the install script runs. Since they are small, we just # include them. -/root/vswitch/scripts/XSFeatureVSwitch.pyc -/root/vswitch/scripts/XSFeatureVSwitch.pyo -/root/vswitch/sbin/ovs-brcompatd -/root/vswitch/sbin/ovs-vswitchd -/root/vswitch/bin/ovs-appctl -/root/vswitch/bin/ovs-cfg-mod -/root/vswitch/bin/ovs-dpctl -/root/vswitch/bin/ovs-ofctl -/root/vswitch/share/man/man5/ovs-vswitchd.conf.5 -/root/vswitch/share/man/man8/ovs-appctl.8 -/root/vswitch/share/man/man8/ovs-brcompatd.8 -/root/vswitch/share/man/man8/ovs-cfg-mod.8 -/root/vswitch/share/man/man8/ovs-dpctl.8 -/root/vswitch/share/man/man8/ovs-ofctl.8 -/root/vswitch/share/man/man8/ovs-vswitchd.8 +/usr/share/vswitch/scripts/XSFeatureVSwitch.pyc +/usr/share/vswitch/scripts/XSFeatureVSwitch.pyo +/usr/sbin/ovs-brcompatd +/usr/sbin/ovs-vswitchd +/usr/bin/ovs-appctl +/usr/bin/ovs-cfg-mod +/usr/bin/ovs-dpctl +/usr/bin/ovs-ofctl +/usr/bin/ovs-vsctl +/usr/share/man/man5/ovs-vswitchd.conf.5.gz +/usr/share/man/man8/ovs-appctl.8.gz +/usr/share/man/man8/ovs-brcompatd.8.gz +/usr/share/man/man8/ovs-cfg-mod.8.gz +/usr/share/man/man8/ovs-dpctl.8.gz +/usr/share/man/man8/ovs-ofctl.8.gz +/usr/share/man/man8/ovs-vsctl.8.gz +/usr/share/man/man8/ovs-vswitchd.8.gz +/var/lib/openvswitch