virt-v2v/virt-v2v.spec

243 lines
6.6 KiB
RPMSpec
Raw Normal View History

2019-12-03 11:57:38 +00:00
# If we should verify tarball signature with GPGv2.
%global verify_tarball_signature 1
2019-12-03 11:57:38 +00:00
# If there are patches which touch autotools files, set this to 1.
%global patches_touch_autotools 1
2019-12-03 11:57:38 +00:00
# The source directory.
%global source_directory 1.41-development
2019-12-03 11:57:38 +00:00
Name: virt-v2v
Version: 1.41.8
Release: 4%{?dist}
Summary: Convert a virtual machine to run on KVM
2019-12-03 11:57:38 +00:00
License: GPLv2+
URL: https://github.com/libguestfs/virt-v2v
2019-12-03 11:57:38 +00:00
Source0: http://download.libguestfs.org/virt-v2v/%{source_directory}/%{name}-%{version}.tar.gz
%if 0%{verify_tarball_signature}
Source1: http://download.libguestfs.org/virt-v2v/%{source_directory}/%{name}-%{version}.tar.gz.sig
# Keyring used to verify tarball signature.
Source2: libguestfs.keyring
%endif
2019-12-03 11:57:38 +00:00
# Upstream patches.
Patch1: 0001-po-Remove-some-POTFILES-ml-which-aren-t-included-in-.patch
Patch2: 0002-Add-license-file.patch
2019-12-03 11:57:38 +00:00
# libguestfs hasn't been built on i686 for a while since there is no
# kernel built for this architecture any longer and libguestfs rather
# fundamentally depends on the kernel. Therefore we must exclude this
# arch. Note there is no bug filed for this because we do not ever
# expect that libguestfs or virt-v2v will be available on i686 so
# there is nothing that needs fixing.
ExcludeArch: %{ix86}
2019-12-03 11:57:38 +00:00
%if 0%{patches_touch_autotools}
BuildRequires: autoconf, automake, libtool
%endif
2019-12-03 11:57:38 +00:00
BuildRequires: /usr/bin/pod2man
BuildRequires: gcc
BuildRequires: ocaml >= 4.01
BuildRequires: libguestfs-devel >= 1:1.40
BuildRequires: augeas-devel
BuildRequires: bash-completion
BuildRequires: file-devel
BuildRequires: gettext-devel
BuildRequires: jansson-devel
BuildRequires: libvirt-devel
BuildRequires: libvirt-daemon-qemu
BuildRequires: libvirt-daemon-kvm
BuildRequires: libxml2-devel
BuildRequires: pcre-devel
BuildRequires: perl(Sys::Guestfs)
BuildRequires: po4a
BuildRequires: /usr/bin/virsh
BuildRequires: ocaml-findlib-devel
BuildRequires: ocaml-libguestfs-devel
BuildRequires: ocaml-fileutils-devel
BuildRequires: ocaml-gettext-devel
BuildRequires: ocaml-ounit-devel
BuildRequires: nbdkit-python3-plugin
%if 0%{verify_tarball_signature}
BuildRequires: gnupg2
%endif
2019-12-03 11:57:38 +00:00
Requires: libguestfs%{?_isa} >= 1:1.40
Requires: libguestfs-tools-c >= 1:1.40
2019-12-03 11:57:38 +00:00
Requires: gawk
Requires: gzip
Requires: unzip
Requires: curl
Requires: /usr/bin/virsh
2019-12-03 11:57:38 +00:00
Recommends: nbdkit
Recommends: nbdkit-curl-plugin
Recommends: nbdkit-python3-plugin
Recommends: nbdkit-ssh-plugin
Recommends: nbdkit-vddk-plugin
2019-12-03 11:57:38 +00:00
# For rhsrvany.exe, used to install firstboot scripts in Windows guests.
Requires: mingw32-srvany >= 1.0-13
2019-12-03 11:57:38 +00:00
%description
Virt-v2v converts a single guest from a foreign hypervisor to run on
KVM. It can read Linux and Windows guests running on VMware, Xen,
Hyper-V and some other hypervisors, and convert them to KVM managed by
libvirt, OpenStack, oVirt, Red Hat Virtualisation (RHV) or several
other targets. It can modify the guest to make it bootable on KVM and
install virtio drivers so it will run quickly.
2019-12-03 11:57:38 +00:00
%package bash-completion
Summary: Bash tab-completion for %{name}
BuildArch: noarch
Requires: bash-completion >= 2.0
Requires: %{name} = %{version}-%{release}
2019-12-03 11:57:38 +00:00
%description bash-completion
Install this package if you want intelligent bash tab-completion
for %{name}.
2019-12-03 11:57:38 +00:00
%package man-pages-ja
Summary: Japanese (ja) man pages for %{name}
BuildArch: noarch
Requires: %{name} = %{version}-%{release}
2019-12-03 11:57:38 +00:00
%description man-pages-ja
%{name}-man-pages-ja contains Japanese (ja) man pages
for %{name}.
2019-12-03 11:57:38 +00:00
%package man-pages-uk
Summary: Ukrainian (uk) man pages for %{name}
BuildArch: noarch
Requires: %{name} = %{version}-%{release}
2019-12-03 11:57:38 +00:00
%description man-pages-uk
%{name}-man-pages-uk contains Ukrainian (uk) man pages
for %{name}.
2019-12-03 11:57:38 +00:00
%prep
%if 0%{verify_tarball_signature}
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
%endif
%autosetup -p1
%if 0%{patches_touch_autotools}
autoreconf -i
%endif
2019-12-03 11:57:38 +00:00
%build
%configure
make %{?_smp_mflags}
2019-12-03 11:57:38 +00:00
%install
%make_install
2019-12-03 11:57:38 +00:00
# Delete libtool crap.
find $RPM_BUILD_ROOT -name '*.la' -delete
2019-12-03 11:57:38 +00:00
# Virt-tools data directory. This contains a symlink to rhsrvany.exe
# which is satisfied by the dependency on mingw32-srvany.
mkdir -p $RPM_BUILD_ROOT%{_datadir}/virt-tools
pushd $RPM_BUILD_ROOT%{_datadir}/virt-tools
ln -sf /usr/i686-w64-mingw32/sys-root/mingw/bin/rhsrvany.exe
popd
2019-12-03 11:57:38 +00:00
# Delete the v2v test harness (except for the man page).
rm -r $RPM_BUILD_ROOT%{_libdir}/ocaml/v2v_test_harness
rm -r $RPM_BUILD_ROOT%{_libdir}/ocaml/stublibs/dllv2v_test_harness*
2019-12-03 11:57:38 +00:00
# Find locale files.
%find_lang %{name}
2019-12-03 11:57:38 +00:00
%check
# Tests fail on both armv7 and ppc64le in Fedora 31 because the kernel
# cannot boot on qemu.
%ifnarch %{arm} ppc64le
# On x86_64 this single test fails with: "virt-v2v: warning: the
# target hypervisor does not support a x86_64 KVM guest". Missing
# BuildRequires?
%ifarch x86_64
truncate -s 0 tests/test-v2v-o-libvirt.sh
%endif
2019-12-03 11:57:38 +00:00
# This test fails in mock.
truncate -s 0 tests/test-v2v-oa-option.sh
2019-12-03 11:57:38 +00:00
# Make sure we can see the debug messages (RHBZ#1230160).
export LIBGUESTFS_DEBUG=1
export LIBGUESTFS_TRACE=1
2019-12-03 11:57:38 +00:00
make %{?_smp_mflags} check || {
cat tests/test-suite.log
exit 1
}
2019-12-03 11:57:38 +00:00
%endif
2019-12-03 11:57:38 +00:00
%files -f %{name}.lang
%license COPYING
#doc README
%{_bindir}/virt-v2v
%{_bindir}/virt-v2v-copy-to-local
%{_mandir}/man1/virt-v2v.1*
%{_mandir}/man1/virt-v2v-copy-to-local.1*
%{_mandir}/man1/virt-v2v-hacking.1*
%{_mandir}/man1/virt-v2v-input-vmware.1*
%{_mandir}/man1/virt-v2v-input-xen.1*
%{_mandir}/man1/virt-v2v-output-local.1*
%{_mandir}/man1/virt-v2v-output-openstack.1*
%{_mandir}/man1/virt-v2v-output-rhv.1*
%{_mandir}/man1/virt-v2v-support.1*
%{_mandir}/man1/virt-v2v-test-harness.1*
%{_datadir}/virt-tools
2019-12-03 11:57:38 +00:00
%files bash-completion
%license COPYING
%{_datadir}/bash-completion/completions/virt-v2v
%{_datadir}/bash-completion/completions/virt-v2v-copy-to-local
2019-12-03 11:57:38 +00:00
%files man-pages-ja
%license COPYING
%lang(ja) %{_mandir}/ja/man1/*.1*
2019-12-03 11:57:38 +00:00
%files man-pages-uk
%license COPYING
%lang(uk) %{_mandir}/uk/man1/*.1*
2019-12-03 11:57:38 +00:00
%changelog
* Wed Nov 27 2019 Richard W.M. Jones <rjones@redhat.com> - 1.41.8-4
- Use license instead of doc for COPYING file.
- Include license in all subpackages.
- Use gpgverify macro.
- Don't own bash-completion directory because we Require the
bash-completion package which owns it already.
* Tue Nov 26 2019 Richard W.M. Jones <rjones@redhat.com> - 1.41.8-2
- Fix permissions on .sig file.
- Disable -oa preallocated test since it fails in reviewers mock environment.
* Fri Nov 15 2019 Richard W.M. Jones <rjones@redhat.com> - 1.41.8-1
- Initial release of separate virt-v2v program, was part of libguestfs.