X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=xenserver%2Fvswitch-xen.spec;h=79acd20fb9f011c6704986cd9496bddec3758a25;hb=f134604bdccfe0e5d4b2bf43371aebd48a6e2474;hp=373bfb291d238f8b1dc9e3064a9e228ff31644b7;hpb=3b01baa3970139c3a195017ab1ea3e42761e3db2;p=openvswitch diff --git a/xenserver/vswitch-xen.spec b/xenserver/vswitch-xen.spec index 373bfb29..79acd20f 100644 --- a/xenserver/vswitch-xen.spec +++ b/xenserver/vswitch-xen.spec @@ -14,18 +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.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 @@ -36,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} +./configure --prefix=/usr --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 \ @@ -49,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 @@ -60,65 +66,87 @@ 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 xenserver/root_vswitch_scripts_dump-vif-details \ - $RPM_BUILD_ROOT%{_prefix}/scripts/dump-vif-details + $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_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-openflowd \ - $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/kernel_modules/veth_mod.ko \ - $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-openflowd.8 \ - $RPM_BUILD_ROOT/root/vswitch/share/man/man8/ovs-pki.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 @@ -237,40 +266,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 - 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" @@ -283,32 +298,37 @@ 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/scripts/dump-vif-details -/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/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