299 lines
8.6 KiB
RPMSpec
299 lines
8.6 KiB
RPMSpec
Name: virt-v2v
|
|
Version: 0.8.0
|
|
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: <name>-<version>-<local sequence number>-<git commit>.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 19 2011 Matthew Booth <mbooth@redhat.com> - 0.8.0-1
|
|
- Update to release 0.8.0
|
|
- Include virt-p2v
|
|
|
|
* Thu Jan 27 2011 Matthew Booth <mbooth@redhat.com> - 0.7.1-1
|
|
- Update to release 0.7.1
|
|
|
|
* Mon Jan 17 2011 Matthew Booth <mbooth@redhat.com> - 0.7.0-2
|
|
- Fix error using -i libvirtxml (RHBZ#670175)
|
|
|
|
* 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
|