mirror of
https://github.com/openvswitch/ovs
synced 2025-08-22 01:51:26 +00:00
101 lines
2.6 KiB
RPMSpec
101 lines
2.6 KiB
RPMSpec
|
# Spec file for Open vSwitch kernel modules using DKMS.
|
||
|
#
|
||
|
# Copyright (C) 2015 Nicira, Inc.
|
||
|
#
|
||
|
# Copying and distribution of this file, with or without modification,
|
||
|
# are permitted in any medium without royalty provided the copyright
|
||
|
# notice and this notice are preserved. This file is offered as-is,
|
||
|
# without warranty of any kind.
|
||
|
|
||
|
%define oname openvswitch
|
||
|
|
||
|
Name: %{oname}-dkms
|
||
|
Version: @VERSION@
|
||
|
Release: 1%{?dist}
|
||
|
Summary: Open vSwitch kernel module
|
||
|
|
||
|
Group: System/Kernel
|
||
|
License: GPLv2
|
||
|
URL: http://openvswitch.org/
|
||
|
Source: %{oname}-%{version}.tar.gz
|
||
|
Requires: autoconf, gcc, make
|
||
|
Requires(post): dkms
|
||
|
Requires(preun): dkms
|
||
|
BuildRoot: %(mktemp -ud %{_tmppath}/%{name}-%{version}-%{release}-XXXXXX)
|
||
|
|
||
|
# Without this we get an empty openvswitch-debuginfo package (whose name
|
||
|
# conflicts with the openvswitch-debuginfo package for OVS userspace).
|
||
|
%undefine _enable_debug_packages
|
||
|
|
||
|
|
||
|
%description
|
||
|
Open vSwitch Linux kernel module.
|
||
|
|
||
|
|
||
|
%prep
|
||
|
%setup -n %{oname}-%{version}
|
||
|
|
||
|
cat > %{oname}.conf << EOF
|
||
|
override %{oname} * extra/%{oname}
|
||
|
override %{oname} * weak-updates/%{oname}
|
||
|
EOF
|
||
|
|
||
|
|
||
|
%build
|
||
|
# for running the '%{__make} -C datapath print-build-modules' below.
|
||
|
./configure
|
||
|
|
||
|
|
||
|
%install
|
||
|
%{__rm} -rf %{buildroot}
|
||
|
|
||
|
# Kernel module sources install for dkms
|
||
|
%{__mkdir_p} %{buildroot}%{_usrsrc}/%{oname}-%{version}/
|
||
|
%{__cp} -r * %{buildroot}%{_usrsrc}/%{oname}-%{version}/
|
||
|
|
||
|
# check we can get kernel module names
|
||
|
%{__make} -C datapath print-build-modules
|
||
|
|
||
|
# Prepare dkms.conf
|
||
|
cat > %{buildroot}%{_usrsrc}/%{oname}-%{version}/dkms.conf << EOF
|
||
|
MODULES=( `%{__make} -C datapath print-build-modules | grep -v make` )
|
||
|
|
||
|
PACKAGE_NAME="openvswitch"
|
||
|
PACKAGE_VERSION="%{version}-%{release}"
|
||
|
MAKE="./configure --with-linux='\${kernel_source_dir}' && make -C datapath/linux"
|
||
|
for __idx in \${!MODULES[@]}; do
|
||
|
BUILT_MODULE_NAME[__idx]=\${MODULES[__idx]}
|
||
|
BUILT_MODULE_LOCATION[__idx]=datapath/linux/
|
||
|
DEST_MODULE_LOCATION[__idx]=/kernel/drivers/net/openvswitch/
|
||
|
done
|
||
|
AUTOINSTALL=yes
|
||
|
EOF
|
||
|
|
||
|
install -d %{buildroot}%{_sysconfdir}/depmod.d/
|
||
|
install -m 644 %{oname}.conf %{buildroot}%{_sysconfdir}/depmod.d/
|
||
|
|
||
|
|
||
|
%post
|
||
|
# Add to DKMS registry
|
||
|
isadded=`dkms status -m "%{oname}" -v "%{version}"`
|
||
|
if [ "x${isadded}" = "x" ] ; then
|
||
|
dkms add -m "%{oname}" -v "%{version}" || :
|
||
|
fi
|
||
|
dkms build -m "%{oname}" -v "%{version}" || :
|
||
|
dkms install -m "%{oname}" -v "%{version}" --force || :
|
||
|
|
||
|
|
||
|
%preun
|
||
|
# Remove all versions from DKMS registry
|
||
|
dkms remove -m "%{oname}" -v "%{version}" --all || :
|
||
|
|
||
|
|
||
|
%clean
|
||
|
%{__rm} -rf %{buildroot}
|
||
|
|
||
|
|
||
|
%files
|
||
|
%defattr(-,root,root)
|
||
|
%{_usrsrc}/%{oname}-%{version}/
|
||
|
/etc/depmod.d/openvswitch.conf
|