%global vdsm_package vdsm-%{version}
%global _vdsmexecdir %{_libexecdir}/vdsm
%global _vdsmhooksdir %{_vdsmexecdir}/hooks
Name: vdsm-hook
Version: 4.9.6
Release: 1%{?dist}%{?extra_release}
Summary: Virtual Desktop Server Manager Hooks
Group: Applications/System
License: GPLv2+
Url: http://www.ovirt.org/wiki/Vdsm
# The source for this package was pulled from upstream's vcs.
# Use the following commands to generate the tarball:
# git clone git://gerrit.ovirt.org/vdsm
# cd vdsm
# git reset --hard v%{version}
# ./autogen.sh --system
# make VERSION=%{version} dist
Source0: %{vdsm_package}.tar.gz
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
BuildArch: noarch
BuildRequires: python
BuildRequires: pyflakes
%description
Virtual Desktop Server Manager Hooks.
%package directlun
Summary: Direct LUN support for VDSM
Requires: vdsm >= %{version}
%description directlun
VDSM hook enable user to add storage LUN for VDSM
without the sharing and storage handling of VDSM.
%package fileinject
Summary: Allow uploading file to VMs disk
Requires: vdsm >= %{version}
%description fileinject
Hook is getting target file name and its content and
create that file in target machine.
%package floppy
Summary: Allow adding floppy to VM
Requires: vdsm >= %{version}
%description floppy
Allow adding floppy to VM
%package hostusb
Summary: Allow attaching USB device from host
Requires: vdsm >= %{version}
%description hostusb
Hook is getting vendor and product id of USB device
disconnect it from host and attach it to VM
%package hugepages
Summary: Huge pages enable user to handle VM with 2048KB page files.
Requires: vdsm >= %{version}
%description hugepages
Hook is getting number of huge pages reserve them for the VM,
and enable user to handle VM with 2048KB page files.
%package isolatedprivatevlan
Summary: Isolated network environment for VMs
Requires: vdsm >= %{version}
%description isolatedprivatevlan
limit VM traffic to a specific gateway by its mac address,
hook prevent VM from spoofing its mac or ip address
by using libvirt filter
and by adding custom filter: isolatedprivatevlan-vdsm.xml
%package numa
Summary: numa sopport for VDSM
Requires: vdsm >= %{version}
%description numa
Hooks is getting number/rage of numa nodes and numa mode,
and update the VM xml.
%package pincpu
Summary: Hook pin VM so specific CPUs
Requires: vdsm >= %{version}
%description pincpu
pincpu is hook for VDSM.
pincpu enable to pin virtual machine to a specific CPUs.
%package promisc
Summary: Network interface promiscuous mode support for VDSM
Requires: vdsm >= %{version}
%description promisc
VDSM promiscuous mode let user define a VM interface that will capture
all network traffic.
%package qos
Summary: QoS network in/out traffic support for VDSM
Requires: vdsm >= %{version}
%description qos
Hook adds QoS in/out traffic to VMs interfaces
%package scratchpad
Summary: One time disk creation for VDSM
Requires: vdsm >= %{version}
%description scratchpad
scratchpad hook for VDSM
Hook creates a disk for a VM onetime usage,
the disk will be erased when the VM destroyed.
VM cannot be migrated when using scratchpad hook
%package smartcard
Summary: Smartcard support for Spice protocol in VDSM
Requires: vdsm >= %{version}
%description smartcard
Smartcard hook add support for spice in VDSM.
Smartcard hook enable user to use its smartcard inside virtual machines.
%package smbios
Summary: Adding custom smbios entries to libvirt domain via VDSM
Requires: vdsm >= %{version}
%description smbios
Adding custom smbios entries to libvirt domain via VDSM
such as: vendor, version, date and release
%package sriov
Summary: sr-iov support for VDSM
Requires: vdsm >= %{version}
%description sriov
sr-iov hook enable to add virtual functions exposed by the device
directly to a virtual machine.
%package vmdisk
Summary: External disk support for VDSM
Requires: vdsm >= %{version}
%description vmdisk
Hook adds additional disk image for a VM (raw or qcow2)
%prep
%setup -q -n %{vdsm_package}
%build
%configure --enable-hooks
make
%install
rm -rf %{buildroot}
make DESTDIR=%{buildroot} -C vdsm_hooks install
# Removing the unwanted hooks
rm -f \
%{buildroot}/etc/sudoers.d/50_vdsm_hook_vhostmd \
%{buildroot}%{_vdsmhooksdir}/after_vm_destroy/50_vhostmd \
%{buildroot}%{_vdsmhooksdir}/before_vm_dehibernate/50_vhostmd \
%{buildroot}%{_vdsmhooksdir}/before_vm_migrate_destination/50_vhostmd \
%{buildroot}%{_vdsmhooksdir}/before_vm_start/10_faqemu \
%{buildroot}%{_vdsmhooksdir}/before_vm_start/50_vhostmd \
%{buildroot}%{_vdsmexecdir}/persist-vdsm-hooks \
%{buildroot}%{_vdsmexecdir}/unpersist-vdsm-hook \
%{buildroot}%{_vdsmexecdir}/vdsm-faqemu
%clean
rm -rf %{buildroot}
%files directlun
%defattr(-, root, root, -)
%{_sysconfdir}/sudoers.d/50_vdsm_hook_directlun
%{_vdsmhooksdir}/before_vm_start/50_directlun
%{_vdsmhooksdir}/after_vm_destroy/50_directlun
%{_vdsmhooksdir}/before_vm_migrate_destination/50_directlun
%files fileinject
%defattr(-, root, root, -)
%{_vdsmhooksdir}/before_vm_start/50_fileinject
%files floppy
%defattr(-, root, root, -)
%{_vdsmhooksdir}/before_vm_start/50_floppy
%{_vdsmhooksdir}/before_vm_migrate_source/50_floppy
%files hostusb
%defattr(-, root, root, -)
%{_sysconfdir}/sudoers.d/50_vdsm_hook_hostusb
%{_vdsmhooksdir}/before_vm_start/50_hostusb
%{_vdsmhooksdir}/before_vm_migrate_source/50_hostusb
%{_vdsmhooksdir}/after_vm_destroy/50_hostusb
%files hugepages
%defattr(-, root, root, -)
%{_sysconfdir}/sudoers.d/50_vdsm_hook_hugepages
%{_vdsmhooksdir}/before_vm_start/50_hugepages
%{_vdsmhooksdir}/before_vm_migrate_destination/50_hugepages
%{_vdsmhooksdir}/after_vm_destroy/50_hugepages
%files isolatedprivatevlan
%defattr(-, root, root, -)
%{_vdsmhooksdir}/before_vm_start/50_isolatedprivatevlan
%config(noreplace) %{_sysconfdir}/libvirt/nwfilter/isolatedprivatevlan-vdsm.xml
%files numa
%defattr(-, root, root, -)
%{_vdsmhooksdir}/before_vm_start/50_numa
%files pincpu
%defattr(-, root, root, -)
%{_vdsmhooksdir}/before_vm_start/50_pincpu
%files promisc
%defattr(-, root, root, -)
%{_sysconfdir}/sudoers.d/50_vdsm_hook_promisc
%{_vdsmhooksdir}/after_vm_start/50_promisc
%{_vdsmhooksdir}/before_vm_destroy/50_promisc
%files qos
%defattr(-, root, root, -)
%{_vdsmhooksdir}/before_vm_start/50_qos
%files scratchpad
%defattr(-, root, root, -)
%{_vdsmhooksdir}/before_vm_start/50_scratchpad
%{_vdsmhooksdir}/before_vm_migrate_source/50_scratchpad
%{_vdsmhooksdir}/after_vm_destroy/50_scratchpad
%files smartcard
%defattr(-, root, root, -)
%{_vdsmhooksdir}/before_vm_start/50_smartcard
%files smbios
%defattr(-, root, root, -)
%{_vdsmhooksdir}/before_vm_start/50_smbios
%files sriov
%defattr(-, root, root, -)
%{_sysconfdir}/sudoers.d/50_vdsm_hook_sriov
%{_vdsmhooksdir}/before_vm_start/50_sriov
%{_vdsmhooksdir}/after_vm_destroy/50_sriov
%{_vdsmhooksdir}/before_vm_migrate_source/50_sriov
%files vmdisk
%defattr(-, root, root, -)
%{_vdsmhooksdir}/before_vm_start/50_vmdisk
%changelog
* Wed Aug 29 2012 Federico Simoncelli - 4.9.6-1
- add the upstream vcs information
- add the vdsm package dependency
* Mon Aug 27 2012 Federico Simoncelli - 4.9.6-0
- initial release