# HyperV KVP daemon binary name %global hv_kvp_daemon hypervkvpd # HyperV VSS daemon binary name %global hv_vss_daemon hypervvssd # HyperV FCOPY daemon binary name %global hv_fcopy_daemon hypervfcopyd # snapshot version %global snapver .20150702git # use hardened build %global _hardened_build 1 # udev rules prefix %global udev_prefix 70 Name: hyperv-daemons Version: 0%{snapver} Release: %mkrel 3 Summary: HyperV daemons suite Group: System/Kernel and hardware License: GPLv2 URL: http://www.kernel.org # Source files obtained from kernel upstream 4.2-rc0 (4da3064d1775810f10f7ddc1c34c3f1ff502a654) # git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git # The daemon and scripts are located in "master branch - /tools/hv" # COPYING -> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/tree/COPYING?id=b1940cd21c0f4abdce101253e860feff547291b Source0: COPYING # HYPERV KVP DAEMON # hv_kvp_daemon.c -> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/plain/tools/hv/hv_kvp_daemon.c?id=4da3064d1775810f10f7ddc1c34c3f1ff502a654 Source1: hv_kvp_daemon.c # hv_get_dhcp_info.sh -> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/plain/tools/hv/hv_get_dhcp_info.sh?id=4da3064d1775810f10f7ddc1c34c3f1ff502a654 Source2: hv_get_dhcp_info.sh # hv_get_dns_info.sh -> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/plain/tools/hv/hv_get_dns_info.sh?id=4da3064d1775810f10f7ddc1c34c3f1ff502a654 Source3: hv_get_dns_info.sh # hv_set_ifconfig.sh -> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/plain/tools/hv/hv_set_ifconfig.sh?id=4da3064d1775810f10f7ddc1c34c3f1ff502a654 Source4: hv_set_ifconfig.sh Source5: hypervkvpd.service Source6: hypervkvp.rules # HYPERV VSS DAEMON # hv_vss_daemon.c -> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/plain/tools/hv/hv_vss_daemon.c?id=4da3064d1775810f10f7ddc1c34c3f1ff502a654 Source100: hv_vss_daemon.c Source101: hypervvssd.service Source102: hypervvss.rules # HYPERV FCOPY DAEMON # hv_fcopy_daemon.c -> https://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/plain/tools/hv/hv_fcopy_daemon.c?id=4da3064d1775810f10f7ddc1c34c3f1ff502a654 Source200: hv_fcopy_daemon.c Source201: hypervfcopyd.service Source202: hypervfcopy.rules # HYPERV KVP DAEMON # Correct paths to external scripts ("/usr/libexec/hypervkvpd"). Patch0: hypervkvpd-0-corrected_paths_to_external_scripts.patch # rhbz#872566 Patch1: hypervkvpd-0-long_file_names_from_readdir.patch # HyperV is available only on x86 architectures # The base empty (a.k.a. virtual) package can not be noarch # due to http://www.rpm.org/ticket/78 ExclusiveArch: i586 x86_64 Requires: hypervkvpd = %{version}-%{release} Requires: hypervvssd = %{version}-%{release} Requires: hypervfcopyd = %{version}-%{release} %description Suite of daemons that are needed when Linux guest is running on Windows Host with HyperV. %package -n hypervkvpd Summary: HyperV key value pair (KVP) daemon Group: System/Kernel and hardware Requires: %{name}-license = %{version}-%{release} # for macro definition: BuildRequires: systemd-devel BuildRequires: systemd, kernel-headers Requires(post): systemd Requires(preun): systemd Requires(postun): systemd %description -n hypervkvpd Hypervkvpd is an implementation of HyperV key value pair (KVP) functionality for Linux. The daemon first registers with the kernel driver. After this is done it collects information requested by Windows Host about the Linux Guest. It also supports IP injection functionality on the Guest. %package -n hypervvssd Summary: HyperV VSS daemon Group: System/Kernel and hardware Requires: %{name}-license = %{version}-%{release} BuildRequires: systemd, kernel-headers Requires(post): systemd Requires(preun): systemd Requires(postun): systemd %description -n hypervvssd Hypervvssd is an implementation of HyperV VSS functionality for Linux. The daemon is used for host initiated guest snapshot on HyperV hypervisor. The daemon first registers with the kernel driver. After this is done it waits for instructions from Windows Host if to "freeze" or "thaw" the filesystem on the Linux Guest. %package -n hypervfcopyd Summary: HyperV FCOPY daemon Group: System/Kernel and hardware Requires: %{name}-license = %{version}-%{release} BuildRequires: systemd, kernel-headers Requires(post): systemd Requires(preun): systemd Requires(postun): systemd %description -n hypervfcopyd Hypervfcopyd is an implementation of file copy service functionality for Linux Guest running on HyperV. The daemon enables host to copy a file (over VMBUS) into the Linux Guest. The daemon first registers with the kernel driver. After this is done it waits for instructions from Windows Host. %package license Summary: License of the HyperV daemons suite Group: System/Kernel and hardware BuildArch: noarch %description license Contains license of the HyperV daemons suite. %prep %setup -Tc cp -pvL %{SOURCE0} COPYING cp -pvL %{SOURCE1} hv_kvp_daemon.c cp -pvL %{SOURCE100} hv_vss_daemon.c cp -pvL %{SOURCE200} hv_fcopy_daemon.c %patch0 -p1 -b .external_scripts %patch1 -p1 -b .long_names %build # HYPERV KVP DAEMON gcc $RPM_OPT_FLAGS -c hv_kvp_daemon.c gcc $RPM_LD_FLAGS hv_kvp_daemon.o -o %{hv_kvp_daemon} # HYPERV VSS DAEMON gcc $RPM_OPT_FLAGS -c hv_vss_daemon.c gcc $RPM_LD_FLAGS hv_vss_daemon.o -o %{hv_vss_daemon} # HYPERV FCOPY DAEMON gcc $RPM_OPT_FLAGS -c hv_fcopy_daemon.c gcc $RPM_LD_FLAGS hv_fcopy_daemon.o -o %{hv_fcopy_daemon} %install mkdir -p %{buildroot}%{_sbindir} install -p -m 0755 %{hv_kvp_daemon} %{buildroot}%{_sbindir} install -p -m 0755 %{hv_vss_daemon} %{buildroot}%{_sbindir} install -p -m 0755 %{hv_fcopy_daemon} %{buildroot}%{_sbindir} # Systemd unit file mkdir -p %{buildroot}%{_unitdir} install -p -m 0644 %{SOURCE5} %{buildroot}%{_unitdir} install -p -m 0644 %{SOURCE101} %{buildroot}%{_unitdir} install -p -m 0644 %{SOURCE201} %{buildroot}%{_unitdir} # Udev rules mkdir -p %{buildroot}%{_udevrulesdir} install -p -m 0644 %{SOURCE6} %{buildroot}%{_udevrulesdir}/%{udev_prefix}-hypervkvp.rules install -p -m 0644 %{SOURCE102} %{buildroot}%{_udevrulesdir}/%{udev_prefix}-hypervvss.rules install -p -m 0644 %{SOURCE202} %{buildroot}%{_udevrulesdir}/%{udev_prefix}-hypervfcopy.rules # Shell scripts for the KVP daemon mkdir -p %{buildroot}%{_libexecdir}/%{hv_kvp_daemon} install -p -m 0755 %{SOURCE2} %{buildroot}%{_libexecdir}/%{hv_kvp_daemon}/hv_get_dhcp_info install -p -m 0755 %{SOURCE3} %{buildroot}%{_libexecdir}/%{hv_kvp_daemon}/hv_get_dns_info install -p -m 0755 %{SOURCE4} %{buildroot}%{_libexecdir}/%{hv_kvp_daemon}/hv_set_ifconfig # Directory for pool files mkdir -p %{buildroot}%{_sharedstatedir}/hyperv %post -n hypervkvpd %systemd_post hypervkvpd.service %preun -n hypervkvpd %systemd_preun hypervkvpd.service %postun -n hypervkvpd # hypervkvpd daemon does NOT support restarting (driver, neither) %systemd_postun hypervkvpd.service # If removing the package, delete %%{_sharedstatedir}/hyperv directory if [ "$1" -eq "0" ] ; then rm -rf %{_sharedstatedir}/hyperv || : fi %post -n hypervvssd %systemd_post hypervvssd.service # (tv) empty %%postun: #postun -n hypervvssd #systemd_postun hypervvssd.service %preun -n hypervvssd %systemd_preun hypervvssd.service %post -n hypervfcopyd %systemd_post hypervfcopyd.service # (tv) empty %%postun: #postun -n hypervfcopyd #systemd_postun hypervfcopyd.service %preun -n hypervfcopyd %systemd_preun hypervfcopyd.service %files # the base package does not contain any files. %files -n hypervkvpd %{_sbindir}/%{hv_kvp_daemon} %{_unitdir}/hypervkvpd.service %{_udevrulesdir}/%{udev_prefix}-hypervkvp.rules %dir %{_libexecdir}/%{hv_kvp_daemon} %{_libexecdir}/%{hv_kvp_daemon}/* %dir %{_sharedstatedir}/hyperv %files -n hypervvssd %{_sbindir}/%{hv_vss_daemon} %{_unitdir}/hypervvssd.service %{_udevrulesdir}/%{udev_prefix}-hypervvss.rules %files -n hypervfcopyd %{_sbindir}/%{hv_fcopy_daemon} %{_unitdir}/hypervfcopyd.service %{_udevrulesdir}/%{udev_prefix}-hypervfcopy.rules %files license %doc COPYING %changelog * Mon Oct 17 2016 tv <tv> 0.20150702git-3.mga6 + Revision: 1061248 - "fix" empty %%postun - BR systemd-devel for macro definition (mga#12027) * Sun Jan 31 2016 eandry <eandry> 0.20150702git-1.mga6 + Revision: 929355 - imported package hyperv-daemons