Blame SPECS/hyperv-daemons.spec

Packit 135353
# Hyper-V KVP daemon binary name
Packit 135353
%global hv_kvp_daemon hypervkvpd
Packit 135353
# Hyper-V VSS daemon binary name
Packit 135353
%global hv_vss_daemon hypervvssd
Packit 135353
# Hyper-V FCOPY daemon binary name
Packit 135353
%global hv_fcopy_daemon hypervfcopyd
Packit 135353
# snapshot version
Packit 135353
%global snapver .20180415git
Packit 135353
# use hardened build
Packit 135353
%global _hardened_build 1
Packit 135353
# udev rules prefix
Packit 135353
%global udev_prefix 70
Packit 135353
Packit 135353
Name:     hyperv-daemons
Packit 135353
Version:  0
Packit 135353
Release:  0.29%{?snapver}%{?dist}
Packit 135353
Summary:  Hyper-V daemons suite
Packit 135353
Packit 135353
Group:    System Environment/Daemons
Packit 135353
License:  GPLv2
Packit 135353
URL:      http://www.kernel.org
Packit 135353
Packit 135353
# Source files obtained from kernel upstream 4.17-rc1 (60cc43fc888428bb2f18f08997432d426a243338)
Packit 135353
# git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
Packit 135353
Source0:  COPYING
Packit 135353
Packit 135353
# HYPERV KVP DAEMON
Packit 135353
Source1:  hv_kvp_daemon.c
Packit 135353
Source2:  hv_get_dhcp_info.sh
Packit 135353
Source3:  hv_get_dns_info.sh
Packit 135353
Source4:  hv_set_ifconfig.sh
Packit 135353
Source5:  hypervkvpd.service
Packit 135353
Source6:  hypervkvp.rules
Packit 135353
Packit 135353
# HYPERV VSS DAEMON
Packit 135353
Source100:  hv_vss_daemon.c
Packit 135353
Source101:  hypervvssd.service
Packit 135353
Source102:  hypervvss.rules
Packit 135353
Packit 135353
# HYPERV FCOPY DAEMON
Packit 135353
Source200:  hv_fcopy_daemon.c
Packit 135353
Source201:  hypervfcopyd.service
Packit 135353
Source202:  hypervfcopy.rules
Packit 135353
Packit 135353
# HYPERV TOOLS
Packit 135353
Source301:  lsvmbus
Packit 135353
Packit 135353
# Make lsvmbus Python3 compatible
Packit 135353
Patch0: 0001-tools-hv-update-lsvmbus-to-be-compatible-with-python.patch
Packit 135353
Packit 135353
# Do not set NM_CONTROLED=no
Packit 135353
Patch1: 0002-hv_set_ifconfig_nm_enable.patch
Packit 135353
# For bz#1769920 - [Hyper-V][RHEL8] Running 'systemctl isolate' on any target stops hyperv-daemon services
Packit 135353
Patch2: hpvd-Set-IgnoreOnIsolate-1-in-systemd-units.patch
Packit 135353
# For bz#1816750 - [Hyper-V][RHEL8.3] Update Hyper-V tools
Packit 135353
Patch3: hvd-Update-C-files-and-scripts-to-kernel-version-5.7-rc1.patch
Packit 135353
# For bz#1816750 - [Hyper-V][RHEL8.3] Update Hyper-V tools
Packit 135353
Patch4: hvd-Add-vmbus_testing-tool-build-files.patch
Packit 135353
Packit 135353
# Hyper-V is available only on x86 architectures
Packit 135353
# The base empty (a.k.a. virtual) package can not be noarch
Packit 135353
# due to http://www.rpm.org/ticket/78
Packit 135353
ExclusiveArch:  i686 x86_64
Packit 135353
Packit 135353
Requires:       hypervkvpd = %{version}-%{release}
Packit 135353
Requires:       hypervvssd = %{version}-%{release}
Packit 135353
Requires:       hypervfcopyd = %{version}-%{release}
Packit 135353
BuildRequires:  gcc
Packit 135353
Packit 135353
%description
Packit 135353
Suite of daemons that are needed when Linux guest
Packit 135353
is running on Windows Host with Hyper-V.
Packit 135353
Packit 135353
Packit 135353
%package -n hypervkvpd
Packit 135353
Summary: Hyper-V key value pair (KVP) daemon
Packit 135353
Group:   System Environment/Daemons
Packit 135353
Requires: %{name}-license = %{version}-%{release}
Packit 135353
BuildRequires: systemd, kernel-headers
Packit 135353
Requires(post):   systemd
Packit 135353
Requires(preun):  systemd
Packit 135353
Requires(postun): systemd
Packit 135353
Packit 135353
%description -n hypervkvpd
Packit 135353
Hypervkvpd is an implementation of Hyper-V key value pair (KVP)
Packit 135353
functionality for Linux. The daemon first registers with the
Packit 135353
kernel driver. After this is done it collects information
Packit 135353
requested by Windows Host about the Linux Guest. It also supports
Packit 135353
IP injection functionality on the Guest.
Packit 135353
Packit 135353
Packit 135353
%package -n hypervvssd
Packit 135353
Summary: Hyper-V VSS daemon
Packit 135353
Group:   System Environment/Daemons
Packit 135353
Requires: %{name}-license = %{version}-%{release}
Packit 135353
BuildRequires: systemd, kernel-headers
Packit 135353
Requires(post):   systemd
Packit 135353
Requires(preun):  systemd
Packit 135353
Requires(postun): systemd
Packit 135353
Packit 135353
%description -n hypervvssd
Packit 135353
Hypervvssd is an implementation of Hyper-V VSS functionality
Packit 135353
for Linux. The daemon is used for host initiated guest snapshot
Packit 135353
on Hyper-V hypervisor. The daemon first registers with the
Packit 135353
kernel driver. After this is done it waits for instructions
Packit 135353
from Windows Host if to "freeze" or "thaw" the filesystem
Packit 135353
on the Linux Guest.
Packit 135353
Packit 135353
Packit 135353
%package -n hypervfcopyd
Packit 135353
Summary: Hyper-V FCOPY daemon
Packit 135353
Group:   System Environment/Daemons
Packit 135353
Requires: %{name}-license = %{version}-%{release}
Packit 135353
BuildRequires: systemd, kernel-headers
Packit 135353
Requires(post):   systemd
Packit 135353
Requires(preun):  systemd
Packit 135353
Requires(postun): systemd
Packit 135353
Packit 135353
%description -n hypervfcopyd
Packit 135353
Hypervfcopyd is an implementation of file copy service functionality
Packit 135353
for Linux Guest running on Hyper-V. The daemon enables host to copy
Packit 135353
a file (over VMBUS) into the Linux Guest. The daemon first registers
Packit 135353
with the kernel driver. After this is done it waits for instructions
Packit 135353
from Windows Host.
Packit 135353
Packit 135353
Packit 135353
%package license
Packit 135353
Summary:    License of the Hyper-V daemons suite
Packit 135353
Group:      Applications/System
Packit 135353
BuildArch:  noarch
Packit 135353
Packit 135353
%description license
Packit 135353
Contains license of the Hyper-V daemons suite.
Packit 135353
Packit 135353
%package -n hyperv-tools
Packit 135353
Summary:    Tools for Hyper-V guests
Packit 135353
Group:      Applications/System
Packit 135353
BuildArch:  noarch
Packit 135353
Packit 135353
%description -n hyperv-tools
Packit 135353
Contains tools and scripts useful for Hyper-V guests.
Packit 135353
Packit 135353
%prep
Packit 135353
%setup -Tc
Packit 135353
cp -pvL %{SOURCE0} COPYING
Packit 135353
Packit 135353
cp -pvL %{SOURCE1} hv_kvp_daemon.c
Packit 135353
cp -pvL %{SOURCE2} hv_get_dhcp_info.sh
Packit 135353
cp -pvL %{SOURCE3} hv_get_dns_info.sh
Packit 135353
cp -pvL %{SOURCE4} hv_set_ifconfig.sh
Packit 135353
cp -pvL %{SOURCE5} hypervkvpd.service
Packit 135353
cp -pvL %{SOURCE6} hypervkvp.rules
Packit 135353
cp -pvL %{SOURCE100} hv_vss_daemon.c
Packit 135353
cp -pvL %{SOURCE101} hypervvssd.service
Packit 135353
cp -pvL %{SOURCE102} hypervvss.rules
Packit 135353
cp -pvL %{SOURCE200} hv_fcopy_daemon.c
Packit 135353
cp -pvL %{SOURCE201} hypervfcopyd.service
Packit 135353
cp -pvL %{SOURCE202} hypervfcopy.rules
Packit 135353
Packit 135353
cp -pvL %{SOURCE301} lsvmbus
Packit 135353
%patch0 -p3 -b .lsvmbus_python3
Packit 135353
Packit 135353
cp -pvL %{SOURCE4} hv_set_ifconfig.sh
Packit 135353
%patch1 -p0 -b .hv_set_ifconfig_nm_enable
Packit 135353
%patch2 -p1
Packit 135353
%patch3 -p1
Packit 135353
%patch4 -p1
Packit 135353
Packit 135353
%build
Packit 135353
# HYPERV KVP DAEMON
Packit 135353
gcc $RPM_OPT_FLAGS -c hv_kvp_daemon.c
Packit 135353
gcc $RPM_LD_FLAGS  hv_kvp_daemon.o -o %{hv_kvp_daemon}
Packit 135353
Packit 135353
# HYPERV VSS DAEMON
Packit 135353
gcc $RPM_OPT_FLAGS -c hv_vss_daemon.c
Packit 135353
gcc $RPM_LD_FLAGS hv_vss_daemon.o -o %{hv_vss_daemon}
Packit 135353
Packit 135353
# HYPERV FCOPY DAEMON
Packit 135353
gcc $RPM_OPT_FLAGS -c hv_fcopy_daemon.c
Packit 135353
gcc $RPM_LD_FLAGS hv_fcopy_daemon.o -o %{hv_fcopy_daemon}
Packit 135353
Packit 135353
%install
Packit 135353
rm -rf %{buildroot}
Packit 135353
Packit 135353
mkdir -p %{buildroot}%{_sbindir}
Packit 135353
install -p -m 0755 %{hv_kvp_daemon} %{buildroot}%{_sbindir}
Packit 135353
install -p -m 0755 %{hv_vss_daemon} %{buildroot}%{_sbindir}
Packit 135353
install -p -m 0755 %{hv_fcopy_daemon} %{buildroot}%{_sbindir}
Packit 135353
# Systemd unit file
Packit 135353
mkdir -p %{buildroot}%{_unitdir}
Packit 135353
install -p -m 0644 hypervkvpd.service %{buildroot}%{_unitdir}
Packit 135353
install -p -m 0644 hypervvssd.service %{buildroot}%{_unitdir}
Packit 135353
install -p -m 0644 hypervfcopyd.service %{buildroot}%{_unitdir}
Packit 135353
# Udev rules
Packit 135353
mkdir -p %{buildroot}%{_udevrulesdir}
Packit 135353
install -p -m 0644 hypervkvp.rules %{buildroot}%{_udevrulesdir}/%{udev_prefix}-hypervkvp.rules
Packit 135353
install -p -m 0644 hypervvss.rules %{buildroot}%{_udevrulesdir}/%{udev_prefix}-hypervvss.rules
Packit 135353
install -p -m 0644 hypervfcopy.rules %{buildroot}%{_udevrulesdir}/%{udev_prefix}-hypervfcopy.rules
Packit 135353
# Shell scripts for the KVP daemon
Packit 135353
mkdir -p %{buildroot}%{_libexecdir}/%{hv_kvp_daemon}
Packit 135353
install -p -m 0755 hv_get_dhcp_info.sh %{buildroot}%{_libexecdir}/%{hv_kvp_daemon}/hv_get_dhcp_info
Packit 135353
install -p -m 0755 hv_get_dns_info.sh %{buildroot}%{_libexecdir}/%{hv_kvp_daemon}/hv_get_dns_info
Packit 135353
install -p -m 0755 hv_set_ifconfig.sh %{buildroot}%{_libexecdir}/%{hv_kvp_daemon}/hv_set_ifconfig
Packit 135353
# Directory for pool files
Packit 135353
mkdir -p %{buildroot}%{_sharedstatedir}/hyperv
Packit 135353
Packit 135353
# Tools
Packit 135353
install -p -m 0755 lsvmbus %{buildroot}%{_sbindir}/
Packit 135353
sed -i 's,#!/usr/bin/env python,#!%{__python3},' %{buildroot}%{_sbindir}/lsvmbus
Packit 135353
install -p -m 0755 vmbus_testing %{buildroot}%{_sbindir}/
Packit 135353
Packit 135353
%post -n hypervkvpd
Packit 135353
if [ $1 -gt 1 ] ; then
Packit 135353
	# Upgrade
Packit 135353
	systemctl --no-reload disable hypervkvpd.service >/dev/null 2>&1 || :
Packit 135353
fi
Packit 135353
Packit 135353
%preun -n hypervkvpd
Packit 135353
%systemd_preun hypervkvpd.service
Packit 135353
Packit 135353
%postun -n hypervkvpd
Packit 135353
# hypervkvpd daemon does NOT support restarting (driver, neither)
Packit 135353
%systemd_postun hypervkvpd.service
Packit 135353
# If removing the package, delete %%{_sharedstatedir}/hyperv directory
Packit 135353
if [ "$1" -eq "0" ] ; then
Packit 135353
    rm -rf %{_sharedstatedir}/hyperv || :
Packit 135353
fi
Packit 135353
Packit 135353
Packit 135353
%post -n hypervvssd
Packit 135353
if [ $1 -gt 1 ] ; then
Packit 135353
	# Upgrade
Packit 135353
	systemctl --no-reload disable hypervvssd.service >/dev/null 2>&1 || :
Packit 135353
fi
Packit 135353
Packit 135353
%postun -n hypervvssd
Packit 135353
%systemd_postun hypervvssd.service
Packit 135353
Packit 135353
%preun -n hypervvssd
Packit 135353
%systemd_preun hypervvssd.service
Packit 135353
Packit 135353
Packit 135353
%post -n hypervfcopyd
Packit 135353
if [ $1 -gt 1 ] ; then
Packit 135353
	# Upgrade
Packit 135353
	systemctl --no-reload disable hypervfcopyd.service >/dev/null 2>&1 || :
Packit 135353
fi
Packit 135353
Packit 135353
%postun -n hypervfcopyd
Packit 135353
%systemd_postun hypervfcopyd.service
Packit 135353
Packit 135353
%preun -n hypervfcopyd
Packit 135353
%systemd_preun hypervfcopyd.service
Packit 135353
Packit 135353
Packit 135353
%files
Packit 135353
# the base package does not contain any files.
Packit 135353
Packit 135353
%files -n hypervkvpd
Packit 135353
%{_sbindir}/%{hv_kvp_daemon}
Packit 135353
%{_unitdir}/hypervkvpd.service
Packit 135353
%{_udevrulesdir}/%{udev_prefix}-hypervkvp.rules
Packit 135353
%dir %{_libexecdir}/%{hv_kvp_daemon}
Packit 135353
%{_libexecdir}/%{hv_kvp_daemon}/*
Packit 135353
%dir %{_sharedstatedir}/hyperv
Packit 135353
Packit 135353
%files -n hypervvssd
Packit 135353
%{_sbindir}/%{hv_vss_daemon}
Packit 135353
%{_unitdir}/hypervvssd.service
Packit 135353
%{_udevrulesdir}/%{udev_prefix}-hypervvss.rules
Packit 135353
Packit 135353
%files -n hypervfcopyd
Packit 135353
%{_sbindir}/%{hv_fcopy_daemon}
Packit 135353
%{_unitdir}/hypervfcopyd.service
Packit 135353
%{_udevrulesdir}/%{udev_prefix}-hypervfcopy.rules
Packit 135353
Packit 135353
%files license
Packit 135353
%doc COPYING
Packit 135353
Packit 135353
%files -n hyperv-tools
Packit 135353
%{_sbindir}/lsvmbus
Packit 135353
%{_sbindir}/vmbus_testing
Packit 135353
Packit 135353
%changelog
Packit 135353
* Wed Apr 15 2020 Miroslav Rezanina <mrezanin@redhat.com> - 0-0.29.20180415git.el8
Packit 135353
- hvd-Update-C-files-and-scripts-to-kernel-version-5.7-rc1.patch [bz#1816750]
Packit 135353
- hvd-Add-vmbus_testing-tool-build-files.patch [bz#1816750]
Packit 135353
- Resolves: bz#1816750
Packit 135353
  ([Hyper-V][RHEL8.3] Update Hyper-V tools)
Packit 135353
Packit 135353
* Tue Nov 19 2019 Miroslav Rezanina <mrezanin@redhat.com> - 0-0.28.20180415git.el8
Packit 135353
- hpvd-Set-IgnoreOnIsolate-1-in-systemd-units.patch [bz#1769920]
Packit 135353
- Resolves: bz#1769920
Packit 135353
  ([Hyper-V][RHEL8] Running 'systemctl isolate' on any target stops hyperv-daemon services)
Packit 135353
Packit 135353
* Mon Sep 03 2018 Vitaly Kuznetsov <vkuznets@redhat.com> - 0-0.27.20180415git
Packit 135353
- Do not set NM_CONTROLLED=no (#1624355)
Packit 135353
Packit 135353
* Wed Aug 01 2018 Charalampos Stratakis <cstratak@redhat.com> - 0-0.26.20180415git
Packit 135353
- Fix python shebangs
Packit 135353
Packit 135353
* Mon Jun 11 2018 Vitaly Kuznetsov <vkuznets@redhat.com> - 0-0.25.20180415git
Packit 135353
- Switch lsvmbus to Python3
Packit 135353
Packit 135353
* Thu Apr 26 2018 Tomas Hozza <thozza@redhat.com> - 0-0.24.20180415git
Packit 135353
- Added gcc as an explicit BuildRequires
Packit 135353
Packit 135353
* Thu Apr 19 2018 Vitaly Kuznetsov <vkuznets@redhat.com> - 0-0.23.20180415git
Packit 135353
- Rebase to 4.17-rc1
Packit 135353
Packit 135353
* Wed Feb 07 2018 Fedora Release Engineering <releng@fedoraproject.org> - 0-0.22.20170105git
Packit 135353
- Rebuilt for https://fedoraproject.org/wiki/Fedora_28_Mass_Rebuild
Packit 135353
Packit 135353
* Mon Dec 11 2017 Vitaly Kuznetsov <vkuznets@redhat.com> - 0-0.21.20170105git
Packit 135353
- Rebase to 4.15-rc2, drop fedora patches as changes are upstream
Packit 135353
- Start kvpd after network.target
Packit 135353
Packit 135353
* Wed Aug 02 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0-0.20.20170105git
Packit 135353
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Binutils_Mass_Rebuild
Packit 135353
Packit 135353
* Wed Jul 26 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0-0.19.20170105git
Packit 135353
- Rebuilt for https://fedoraproject.org/wiki/Fedora_27_Mass_Rebuild
Packit 135353
Packit 135353
* Fri Feb 10 2017 Fedora Release Engineering <releng@fedoraproject.org> - 0-0.18.20170105git
Packit 135353
- Rebuilt for https://fedoraproject.org/wiki/Fedora_26_Mass_Rebuild
Packit 135353
Packit 135353
* Wed Jan 11 2017 Vitaly Kuznetsov <vkuznets@redhat.com> - 0-0.17.20160728git
Packit 135353
- Use '-gt' instead of '>' to do the right comparison (#1412033)
Packit 135353
Packit 135353
* Thu Jan 05 2017 Vitaly Kuznetsov <vkuznets@redhat.com> - 0-0.16.20160728git
Packit 135353
- Rebase to 4.9
Packit 135353
- hyperv-tools subpackage added
Packit 135353
Packit 135353
* Thu Jul 28 2016 Vitaly Kuznetsov <vkuznets@redhat.com> - 0-0.15.20160728git
Packit 135353
- Rebase to 4.8-rc0 (20160728 git snapshot)
Packit 135353
- Disable services and remove ConditionVirtualization, multi-user.target
Packit 135353
  dependencies switching to udev-only activation (#1331577)
Packit 135353
Packit 135353
* Thu Feb 04 2016 Fedora Release Engineering <releng@fedoraproject.org> - 0-0.14.20150702git
Packit 135353
- Rebuilt for https://fedoraproject.org/wiki/Fedora_24_Mass_Rebuild
Packit 135353
Packit 135353
* Wed Nov 18 2015 Vitaly Kuznetsov <vkuznets@redhat.com> - 0-0.13.20150702git
Packit 135353
- Add udev rules to properly restart services (#1195029)
Packit 135353
- Spec cleanup
Packit 135353
Packit 135353
* Thu Jul 02 2015 Vitaly Kuznetsov <vkuznets@redhat.com> - 0-0.12.20150702git
Packit 135353
- Rebase to 4.2-rc0 (20150702 git snapshot)
Packit 135353
- Switch to new chardev-based communication layer (#1195029)
Packit 135353
Packit 135353
* Wed Jun 17 2015 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0-0.11.20150108git
Packit 135353
- Rebuilt for https://fedoraproject.org/wiki/Fedora_23_Mass_Rebuild
Packit 135353
Packit 135353
* Thu Jan 08 2015 Vitaly Kuznetsov <vkuznets@redhat.com> - 0-0.10.20150108git
Packit 135353
- Rebase to 3.19-rc3 (20150108 git snapshot)
Packit 135353
- Drop 'nodaemon' patches, use newly introduced '-n' option
Packit 135353
Packit 135353
* Sat Aug 16 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0-0.9.20140714git
Packit 135353
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_22_Mass_Rebuild
Packit 135353
Packit 135353
* Mon Jul 14 2014 Tomas Hozza <thozza@redhat.com> - 0-0.8.20140714git
Packit 135353
- Update the File copy daemon to the latest git snapshot
Packit 135353
- Fix hyperfcopyd.service to check for /dev/vmbus/hv_fcopy
Packit 135353
Packit 135353
* Wed Jun 11 2014 Tomas Hozza <thozza@redhat.com> - 0-0.7.20140611git
Packit 135353
- Fix FTBFS (#1106781)
Packit 135353
- Use kernel-headers instead of kernel-devel for building
Packit 135353
- package new Hyper-V fcopy daemon as hypervfcopyd sub-package
Packit 135353
Packit 135353
* Sat Jun 07 2014 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0-0.6.20140219git
Packit 135353
- Rebuilt for https://fedoraproject.org/wiki/Fedora_21_Mass_Rebuild
Packit 135353
Packit 135353
* Wed Feb 19 2014 Tomas Hozza <thozza@redhat.com> - 0-0.5.20140219git
Packit 135353
- rebase to the latest git snapshot next-20140219
Packit 135353
  - KVP, VSS: removed inclusion of linux/types.h
Packit 135353
  - VSS: Ignore VFAT mounts during freeze operation
Packit 135353
Packit 135353
* Fri Jan 10 2014 Tomas Hozza <thozza@redhat.com> - 0-0.4.20131022git
Packit 135353
- provide 'hyperv-daemons' package for convenient installation of all daemons
Packit 135353
Packit 135353
* Tue Oct 22 2013 Tomas Hozza <thozza@redhat.com> - 0-0.3.20131022git
Packit 135353
- rebase to the latest git snapshot next-20130927 (obtained 2013-10-22)
Packit 135353
  - KVP, VSS: daemon use single buffer for send/recv
Packit 135353
  - KVP: FQDN is obtained on start and cached
Packit 135353
Packit 135353
* Fri Sep 20 2013 Tomas Hozza <thozza@redhat.com> - 0-0.2.20130826git
Packit 135353
- Use 'hypervkvpd' directory in libexec for KVP daemon scripts (#1010268)
Packit 135353
- daemons are now WantedBy multi-user.target instead of basic.target (#1010260)
Packit 135353
Packit 135353
* Mon Aug 26 2013 Tomas Hozza <thozza@redhat.com> - 0-0.1.20130826git
Packit 135353
- Initial package