]> git.proxmox.com Git - mirror_ovs.git/blob - rhel/openvswitch-kmod-rhel6.spec.in
Merge branch 'dpdk_merge' of https://github.com/istokes/ovs into HEAD
[mirror_ovs.git] / rhel / openvswitch-kmod-rhel6.spec.in
1 # Spec file for Open vSwitch kernel modules on Red Hat Enterprise
2 # Linux 6.
3
4 # Copyright (C) 2011, 2012 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: %{oname}-kmod
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 Source1: %{oname}-kmod.files
23 BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
24 BuildRequires: %kernel_module_package_buildreqs
25
26 # Without this we get an empty openvswitch-debuginfo package (whose name
27 # conflicts with the openvswitch-debuginfo package for OVS userspace).
28 %undefine _enable_debug_packages
29
30 # Use -D 'kversion 2.6.32-131.6.1.el6.x86_64' to build package
31 # for specified kernel version.
32 %{?kversion:%define kernel_version %kversion}
33
34 # Use -D 'kflavors default debug kdump' to build packages for
35 # specified kernel variants.
36 %{!?kflavors:%define kflavors default}
37
38 %kernel_module_package -n %{oname} -f %{SOURCE1} %kflavors
39
40 %description
41 Open vSwitch Linux kernel module.
42
43 %prep
44
45 %setup -n %{oname}-%{version}
46
47 %build
48 for flavor in %flavors_to_build; do
49 mkdir _$flavor
50 (cd _$flavor && ../configure --with-linux="%{kernel_source $flavor}")
51 %{__make} -C _$flavor/datapath/linux %{?_smp_mflags}
52 done
53
54 %install
55 export INSTALL_MOD_PATH=$RPM_BUILD_ROOT
56 export INSTALL_MOD_DIR=extra/%{oname}
57 for flavor in %flavors_to_build ; do
58 make -C %{kernel_source $flavor} modules_install \
59 M="`pwd`"/_$flavor/datapath/linux
60
61 # Cleanup unnecessary kernel-generated module dependency files.
62 find $INSTALL_MOD_PATH/lib/modules -iname 'modules.*' -exec rm {} \;
63 done
64 install -d %{buildroot}%{_sysconfdir}/depmod.d/
65 for module in %{buildroot}/lib/modules/%{kernel_version}/$INSTALL_MOD_DIR/*.ko;
66 do
67 modname="$(basename ${module})"
68 echo "override ${modname%.ko} * extra/%{oname}" >> %{oname}.conf
69 echo "override ${modname%.ko} * weak-updates/%{oname}" >> %{oname}.conf
70 done
71 install -m 644 %{oname}.conf %{buildroot}%{_sysconfdir}/depmod.d/
72
73 %post
74 # Ensure that modprobe will find our modules.
75 for k in $(cd /lib/modules && /bin/ls); do
76 [ -d "/lib/modules/$k/kernel/" ] && depmod -a "$k"
77 done
78 if [ -x "/sbin/weak-modules" ]; then
79 for m in openvswitch vport-gre vport-stt vport-geneve \
80 vport-lisp vport-vxlan; do
81 echo "/lib/modules/%{kernel}/extra/$m.ko"
82 done | /sbin/weak-modules --add-modules
83 fi
84
85 %postun
86 for k in $(cd /lib/modules && /bin/ls); do
87 [ -d "/lib/modules/$k/kernel/" ] && depmod -a "$k"
88 done
89 if [ "$1" = 0 ]; then # Erase, not upgrade
90 if [ -x "/sbin/weak-modules" ]; then
91 for m in openvswitch vport-gre vport-stt vport-geneve \
92 vport-lisp vport-vxlan; do
93 echo "/lib/modules/%{kernel}/extra/$m.ko"
94 done | /sbin/weak-modules --remove-modules
95 fi
96 fi
97
98 %files
99 %defattr(644,root,root)
100 /etc/depmod.d/%{oname}.conf
101
102 %clean
103 rm -rf $RPM_BUILD_ROOT