Olaf Hering
9d893219e1
prevents loading of ata_piix which is required for cdrom access OBS-URL: https://build.opensuse.org/package/show/Virtualization/hyper-v?expand=0&rev=26
178 lines
4.6 KiB
RPMSpec
178 lines
4.6 KiB
RPMSpec
#
|
|
# spec file for package hyper-v
|
|
#
|
|
# Copyright (c) 2012 SUSE LINUX Products GmbH, Nuernberg, Germany.
|
|
#
|
|
# All modifications and additions to the file contributed by third parties
|
|
# remain the property of their copyright owners, unless otherwise agreed
|
|
# upon. The license for this file, and modifications and additions to the
|
|
# file, is the same license as for the pristine package itself (unless the
|
|
# license for the pristine package is not an Open Source License, in which
|
|
# case the license is the MIT License). An "Open Source License" is a
|
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|
# published by the Open Source Initiative.
|
|
|
|
# Please submit bugfixes or comments via http://bugs.opensuse.org/
|
|
#
|
|
|
|
|
|
%define with_kmp 0
|
|
%define with_modprobe 0
|
|
%if %{with_kmp}
|
|
%define with_drivers_in_kmp 0
|
|
%endif
|
|
%define hv_kvp_daemon hv_kvp_daemon
|
|
|
|
Name: hyper-v
|
|
%if %{with_kmp}
|
|
BuildRequires: kernel-default-devel
|
|
BuildRequires: module-init-tools
|
|
%ifarch %ix86
|
|
BuildRequires: kernel-pae-devel
|
|
%endif
|
|
%endif
|
|
ExclusiveArch: %ix86 x86_64
|
|
PreReq: %insserv_prereq
|
|
Summary: Microsoft Hyper-V tools
|
|
License: GPL-2.0
|
|
Group: System/Kernel
|
|
Supplements: modalias(dmi*:svn*MicrosoftCorporation*:pn*VirtualMachine*:rn*VirtualMachine*)
|
|
Supplements: modalias(pci:v00001414d00005353sv*sd*bc*sc*i*)
|
|
Url: http://www.kernel.org
|
|
Version: 3
|
|
Release: 0
|
|
Source: Module.supported
|
|
Source1: hyperv_pvdrivers.conf
|
|
Source2: kmp_filelist
|
|
Source3: hyper-v.supplements.txt
|
|
Source4: hyper-v.dummy_ko.c
|
|
Source5: hyper-v.kvptest.ps1.txt
|
|
Source9: hyper-v.include.linux.hyperv.h
|
|
Source10: hyper-v.tools.hv.hv_kvp_daemon.c
|
|
Source11: hyper-v.init.sh
|
|
Patch761200: hyper-v.tools.hv.hv_kvp_daemon.c.patch
|
|
BuildRoot: %{_tmppath}/%{name}-%{version}-build
|
|
%if %{with_kmp}
|
|
%if %{with_drivers_in_kmp}
|
|
%suse_kernel_module_package -n hyper-v um xen -f kmp_filelist
|
|
%else
|
|
%suse_kernel_module_package -n hyper-v um xen -f kmp_filelist -p hyper-v.supplements.txt
|
|
%endif
|
|
%endif
|
|
|
|
%description
|
|
This package contains the Microsoft Hyper-V tools.
|
|
|
|
|
|
|
|
%if %{with_kmp}
|
|
|
|
%package KMP
|
|
|
|
Summary: Microsoft Hyper-V drivers
|
|
Group: System/Kernel
|
|
|
|
%description KMP
|
|
This package contains the Microsoft Hyper-V drivers.
|
|
|
|
|
|
|
|
%endif
|
|
|
|
%prep
|
|
%setup -Tc
|
|
cp -avL %{S:5} kvptest.ps1.txt
|
|
cp -vL %{S:9} %{hv_kvp_daemon}.h
|
|
cp -vL %{S:10} %{hv_kvp_daemon}.c
|
|
%patch761200 -p0
|
|
|
|
%build
|
|
sed -i~ '/#include <linux.hyperv.h>/d' %{hv_kvp_daemon}.c
|
|
gcc \
|
|
$RPM_OPT_FLAGS \
|
|
-Wno-unused-variable \
|
|
-Wno-pointer-sign \
|
|
-g \
|
|
%{hv_kvp_daemon}.c \
|
|
-include %{hv_kvp_daemon}.h \
|
|
-DCN_KVP_IDX=0x9 \
|
|
-DCN_KVP_VAL=0x1 \
|
|
-o %{hv_kvp_daemon}
|
|
%if %{with_kmp}
|
|
for flavor in %flavors_to_build; do
|
|
%if %{with_drivers_in_kmp}
|
|
krel=$(make -s -C %{kernel_source $flavor} kernelrelease)
|
|
cp -a /lib/modules/$krel/source/drivers/staging/hv $flavor
|
|
%else
|
|
rm -rfv $flavor
|
|
mkdir -p $flavor
|
|
cp %_sourcedir/hyper-v.dummy_ko.c $flavor/hyper-v.suse_kmp_dummy.c
|
|
cat > $flavor/Makefile <<-EOF
|
|
obj-m += hyper-v.suse_kmp_dummy.o
|
|
EOF
|
|
%endif
|
|
cp %_sourcedir/Module.supported $flavor
|
|
make -C %{kernel_source $flavor} modules M=$PWD/$flavor
|
|
done
|
|
%endif
|
|
|
|
%install
|
|
%if %{with_kmp}
|
|
export INSTALL_MOD_PATH=$RPM_BUILD_ROOT
|
|
for flavor in %flavors_to_build; do
|
|
make -C %{kernel_source $flavor} modules_install M=$PWD/$flavor
|
|
done
|
|
%endif
|
|
mkdir -p $RPM_BUILD_ROOT/usr/sbin
|
|
install -m755 %{hv_kvp_daemon} $RPM_BUILD_ROOT/usr/sbin
|
|
mkdir -p $RPM_BUILD_ROOT/etc/init.d
|
|
install -m755 %{S:11} $RPM_BUILD_ROOT/etc/init.d/%{hv_kvp_daemon}
|
|
ln -sfvbn ../../etc/init.d/%{hv_kvp_daemon} $RPM_BUILD_ROOT/usr/sbin/rc%{hv_kvp_daemon}
|
|
%if %{with_modprobe}
|
|
mkdir -p $RPM_BUILD_ROOT/etc/modprobe.d
|
|
install -m644 %SOURCE1 $RPM_BUILD_ROOT/etc/modprobe.d/hyperv_pvdrivers.conf
|
|
%endif
|
|
|
|
%files
|
|
%defattr (-,root,root)
|
|
%doc kvptest.ps1.txt
|
|
%if %{with_modprobe}
|
|
%if !%{with_kmp}
|
|
%dir /etc/modprobe.d
|
|
%config /etc/modprobe.d/hyperv_pvdrivers.conf
|
|
%endif
|
|
%endif
|
|
/etc/init.d/%{hv_kvp_daemon}
|
|
/usr/sbin/rc%{hv_kvp_daemon}
|
|
/usr/sbin/%{hv_kvp_daemon}
|
|
|
|
%post
|
|
board_vendor=
|
|
product_name=
|
|
if pushd /sys/class/dmi/id > /dev/null 2>/dev/null
|
|
then
|
|
if test -r board_vendor
|
|
then
|
|
board_vendor="`cat board_vendor`"
|
|
fi
|
|
if test -r product_name
|
|
then
|
|
product_name="`cat product_name`"
|
|
fi
|
|
popd > /dev/null
|
|
fi
|
|
if test "${board_vendor}" = "Microsoft Corporation" -a "${product_name}" = "Virtual Machine"
|
|
then
|
|
echo "Enabling %{hv_kvp_daemon} on '${product_name}' from '${board_vendor}'"
|
|
%{insserv_force_if_yast %{hv_kvp_daemon}}
|
|
fi
|
|
|
|
%preun
|
|
%stop_on_removal %{hv_kvp_daemon}
|
|
|
|
%postun
|
|
%restart_on_update %{hv_kvp_daemon}
|
|
%insserv_cleanup
|
|
|
|
%changelog
|