Blame SPECS/hyperv-daemons.spec

7b0ce3
# HyperV KVP daemon binary name
7b0ce3
%global hv_kvp_daemon hypervkvpd
7b0ce3
# HyperV VSS daemon binary name
7b0ce3
%global hv_vss_daemon hypervvssd
41f5a8
# HyperV FCOPY daemon binary name
41f5a8
%global hv_fcopy_daemon hypervfcopyd
7b0ce3
# snapshot version
41f5a8
%global snapver .20141008git
7b0ce3
# use hardened build
7b0ce3
%global _hardened_build 1
7b0ce3
7b0ce3
Name:     hyperv-daemons
7b0ce3
Version:  0
41f5a8
Release:  0.25%{?snapver}%{?dist}
7b0ce3
Summary:  HyperV daemons suite
7b0ce3
7b0ce3
Group:    System Environment/Daemons
7b0ce3
License:  GPLv2
7b0ce3
URL:      http://www.kernel.org
7b0ce3
41f5a8
# Source files obtained from kernel upstream 2014-10-08.
7b0ce3
# git://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
7b0ce3
# The daemon and scripts are located in "master branch - /tools/hv"
41f5a8
# COPYING -> https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/plain/COPYING?id=refs/tags/next-2014-10-08
7b0ce3
Source0:  COPYING
7b0ce3
7b0ce3
# HYPERV KVP DAEMON
41f5a8
# hv_kvp_daemon.c -> https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/plain/tools/hv/hv_kvp_daemon.c?id=refs/tags/next-2014-10-08
7b0ce3
Source1:  hv_kvp_daemon.c
41f5a8
# hv_get_dhcp_info.sh -> https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/plain/tools/hv/hv_get_dhcp_info.sh?id=refs/tags/next-2014-10-08
7b0ce3
Source2:  hv_get_dhcp_info.sh
41f5a8
# hv_get_dns_info.sh -> https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/plain/tools/hv/hv_get_dns_info.sh?id=refs/tags/next-2014-10-08
7b0ce3
Source3:  hv_get_dns_info.sh
41f5a8
# hv_set_ifconfig.sh -> https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/plain/tools/hv/hv_set_ifconfig.sh?id=refs/tags/next-2014-10-08
7b0ce3
Source4:  hv_set_ifconfig.sh
7b0ce3
Source5:  hypervkvpd.service
7b0ce3
7b0ce3
# HYPERV VSS DAEMON
41f5a8
# hv_vss_daemon.c -> https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/plain/tools/hv/hv_vss_daemon.c?id=refs/tags/next-2014-10-08
7b0ce3
Source100:  hv_vss_daemon.c
7b0ce3
Source101:  hypervvssd.service
7b0ce3
41f5a8
# HYPERV FCOPY DAEMON
41f5a8
# hv_fcopy_daemon.c -> https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/plain/tools/hv/hv_fcopy_daemon.c?id=refs/tags/next-2014-10-08
41f5a8
Source200:  hv_fcopy_daemon.c
41f5a8
Source201:  hypervfcopyd.service
41f5a8
41f5a8
7b0ce3
# HYPERV KVP DAEMON
7b0ce3
# Correct paths to external scripts ("/usr/libexec/hypervkvpd").
7b0ce3
Patch0:   hypervkvpd-0-corrected_paths_to_external_scripts.patch
7b0ce3
# rhbz#872566
41f5a8
Patch1:   hypervkvpd-0-long_file_names_from_readdir.patch
7b0ce3
# Remove daemon() call and let systemd handle it
41f5a8
Patch2:   hypervkvpd-0-dont_call_deamon.patch
7b0ce3
7b0ce3
# HYPERV VSS DAEMON
7b0ce3
# Remove daemon() call and let systemd handle it
41f5a8
Patch100:   hypervvssd-0-dont_call_daemon.patch
41f5a8
41f5a8
# HYPERV FCOPY DAEMON
41f5a8
# Remove daemon() call and let systemd handle it
41f5a8
Patch200:   hypervfcopyd-0-dont_call_daemon.patch
41f5a8
7b0ce3
7b0ce3
BuildRoot:        %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
7b0ce3
# HyperV is available only on x86 architectures
7b0ce3
ExclusiveArch:  x86_64
7b0ce3
Requires:       hypervkvpd = %{version}-%{release}
7b0ce3
Requires:       hypervvssd = %{version}-%{release}
41f5a8
Requires:       hypervfcopyd = %{version}-%{release}
7b0ce3
7b0ce3
%description
7b0ce3
Suite of daemons that are needed when Linux guest
7b0ce3
is running on Windows Host with HyperV.
7b0ce3
7b0ce3
7b0ce3
%package -n hypervkvpd
7b0ce3
Summary: HyperV key value pair (KVP) daemon
7b0ce3
Group:   System Environment/Daemons
7b0ce3
Requires: %{name}-license = %{version}-%{release}
41f5a8
BuildRequires: systemd, kernel-headers
7b0ce3
Requires(post):   systemd
7b0ce3
Requires(preun):  systemd
7b0ce3
Requires(postun): systemd
7b0ce3
7b0ce3
%description -n hypervkvpd
7b0ce3
Hypervkvpd is an implementation of HyperV key value pair (KVP) 
7b0ce3
functionality for Linux. The daemon first registers with the
7b0ce3
kernel driver. After this is done it collects information 
7b0ce3
requested by Windows Host about the Linux Guest. It also supports
7b0ce3
IP injection functionality on the Guest.
7b0ce3
7b0ce3
7b0ce3
%package -n hypervvssd
7b0ce3
Summary: HyperV VSS daemon
7b0ce3
Group:   System Environment/Daemons
7b0ce3
Requires: %{name}-license = %{version}-%{release}
41f5a8
BuildRequires: systemd, kernel-headers
7b0ce3
Requires(post):   systemd
7b0ce3
Requires(preun):  systemd
7b0ce3
Requires(postun): systemd
7b0ce3
7b0ce3
%description -n hypervvssd
7b0ce3
Hypervvssd is an implementation of HyperV VSS functionality
7b0ce3
for Linux. The daemon is used for host initiated guest snapshot
7b0ce3
on HyperV hypervisor. The daemon first registers with the
7b0ce3
kernel driver. After this is done it waits for instructions 
7b0ce3
from Windows Host if to "freeze" or "thaw" the filesystem
7b0ce3
on the Linux Guest.
7b0ce3
7b0ce3
41f5a8
%package -n hypervfcopyd
41f5a8
Summary: HyperV FCOPY daemon
41f5a8
Group:   System Environment/Daemons
41f5a8
Requires: %{name}-license = %{version}-%{release}
41f5a8
BuildRequires: systemd, kernel-headers
41f5a8
Requires(post):   systemd
41f5a8
Requires(preun):  systemd
41f5a8
Requires(postun): systemd
41f5a8
41f5a8
%description -n hypervfcopyd
41f5a8
Hypervfcopyd is an implementation of file copy service functionality
41f5a8
for Linux Guest running on HyperV. The daemon enables host to copy
41f5a8
a file (over VMBUS) into the Linux Guest. The daemon first registers
41f5a8
with the kernel driver. After this is done it waits for instructions 
41f5a8
from Windows Host.
41f5a8
41f5a8
7b0ce3
%package license
7b0ce3
Summary:    License of the HyperV daemons suite
7b0ce3
Group:      Applications/System
7b0ce3
BuildArch:  noarch
7b0ce3
7b0ce3
%description license
7b0ce3
Contains license of the HyperV daemons suite.
7b0ce3
7b0ce3
7b0ce3
%prep
7b0ce3
%setup -Tc
7b0ce3
cp -pvL %{SOURCE0} COPYING
7b0ce3
7b0ce3
cp -pvL %{SOURCE1} hv_kvp_daemon.c
7b0ce3
cp -pvL %{SOURCE2} hv_get_dhcp_info.sh
7b0ce3
cp -pvL %{SOURCE3} hv_get_dns_info.sh
7b0ce3
cp -pvL %{SOURCE4} hv_set_ifconfig.sh
7b0ce3
cp -pvL %{SOURCE5} hypervkvpd.service
7b0ce3
7b0ce3
cp -pvL %{SOURCE100} hv_vss_daemon.c
7b0ce3
cp -pvL %{SOURCE101} hypervvssd.service
7b0ce3
41f5a8
cp -pvL %{SOURCE200} hv_fcopy_daemon.c
41f5a8
cp -pvL %{SOURCE201} hypervfcopyd.service
41f5a8
7b0ce3
%patch0 -p1 -b .external_scripts
41f5a8
%patch1 -p1 -b .long_names
41f5a8
%patch2 -p1 -b .daemon
7b0ce3
41f5a8
%patch100 -p1 -b .daemon
7b0ce3
41f5a8
%patch200 -p1 -b .daemon_fcopy
7b0ce3
7b0ce3
%build
7b0ce3
# HYPERV KVP DAEMON
7b0ce3
gcc \
7b0ce3
    $RPM_OPT_FLAGS \
7b0ce3
    -c hv_kvp_daemon.c
7b0ce3
    
7b0ce3
gcc \
7b0ce3
    $RPM_LD_FLAGS \
7b0ce3
    hv_kvp_daemon.o \
7b0ce3
    -o %{hv_kvp_daemon}
7b0ce3
7b0ce3
# HYPERV VSS DAEMON
7b0ce3
gcc \
7b0ce3
    $RPM_OPT_FLAGS \
7b0ce3
    -c hv_vss_daemon.c
7b0ce3
    
7b0ce3
gcc \
7b0ce3
    $RPM_LD_FLAGS \
7b0ce3
    hv_vss_daemon.o \
7b0ce3
    -o %{hv_vss_daemon}
7b0ce3
41f5a8
# HYPERV FCOPY DAEMON
41f5a8
gcc \
41f5a8
    $RPM_OPT_FLAGS \
41f5a8
    -c hv_fcopy_daemon.c
41f5a8
    
41f5a8
gcc \
41f5a8
    $RPM_LD_FLAGS \
41f5a8
    hv_fcopy_daemon.o \
41f5a8
    -o %{hv_fcopy_daemon}
41f5a8
7b0ce3
7b0ce3
%install
7b0ce3
rm -rf %{buildroot}
7b0ce3
7b0ce3
mkdir -p %{buildroot}%{_sbindir}
7b0ce3
install -p -m 0755 %{hv_kvp_daemon} %{buildroot}%{_sbindir}
7b0ce3
install -p -m 0755 %{hv_vss_daemon} %{buildroot}%{_sbindir}
41f5a8
install -p -m 0755 %{hv_fcopy_daemon} %{buildroot}%{_sbindir}
7b0ce3
mkdir -p %{buildroot}%{_unitdir}
7b0ce3
# Systemd unit file
7b0ce3
install -p -m 0644 %{SOURCE5} %{buildroot}%{_unitdir}
7b0ce3
install -p -m 0644 %{SOURCE101} %{buildroot}%{_unitdir}
41f5a8
install -p -m 0644 %{SOURCE201} %{buildroot}%{_unitdir}
7b0ce3
# Shell scripts for the KVP daemon
7b0ce3
mkdir -p %{buildroot}%{_libexecdir}/%{hv_kvp_daemon}
7b0ce3
install -p -m 0755 hv_get_dhcp_info.sh %{buildroot}%{_libexecdir}/%{hv_kvp_daemon}/hv_get_dhcp_info
7b0ce3
install -p -m 0755 hv_get_dns_info.sh %{buildroot}%{_libexecdir}/%{hv_kvp_daemon}/hv_get_dns_info
7b0ce3
install -p -m 0755 hv_set_ifconfig.sh %{buildroot}%{_libexecdir}/%{hv_kvp_daemon}/hv_set_ifconfig
7b0ce3
# Directory for pool files
7b0ce3
mkdir -p %{buildroot}%{_sharedstatedir}/hyperv
7b0ce3
7b0ce3
7b0ce3
%post -n hypervkvpd
7b0ce3
%systemd_post hypervkvpd.service
7b0ce3
7b0ce3
%preun -n hypervkvpd
7b0ce3
%systemd_preun hypervkvpd.service
7b0ce3
7b0ce3
%postun -n hypervkvpd
7b0ce3
# hypervkvpd daemon does NOT support restarting (driver, neither)
7b0ce3
%systemd_postun hypervkvpd.service
7b0ce3
# If removing the package, delete %%{_sharedstatedir}/hyperv directory
7b0ce3
if [ "$1" -eq "0" ] ; then
7b0ce3
    rm -rf %{_sharedstatedir}/hyperv || :
7b0ce3
fi
7b0ce3
7b0ce3
7b0ce3
%post -n hypervvssd
7b0ce3
%systemd_post hypervvssd.service
7b0ce3
7b0ce3
%postun -n hypervvssd
7b0ce3
%systemd_postun hypervvssd.service
7b0ce3
7b0ce3
%preun -n hypervvssd
7b0ce3
%systemd_preun hypervvssd.service
7b0ce3
41f5a8
41f5a8
%post -n hypervfcopyd
41f5a8
%systemd_post hypervfcopyd.service
41f5a8
41f5a8
%postun -n hypervfcopyd
41f5a8
%systemd_postun hypervfcopyd.service
41f5a8
41f5a8
%preun -n hypervfcopyd
41f5a8
%systemd_preun hypervfcopyd.service
41f5a8
41f5a8
5f68da
%files
5f68da
# the base package does not contain any files.
7b0ce3
7b0ce3
%files -n hypervkvpd
7b0ce3
%{_sbindir}/%{hv_kvp_daemon}
7b0ce3
%{_unitdir}/hypervkvpd.service
7b0ce3
%dir %{_libexecdir}/%{hv_kvp_daemon}
7b0ce3
%{_libexecdir}/%{hv_kvp_daemon}/*
7b0ce3
%dir %{_sharedstatedir}/hyperv
7b0ce3
7b0ce3
%files -n hypervvssd
7b0ce3
%{_sbindir}/%{hv_vss_daemon}
7b0ce3
%{_unitdir}/hypervvssd.service
7b0ce3
41f5a8
%files -n hypervfcopyd
41f5a8
%{_sbindir}/%{hv_fcopy_daemon}
41f5a8
%{_unitdir}/hypervfcopyd.service
41f5a8
7b0ce3
%files license
7b0ce3
%doc COPYING
7b0ce3
7b0ce3
%changelog
41f5a8
* Thu Oct 9 2014 Matej Muzila <mmuzila@redhat.com> - 0-0.25.20141008git
41f5a8
- Daemons updated to the last git snapshot
41f5a8
- Use kernel-headers instead of kernel-devel to build
41f5a8
- Added Hyper-V fcopy daemon as hypervfcopyd subpackage
41f5a8
5f68da
* Mon Feb 17 2014 Tomas Hozza <thozza@redhat.com> - 0-0.24.20130826git
5f68da
- VSS: Ignore VFAT mounts on freeze/thaw (#1064094)
5f68da
5f68da
* Fri Jan 10 2014 Tomas Hozza <thozza@redhat.com> - 0-0.23.20130826git
5f68da
- Provide 'hyperv-daemons' package for convenient installation of all daemons (#1051450)
5f68da
5f68da
* Fri Dec 27 2013 Daniel Mach <dmach@redhat.com> - 0-0.22.20130826git
5f68da
- Mass rebuild 2013-12-27
5f68da
7b0ce3
* Thu Sep 26 2013 Tomas Hozza <thozza@redhat.com> - 0-0.21.20130826git
7b0ce3
- Use 'hypervkvpd' directory in libexec for KVP daemon scripts (#1010280)
7b0ce3
- daemons are now WantedBy multi-user.target instead of basic.target (#1010284)
7b0ce3
7b0ce3
* Mon Sep 23 2013 Tomas Hozza <thozza@redhat.com> - 0-0.20.20130826git
7b0ce3
- Build daemons only for x86_64 architecture (#1010220)
7b0ce3
- Bump release to 20 to prevent RHEL6 -> RHEL7 update path issues
7b0ce3
7b0ce3
* Mon Aug 26 2013 Tomas Hozza <thozza@redhat.com> - 0-0.1.20130826git
7b0ce3
- Initial package