diff --git a/copy-patches.sh b/copy-patches.sh new file mode 100755 index 0000000..4f63c5f --- /dev/null +++ b/copy-patches.sh @@ -0,0 +1,55 @@ +#!/bin/bash - + +set -e + +# Maintainer script to copy patches from the git repo to the current +# directory. Use it like this: +# ./copy-patches.sh + +rhel_version=av-8.3.0 + +# Check we're in the right directory. +if [ ! -f virt-v2v.spec ]; then + echo "$0: run this from the directory containing 'virt-v2v.spec'" + exit 1 +fi + +git_checkout=$HOME/d/virt-v2v-rhel-$rhel_version +if [ ! -d $git_checkout ]; then + echo "$0: $git_checkout does not exist" + echo "This script is only for use by the maintainer when preparing a" + echo "virt-v2v release on RHEL." + exit 1 +fi + +# Get the base version of virt-v2v. +version=`grep '^Version:' virt-v2v.spec | awk '{print $2}'` +tag="v$version" + +# Remove any existing patches. +git rm -f [0-9]*.patch ||: +rm -f [0-9]*.patch + +# Get the patches. +(cd $git_checkout; rm -f [0-9]*.patch; git format-patch -N --submodule=diff $tag) +mv $git_checkout/[0-9]*.patch . + +# Remove any not to be applied. +rm -f *NOT-FOR-RPM*.patch + +# Add the patches. +git add [0-9]*.patch + +# Print out the patch lines. +echo +echo "--- Copy the following text into virt-v2v.spec file" +echo + +echo "# Patches." +for f in [0-9]*.patch; do + n=`echo $f | awk -F- '{print $1}'` + echo "Patch$n: $f" +done + +echo +echo "--- End of text" diff --git a/sources b/sources index af867db..e71637c 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (virt-v2v-1.43.1.tar.gz) = abbbc32f4e56d73e7f7faad8dd520fc8633d3fccdb316af1c4b583eff4d1f2a0b24b3b10ec4e94c9a9525a30de952faf20e4eefe3c6f4d1c0c3121110f02542a -SHA512 (virt-v2v-1.43.1.tar.gz.sig) = fb435f8177696348af59bc55b7b99a99006a99dee0cc53d25148635eaf005b68c8639dcbe201f8cc83b82dc7b4ada7019016c868032054218c392a85279a78c4 +SHA512 (virt-v2v-1.43.2.tar.gz) = 4de054276b3b421806fe9b9118d33bf3cb4fbb0263df782f1ba5f7e9f8b7f54d4192ceefbc9af60c2d9b6a36aa024cd8476b16afe176b62f846ae66692c0362c +SHA512 (virt-v2v-1.43.2.tar.gz.sig) = 6421460d8b7703803bff851b18621a728214020fc07b0002eba7156826f7cd175ceada7ae38c480208604392e3b5abcbca0de7d7f4e5912bbd3b1afb8bd096c6 diff --git a/virt-v2v.spec b/virt-v2v.spec index bb34540..0e9ddb3 100644 --- a/virt-v2v.spec +++ b/virt-v2v.spec @@ -9,8 +9,8 @@ Name: virt-v2v Epoch: 1 -Version: 1.43.1 -Release: 5%{?dist} +Version: 1.43.2 +Release: 3%{?dist} Summary: Convert a virtual machine to run on KVM License: GPLv2+ @@ -23,6 +23,10 @@ Source1: http://download.libguestfs.org/virt-v2v/%{source_directory}/%{nam Source2: libguestfs.keyring %endif +# Maintainer script which helps with handling patches. +Source3: copy-patches.sh + +%if !0%{?rhel} # 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 @@ -30,6 +34,14 @@ Source2: libguestfs.keyring # expect that libguestfs or virt-v2v will be available on i686 so # there is nothing that needs fixing. ExcludeArch: %{ix86} +%else +# Architectures where virt-v2v is shipped on RHEL: +# +# not on aarch64 because it is not useful there +# not on %%{power64} because of RHBZ#1287826 +# not on s390x because it is not useful there +ExclusiveArch: x86_64 +%endif %if 0%{patches_touch_autotools} BuildRequires: autoconf, automake, libtool @@ -38,7 +50,7 @@ BuildRequires: autoconf, automake, libtool BuildRequires: /usr/bin/pod2man BuildRequires: gcc BuildRequires: ocaml >= 4.01 -BuildRequires: libguestfs-devel >= 1:1.40 +BuildRequires: libguestfs-devel >= 1:1.42 BuildRequires: augeas-devel BuildRequires: bash-completion @@ -47,7 +59,6 @@ BuildRequires: gettext-devel BuildRequires: jansson-devel BuildRequires: libosinfo-devel BuildRequires: libvirt-devel -BuildRequires: libvirt-daemon-qemu BuildRequires: libvirt-daemon-kvm BuildRequires: libxml2-devel BuildRequires: pcre-devel @@ -67,8 +78,13 @@ BuildRequires: nbdkit-python-plugin BuildRequires: gnupg2 %endif -Requires: libguestfs%{?_isa} >= 1:1.40 -Requires: libguestfs-tools-c >= 1:1.40 +Requires: libguestfs%{?_isa} >= 1:1.42 +Requires: libguestfs-tools-c >= 1:1.42 + +%if 0%{?rhel} +# For Windows conversions on RHEL. +Requires: libguestfs-winsupport >= 7.2 +%endif Requires: gawk Requires: gzip @@ -76,11 +92,21 @@ Requires: unzip Requires: curl Requires: /usr/bin/virsh -Recommends: nbdkit -Recommends: nbdkit-curl-plugin -Recommends: nbdkit-python-plugin -Recommends: nbdkit-ssh-plugin -Recommends: nbdkit-vddk-plugin +# Ensure the UEFI firmware is available, to properly convert +# EFI guests (RHBZ#1429643). +%ifarch x86_64 +Requires: edk2-ovmf +%endif +%ifarch aarch64 +Requires: edk2-aarch64 +%endif + +# Needed for -it vddk, and -o rhv-upload. +Requires: nbdkit +Requires: nbdkit-curl-plugin +Requires: nbdkit-python-plugin +Requires: nbdkit-ssh-plugin +Requires: nbdkit-vddk-plugin # For rhsrvany.exe, used to install firstboot scripts in Windows guests. Requires: mingw32-srvany >= 1.0-13 @@ -132,14 +158,21 @@ for %{name}. %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' %endif %autosetup -p1 + %if 0%{patches_touch_autotools} autoreconf -i %endif %build -%configure -make %{?_smp_mflags} +%configure \ +%if !0%{?rhel} + --with-extra="fedora=%{fedora},release=%{release}" \ +%else + --with-extra="rhel=%{rhel},release=%{release}" \ +%endif + +make V=1 %{?_smp_mflags} %install @@ -155,9 +188,15 @@ pushd $RPM_BUILD_ROOT%{_datadir}/virt-tools ln -sf /usr/i686-w64-mingw32/sys-root/mingw/bin/rhsrvany.exe popd -# Delete the v2v test harness (except for the man page). +# Delete the v2v test harness. rm -r $RPM_BUILD_ROOT%{_libdir}/ocaml/v2v_test_harness rm -r $RPM_BUILD_ROOT%{_libdir}/ocaml/stublibs/dllv2v_test_harness* +rm $RPM_BUILD_ROOT%{_mandir}/man1/virt-v2v-test-harness.1* + +# Delete copy-to-local tool. +rm $RPM_BUILD_ROOT%{_bindir}/virt-v2v-copy-to-local +rm $RPM_BUILD_ROOT%{_mandir}/man1/virt-v2v-copy-to-local.1* +rm $RPM_BUILD_ROOT%{_datadir}/bash-completion/completions/virt-v2v-copy-to-local # Find locale files. %find_lang %{name} @@ -193,11 +232,9 @@ rm -r $RPM_BUILD_ROOT%{_libdir}/ocaml/stublibs/dllv2v_test_harness* %files -f %{name}.lang %license COPYING -#doc README +%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* @@ -206,14 +243,12 @@ rm -r $RPM_BUILD_ROOT%{_libdir}/ocaml/stublibs/dllv2v_test_harness* %{_mandir}/man1/virt-v2v-output-rhv.1* %{_mandir}/man1/virt-v2v-release-notes-1.42.1* %{_mandir}/man1/virt-v2v-support.1* -%{_mandir}/man1/virt-v2v-test-harness.1* %{_datadir}/virt-tools %files bash-completion %license COPYING %{_datadir}/bash-completion/completions/virt-v2v -%{_datadir}/bash-completion/completions/virt-v2v-copy-to-local %files man-pages-ja @@ -227,6 +262,15 @@ rm -r $RPM_BUILD_ROOT%{_libdir}/ocaml/stublibs/dllv2v_test_harness* %changelog +* Thu Dec 03 2020 Richard W.M. Jones - 1:1.43.2-3 +- Drop obsolete virt-v2v-copy-to-local tool for Fedora 34 and RHEL 9. + +* Wed Dec 02 2020 Richard W.M. Jones - 1:1.43.2-2 +- Unify Fedora and RHEL spec files. + +* Tue Dec 01 2020 Richard W.M. Jones - 1:1.43.2-1 +- New upstream version 1.43.2. + * Tue Sep 01 2020 Richard W.M. Jones - 1:1.43.1-5 - OCaml 4.11.1 rebuild