Blob Blame History Raw
Name:           virt-v2v
Version:        0.9.0
Release:        5%{?dist}%{?extra_release}
Summary:        Convert a virtual machine to run on KVM

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

# Non-upstream patch to default to using the appliance backend
# for Fedora >= 18.
Patch1:         virt-v2v-use-appliance-backend.patch

# Unfortunately, despite really being noarch, we have to make virt-v2v arch
# dependent to avoid build failures on architectures where libguestfs isn't
# available.
%if 0%{?rhel} >= 6
ExclusiveArch:  x86_64
%else
ExclusiveArch:  %{ix86} x86_64
%endif

# 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(Archive::Extract)
BuildRequires:  perl(DateTime)
BuildRequires:  perl(Digest::SHA1)
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::Syslog)
BuildRequires:  perl(Sys::Virt)
BuildRequires:  perl(Term::ProgressBar)
BuildRequires:  perl(URI)
BuildRequires:  perl(XML::DOM)
BuildRequires:  perl(XML::DOM::XPath)
BuildRequires:  perl(XML::Writer)

BuildRequires:  perl-Sys-Guestfs >= 1:1.14.0
BuildRequires:  perl-hivex >= 1.2.2

Requires:  perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))

# Required for the name optional argument to add_drive_opts
Requires:       perl-Sys-Guestfs >= 1:1.14.0

# Undocumented from antiquity
Requires:       perl-hivex >= 1.2.2

# Required for passing flags to get_xml_description
Requires:       perl(Sys::Virt) >= 0.2.4

# Net::SSL and Net::HTTPS are loaded with require rather than use, which
# rpmbuild doesn't seem to discover automatically.
Requires:       perl(Net::SSL)
Requires:       perl(Net::HTTPS)

# 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

# For ssh transfers
Requires:       /usr/bin/ssh


%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.


%prep
%setup -q -n %{name}-v%{version}

%patch1 -p1


%build
%{__perl} Build.PL
./Build

# perl doesn't need debuginfo
%define debug_package %{nil}


%install
./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

# Copy Windows dependencies into place
windir=$statedir/software/windows
mkdir -p $windir

cp windows/rhsrvany.exe windows/firstboot.bat $windir/

mkdir -p %{buildroot}%{_sysconfdir}
cp v2v/virt-v2v.conf %{buildroot}%{_sysconfdir}/
cp v2v/virt-v2v.db $statedir/

%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.
[ -d "%{buildroot}/%{perl_archlib}" ] &&
  find %{buildroot}/%{perl_archlib} -name .packlist -type f | xargs rm


%check
./Build test


%files -f %{name}.lang
%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 %{_localstatedir}/lib/virt-v2v/virt-v2v.db
%config(noreplace) %{_localstatedir}/lib/virt-v2v/software


%changelog
* Thu Aug 08 2013 Petr Pisar <ppisar@redhat.com> - 0.9.0-5
- Perl 5.18 rebuild

* Sun Aug 04 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.0-4
- Rebuilt for https://fedoraproject.org/wiki/Fedora_20_Mass_Rebuild

* Wed Jul  3 2013 Richard W.M. Jones <rjones@redhat.com> - 0.9.0-3
- Default to using the appliance backend, since in Fedora >= 18 the
  libvirt backend doesn't support the 'iface' parameter which virt-v2v
  requires.
- Add BR perl(Sys::Syslog), required to run the tests.
- Remove some cruft from the spec file.

* Fri Feb 15 2013 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.9.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_19_Mass_Rebuild

* Thu Dec  6 2012 Matthew Booth <mbooth@redhat.com> - 0.9.0-1
- New upstream release 0.9.0

* Sun Jul 22 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.8.8-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_18_Mass_Rebuild

* Tue Jul 10 2012 Petr Pisar <ppisar@redhat.com> - 0.8.8-2
- Perl 5.16 rebuild

* Mon Jun 25 2012 Matthew Booth <mbooth@redhat.com> - 0.8.8-1
- Rebase to upstream version 0.8.8

* Sat Jan 14 2012 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.8.3-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_17_Mass_Rebuild

* Mon Aug 22 2011 Richard W.M. Jones <rjones@redhat.com> - 0.8.3-1
- New upstream release 0.8.3.
- Include upstream patch to fix whitespace problems in PO files.
- Remove virt-p2v from build by synchronizing the spec file so it
  almost matches the one in RHEL 6.2.  Note that virt-p2v is built in
  a separate SRPM called rubygem-virt-p2v.

* Thu Jul 21 2011 Petr Sabata <contyk@redhat.com> - 0.8.1-4
- Perl mass rebuild

* Tue Jul 19 2011 Petr Sabata <contyk@redhat.com> - 0.8.1-3
- Perl mass rebuild

* Tue May 17 2011 Matthew Booth <mbooth@redhat.com> - 0.8.1-2
- Remove echoe build dependency
- Fix YAML error during P2V (RHBZ#705113)

* Tue Apr 26 2011 Matthew Booth <mbooth@redhat.com> - 0.8.1-1
- Update to release 0.8.1

* Tue Apr 19 2011 Matthew Booth <mbooth@redhat.com> - 0.8.0-1
- Update to release 0.8.0
- Include virt-p2v

* Mon Feb 07 2011 Fedora Release Engineering <rel-eng@lists.fedoraproject.org> - 0.7.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild

* Thu Nov  4 2010 Matthew Booth <mbooth@redhat.com> - 0.7.0-1
- Update to release 0.7.0

* Thu Jul  1 2010 Matthew Booth <mbooth@redhat.com> - 0.6.1-1
- Only build virt-v2v on architectures where libguestfs is available

* Mon Jun 21 2010 Matthew Booth <mbooth@redhat.com> - 0.6.1-0
- Update to release 0.6.1
- Disable building of debuginfo

* Mon Feb 22 2010 Matthew Booth <mbooth@redhat.com> - 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 <skasal@redhat.com> - 0.3.2-2
- rebuild against perl 5.10.1

* Mon Nov 9 2009 Matthew Booth <mbooth@redhat.com> - 0.3.2-1
- Update to release 0.3.2
- Add BuildRequires gettext

* Mon Nov 9 2009 Matthew Booth <mbooth@redhat.com> - 0.3.0-1
- Update to release 0.3.0

* Tue Sep 15 2009 Matthew Booth <mbooth@redhat.com> - 0.2.0-1
- Update to release 0.2.0

* Tue Sep  4 2009 Matthew Booth <mbooth@redhat.com> - 0.1.0-1
- Initial specfile