mirror of
https://github.com/openvswitch/ovs
synced 2025-08-22 01:51:26 +00:00
rhel: Stop packaging OVS kernel module.
Remove the kernel driver specification for RHEL 6.x, 7.x, 8.x and Fedora. Reviewed-by: David Marchand <david.marchand@redhat.com> Signed-off-by: Greg Rose <gvrose8192@gmail.com> Signed-off-by: Ilya Maximets <i.maximets@ovn.org>
This commit is contained in:
parent
b6941ca7b8
commit
c94ae8a754
@ -194,24 +194,6 @@ the unit tests, run::
|
|||||||
/lib/modules/2.6.32-279.el6.x86_64/build doesn't exist`` or similar, then
|
/lib/modules/2.6.32-279.el6.x86_64/build doesn't exist`` or similar, then
|
||||||
the kernel-devel package is missing or buggy.
|
the kernel-devel package is missing or buggy.
|
||||||
|
|
||||||
Kernel Module
|
|
||||||
~~~~~~~~~~~~~
|
|
||||||
|
|
||||||
On RHEL 6, to build the Open vSwitch kernel module run::
|
|
||||||
|
|
||||||
$ rpmbuild -bb rhel/kmod-openvswitch-rhel6.spec
|
|
||||||
|
|
||||||
You might have to specify a kernel version and/or variants, e.g.::
|
|
||||||
|
|
||||||
$ rpmbuild -bb \
|
|
||||||
-D "kversion 2.6.32-131.6.1.el6.x86_64" \
|
|
||||||
-D "kflavors default debug kdump" \
|
|
||||||
rhel/kmod-openvswitch-rhel6.spec
|
|
||||||
|
|
||||||
This produces an "kmod-openvswitch" RPM for each kernel variant, in this
|
|
||||||
example: "kmod-openvswitch", "kmod-openvswitch-debug", and
|
|
||||||
"kmod-openvswitch-kdump".
|
|
||||||
|
|
||||||
.. _rhel-script-integrations:
|
.. _rhel-script-integrations:
|
||||||
|
|
||||||
Red Hat Network Scripts Integration
|
Red Hat Network Scripts Integration
|
||||||
|
12
Vagrantfile
vendored
12
Vagrantfile
vendored
@ -54,7 +54,7 @@ cd /vagrant
|
|||||||
[ -f Makefile ] && ./configure && make distclean
|
[ -f Makefile ] && ./configure && make distclean
|
||||||
mkdir -p ~/build
|
mkdir -p ~/build
|
||||||
cd ~/build
|
cd ~/build
|
||||||
/vagrant/configure --with-linux=/lib/modules/`uname -r`/build --enable-silent-rules
|
/vagrant/configure --enable-silent-rules
|
||||||
SCRIPT
|
SCRIPT
|
||||||
|
|
||||||
$build_ovs = <<SCRIPT
|
$build_ovs = <<SCRIPT
|
||||||
@ -62,18 +62,12 @@ cd ~/build
|
|||||||
make
|
make
|
||||||
SCRIPT
|
SCRIPT
|
||||||
|
|
||||||
$test_kmod = <<SCRIPT
|
|
||||||
cd ~/build
|
|
||||||
make check-kmod RECHECK=yes
|
|
||||||
SCRIPT
|
|
||||||
|
|
||||||
$install_rpm = <<SCRIPT
|
$install_rpm = <<SCRIPT
|
||||||
cd ~/build
|
cd ~/build
|
||||||
PACKAGE_VERSION=`autom4te -l Autoconf -t 'AC_INIT:$2' /vagrant/configure.ac`
|
PACKAGE_VERSION=`autom4te -l Autoconf -t 'AC_INIT:$2' /vagrant/configure.ac`
|
||||||
make && make dist
|
make && make dist
|
||||||
rpmdev-setuptree
|
rpmdev-setuptree
|
||||||
cp openvswitch-$PACKAGE_VERSION.tar.gz $HOME/rpmbuild/SOURCES
|
cp openvswitch-$PACKAGE_VERSION.tar.gz $HOME/rpmbuild/SOURCES
|
||||||
rpmbuild --bb -D "kversion `uname -r`" /vagrant/rhel/openvswitch-kmod-fedora.spec
|
|
||||||
rpmbuild --bb --without check /vagrant/rhel/openvswitch-fedora.spec
|
rpmbuild --bb --without check /vagrant/rhel/openvswitch-fedora.spec
|
||||||
rpm -e openvswitch
|
rpm -e openvswitch
|
||||||
rpm -ivh $HOME/rpmbuild/RPMS/x86_64/openvswitch-$PACKAGE_VERSION-1.fc23.x86_64.rpm
|
rpm -ivh $HOME/rpmbuild/RPMS/x86_64/openvswitch-$PACKAGE_VERSION-1.fc23.x86_64.rpm
|
||||||
@ -88,7 +82,6 @@ PACKAGE_VERSION=`autom4te -l Autoconf -t 'AC_INIT:$2' /vagrant/configure.ac`
|
|||||||
make && make dist
|
make && make dist
|
||||||
rpmdev-setuptree
|
rpmdev-setuptree
|
||||||
cp openvswitch-$PACKAGE_VERSION.tar.gz $HOME/rpmbuild/SOURCES
|
cp openvswitch-$PACKAGE_VERSION.tar.gz $HOME/rpmbuild/SOURCES
|
||||||
rpmbuild --bb -D "kversion `uname -r`" /vagrant/rhel/openvswitch-kmod-fedora.spec
|
|
||||||
rpmbuild --bb --without check /vagrant/rhel/openvswitch-fedora.spec
|
rpmbuild --bb --without check /vagrant/rhel/openvswitch-fedora.spec
|
||||||
rpm -e openvswitch
|
rpm -e openvswitch
|
||||||
rpm -ivh $HOME/rpmbuild/RPMS/x86_64/openvswitch-$PACKAGE_VERSION-1.x86_64.rpm
|
rpm -ivh $HOME/rpmbuild/RPMS/x86_64/openvswitch-$PACKAGE_VERSION-1.x86_64.rpm
|
||||||
@ -125,7 +118,6 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
|||||||
debian.vm.provision "bootstrap", type: "shell", inline: $bootstrap_debian
|
debian.vm.provision "bootstrap", type: "shell", inline: $bootstrap_debian
|
||||||
debian.vm.provision "configure_ovs", type: "shell", inline: $configure_ovs
|
debian.vm.provision "configure_ovs", type: "shell", inline: $configure_ovs
|
||||||
debian.vm.provision "build_ovs", type: "shell", inline: $build_ovs
|
debian.vm.provision "build_ovs", type: "shell", inline: $build_ovs
|
||||||
debian.vm.provision "test_ovs_kmod", type: "shell", inline: $test_kmod
|
|
||||||
debian.vm.provision "test_ovs_system_userspace", type: "shell", inline: $test_ovs_system_userspace
|
debian.vm.provision "test_ovs_system_userspace", type: "shell", inline: $test_ovs_system_userspace
|
||||||
debian.vm.provision "install_deb", type: "shell", inline: $install_deb
|
debian.vm.provision "install_deb", type: "shell", inline: $install_deb
|
||||||
end
|
end
|
||||||
@ -135,7 +127,6 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
|||||||
fedora.vm.provision "bootstrap", type: "shell", inline: $bootstrap_fedora
|
fedora.vm.provision "bootstrap", type: "shell", inline: $bootstrap_fedora
|
||||||
fedora.vm.provision "configure_ovs", type: "shell", inline: $configure_ovs
|
fedora.vm.provision "configure_ovs", type: "shell", inline: $configure_ovs
|
||||||
fedora.vm.provision "build_ovs", type: "shell", inline: $build_ovs
|
fedora.vm.provision "build_ovs", type: "shell", inline: $build_ovs
|
||||||
fedora.vm.provision "test_ovs_kmod", type: "shell", inline: $test_kmod
|
|
||||||
fedora.vm.provision "test_ovs_system_userspace", type: "shell", inline: $test_ovs_system_userspace
|
fedora.vm.provision "test_ovs_system_userspace", type: "shell", inline: $test_ovs_system_userspace
|
||||||
fedora.vm.provision "install_rpm", type: "shell", inline: $install_rpm
|
fedora.vm.provision "install_rpm", type: "shell", inline: $install_rpm
|
||||||
end
|
end
|
||||||
@ -145,7 +136,6 @@ Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|
|
|||||||
centos.vm.provision "bootstrap", type: "shell", inline: $bootstrap_centos
|
centos.vm.provision "bootstrap", type: "shell", inline: $bootstrap_centos
|
||||||
centos.vm.provision "configure_ovs", type: "shell", inline: $configure_ovs
|
centos.vm.provision "configure_ovs", type: "shell", inline: $configure_ovs
|
||||||
centos.vm.provision "build_ovs", type: "shell", inline: $build_ovs
|
centos.vm.provision "build_ovs", type: "shell", inline: $build_ovs
|
||||||
centos.vm.provision "test_ovs_kmod", type: "shell", inline: $test_kmod
|
|
||||||
centos.vm.provision "test_ovs_system_userspace", type: "shell", inline: $test_ovs_system_userspace
|
centos.vm.provision "test_ovs_system_userspace", type: "shell", inline: $test_ovs_system_userspace
|
||||||
centos.vm.provision "install_rpm", type: "shell", inline: $install_centos_rpm
|
centos.vm.provision "install_rpm", type: "shell", inline: $install_centos_rpm
|
||||||
end
|
end
|
||||||
|
@ -41,13 +41,11 @@
|
|||||||
chdir: /git/ovs/rhel
|
chdir: /git/ovs/rhel
|
||||||
with_items:
|
with_items:
|
||||||
- openvswitch.spec
|
- openvswitch.spec
|
||||||
- kmod-openvswitch-rhel6.spec
|
|
||||||
|
|
||||||
- name: Install build dependencies specified from spec files
|
- name: Install build dependencies specified from spec files
|
||||||
shell: echo "y" | yum-builddep /tmp/{{item}}
|
shell: echo "y" | yum-builddep /tmp/{{item}}
|
||||||
with_items:
|
with_items:
|
||||||
- openvswitch.spec
|
- openvswitch.spec
|
||||||
- kmod-openvswitch-rhel6.spec
|
|
||||||
|
|
||||||
- name: Create rpm dev tree
|
- name: Create rpm dev tree
|
||||||
command: rpmdev-setuptree
|
command: rpmdev-setuptree
|
||||||
@ -81,18 +79,12 @@
|
|||||||
line: "Release: {{ ansible_local.builder.release }}"
|
line: "Release: {{ ansible_local.builder.release }}"
|
||||||
with_items:
|
with_items:
|
||||||
- openvswitch.spec
|
- openvswitch.spec
|
||||||
- kmod-openvswitch-rhel6.spec
|
|
||||||
|
|
||||||
- name: Build Open vSwitch user space rpms
|
- name: Build Open vSwitch user space rpms
|
||||||
command: rpmbuild -bb --without check rhel/openvswitch.spec
|
command: rpmbuild -bb --without check rhel/openvswitch.spec
|
||||||
args:
|
args:
|
||||||
chdir: "{{SOURCE}}/openvswitch-{{version.stdout}}"
|
chdir: "{{SOURCE}}/openvswitch-{{version.stdout}}"
|
||||||
|
|
||||||
- name: Build Open vSwitch kmod rpms (only for currently loaded kernel)
|
|
||||||
command: rpmbuild -bb --without check rhel/kmod-openvswitch-rhel6.spec
|
|
||||||
args:
|
|
||||||
chdir: "{{SOURCE}}/openvswitch-{{version.stdout}}"
|
|
||||||
|
|
||||||
- name: Copy RPM packages to /var/www/html
|
- name: Copy RPM packages to /var/www/html
|
||||||
command: cp -r /root/rpmbuild/RPMS/ /var/www/html
|
command: cp -r /root/rpmbuild/RPMS/ /var/www/html
|
||||||
|
|
||||||
|
@ -53,15 +53,11 @@
|
|||||||
chdir: /git/ovs/rhel
|
chdir: /git/ovs/rhel
|
||||||
with_items:
|
with_items:
|
||||||
- openvswitch-fedora.spec
|
- openvswitch-fedora.spec
|
||||||
- openvswitch-kmod-fedora.spec
|
|
||||||
- openvswitch-dkms.spec
|
|
||||||
|
|
||||||
- name: Install build dependencies specified from spec files
|
- name: Install build dependencies specified from spec files
|
||||||
shell: echo "y" | yum-builddep /tmp/{{item}}
|
shell: echo "y" | yum-builddep /tmp/{{item}}
|
||||||
with_items:
|
with_items:
|
||||||
- openvswitch-fedora.spec
|
- openvswitch-fedora.spec
|
||||||
- openvswitch-kmod-fedora.spec
|
|
||||||
- openvswitch-dkms.spec
|
|
||||||
|
|
||||||
- name: Create rpm dev tree
|
- name: Create rpm dev tree
|
||||||
command: rpmdev-setuptree
|
command: rpmdev-setuptree
|
||||||
@ -95,24 +91,12 @@
|
|||||||
line: "Release: {{ ansible_local.builder.release }}"
|
line: "Release: {{ ansible_local.builder.release }}"
|
||||||
with_items:
|
with_items:
|
||||||
- openvswitch-fedora.spec
|
- openvswitch-fedora.spec
|
||||||
- openvswitch-kmod-fedora.spec
|
|
||||||
- openvswitch-dkms.spec
|
|
||||||
|
|
||||||
- name: Build Open vSwitch user space rpms
|
- name: Build Open vSwitch user space rpms
|
||||||
command: rpmbuild -bb --without check rhel/openvswitch-fedora.spec
|
command: rpmbuild -bb --without check rhel/openvswitch-fedora.spec
|
||||||
args:
|
args:
|
||||||
chdir: "{{SOURCE}}/openvswitch-{{version.stdout}}"
|
chdir: "{{SOURCE}}/openvswitch-{{version.stdout}}"
|
||||||
|
|
||||||
- name: Build Open vSwitch kmod rpm
|
|
||||||
command: rpmbuild -bb --without check rhel/openvswitch-fedora.spec
|
|
||||||
args:
|
|
||||||
chdir: "{{SOURCE}}/openvswitch-{{version.stdout}}"
|
|
||||||
|
|
||||||
- name: Build Open vSwitch dkms rpm
|
|
||||||
command: rpmbuild -bb --without check rhel/openvswitch-dkms.spec
|
|
||||||
args:
|
|
||||||
chdir: "{{SOURCE}}/openvswitch-{{version.stdout}}"
|
|
||||||
|
|
||||||
- name: Copy RPM packages to /var/www/html
|
- name: Copy RPM packages to /var/www/html
|
||||||
command: cp -r /root/rpmbuild/RPMS/ /var/www/html
|
command: cp -r /root/rpmbuild/RPMS/ /var/www/html
|
||||||
|
|
||||||
|
4
rhel/.gitignore
vendored
4
rhel/.gitignore
vendored
@ -1,7 +1,3 @@
|
|||||||
openvswitch-dkms.spec
|
|
||||||
openvswitch-kmod-rhel5.spec
|
|
||||||
kmod-openvswitch-rhel6.spec
|
|
||||||
openvswitch-kmod-fedora.spec
|
|
||||||
openvswitch.spec
|
openvswitch.spec
|
||||||
openvswitch-fedora.spec
|
openvswitch-fedora.spec
|
||||||
usr_lib_systemd_system_ovs-vswitchd.service
|
usr_lib_systemd_system_ovs-vswitchd.service
|
||||||
|
@ -13,12 +13,6 @@ EXTRA_DIST += \
|
|||||||
rhel/etc_openvswitch_default.conf \
|
rhel/etc_openvswitch_default.conf \
|
||||||
rhel/etc_sysconfig_network-scripts_ifdown-ovs \
|
rhel/etc_sysconfig_network-scripts_ifdown-ovs \
|
||||||
rhel/etc_sysconfig_network-scripts_ifup-ovs \
|
rhel/etc_sysconfig_network-scripts_ifup-ovs \
|
||||||
rhel/openvswitch-dkms.spec \
|
|
||||||
rhel/openvswitch-dkms.spec.in \
|
|
||||||
rhel/kmod-openvswitch-rhel6.spec \
|
|
||||||
rhel/kmod-openvswitch-rhel6.spec.in \
|
|
||||||
rhel/openvswitch-kmod-fedora.spec \
|
|
||||||
rhel/openvswitch-kmod-fedora.spec.in \
|
|
||||||
rhel/openvswitch.spec \
|
rhel/openvswitch.spec \
|
||||||
rhel/openvswitch.spec.in \
|
rhel/openvswitch.spec.in \
|
||||||
rhel/openvswitch-fedora.spec \
|
rhel/openvswitch-fedora.spec \
|
||||||
@ -26,7 +20,6 @@ EXTRA_DIST += \
|
|||||||
rhel/usr_share_openvswitch_scripts_ovs-systemd-reload \
|
rhel/usr_share_openvswitch_scripts_ovs-systemd-reload \
|
||||||
rhel/usr_share_openvswitch_scripts_sysconfig.template \
|
rhel/usr_share_openvswitch_scripts_sysconfig.template \
|
||||||
rhel/usr_share_openvswitch_scripts_systemd_sysconfig.template \
|
rhel/usr_share_openvswitch_scripts_systemd_sysconfig.template \
|
||||||
rhel/usr_share_openvswitch_scripts_ovs-kmod-manage.sh \
|
|
||||||
rhel/usr_lib_udev_rules.d_91-vfio.rules \
|
rhel/usr_lib_udev_rules.d_91-vfio.rules \
|
||||||
rhel/usr_lib_systemd_system_openvswitch.service \
|
rhel/usr_lib_systemd_system_openvswitch.service \
|
||||||
rhel/usr_lib_systemd_system_ovsdb-server.service \
|
rhel/usr_lib_systemd_system_ovsdb-server.service \
|
||||||
@ -41,15 +34,6 @@ update_rhel_spec = \
|
|||||||
< $(srcdir)/rhel/$(@F).in > $(@F).tmp || exit 1; \
|
< $(srcdir)/rhel/$(@F).in > $(@F).tmp || exit 1; \
|
||||||
if cmp -s $(@F).tmp $@; then touch $@; rm $(@F).tmp; else mv $(@F).tmp $@; fi
|
if cmp -s $(@F).tmp $@; then touch $@; rm $(@F).tmp; else mv $(@F).tmp $@; fi
|
||||||
|
|
||||||
$(srcdir)/rhel/openvswitch-dkms.spec: rhel/openvswitch-dkms.spec.in $(top_builddir)/config.status
|
|
||||||
$(update_rhel_spec)
|
|
||||||
|
|
||||||
$(srcdir)/rhel/kmod-openvswitch-rhel6.spec: rhel/kmod-openvswitch-rhel6.spec.in $(top_builddir)/config.status
|
|
||||||
$(update_rhel_spec)
|
|
||||||
|
|
||||||
$(srcdir)/rhel/openvswitch-kmod-fedora.spec: rhel/openvswitch-kmod-fedora.spec.in $(top_builddir)/config.status
|
|
||||||
$(update_rhel_spec)
|
|
||||||
|
|
||||||
$(srcdir)/rhel/openvswitch.spec: rhel/openvswitch.spec.in $(top_builddir)/config.status
|
$(srcdir)/rhel/openvswitch.spec: rhel/openvswitch.spec.in $(top_builddir)/config.status
|
||||||
$(update_rhel_spec)
|
$(update_rhel_spec)
|
||||||
|
|
||||||
@ -67,10 +51,3 @@ rpm-fedora: dist $(srcdir)/rhel/openvswitch-fedora.spec
|
|||||||
-D "_topdir ${RPMBUILD_TOP}" \
|
-D "_topdir ${RPMBUILD_TOP}" \
|
||||||
-ba $(srcdir)/rhel/openvswitch-fedora.spec
|
-ba $(srcdir)/rhel/openvswitch-fedora.spec
|
||||||
|
|
||||||
# Build kernel datapath RPM
|
|
||||||
rpm-fedora-kmod: dist $(srcdir)/rhel/openvswitch-kmod-fedora.spec
|
|
||||||
${MKDIR_P} ${RPMBUILD_TOP}/SOURCES
|
|
||||||
cp ${DIST_ARCHIVES} ${RPMBUILD_TOP}/SOURCES
|
|
||||||
rpmbuild -D "kversion $(shell uname -r)" ${RPMBUILD_OPT} \
|
|
||||||
-D "_topdir ${RPMBUILD_TOP}" \
|
|
||||||
-ba $(srcdir)/rhel/openvswitch-kmod-fedora.spec
|
|
||||||
|
@ -1,123 +0,0 @@
|
|||||||
# Spec file for Open vSwitch kernel modules on Red Hat Enterprise
|
|
||||||
# Linux 6.
|
|
||||||
|
|
||||||
# Copyright (C) 2011, 2012, 2018 Nicira, Inc.
|
|
||||||
#
|
|
||||||
# Copying and distribution of this file, with or without modification,
|
|
||||||
# are permitted in any medium without royalty provided the copyright
|
|
||||||
# notice and this notice are preserved. This file is offered as-is,
|
|
||||||
# without warranty of any kind.
|
|
||||||
|
|
||||||
%define oname openvswitch
|
|
||||||
%{!?release_number:%define release_number 1}
|
|
||||||
|
|
||||||
Name: kmod-%{oname}
|
|
||||||
Version: @VERSION@
|
|
||||||
Release: %{release_number}%{?dist}
|
|
||||||
Summary: Open vSwitch kernel module
|
|
||||||
|
|
||||||
Group: System/Kernel
|
|
||||||
License: GPLv2
|
|
||||||
URL: http://openvswitch.org/
|
|
||||||
Source0: %{oname}-%{version}.tar.gz
|
|
||||||
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
|
|
||||||
|
|
||||||
# Without this we get an empty openvswitch-debuginfo package (whose name
|
|
||||||
# conflicts with the openvswitch-debuginfo package for OVS userspace).
|
|
||||||
%undefine _enable_debug_packages
|
|
||||||
|
|
||||||
%define kernel_source_extended() /usr/src/kernels/%{2}$([ %{1} = default ] || echo ".%{1}")
|
|
||||||
|
|
||||||
# Use -D 'kversion 2.6.32-131.6.1.el6.x86_64' to build package
|
|
||||||
# for specified kernel version.
|
|
||||||
# Use -D 'kversion 3.10.0-693.1.1.el7.x86_64 3.10.0-693.17.1.el7.x86_64'
|
|
||||||
# to build package for mulitple kernel versions in the same package
|
|
||||||
# This only works for kernel 3.10.0 major revision 693 (RHEL 7.4)
|
|
||||||
# and major revision 327 (RHEL 7.2)
|
|
||||||
# By default, build against the latest installed kernel-devel
|
|
||||||
%{!?kversion:%global kversion %(rpm -qa | egrep "^kernel(-rt|-aarch64)?-devel" | /usr/lib/rpm/redhat/rpmsort -r | head -n 1| sed "s/^kernel.*-devel-//")}
|
|
||||||
|
|
||||||
# Use -D 'kflavors default debug kdump' to build packages for
|
|
||||||
# specified kernel variants.
|
|
||||||
%{!?kflavors:%global kflavors default}
|
|
||||||
|
|
||||||
%description
|
|
||||||
Open vSwitch Linux kernel module.
|
|
||||||
|
|
||||||
%prep
|
|
||||||
|
|
||||||
%setup -n %{oname}-%{version}
|
|
||||||
|
|
||||||
%build
|
|
||||||
for kv in %{kversion}; do
|
|
||||||
for flavor in %{kflavors}; do
|
|
||||||
mkdir -p _$flavor/_$kv
|
|
||||||
(cd _$flavor/_$kv && ../../configure --with-linux="%{kernel_source_extended $flavor $kv}")
|
|
||||||
%{__make} -C _$flavor/_$kv/datapath/linux %{?_smp_mflags}
|
|
||||||
done
|
|
||||||
done
|
|
||||||
|
|
||||||
%install
|
|
||||||
export INSTALL_MOD_PATH=$RPM_BUILD_ROOT
|
|
||||||
export INSTALL_MOD_DIR=extra/%{oname}
|
|
||||||
for kv in %{kversion}; do
|
|
||||||
for flavor in %{kflavors} ; do
|
|
||||||
make -C %{kernel_source_extended $flavor $kv} modules_install \
|
|
||||||
M="`pwd`"/_$flavor/_$kv/datapath/linux
|
|
||||||
# Cleanup unnecessary kernel-generated module dependency files.
|
|
||||||
find $INSTALL_MOD_PATH/lib/modules -iname 'modules.*' -exec rm {} \;
|
|
||||||
done
|
|
||||||
done
|
|
||||||
install -d %{buildroot}%{_sysconfdir}/depmod.d/
|
|
||||||
for kv in %{kversion}; do
|
|
||||||
for module in %{buildroot}/lib/modules/$kv/$INSTALL_MOD_DIR/*.ko;
|
|
||||||
do
|
|
||||||
modname="$(basename ${module})"
|
|
||||||
grep -qsPo "^\s*override ${modname%.ko} \* extra\/%{oname}" %{oname}.conf || \
|
|
||||||
echo "override ${modname%.ko} * extra/%{oname}" >> %{oname}.conf
|
|
||||||
grep -qsPo "^\s*override ${modname%.ko} \* weak-updates\/%{oname}" %{oname}.conf || \
|
|
||||||
echo "override ${modname%.ko} * weak-updates/%{oname}" >> %{oname}.conf
|
|
||||||
done
|
|
||||||
done
|
|
||||||
install -m 644 %{oname}.conf %{buildroot}%{_sysconfdir}/depmod.d/
|
|
||||||
install -d -m 0755 $RPM_BUILD_ROOT/usr/share/%{oname}/scripts
|
|
||||||
install -p -m 0755 rhel/usr_share_openvswitch_scripts_ovs-kmod-manage.sh \
|
|
||||||
$RPM_BUILD_ROOT/usr/share/%{oname}/scripts/ovs-kmod-manage.sh
|
|
||||||
|
|
||||||
%post
|
|
||||||
current_kernel=$(uname -r)
|
|
||||||
IFS=. read installed_major installed_minor installed_micro installed_arch \
|
|
||||||
installed_build <<<"${current_kernel##*-}"
|
|
||||||
if [ "$installed_major" = "327" ] || [ "$installed_major" = "693" ]; then
|
|
||||||
# Workaround for RHEL 7.2 and 7.4
|
|
||||||
if [ -x "/usr/share/%{oname}/scripts/ovs-kmod-manage.sh" ]; then
|
|
||||||
/usr/share/%{oname}/scripts/ovs-kmod-manage.sh
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
# Ensure that modprobe will find our modules.
|
|
||||||
for k in $(cd /lib/modules && /bin/ls); do
|
|
||||||
[ -d "/lib/modules/$k/kernel/" ] && /sbin/depmod -a "$k"
|
|
||||||
done
|
|
||||||
if [ -x "/sbin/weak-modules" ]; then
|
|
||||||
rpm -ql kmod-%{oname} | grep '\.ko$' | \
|
|
||||||
/sbin/weak-modules --add-modules
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
%postun
|
|
||||||
if [ "$1" = 0 ]; then # Erase, not upgrade
|
|
||||||
for kname in `ls -d /lib/modules/*`
|
|
||||||
do
|
|
||||||
rm -rf $kname/weak-updates/openvswitch
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
/sbin/depmod -a
|
|
||||||
|
|
||||||
%files
|
|
||||||
%defattr(644,root,root,755)
|
|
||||||
/etc/depmod.d/%{oname}.conf
|
|
||||||
/lib/modules/
|
|
||||||
%attr(755,root,root) /usr/share/%{oname}/scripts/ovs-kmod-manage.sh
|
|
||||||
|
|
||||||
%clean
|
|
||||||
rm -rf $RPM_BUILD_ROOT
|
|
@ -1,103 +0,0 @@
|
|||||||
# Spec file for Open vSwitch kernel modules using DKMS.
|
|
||||||
#
|
|
||||||
# Copyright (C) 2015 Nicira, Inc.
|
|
||||||
#
|
|
||||||
# Copying and distribution of this file, with or without modification,
|
|
||||||
# are permitted in any medium without royalty provided the copyright
|
|
||||||
# notice and this notice are preserved. This file is offered as-is,
|
|
||||||
# without warranty of any kind.
|
|
||||||
|
|
||||||
%define oname openvswitch
|
|
||||||
%{!?release_number:%define release_number 1}
|
|
||||||
|
|
||||||
Name: %{oname}-dkms
|
|
||||||
Version: @VERSION@
|
|
||||||
Release: %{release_number}%{?dist}
|
|
||||||
Summary: Open vSwitch kernel module
|
|
||||||
|
|
||||||
Group: System/Kernel
|
|
||||||
License: GPLv2
|
|
||||||
URL: http://openvswitch.org/
|
|
||||||
Source: %{oname}-%{version}.tar.gz
|
|
||||||
Requires: autoconf, gcc, make
|
|
||||||
Requires(post): dkms
|
|
||||||
Requires(preun): dkms
|
|
||||||
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
|
|
||||||
|
|
||||||
# Without this we get an empty openvswitch-debuginfo package (whose name
|
|
||||||
# conflicts with the openvswitch-debuginfo package for OVS userspace).
|
|
||||||
%undefine _enable_debug_packages
|
|
||||||
|
|
||||||
# Disable shebangs mangling
|
|
||||||
%undefine __brp_mangle_shebangs
|
|
||||||
|
|
||||||
%description
|
|
||||||
Open vSwitch Linux kernel module.
|
|
||||||
|
|
||||||
|
|
||||||
%prep
|
|
||||||
%setup -n %{oname}-%{version}
|
|
||||||
|
|
||||||
cat > %{oname}.conf << EOF
|
|
||||||
override %{oname} * extra/%{oname}
|
|
||||||
override %{oname} * weak-updates/%{oname}
|
|
||||||
EOF
|
|
||||||
|
|
||||||
|
|
||||||
%build
|
|
||||||
# for running the '%{__make} -C datapath print-build-modules' below.
|
|
||||||
./configure
|
|
||||||
|
|
||||||
|
|
||||||
%install
|
|
||||||
%{__rm} -rf %{buildroot}
|
|
||||||
|
|
||||||
# Kernel module sources install for dkms
|
|
||||||
%{__mkdir_p} %{buildroot}%{_usrsrc}/%{oname}-%{version}/
|
|
||||||
%{__cp} -r * %{buildroot}%{_usrsrc}/%{oname}-%{version}/
|
|
||||||
|
|
||||||
# check we can get kernel module names
|
|
||||||
%{__make} -C datapath print-build-modules
|
|
||||||
|
|
||||||
# Prepare dkms.conf
|
|
||||||
cat > %{buildroot}%{_usrsrc}/%{oname}-%{version}/dkms.conf << EOF
|
|
||||||
MODULES=( `%{__make} -C datapath print-build-modules | grep -v make` )
|
|
||||||
|
|
||||||
PACKAGE_NAME="openvswitch"
|
|
||||||
PACKAGE_VERSION="%{version}-%{release}"
|
|
||||||
MAKE="./configure --with-linux='\${kernel_source_dir}' && make -C datapath/linux"
|
|
||||||
for __idx in \${!MODULES[@]}; do
|
|
||||||
BUILT_MODULE_NAME[__idx]=\${MODULES[__idx]}
|
|
||||||
BUILT_MODULE_LOCATION[__idx]=datapath/linux/
|
|
||||||
DEST_MODULE_LOCATION[__idx]=/kernel/drivers/net/openvswitch/
|
|
||||||
done
|
|
||||||
AUTOINSTALL=yes
|
|
||||||
EOF
|
|
||||||
|
|
||||||
install -d %{buildroot}%{_sysconfdir}/depmod.d/
|
|
||||||
install -m 644 %{oname}.conf %{buildroot}%{_sysconfdir}/depmod.d/
|
|
||||||
|
|
||||||
|
|
||||||
%post
|
|
||||||
# Add to DKMS registry
|
|
||||||
isadded=`dkms status -m "%{oname}" -v "%{version}"`
|
|
||||||
if [ "x${isadded}" = "x" ] ; then
|
|
||||||
dkms add -m "%{oname}" -v "%{version}" || :
|
|
||||||
fi
|
|
||||||
dkms build -m "%{oname}" -v "%{version}" || :
|
|
||||||
dkms install -m "%{oname}" -v "%{version}" --force || :
|
|
||||||
|
|
||||||
|
|
||||||
%preun
|
|
||||||
# Remove all versions from DKMS registry
|
|
||||||
dkms remove -m "%{oname}" -v "%{version}" --all || :
|
|
||||||
|
|
||||||
|
|
||||||
%clean
|
|
||||||
%{__rm} -rf %{buildroot}
|
|
||||||
|
|
||||||
|
|
||||||
%files
|
|
||||||
%defattr(-,root,root)
|
|
||||||
%{_usrsrc}/%{oname}-%{version}/
|
|
||||||
/etc/depmod.d/openvswitch.conf
|
|
@ -17,9 +17,7 @@
|
|||||||
# These tests can be executed, for example, via:
|
# These tests can be executed, for example, via:
|
||||||
# rpmbuild -rb --with check_datapath_kernel openvswitch-fedora.src.rpm
|
# rpmbuild -rb --with check_datapath_kernel openvswitch-fedora.src.rpm
|
||||||
#
|
#
|
||||||
# These tests will use the currently installed OVS kernel modules, when
|
# These tests will use the currently installed OVS kernel modules.
|
||||||
# testing out of tree kernel modules the appropriate openvswitch-kmod
|
|
||||||
# package should be installed first.
|
|
||||||
|
|
||||||
#%define kernel 2.6.40.4-5.fc15.x86_64
|
#%define kernel 2.6.40.4-5.fc15.x86_64
|
||||||
|
|
||||||
@ -54,7 +52,6 @@ Version: @VERSION@
|
|||||||
|
|
||||||
# Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the
|
# Nearly all of openvswitch is ASL 2.0. The bugtool is LGPLv2+, and the
|
||||||
# lib/sflow*.[ch] files are SISSL
|
# lib/sflow*.[ch] files are SISSL
|
||||||
# datapath/ is GPLv2 (although not built into any of the binary packages)
|
|
||||||
License: ASL 2.0 and LGPLv2+ and SISSL
|
License: ASL 2.0 and LGPLv2+ and SISSL
|
||||||
Release: %{release_number}%{?dist}
|
Release: %{release_number}%{?dist}
|
||||||
Source: http://openvswitch.org/releases/%{name}-%{version}.tar.gz
|
Source: http://openvswitch.org/releases/%{name}-%{version}.tar.gz
|
||||||
|
@ -1,152 +0,0 @@
|
|||||||
# Spec file for Open vSwitch.
|
|
||||||
|
|
||||||
# Copyright (C) 2009, 2010, 2015, 2018 Nicira Networks, Inc.
|
|
||||||
#
|
|
||||||
# Copying and distribution of this file, with or without modification,
|
|
||||||
# are permitted in any medium without royalty provided the copyright
|
|
||||||
# notice and this notice are preserved. This file is offered as-is,
|
|
||||||
# without warranty of any kind.
|
|
||||||
|
|
||||||
%global debug_package %{nil}
|
|
||||||
|
|
||||||
# Use the kversion macro such as
|
|
||||||
# RPMBUILD_OPT='-D "kversion 3.10.0-693.1.1.el7.x86_64 3.10.0-693.17.1.el7.x86_64"'
|
|
||||||
# to build package for mulitple kernel versions in the same package
|
|
||||||
# This only works for the following kernels.
|
|
||||||
# - 3.10.0 major revision 327 (RHEL 7.2)
|
|
||||||
# - 3.10.0 major revision 693 (RHEL 7.4)
|
|
||||||
# - 3.10.0 major revision 957 (RHEL 7.6)
|
|
||||||
# - 3.10.0 major revision 1062 (RHEL 7.7)
|
|
||||||
# - 3.10.0 major revision 1101 (RHEL 7.8 Beta)
|
|
||||||
# - 3.10.0 major revision 1127 (RHEL 7.8 GA)
|
|
||||||
# - 3.10.0 major revision 1160 (RHEL 7.9 GA)
|
|
||||||
# By default, build against the current running kernel version
|
|
||||||
#%define kernel 3.1.5-1.fc16.x86_64
|
|
||||||
#define kernel %{kernel_source}
|
|
||||||
%{?kversion:%define kernel %kversion}
|
|
||||||
|
|
||||||
%{!?release_number:%define release_number 1}
|
|
||||||
|
|
||||||
Name: openvswitch-kmod
|
|
||||||
Summary: Open vSwitch Kernel Modules
|
|
||||||
Group: System Environment/Daemons
|
|
||||||
URL: http://www.openvswitch.org/
|
|
||||||
Vendor: OpenSource Security Ralf Spenneberg <ralf@os-s.net>
|
|
||||||
Version: @VERSION@
|
|
||||||
|
|
||||||
# The entire source code is ASL 2.0 except datapath/ which is GPLv2
|
|
||||||
License: GPLv2
|
|
||||||
Release: %{release_number}%{?dist}
|
|
||||||
Source: openvswitch-%{version}.tar.gz
|
|
||||||
#Source1: openvswitch-init
|
|
||||||
Buildroot: /tmp/openvswitch-xen-rpm
|
|
||||||
Provides: kmod-openvswitch
|
|
||||||
Obsoletes: kmod-openvswitch < %{version}-%{release}
|
|
||||||
|
|
||||||
%description
|
|
||||||
Open vSwitch provides standard network bridging functions augmented with
|
|
||||||
support for the OpenFlow protocol for remote per-flow control of
|
|
||||||
traffic. This package contains the kernel modules.
|
|
||||||
|
|
||||||
%prep
|
|
||||||
%setup -q -n openvswitch-%{version}
|
|
||||||
|
|
||||||
%build
|
|
||||||
for kv in %{kversion}; do
|
|
||||||
mkdir -p _$kv
|
|
||||||
(cd _$kv && /bin/cp -f ../configure . && %configure --srcdir=.. \
|
|
||||||
--with-linux=/lib/modules/${kv}/build --enable-ssl %{_ovs_config_extra_flags})
|
|
||||||
make %{_smp_mflags} -C _$kv/datapath/linux
|
|
||||||
done
|
|
||||||
|
|
||||||
%install
|
|
||||||
export INSTALL_MOD_DIR=extra/openvswitch
|
|
||||||
rm -rf $RPM_BUILD_ROOT
|
|
||||||
for kv in %{kversion}; do
|
|
||||||
make INSTALL_MOD_PATH=$RPM_BUILD_ROOT -C _$kv/datapath/linux modules_install
|
|
||||||
done
|
|
||||||
mkdir -p $RPM_BUILD_ROOT/etc/depmod.d
|
|
||||||
for kv in %{kversion}; do
|
|
||||||
for module in $RPM_BUILD_ROOT/lib/modules/${kv}/extra/openvswitch/*.ko
|
|
||||||
do
|
|
||||||
modname="$(basename ${module})"
|
|
||||||
grep -qsPo "^\s*override ${modname%.ko} \* extra\/openvwitch" \
|
|
||||||
$RPM_BUILD_ROOT/etc/depmod.d/kmod-openvswitch.conf || \
|
|
||||||
echo "override ${modname%.ko} * extra/openvswitch" >> \
|
|
||||||
$RPM_BUILD_ROOT/etc/depmod.d/kmod-openvswitch.conf
|
|
||||||
grep -qsPo "^\s*override ${modname%.ko} \* weak-updates\/openvwitch" \
|
|
||||||
$RPM_BUILD_ROOT/etc/depmod.d/kmod-openvswitch.conf || \
|
|
||||||
echo "override ${modname%.ko} * weak-updates/openvswitch" >> \
|
|
||||||
$RPM_BUILD_ROOT/etc/depmod.d/kmod-openvswitch.conf
|
|
||||||
done
|
|
||||||
done
|
|
||||||
install -d -m 0755 $RPM_BUILD_ROOT/usr/share/openvswitch/scripts
|
|
||||||
install -p -m 0755 rhel/usr_share_openvswitch_scripts_ovs-kmod-manage.sh \
|
|
||||||
$RPM_BUILD_ROOT%{_datadir}/openvswitch/scripts/ovs-kmod-manage.sh
|
|
||||||
|
|
||||||
%clean
|
|
||||||
rm -rf $RPM_BUILD_ROOT
|
|
||||||
|
|
||||||
%post
|
|
||||||
current_kernel=$(uname -r)
|
|
||||||
IFS='.\|-' read mainline_major mainline_minor mainline_patch major_rev \
|
|
||||||
minor_rev _extra <<<"${current_kernel}"
|
|
||||||
# echo mainline_major=$mainline_major mainline_minor=$mainline_minor \
|
|
||||||
# mainline_patch=$mainline_patch major_rev=$major_rev minor_rev=$minor_rev
|
|
||||||
if grep -qs "suse" /etc/os-release; then
|
|
||||||
# For SLES or OpenSUSE
|
|
||||||
if [ -x "%{_datadir}/openvswitch/scripts/ovs-kmod-manage.sh" ]; then
|
|
||||||
%{_datadir}/openvswitch/scripts/ovs-kmod-manage.sh
|
|
||||||
fi
|
|
||||||
elif [ "$mainline_major" = "3" ] && [ "$mainline_minor" = "10" ] &&
|
|
||||||
{ [ "$major_rev" = "327" ] || [ "$major_rev" = "693" ] || \
|
|
||||||
[ "$major_rev" = "957" ] || [ "$major_rev" == "1062" ] || \
|
|
||||||
[ "$major_rev" = "1101" ] || [ "$major_rev" = "1127" ] || \
|
|
||||||
[ "$major_rev" = "1160" ] ; }; then
|
|
||||||
# For RHEL 7.2, 7.4, 7.6, 7.7, 7.8 and 7.9
|
|
||||||
if [ -x "%{_datadir}/openvswitch/scripts/ovs-kmod-manage.sh" ]; then
|
|
||||||
%{_datadir}/openvswitch/scripts/ovs-kmod-manage.sh
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
# Ensure that modprobe will find our modules.
|
|
||||||
for k in $(cd /lib/modules && /bin/ls); do
|
|
||||||
[ -d "/lib/modules/$k/kernel/" ] && /sbin/depmod -a "$k"
|
|
||||||
done
|
|
||||||
if [ -x "/sbin/weak-modules" ]; then
|
|
||||||
for m in openvswitch vport-gre vport-stt vport-geneve \
|
|
||||||
vport-lisp vport-vxlan; do
|
|
||||||
echo "/lib/modules/%{kernel}/extra/openvswitch/$m.ko"
|
|
||||||
done | /sbin/weak-modules --add-modules
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
%postun
|
|
||||||
if [ "$1" = 0 ]; then # Erase, not upgrade
|
|
||||||
for kname in `ls -d /lib/modules/*`
|
|
||||||
do
|
|
||||||
rm -rf $kname/weak-updates/openvswitch
|
|
||||||
done
|
|
||||||
fi
|
|
||||||
/sbin/depmod -a
|
|
||||||
|
|
||||||
%posttrans
|
|
||||||
# The upgrade path from the older kmod-openvswitch SysV package to
|
|
||||||
# the newer openvswitch-kmod systemd package will end up removing
|
|
||||||
# the symlinks to the weak-updates/openvswitch drivers because of
|
|
||||||
# it's %postun section. We add this section to handle that case.
|
|
||||||
if [ -x "%{_datadir}/openvswitch/scripts/ovs-kmod-manage.sh" ]; then
|
|
||||||
%{_datadir}/openvswitch/scripts/ovs-kmod-manage.sh
|
|
||||||
fi
|
|
||||||
|
|
||||||
%files
|
|
||||||
%defattr(0644,root,root)
|
|
||||||
/lib/modules/*/extra/openvswitch/*.ko
|
|
||||||
/etc/depmod.d/kmod-openvswitch.conf
|
|
||||||
%exclude /lib/modules/*/modules.*
|
|
||||||
%attr(755,root,root) %{_datadir}/openvswitch/scripts/ovs-kmod-manage.sh
|
|
||||||
|
|
||||||
%changelog
|
|
||||||
* Wed Sep 21 2011 Kyle Mestery <kmestery@cisco.com>
|
|
||||||
- Updated for F15
|
|
||||||
* Wed Jan 12 2011 Ralf Spenneberg <ralf@os-s.net>
|
|
||||||
- First build on F14
|
|
@ -17,9 +17,7 @@
|
|||||||
# These tests can be executed, for example, via:
|
# These tests can be executed, for example, via:
|
||||||
# rpmbuild -rb --with check_datapath_kernel openvswitch.src.rpm
|
# rpmbuild -rb --with check_datapath_kernel openvswitch.src.rpm
|
||||||
#
|
#
|
||||||
# These tests will use the currently installed OVS kernel modules, when
|
# These tests will use the currently installed OVS kernel modules.
|
||||||
# testing out of tree kernel modules the appropriate openvswitch-kmod
|
|
||||||
# package should be installed first.
|
|
||||||
|
|
||||||
%{!?release_number:%define release_number 1}
|
%{!?release_number:%define release_number 1}
|
||||||
|
|
||||||
|
@ -1,237 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
# Copyright (c) 2018 Nicira/VMware, Inc.
|
|
||||||
#
|
|
||||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
||||||
# you may not use this file except in compliance with the License.
|
|
||||||
# You may obtain a copy of the License at:
|
|
||||||
#
|
|
||||||
# http://www.apache.org/licenses/LICENSE-2.0
|
|
||||||
#
|
|
||||||
# Unless required by applicable law or agreed to in writing, software
|
|
||||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
||||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
||||||
# See the License for the specific language governing permissions and
|
|
||||||
# limitations under the License.
|
|
||||||
|
|
||||||
# This script is intended to be used on the following kernels.
|
|
||||||
# - 3.10.0 major revision 327 (RHEL 7.2)
|
|
||||||
# - 3.10.0 major revision 693 (RHEL 7.4)
|
|
||||||
# - 3.10.0 major revision 957 (RHEL 7.6)
|
|
||||||
# - 3.10.0 major revision 1062 (RHEL 7.7)
|
|
||||||
# - 3.10.0 major revision 1101 (RHEL 7.8 Beta)
|
|
||||||
# - 3.10.0 major revision 1127 (RHEL 7.8 GA)
|
|
||||||
# - 3.10.0 major revision 1160 (RHEL 7.9)
|
|
||||||
# - 4.4.x, x >= 73 (SLES 12 SP3)
|
|
||||||
# - 4.12.x, x >= 14 (SLES 12 SP4).
|
|
||||||
# - 4.18.x major revision 305 (RHEL 8.4)
|
|
||||||
# It is packaged in the openvswitch kmod RPM and run in the post-install
|
|
||||||
# scripts.
|
|
||||||
#
|
|
||||||
# For kernel 3.10.0-957,
|
|
||||||
# due to some backward incompatible changes introduced in minor revision 12.1,
|
|
||||||
# kernel modules built against kernels newer than 12.1 cannot be loaded on
|
|
||||||
# system running kernels older than 12.1, vice versa.
|
|
||||||
#
|
|
||||||
# For kernel 3.10.0-693,
|
|
||||||
# due to some backward incompatible changes introduced in minor revision 17.1,
|
|
||||||
# kernel modules built against kernels newer than 17.1 cannot be loaded on
|
|
||||||
# system running kernels older than 17.1, vice versa.
|
|
||||||
#
|
|
||||||
# For kernel 3.10.0-327,
|
|
||||||
# due to some backward incompatible changes introduced in minor revision 41.3,
|
|
||||||
# kernel modules built against kernels newer than 41.3 cannot be loaded on
|
|
||||||
# system running kernels older than 41.3, vice versa.
|
|
||||||
#
|
|
||||||
# For kernel >= 4.4.73,
|
|
||||||
# kernel modules built with 4.4.73 can run on systems with kernel versions from
|
|
||||||
# 4.4.73 to 4.4.114; modules built against 4.4.120 can run on systems from
|
|
||||||
# 4.4.120 onwards.
|
|
||||||
#
|
|
||||||
# For kernel 4.12.x, x>=14,
|
|
||||||
# kernel modules built with the oldest compatible kernel 4.12.14-94.41.1 can
|
|
||||||
# run on all versions onwards.
|
|
||||||
#
|
|
||||||
# This script checks the current running kernel version, and update symlinks
|
|
||||||
# for the openvswitch kernel modules in the appropriate kernel directory,
|
|
||||||
# provided the kmod RPM has installed kernel modules files built from both
|
|
||||||
# minor revisions.
|
|
||||||
#
|
|
||||||
# In case of a kernel minor revision change after the openvswitch kmod package
|
|
||||||
# is installed, this script shall be run manually after system reboots and
|
|
||||||
# switches to a different kernel
|
|
||||||
if [ -n "$(rpm -qa kmod-openvswitch)" ]; then
|
|
||||||
rpmname="kmod-openvswitch"
|
|
||||||
elif [ -n "$(rpm -qa openvswitch-kmod)" ]; then
|
|
||||||
rpmname="openvswitch-kmod"
|
|
||||||
else
|
|
||||||
echo "openvswitch kmod package not installed, existing"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
#echo $rpmname
|
|
||||||
script_name=$(basename -- "$0")
|
|
||||||
current_kernel=$(uname -r)
|
|
||||||
echo current kernel is $current_kernel
|
|
||||||
|
|
||||||
IFS='.\|-' read mainline_major mainline_minor mainline_patch major_rev \
|
|
||||||
minor_rev _extra <<<"${current_kernel}"
|
|
||||||
# echo mainline_major=$mainline_major mainline_minor=$mainline_minor \
|
|
||||||
# mainline_patch=$mainline_patch major_rev=$major_rev minor_rev=$minor_rev
|
|
||||||
|
|
||||||
expected_rhel_base_minor="el7"
|
|
||||||
if [ "$mainline_major" = "3" ] && [ "$mainline_minor" = "10" ]; then
|
|
||||||
if [ "$major_rev" = "327" ]; then
|
|
||||||
# echo "rhel72"
|
|
||||||
comp_ver=36
|
|
||||||
ver_offset=4
|
|
||||||
installed_ver="$minor_rev"
|
|
||||||
elif [ "$major_rev" = "514" ]; then
|
|
||||||
# echo "rhel73"
|
|
||||||
comp_ver=26
|
|
||||||
ver_offset=4
|
|
||||||
installed_ver="$minor_rev"
|
|
||||||
elif [ "$major_rev" = "693" ]; then
|
|
||||||
# echo "rhel74"
|
|
||||||
comp_ver=11
|
|
||||||
ver_offset=4
|
|
||||||
installed_ver="$minor_rev"
|
|
||||||
elif [ "$major_rev" = "862" ]; then
|
|
||||||
# echo "rhel75"
|
|
||||||
comp_ver=20
|
|
||||||
ver_offset=4
|
|
||||||
installed_ver="$minor_rev"
|
|
||||||
elif [ "$major_rev" = "957" ]; then
|
|
||||||
# echo "rhel76"
|
|
||||||
comp_ver=10
|
|
||||||
ver_offset=4
|
|
||||||
installed_ver="$minor_rev"
|
|
||||||
elif [ "$major_rev" = "1062" ]; then
|
|
||||||
# echo "rhel77"
|
|
||||||
comp_ver=10
|
|
||||||
ver_offset=4
|
|
||||||
installed_ver="$minor_rev"
|
|
||||||
elif [ "$major_rev" = "1101" ]; then
|
|
||||||
# echo "rhel78"
|
|
||||||
comp_ver=10
|
|
||||||
ver_offset=4
|
|
||||||
installed_ver="$minor_rev"
|
|
||||||
elif [ "$major_rev" = "1127" ]; then
|
|
||||||
# echo "rhel78"
|
|
||||||
comp_ver=10
|
|
||||||
ver_offset=4
|
|
||||||
installed_ver="$minor_rev"
|
|
||||||
elif [ "$major_rev" = "1160" ]; then
|
|
||||||
# echo "rhel79"
|
|
||||||
comp_ver=10
|
|
||||||
ver_offset=4
|
|
||||||
installed_ver="$minor_rev"
|
|
||||||
fi
|
|
||||||
elif [ "$mainline_major" = "4" ] && [ "$mainline_minor" = "4" ]; then
|
|
||||||
if [ "$mainline_patch" -ge "73" ]; then
|
|
||||||
# echo "sles12sp3"
|
|
||||||
comp_ver=114
|
|
||||||
ver_offset=2
|
|
||||||
installed_ver="$mainline_patch"
|
|
||||||
fi
|
|
||||||
elif [ "$mainline_major" = "4" ] && [ "$mainline_minor" = "12" ]; then
|
|
||||||
if [ "$mainline_patch" -ge "14" ]; then
|
|
||||||
# echo "sles12sp4"
|
|
||||||
comp_ver=1
|
|
||||||
ver_offset=2
|
|
||||||
installed_ver="$mainline_patch"
|
|
||||||
fi
|
|
||||||
elif [ "$mainline_major" = "4" ] && [ "$mainline_minor" = "18" ]; then
|
|
||||||
if [ "$major_rev" = "305" ]; then
|
|
||||||
echo "rhel84"
|
|
||||||
comp_ver=9
|
|
||||||
ver_offset=4
|
|
||||||
installed_ver="$minor_rev"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ X"$ver_offset" = X ]; then
|
|
||||||
# echo "This script is not intended to run on kernel $(uname -r)"
|
|
||||||
exit 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
#IFS='.\|-' read -r -a version_nums <<<"${current_kernel}"
|
|
||||||
#echo ver_offset=$ver_offset
|
|
||||||
#echo installed_ver="$installed_ver"
|
|
||||||
#echo installed_ver="${version_nums[$ver_offset]}"
|
|
||||||
|
|
||||||
kmod_versions=()
|
|
||||||
kversion=$(rpm -ql ${rpmname} | grep '\.ko$' | \
|
|
||||||
sed -n -e 's/^\/lib\/modules\/\(.*\)\/extra\/.*$/\1/p' | \
|
|
||||||
sort | uniq)
|
|
||||||
|
|
||||||
IFS='.\|-' read installed_major installed_minor installed_patch \
|
|
||||||
installed_major_rev installed_minor_rev installed_extra <<<"${kversion}"
|
|
||||||
|
|
||||||
if [ "$installed_major_rev" -lt "$major_rev" ]; then
|
|
||||||
echo "Not installing RPM with major revision $installed_major_rev" \
|
|
||||||
"to kernel with greater major revision $major_rev. Exiting"
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
for kv in $kversion; do
|
|
||||||
IFS='.\|-' read -r -a kv_nums <<<"${kv}"
|
|
||||||
kmod_versions+=(${kv_nums[$ver_offset]})
|
|
||||||
done
|
|
||||||
sorted_kmod_vers=$(printf "%s\n" "${kmod_versions[@]}" | \
|
|
||||||
sort -n)
|
|
||||||
#echo "$sorted_kmod_vers"
|
|
||||||
|
|
||||||
if [ ! -n "$sorted_kmod_vers" ]; then
|
|
||||||
echo "No kernel modules found from package $rpmname, exiting"
|
|
||||||
exit 1
|
|
||||||
else
|
|
||||||
# first line for kmod_low_ver, last for kmod_high_ver
|
|
||||||
kmod_low_ver=$(echo "$sorted_kmod_vers" | head -1)
|
|
||||||
kmod_high_ver=$(echo "$sorted_kmod_vers" | tail -1)
|
|
||||||
fi
|
|
||||||
#echo "Installing KMOD with minor revisions $kmod_low_ver and \
|
|
||||||
#$kmod_high_ver"
|
|
||||||
|
|
||||||
found_match=false
|
|
||||||
for kname in $kversion;
|
|
||||||
do
|
|
||||||
IFS='.\|-' read -r -a pkg_ver_nums <<<"${kname}"
|
|
||||||
pkg_ver=${pkg_ver_nums[$ver_offset]}
|
|
||||||
if [ "$installed_ver" = "$expected_rhel_base_minor" ] ||
|
|
||||||
[ "$installed_ver" -le "$comp_ver" ]; then
|
|
||||||
if [ "$pkg_ver" = "$kmod_low_ver" ]; then
|
|
||||||
requested_kernel=$kname
|
|
||||||
found_match="true"
|
|
||||||
echo "Installing Openvswitch KMOD from kernel $kname"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
else
|
|
||||||
if [ "$pkg_ver" = "$kmod_high_ver" ]; then
|
|
||||||
requested_kernel=$kname
|
|
||||||
found_match="true"
|
|
||||||
echo "Installing Openvswitch KMOD from kernel $kname"
|
|
||||||
break
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ "$found_match" = "false" ]; then
|
|
||||||
echo $script_name: Failed
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ "$requested_kernel" != "$current_kernel" ]; then
|
|
||||||
if [ ! -d /lib/modules/$current_kernel/weak-updates/openvswitch ]; then
|
|
||||||
mkdir -p /lib/modules/$current_kernel/weak-updates
|
|
||||||
mkdir -p /lib/modules/$current_kernel/weak-updates/openvswitch
|
|
||||||
fi
|
|
||||||
for m in openvswitch vport-gre vport-stt vport-geneve \
|
|
||||||
vport-lisp vport-vxlan; do
|
|
||||||
ln -f -s /lib/modules/$requested_kernel/extra/openvswitch/$m.ko \
|
|
||||||
/lib/modules/$current_kernel/weak-updates/openvswitch/$m.ko
|
|
||||||
done
|
|
||||||
else
|
|
||||||
echo Proper OVS kernel modules already configured
|
|
||||||
fi
|
|
||||||
# Always run depmod
|
|
||||||
/sbin/depmod -a
|
|
Loading…
x
Reference in New Issue
Block a user