1 # Spec file for Open vSwitch kernel modules on Red Hat Enterprise
4 # Copyright (C) 2011, 2012 Nicira, Inc.
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.
11 %define oname openvswitch
16 Summary: Open vSwitch kernel module
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
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
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}
34 # Use -D 'kflavors default debug kdump' to build packages for
35 # specified kernel variants.
36 %{!?kflavors:%define kflavors default}
38 %kernel_module_package -n
%{oname} -f %{SOURCE1} %kflavors
41 Open vSwitch Linux kernel module.
45 %setup -n
%{oname}-%{version}
48 for flavor
in %flavors_to_build; do
50 (cd _$flavor
&& ..
/configure
--with
-linux
="
%{kernel_source $flavor}"
)
51 %{__make} -C _$flavor/datapath/linux %{?_smp_mflags}
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
61 # Cleanup unnecessary kernel-generated module dependency files.
62 find $INSTALL_MOD_PATH
/lib
/modules
-iname 'modules.
*'
-exec rm {} \
;
64 install -d
%{buildroot}%{_sysconfdir}/depmod.d
/
65 for module
in %{buildroot}/lib/modules/%{kernel_version}/$INSTALL_MOD_DIR
/*.ko
;
67 modname
="$
(basename $
{module
})"
68 echo "override $
{modname%.ko
} * extra
/%{oname}" >> %{oname}.conf
69 echo "override $
{modname%.ko
} * weak
-updates
/%{oname}" >> %{oname}.conf
71 install -m
644 %{oname}.conf %{buildroot}%{_sysconfdir}/depmod.d
/
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"
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
86 for k
in $
(cd /lib
/modules
&& /bin
/ls
); do
87 [ -d "
/lib
/modules
/$k
/kernel
/"
] && depmod
-a "$k"
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
99 %defattr(644,root
,root
)
100 /etc
/depmod.d
/%{oname}.conf
103 rm -rf $RPM_BUILD_ROOT