# # 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: 4 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 Source20: hyper-v.tools.hv.hv_get_dhcp_info.sh Source21: hyper-v.tools.hv.hv_get_dns_info.sh Source22: hyper-v.tools.hv.hv_set_ifconfig.sh 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 %build sed -i~ '/#include /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/usr/lib/%{name}/bin cp -avL %{S:20} $RPM_BUILD_ROOT/usr/lib/%{name}/bin/hv_get_dhcp_info cp -avL %{S:21} $RPM_BUILD_ROOT/usr/lib/%{name}/bin/hv_get_dns_info cp -avL %{S:22} $RPM_BUILD_ROOT/usr/lib/%{name}/bin/hv_set_ifconfig chmod 755 $RPM_BUILD_ROOT/usr/lib/%{name}/bin/* 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} /usr/lib/%{name} %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 # no restart on update because the daemon can not be restarted %insserv_cleanup %changelog