Name: virt-v2v Version: 0.8.1 Release: 1%{?dist} Summary: Convert a virtual machine to run on KVM Group: Applications/System License: GPLv2+ and LGPLv2+ URL: http://git.fedorahosted.org/git/virt-v2v.git Source0: https://fedorahosted.org/releases/v/i/virt-v2v/%{name}-v%{version}.tar.gz BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) # Backported upstream patches # Naming scheme: ---.patch # name: virt-v2v # version: the version of virt-v2v the patch was originally rebased to # local seq no: the order the patches should be applied in # git commit: the first 8 characters of the git commit hash # Unfortunately, despite really being noarch, we have to make virt-v2v arch # dependent to avoid build failures on architectures where libguestfs isn't # available. ExclusiveArch: %{ix86} x86_64 # Build system direct requirements BuildRequires: gettext BuildRequires: perl BuildRequires: perl(Module::Build) BuildRequires: perl(ExtUtils::Manifest) BuildRequires: perl(Test::More) BuildRequires: perl(Test::Pod) BuildRequires: perl(Test::Pod::Coverage) BuildRequires: perl(Module::Find) # Runtime perl modules also required at build time for use_ok test BuildRequires: perl(DateTime) BuildRequires: perl(IO::String) BuildRequires: perl(Locale::TextDomain) BuildRequires: perl(Module::Pluggable) BuildRequires: perl(Net::HTTPS) BuildRequires: perl(Net::SSL) BuildRequires: perl(Sys::Guestfs) BuildRequires: perl(Sys::Guestfs::Lib) BuildRequires: perl(Sys::Virt) BuildRequires: perl(Term::ProgressBar) BuildRequires: perl(URI) BuildRequires: perl(XML::DOM) BuildRequires: perl(XML::DOM::XPath) BuildRequires: perl(XML::Writer) # Need an explicit package dependency for version requires BuildRequires: perl-libguestfs >= 1:1.6.0 BuildRequires: perl-hivex >= 1.2.2 # virt-p2v build requirements BuildRequires: rubygem(rake) BuildRequires: rubygem(echoe) Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) # Need an explicit package dependency for version requires Requires: perl-libguestfs >= 1:1.6.0 Requires: perl-hivex >= 1.2.2 # Net::SSL is loaded dynamically by Net::HTTPS in # Sys::VirtConvert::Transfer::ESX. The dependency isn't automatically # discovered. Requires: perl(Net::SSL) # Need >= 0.8.1 for rpc fix talking to RHEL 5 libvirt Requires: libvirt >= 0.8.1 # For GuestOS transfer image Requires: /usr/bin/mkisofs # For guest image inspection Requires: /usr/bin/qemu-img %description virt-v2v is a tool for converting and importing virtual machines to libvirt-managed KVM, or Red Hat Enterprise Virtualization. It can import a variety of guest operating systems from libvirt-managed hosts and VMware ESX. %global gemdir %(ruby -rubygems -e 'puts Gem::dir' 2>/dev/null) %global gemname virt-p2v %global geminstdir %{gemdir}/gems/%{gemname}-%{version} %global rubyabi 1.8 %package -n rubygem-%{gemname} Summary: Send a machine's storage and metadata to virt-p2v-server BuildArch: noarch Requires: ruby(abi) = %{rubyabi} Requires: rubygem(gtk2) Requires: rubygem(gettext) Requires: rubygem(net-ssh) Requires: ruby(dbus) Requires: /sbin/blockdev Requires: /usr/bin/hwloc-info Requires: NetworkManager Provides: rubygem(%{gemname}) = %{version} %description -n rubygem-%{gemname} virt-p2v is a client which connects to a virt-p2v-server and transfer's the host machine's storage and metadata. virt-p2v is intended to be run from a live image, so it is unlikely you want to install it directly. %package -n rubygem-%{gemname}-doc Summary: Documentation for rubygem-%{gemname} Group: Documentation BuildArch: noarch Requires: rubygem-%{gemname} = %{version}-%{release} %description -n rubygem-%{gemname}-doc Documentation for rubygem-%{gemname} %package -n virt-p2v-image-builder Summary: Create a virt-p2v bootable image BuildArch: noarch # image builder script requires Requires: /usr/bin/ksflatten Requires: /usr/sbin/setenforce Requires: /usr/bin/livecd-creator # Kickstart nochroot scripts requires Requires: /usr/bin/livecd-iso-to-disk Requires: /usr/bin/livecd-iso-to-pxeboot Requires: /usr/bin/image-minimizer %description -n virt-p2v-image-builder virt-p2v-image-builder is a tool to create a bootable virt-p2v live image. %prep %setup -q -n %{name}-v%{version} %build %{__perl} Build.PL ./Build pushd p2v-client rake gem popd # Neither perl nor ruby need debuginfo %define debug_package %{nil} %install rm -rf %{buildroot} ./Build install \ --destdir %{buildroot} \ --installdirs vendor \ --install_path locale=%{_datadir}/locale \ --install_path confdoc=%{_mandir}/man5 # Create lib directory, used for holding software to be installed in guests statedir=%{buildroot}%{_localstatedir}/lib/virt-v2v mkdir -p $statedir/software mkdir -p %{buildroot}%{_sysconfdir} cp v2v/virt-v2v.conf %{buildroot}%{_sysconfdir}/ %find_lang %{name} # Not clear why this is being created as there is nothing arch-specific in # virt-v2v. It isn't packaged, though, so we need to delete it. find %{buildroot}/%{perl_archlib} -name .packlist -type f | xargs rm # Install p2v-client mkdir -p %{buildroot}/%{_bindir} mkdir -p %{buildroot}/%{gemdir} gem install --local --install-dir %{buildroot}%{gemdir} \ --force --rdoc p2v-client/pkg/%{gemname}-%{version}.gem mv %{buildroot}%{gemdir}/bin/* %{buildroot}/%{_bindir} find %{buildroot}%{geminstdir}/bin -type f | xargs chmod a+x cp COPYING %{buildroot}/%{geminstdir} # Install p2v-image-builder %global builderdir %{_datadir}/virt-p2v-image-builder builder=%{buildroot}/%{_bindir}/virt-p2v-image-builder mkdir -p %{buildroot}%{builderdir} cp p2v-image-builder/*.ks %{buildroot}%{builderdir} cp p2v-image-builder/virt-p2v-image-builder $builder # Set the default data directory sed -i -e 's,^DEFAULT_DATADIR=.*,DEFAULT_DATADIR=%{builderdir},' $builder %check ./Build test pushd p2v-client # No tests yet #rake test popd %clean rm -rf %{buildroot} %files -f %{name}.lang %defattr(-,root,root,-) %doc TODO.txt %doc META.yml %doc ChangeLog %doc COPYING COPYING.LIB # For noarch packages: vendorlib %{perl_vendorlib}/* # Man pages %{_mandir}/man1/*.1* %{_mandir}/man3/*.3* %{_mandir}/man5/*.5* # Executables %attr(0755,root,root) %{_bindir}/virt-v2v %attr(0755,root,root) %{_bindir}/virt-p2v-server %dir %{_localstatedir}/lib/virt-v2v %config(noreplace) %{_sysconfdir}/virt-v2v.conf %config(noreplace) %{_localstatedir}/lib/virt-v2v/software %files -n rubygem-%{gemname} %defattr(-, root, root, -) %{_bindir}/virt-p2v %dir %{geminstdir} %{geminstdir}/bin %{geminstdir}/lib %doc %{geminstdir}/COPYING %doc %{geminstdir}/Manifest %doc %{geminstdir}/Rakefile %doc %{geminstdir}/%{gemname}.gemspec %{gemdir}/cache/%{gemname}-%{version}.gem %{gemdir}/specifications/%{gemname}-%{version}.gemspec %files -n rubygem-%{gemname}-doc %defattr(-, root, root, -) %{gemdir}/doc/%{gemname}-%{version} %files -n virt-p2v-image-builder %defattr(-, root, root, -) %{_bindir}/virt-p2v-image-builder %{builderdir} %changelog * Tue Apr 26 2011 Matthew Booth - 0.8.1-1 - Update to release 0.8.1 * Tue Apr 19 2011 Matthew Booth - 0.8.0-1 - Update to release 0.8.0 - Include virt-p2v * Mon Feb 07 2011 Fedora Release Engineering - 0.7.0-2 - Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild * Thu Nov 4 2010 Matthew Booth - 0.7.0-1 - Update to release 0.7.0 * Thu Jul 1 2010 Matthew Booth - 0.6.1-1 - Only build virt-v2v on architectures where libguestfs is available * Mon Jun 21 2010 Matthew Booth - 0.6.1-0 - Update to release 0.6.1 - Disable building of debuginfo * Mon Feb 22 2010 Matthew Booth - 0.4.0-1 - Update to release 0.4.0 - Change dependency on genisofs to mkisofs - Update libguestfs dependency to 1.0.84 - Add perl module dependencies: LWP::UserAgent, Net::HTTPS, Net::SSL, Net::URI - Remove perl module dependency: Config::Tiny - Add explicit build dependency on perl - Add patch: virt-v2v-0.4.0-remove-fr.patch - Add patch: virt-v2v-0.4.0-exechelper-cleanup.patch - Add patch: virt-v2v-0.4.0-exechelper-tmpfile.patch * Mon Dec 7 2009 Stepan Kasal - 0.3.2-2 - rebuild against perl 5.10.1 * Mon Nov 9 2009 Matthew Booth - 0.3.2-1 - Update to release 0.3.2 - Add BuildRequires gettext * Mon Nov 9 2009 Matthew Booth - 0.3.0-1 - Update to release 0.3.0 * Tue Sep 15 2009 Matthew Booth - 0.2.0-1 - Update to release 0.2.0 * Tue Sep 4 2009 Matthew Booth - 0.1.0-1 - Initial specfile