2012-10-02 14:31:55 -04:00
|
|
|
# Spec file for Open vSwitch.
|
|
|
|
|
2018-08-20 14:24:05 -07:00
|
|
|
# Copyright (C) 2009, 2010, 2015, 2018 Nicira Networks, Inc.
|
2012-10-02 14:31:55 -04:00
|
|
|
#
|
|
|
|
# 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.
|
|
|
|
|
2016-01-28 15:23:00 -05:00
|
|
|
%global debug_package %{nil}
|
|
|
|
|
2018-08-20 14:24:05 -07:00
|
|
|
# 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
|
2019-12-04 17:10:27 -08:00
|
|
|
# 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)
|
2020-06-17 08:38:40 -07:00
|
|
|
# - 3.10.0 major revision 1101 (RHEL 7.8 Beta)
|
|
|
|
# - 3.10.0 major revision 1127 (RHEL 7.8 GA)
|
2020-11-17 15:26:13 -08:00
|
|
|
# - 3.10.0 major revision 1160 (RHEL 7.9 GA)
|
2018-08-20 14:24:05 -07:00
|
|
|
# By default, build against the current running kernel version
|
2012-10-02 14:31:55 -04:00
|
|
|
#%define kernel 3.1.5-1.fc16.x86_64
|
|
|
|
#define kernel %{kernel_source}
|
|
|
|
%{?kversion:%define kernel %kversion}
|
|
|
|
|
2021-05-27 05:10:07 +00:00
|
|
|
%{!?release_number:%define release_number 1}
|
|
|
|
|
2012-10-02 14:31:55 -04:00
|
|
|
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
|
2021-05-27 05:10:07 +00:00
|
|
|
Release: %{release_number}%{?dist}
|
2012-10-02 14:31:55 -04:00
|
|
|
Source: openvswitch-%{version}.tar.gz
|
|
|
|
#Source1: openvswitch-init
|
|
|
|
Buildroot: /tmp/openvswitch-xen-rpm
|
2018-08-20 14:24:05 -07:00
|
|
|
Provides: kmod-openvswitch
|
2019-01-22 15:02:30 -08:00
|
|
|
Obsoletes: kmod-openvswitch < %{version}-%{release}
|
2012-10-02 14:31:55 -04:00
|
|
|
|
|
|
|
%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
|
2018-08-20 14:24:05 -07:00
|
|
|
for kv in %{kversion}; do
|
|
|
|
mkdir -p _$kv
|
|
|
|
(cd _$kv && /bin/cp -f ../configure . && %configure --srcdir=.. \
|
2018-08-31 11:52:42 -07:00
|
|
|
--with-linux=/lib/modules/${kv}/build --enable-ssl %{_ovs_config_extra_flags})
|
2018-08-20 14:24:05 -07:00
|
|
|
make %{_smp_mflags} -C _$kv/datapath/linux
|
|
|
|
done
|
2012-10-02 14:31:55 -04:00
|
|
|
|
|
|
|
%install
|
2018-08-20 14:24:05 -07:00
|
|
|
export INSTALL_MOD_DIR=extra/openvswitch
|
2012-10-02 14:31:55 -04:00
|
|
|
rm -rf $RPM_BUILD_ROOT
|
2018-08-20 14:24:05 -07:00
|
|
|
for kv in %{kversion}; do
|
|
|
|
make INSTALL_MOD_PATH=$RPM_BUILD_ROOT -C _$kv/datapath/linux modules_install
|
|
|
|
done
|
2016-01-28 15:23:00 -05:00
|
|
|
mkdir -p $RPM_BUILD_ROOT/etc/depmod.d
|
2018-08-20 14:24:05 -07:00
|
|
|
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
|
2016-01-28 15:23:00 -05:00
|
|
|
done
|
2018-08-20 14:24:05 -07:00
|
|
|
install -d -m 0755 $RPM_BUILD_ROOT/usr/share/openvswitch/scripts
|
|
|
|
install -p -m 0755 rhel/usr_share_openvswitch_scripts_ovs-kmod-manage.sh \
|
2018-09-20 12:19:29 -07:00
|
|
|
$RPM_BUILD_ROOT%{_datadir}/openvswitch/scripts/ovs-kmod-manage.sh
|
2012-10-02 14:31:55 -04:00
|
|
|
|
|
|
|
%clean
|
|
|
|
rm -rf $RPM_BUILD_ROOT
|
|
|
|
|
|
|
|
%post
|
2018-08-20 14:24:05 -07:00
|
|
|
current_kernel=$(uname -r)
|
2018-09-05 09:25:37 -07:00
|
|
|
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
|
2019-05-20 12:39:10 -07:00
|
|
|
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
|
2019-07-08 09:51:29 -07:00
|
|
|
elif [ "$mainline_major" = "3" ] && [ "$mainline_minor" = "10" ] &&
|
|
|
|
{ [ "$major_rev" = "327" ] || [ "$major_rev" = "693" ] || \
|
2019-12-04 17:10:27 -08:00
|
|
|
[ "$major_rev" = "957" ] || [ "$major_rev" == "1062" ] || \
|
2020-11-17 15:26:13 -08:00
|
|
|
[ "$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
|
2019-07-08 09:51:29 -07:00
|
|
|
if [ -x "%{_datadir}/openvswitch/scripts/ovs-kmod-manage.sh" ]; then
|
|
|
|
%{_datadir}/openvswitch/scripts/ovs-kmod-manage.sh
|
2018-08-20 14:24:05 -07:00
|
|
|
fi
|
|
|
|
else
|
|
|
|
# Ensure that modprobe will find our modules.
|
|
|
|
for k in $(cd /lib/modules && /bin/ls); do
|
2018-08-31 11:52:40 -07:00
|
|
|
[ -d "/lib/modules/$k/kernel/" ] && /sbin/depmod -a "$k"
|
2018-08-20 14:24:05 -07:00
|
|
|
done
|
2018-01-16 08:44:15 -08:00
|
|
|
if [ -x "/sbin/weak-modules" ]; then
|
|
|
|
for m in openvswitch vport-gre vport-stt vport-geneve \
|
|
|
|
vport-lisp vport-vxlan; do
|
2018-08-20 14:24:05 -07:00
|
|
|
echo "/lib/modules/%{kernel}/extra/openvswitch/$m.ko"
|
|
|
|
done | /sbin/weak-modules --add-modules
|
2018-01-16 08:44:15 -08:00
|
|
|
fi
|
|
|
|
fi
|
2012-10-02 14:31:55 -04:00
|
|
|
|
2018-08-20 14:24:05 -07:00
|
|
|
%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
|
|
|
|
|
2019-06-25 11:45:52 -07:00
|
|
|
%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
|
|
|
|
|
2012-10-02 14:31:55 -04:00
|
|
|
%files
|
2016-01-28 15:23:00 -05:00
|
|
|
%defattr(0644,root,root)
|
2018-08-20 14:24:05 -07:00
|
|
|
/lib/modules/*/extra/openvswitch/*.ko
|
2016-01-28 15:23:00 -05:00
|
|
|
/etc/depmod.d/kmod-openvswitch.conf
|
2018-08-20 14:24:05 -07:00
|
|
|
%exclude /lib/modules/*/modules.*
|
2018-09-20 12:19:29 -07:00
|
|
|
%attr(755,root,root) %{_datadir}/openvswitch/scripts/ovs-kmod-manage.sh
|
2012-10-02 14:31:55 -04:00
|
|
|
|
|
|
|
%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
|