]> git.proxmox.com Git - mirror_ovs.git/blame - rhel/kmod-openvswitch-rhel6.spec.in
ovn-controller-vtep: Fix wrong value for ovnsb-db argument
[mirror_ovs.git] / rhel / kmod-openvswitch-rhel6.spec.in
CommitLineData
c434706a
BP
1# Spec file for Open vSwitch kernel modules on Red Hat Enterprise
2# Linux 6.
3
757e3739 4# Copyright (C) 2011, 2012, 2018 Nicira, Inc.
c434706a
BP
5#
6# Copying and distribution of this file, with or without modification,
7# are permitted in any medium without royalty provided the copyright
8# notice and this notice are preserved. This file is offered as-is,
9# without warranty of any kind.
10
1821f032
AF
11%define oname openvswitch
12
757e3739 13Name: kmod-%{oname}
c434706a
BP
14Version: @VERSION@
15Release: 1%{?dist}
16Summary: Open vSwitch kernel module
17
18Group: System/Kernel
19License: GPLv2
20URL: http://openvswitch.org/
1821f032 21Source0: %{oname}-%{version}.tar.gz
c434706a 22BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
c434706a
BP
23
24# Without this we get an empty openvswitch-debuginfo package (whose name
25# conflicts with the openvswitch-debuginfo package for OVS userspace).
26%undefine _enable_debug_packages
27
757e3739
MX
28%define kernel_source_extended() /usr/src/kernels/%{2}$([ %{1} = default ] || echo ".%{1}")
29
6c9b8ee4
AF
30# Use -D 'kversion 2.6.32-131.6.1.el6.x86_64' to build package
31# for specified kernel version.
89dd5819
MX
32# Use -D 'kversion 3.10.0-693.1.1.el7.x86_64 3.10.0-693.17.1.el7.x86_64'
33# to build package for mulitple kernel versions in the same package
c8cd1307
MX
34# This only works for kernel 3.10.0 major revision 693 (RHEL 7.4)
35# and major revision 327 (RHEL 7.2)
757e3739
MX
36# By default, build against the latest installed kernel-devel
37%{!?kversion:%global kversion %(rpm -qa | egrep "^kernel(-rt|-aarch64)?-devel" | /usr/lib/rpm/redhat/rpmsort -r | head -n 1| sed "s/^kernel.*-devel-//")}
c434706a 38
6c9b8ee4
AF
39# Use -D 'kflavors default debug kdump' to build packages for
40# specified kernel variants.
757e3739 41%{!?kflavors:%global kflavors default}
c434706a
BP
42
43%description
44Open vSwitch Linux kernel module.
45
46%prep
47
1821f032 48%setup -n %{oname}-%{version}
c434706a
BP
49
50%build
89dd5819
MX
51for kv in %{kversion}; do
52 for flavor in %{kflavors}; do
53 mkdir -p _$flavor/_$kv
54 (cd _$flavor/_$kv && ../../configure --with-linux="%{kernel_source_extended $flavor $kv}")
55 %{__make} -C _$flavor/_$kv/datapath/linux %{?_smp_mflags}
56 done
c434706a
BP
57done
58
59%install
60export INSTALL_MOD_PATH=$RPM_BUILD_ROOT
1821f032 61export INSTALL_MOD_DIR=extra/%{oname}
89dd5819
MX
62for kv in %{kversion}; do
63 for flavor in %{kflavors} ; do
64 make -C %{kernel_source_extended $flavor $kv} modules_install \
65 M="`pwd`"/_$flavor/_$kv/datapath/linux
66 # Cleanup unnecessary kernel-generated module dependency files.
67 find $INSTALL_MOD_PATH/lib/modules -iname 'modules.*' -exec rm {} \;
68 done
c434706a 69done
9c12d2ec 70install -d %{buildroot}%{_sysconfdir}/depmod.d/
89dd5819
MX
71for kv in %{kversion}; do
72 for module in %{buildroot}/lib/modules/$kv/$INSTALL_MOD_DIR/*.ko;
73 do
74 modname="$(basename ${module})"
75 grep -qsPo "^\s*override ${modname%.ko} \* extra\/%{oname}" %{oname}.conf || \
76 echo "override ${modname%.ko} * extra/%{oname}" >> %{oname}.conf
77 grep -qsPo "^\s*override ${modname%.ko} \* weak-updates\/%{oname}" %{oname}.conf || \
78 echo "override ${modname%.ko} * weak-updates/%{oname}" >> %{oname}.conf
79 done
723a06ae 80done
9c12d2ec 81install -m 644 %{oname}.conf %{buildroot}%{_sysconfdir}/depmod.d/
89dd5819
MX
82install -d -m 0755 $RPM_BUILD_ROOT/usr/share/%{oname}/scripts
83install -p -m 0755 rhel/usr_share_openvswitch_scripts_ovs-kmod-manage.sh \
84 $RPM_BUILD_ROOT/usr/share/%{oname}/scripts/ovs-kmod-manage.sh
c434706a 85
69f7e92f 86%post
89dd5819
MX
87current_kernel=$(uname -r)
88IFS=. read installed_major installed_minor installed_micro installed_arch \
89 installed_build <<<"${current_kernel##*-}"
c8cd1307
MX
90if [ "$installed_major" = "327" ] || [ "$installed_major" = "693" ]; then
91 # Workaround for RHEL 7.2 and 7.4
89dd5819
MX
92 if [ -x "/usr/share/%{oname}/scripts/ovs-kmod-manage.sh" ]; then
93 /usr/share/%{oname}/scripts/ovs-kmod-manage.sh
94 fi
95else
96 # Ensure that modprobe will find our modules.
97 for k in $(cd /lib/modules && /bin/ls); do
56bfa517 98 [ -d "/lib/modules/$k/kernel/" ] && /sbin/depmod -a "$k"
89dd5819 99 done
69f7e92f 100 if [ -x "/sbin/weak-modules" ]; then
c9863835
MX
101 rpm -ql kmod-%{oname} | grep '\.ko$' | \
102 /sbin/weak-modules --add-modules
69f7e92f
GR
103 fi
104fi
105
89dd5819 106%postun
4cb34769
MX
107if [ "$1" = 0 ]; then # Erase, not upgrade
108 for kname in `ls -d /lib/modules/*`
109 do
110 rm -rf $kname/weak-updates/openvswitch
111 done
112fi
89dd5819
MX
113/sbin/depmod -a
114
723a06ae 115%files
757e3739 116%defattr(644,root,root,755)
723a06ae 117/etc/depmod.d/%{oname}.conf
757e3739 118/lib/modules/
89dd5819 119%attr(755,root,root) /usr/share/%{oname}/scripts/ovs-kmod-manage.sh
723a06ae 120
c434706a
BP
121%clean
122rm -rf $RPM_BUILD_ROOT