]> git.proxmox.com Git - mirror_ovs.git/blob - rhel/kmod-openvswitch-rhel6.spec.in
cirrus: Use FreeBSD 12.2.
[mirror_ovs.git] / rhel / kmod-openvswitch-rhel6.spec.in
1 # Spec file for Open vSwitch kernel modules on Red Hat Enterprise
2 # Linux 6.
3
4 # Copyright (C) 2011, 2012, 2018 Nicira, Inc.
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
11 %define oname openvswitch
12
13 Name: kmod-%{oname}
14 Version: @VERSION@
15 Release: 1%{?dist}
16 Summary: Open vSwitch kernel module
17
18 Group: System/Kernel
19 License: GPLv2
20 URL: http://openvswitch.org/
21 Source0: %{oname}-%{version}.tar.gz
22 BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
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
28 %define kernel_source_extended() /usr/src/kernels/%{2}$([ %{1} = default ] || echo ".%{1}")
29
30 # Use -D 'kversion 2.6.32-131.6.1.el6.x86_64' to build package
31 # for specified kernel version.
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
34 # This only works for kernel 3.10.0 major revision 693 (RHEL 7.4)
35 # and major revision 327 (RHEL 7.2)
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-//")}
38
39 # Use -D 'kflavors default debug kdump' to build packages for
40 # specified kernel variants.
41 %{!?kflavors:%global kflavors default}
42
43 %description
44 Open vSwitch Linux kernel module.
45
46 %prep
47
48 %setup -n %{oname}-%{version}
49
50 %build
51 for 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
57 done
58
59 %install
60 export INSTALL_MOD_PATH=$RPM_BUILD_ROOT
61 export INSTALL_MOD_DIR=extra/%{oname}
62 for 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
69 done
70 install -d %{buildroot}%{_sysconfdir}/depmod.d/
71 for 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
80 done
81 install -m 644 %{oname}.conf %{buildroot}%{_sysconfdir}/depmod.d/
82 install -d -m 0755 $RPM_BUILD_ROOT/usr/share/%{oname}/scripts
83 install -p -m 0755 rhel/usr_share_openvswitch_scripts_ovs-kmod-manage.sh \
84 $RPM_BUILD_ROOT/usr/share/%{oname}/scripts/ovs-kmod-manage.sh
85
86 %post
87 current_kernel=$(uname -r)
88 IFS=. read installed_major installed_minor installed_micro installed_arch \
89 installed_build <<<"${current_kernel##*-}"
90 if [ "$installed_major" = "327" ] || [ "$installed_major" = "693" ]; then
91 # Workaround for RHEL 7.2 and 7.4
92 if [ -x "/usr/share/%{oname}/scripts/ovs-kmod-manage.sh" ]; then
93 /usr/share/%{oname}/scripts/ovs-kmod-manage.sh
94 fi
95 else
96 # Ensure that modprobe will find our modules.
97 for k in $(cd /lib/modules && /bin/ls); do
98 [ -d "/lib/modules/$k/kernel/" ] && /sbin/depmod -a "$k"
99 done
100 if [ -x "/sbin/weak-modules" ]; then
101 rpm -ql kmod-%{oname} | grep '\.ko$' | \
102 /sbin/weak-modules --add-modules
103 fi
104 fi
105
106 %postun
107 if [ "$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
112 fi
113 /sbin/depmod -a
114
115 %files
116 %defattr(644,root,root,755)
117 /etc/depmod.d/%{oname}.conf
118 /lib/modules/
119 %attr(755,root,root) /usr/share/%{oname}/scripts/ovs-kmod-manage.sh
120
121 %clean
122 rm -rf $RPM_BUILD_ROOT