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
68a822
%global snapver .20150402git
7b0ce3
# use hardened build
7b0ce3
%global _hardened_build 1
7b0ce3
7b0ce3
Name:     hyperv-daemons
7b0ce3
Version:  0
68a822
Release:  0.26%{?snapver}%{?dist}
7b0ce3
Summary:  HyperV daemons suite
7b0ce3
7b0ce3
Group:    System Environment/Daemons
7b0ce3
License:  GPLv2
7b0ce3
URL:      http://www.kernel.org
7b0ce3
68a822
# Source files obtained from kernel upstream 2015-04-02.
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"
68a822
# COPYING -> https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/plain/COPYING?id=next-20150402
7b0ce3
Source0:  COPYING
7b0ce3
7b0ce3
# HYPERV KVP DAEMON
68a822
# hv_kvp_daemon.c -> https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/tree/tools/hv/hv_kvp_daemon.c?id=next-20150402
7b0ce3
Source1:  hv_kvp_daemon.c
68a822
# 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=next-20150402
7b0ce3
Source2:  hv_get_dhcp_info.sh
68a822
# 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=next-20150402
7b0ce3
Source3:  hv_get_dns_info.sh
68a822
# hv_set_ifconfig.sh -> https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/plain/tools/hv/hv_set_ifconfig.sh?id=next-20150402
7b0ce3
Source4:  hv_set_ifconfig.sh
7b0ce3
Source5:  hypervkvpd.service
7b0ce3
7b0ce3
# HYPERV VSS DAEMON
68a822
# hv_vss_daemon.c -> https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/plain/tools/hv/hv_vss_daemon.c?id=next-20150402
7b0ce3
Source100:  hv_vss_daemon.c
7b0ce3
Source101:  hypervvssd.service
7b0ce3
41f5a8
# HYPERV FCOPY DAEMON
68a822
# hv_fcopy_daemon.c -> https://git.kernel.org/cgit/linux/kernel/git/next/linux-next.git/plain/tools/hv/hv_fcopy_daemon.c?id=next-20150402
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
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
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
68a822
* Fri May 15 2015 Vitaly Kuznetsov <vkuznets@redhat.com> - 0-0.26.20150402git
68a822
- 2015-04-02 git snapshot
68a822
- VSS: skip all readonly-mounted filesystems (#1160584)
68a822
- VSS: support partitions mounted several times (#1169724)
68a822
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