]> git.proxmox.com Git - mirror_ovs.git/blame - rhel/openvswitch-kmod-fedora.spec.in
rhel: Support RHEL 7.8 kernel module rpm build.
[mirror_ovs.git] / rhel / openvswitch-kmod-fedora.spec.in
CommitLineData
d8fe0a6a
RS
1# Spec file for Open vSwitch.
2
22c33c30 3# Copyright (C) 2009, 2010, 2015, 2018 Nicira Networks, Inc.
d8fe0a6a
RS
4#
5# Copying and distribution of this file, with or without modification,
6# are permitted in any medium without royalty provided the copyright
7# notice and this notice are preserved. This file is offered as-is,
8# without warranty of any kind.
9
8c7c9dd2
RB
10%global debug_package %{nil}
11
22c33c30
MX
12# Use the kversion macro such as
13# RPMBUILD_OPT='-D "kversion 3.10.0-693.1.1.el7.x86_64 3.10.0-693.17.1.el7.x86_64"'
14# to build package for mulitple kernel versions in the same package
391b52f3
YHW
15# This only works for the following kernels.
16# - 3.10.0 major revision 327 (RHEL 7.2)
17# - 3.10.0 major revision 693 (RHEL 7.4)
18# - 3.10.0 major revision 957 (RHEL 7.6)
19# - 3.10.0 major revision 1062 (RHEL 7.7)
fecb2805
WT
20# - 3.10.0 major revision 1101 (RHEL 7.8 Beta)
21# - 3.10.0 major revision 1127 (RHEL 7.8 GA)
22c33c30 22# By default, build against the current running kernel version
d8fe0a6a
RS
23#%define kernel 3.1.5-1.fc16.x86_64
24#define kernel %{kernel_source}
25%{?kversion:%define kernel %kversion}
26
27Name: openvswitch-kmod
28Summary: Open vSwitch Kernel Modules
29Group: System Environment/Daemons
30URL: http://www.openvswitch.org/
31Vendor: OpenSource Security Ralf Spenneberg <ralf@os-s.net>
32Version: @VERSION@
33
34# The entire source code is ASL 2.0 except datapath/ which is GPLv2
35License: GPLv2
36Release: 1%{?dist}
37Source: openvswitch-%{version}.tar.gz
38#Source1: openvswitch-init
39Buildroot: /tmp/openvswitch-xen-rpm
22c33c30 40Provides: kmod-openvswitch
9fe4b2fb 41Obsoletes: kmod-openvswitch < %{version}-%{release}
d8fe0a6a
RS
42
43%description
44Open vSwitch provides standard network bridging functions augmented with
45support for the OpenFlow protocol for remote per-flow control of
46traffic. This package contains the kernel modules.
47
48%prep
49%setup -q -n openvswitch-%{version}
50
51%build
22c33c30
MX
52for kv in %{kversion}; do
53 mkdir -p _$kv
54 (cd _$kv && /bin/cp -f ../configure . && %configure --srcdir=.. \
eac9f266 55 --with-linux=/lib/modules/${kv}/build --enable-ssl %{_ovs_config_extra_flags})
22c33c30
MX
56 make %{_smp_mflags} -C _$kv/datapath/linux
57done
d8fe0a6a
RS
58
59%install
22c33c30 60export INSTALL_MOD_DIR=extra/openvswitch
d8fe0a6a 61rm -rf $RPM_BUILD_ROOT
22c33c30
MX
62for kv in %{kversion}; do
63 make INSTALL_MOD_PATH=$RPM_BUILD_ROOT -C _$kv/datapath/linux modules_install
64done
8c7c9dd2 65mkdir -p $RPM_BUILD_ROOT/etc/depmod.d
22c33c30
MX
66for kv in %{kversion}; do
67 for module in $RPM_BUILD_ROOT/lib/modules/${kv}/extra/openvswitch/*.ko
68 do
69 modname="$(basename ${module})"
70 grep -qsPo "^\s*override ${modname%.ko} \* extra\/openvwitch" \
71 $RPM_BUILD_ROOT/etc/depmod.d/kmod-openvswitch.conf || \
72 echo "override ${modname%.ko} * extra/openvswitch" >> \
73 $RPM_BUILD_ROOT/etc/depmod.d/kmod-openvswitch.conf
74 grep -qsPo "^\s*override ${modname%.ko} \* weak-updates\/openvwitch" \
75 $RPM_BUILD_ROOT/etc/depmod.d/kmod-openvswitch.conf || \
76 echo "override ${modname%.ko} * weak-updates/openvswitch" >> \
77 $RPM_BUILD_ROOT/etc/depmod.d/kmod-openvswitch.conf
78 done
8c7c9dd2 79done
22c33c30
MX
80install -d -m 0755 $RPM_BUILD_ROOT/usr/share/openvswitch/scripts
81install -p -m 0755 rhel/usr_share_openvswitch_scripts_ovs-kmod-manage.sh \
8821b212 82 $RPM_BUILD_ROOT%{_datadir}/openvswitch/scripts/ovs-kmod-manage.sh
d8fe0a6a
RS
83
84%clean
85rm -rf $RPM_BUILD_ROOT
86
d8fe0a6a 87%post
22c33c30 88current_kernel=$(uname -r)
c3570519
MX
89IFS='.\|-' read mainline_major mainline_minor mainline_patch major_rev \
90 minor_rev _extra <<<"${current_kernel}"
91# echo mainline_major=$mainline_major mainline_minor=$mainline_minor \
92# mainline_patch=$mainline_patch major_rev=$major_rev minor_rev=$minor_rev
402efbe4
YHW
93if grep -qs "suse" /etc/os-release; then
94 # For SLES or OpenSUSE
95 if [ -x "%{_datadir}/openvswitch/scripts/ovs-kmod-manage.sh" ]; then
96 %{_datadir}/openvswitch/scripts/ovs-kmod-manage.sh
97 fi
4afd1d87
AV
98elif [ "$mainline_major" = "3" ] && [ "$mainline_minor" = "10" ] &&
99 { [ "$major_rev" = "327" ] || [ "$major_rev" = "693" ] || \
391b52f3 100 [ "$major_rev" = "957" ] || [ "$major_rev" == "1062" ] || \
fecb2805 101 [ "$major_rev" = "1101" ] || [ "$major_rev" = "1127" ] ; }; then
391b52f3 102 # For RHEL 7.2, 7.4, 7.6, 7.7, and 7.8
4afd1d87
AV
103 if [ -x "%{_datadir}/openvswitch/scripts/ovs-kmod-manage.sh" ]; then
104 %{_datadir}/openvswitch/scripts/ovs-kmod-manage.sh
22c33c30
MX
105 fi
106else
107 # Ensure that modprobe will find our modules.
108 for k in $(cd /lib/modules && /bin/ls); do
56bfa517 109 [ -d "/lib/modules/$k/kernel/" ] && /sbin/depmod -a "$k"
22c33c30 110 done
c49889cf
GR
111 if [ -x "/sbin/weak-modules" ]; then
112 for m in openvswitch vport-gre vport-stt vport-geneve \
113 vport-lisp vport-vxlan; do
22c33c30
MX
114 echo "/lib/modules/%{kernel}/extra/openvswitch/$m.ko"
115 done | /sbin/weak-modules --add-modules
c49889cf
GR
116 fi
117fi
d8fe0a6a 118
22c33c30
MX
119%postun
120if [ "$1" = 0 ]; then # Erase, not upgrade
121 for kname in `ls -d /lib/modules/*`
122do
123 rm -rf $kname/weak-updates/openvswitch
124done
125fi
126/sbin/depmod -a
127
26b3641c
GR
128%posttrans
129# The upgrade path from the older kmod-openvswitch SysV package to
130# the newer openvswitch-kmod systemd package will end up removing
131# the symlinks to the weak-updates/openvswitch drivers because of
132# it's %postun section. We add this section to handle that case.
133if [ -x "%{_datadir}/openvswitch/scripts/ovs-kmod-manage.sh" ]; then
134 %{_datadir}/openvswitch/scripts/ovs-kmod-manage.sh
135fi
136
d8fe0a6a 137%files
8c7c9dd2 138%defattr(0644,root,root)
22c33c30 139/lib/modules/*/extra/openvswitch/*.ko
8c7c9dd2 140/etc/depmod.d/kmod-openvswitch.conf
22c33c30 141%exclude /lib/modules/*/modules.*
8821b212 142%attr(755,root,root) %{_datadir}/openvswitch/scripts/ovs-kmod-manage.sh
d8fe0a6a
RS
143
144%changelog
145* Wed Sep 21 2011 Kyle Mestery <kmestery@cisco.com>
146- Updated for F15
147* Wed Jan 12 2011 Ralf Spenneberg <ralf@os-s.net>
148- First build on F14