From 4ebc8446f1efca9f983742f82827cb9295cc637b Mon Sep 17 00:00:00 2001 From: CentOS Sources Date: Nov 01 2019 19:55:06 +0000 Subject: import libguestfs-1.40.2-8.el7 --- diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..479aabe --- /dev/null +++ b/.gitignore @@ -0,0 +1,4 @@ +SOURCES/RHEV-Application-Provisioning-Tool.exe_4.43-3 +SOURCES/libguestfs-1.40.2.tar.gz +SOURCES/libguestfs.keyring +SOURCES/rhsrvany.exe diff --git a/.libguestfs.metadata b/.libguestfs.metadata new file mode 100644 index 0000000..b63e4dd --- /dev/null +++ b/.libguestfs.metadata @@ -0,0 +1,4 @@ +ac8722917cc31c36836e241bd7a4beb5f8a8b0c8 SOURCES/RHEV-Application-Provisioning-Tool.exe_4.43-3 +45755f0f73b503790974484053ff482f32665b13 SOURCES/libguestfs-1.40.2.tar.gz +1bbc40f501a7fef9eef2a39b701a71aee2fea7c4 SOURCES/libguestfs.keyring +2bd96e478fc004cd323b5bd754c856641877dac6 SOURCES/rhsrvany.exe diff --git a/SOURCES/0001-inspect-fix-icon-of-RHEL.patch b/SOURCES/0001-inspect-fix-icon-of-RHEL.patch new file mode 100644 index 0000000..af8d73b --- /dev/null +++ b/SOURCES/0001-inspect-fix-icon-of-RHEL.patch @@ -0,0 +1,32 @@ +From 880efbac3fced5f07f93b04d8a200d7f41ed3215 Mon Sep 17 00:00:00 2001 +From: Pino Toscano +Date: Mon, 11 Feb 2019 19:28:00 +0100 +Subject: [PATCH] inspect: fix icon of RHEL + +Use a better icon for RHEL guests, still provided by redhat-logos (or +equivalent in downstream distributions), and which fits a better +definition of logo for the distribution. + +Thanks to Ray Strode for the hints. + +(cherry picked from commit c648052690a4a07a59c741308e0e8497d6f18057) +--- + lib/inspect-icon.c | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/lib/inspect-icon.c b/lib/inspect-icon.c +index 623591aa6..19f3f87af 100644 +--- a/lib/inspect-icon.c ++++ b/lib/inspect-icon.c +@@ -317,7 +317,7 @@ icon_rhel (guestfs_h *g, int major, size_t *size_r) + if (major < 7) + shadowman = "/usr/share/pixmaps/redhat/shadowman-transparent.png"; + else +- shadowman = "/usr/share/pixmaps/fedora-logo-sprite.png"; ++ shadowman = "/usr/share/icons/hicolor/96x96/apps/system-logo-icon.png"; + + return get_png (g, shadowman, size_r, 102400); + } +-- +2.21.0 + diff --git a/SOURCES/0002-v2v-linux-do-not-uninstall-open-vm-tools-w-ubuntu-se.patch b/SOURCES/0002-v2v-linux-do-not-uninstall-open-vm-tools-w-ubuntu-se.patch new file mode 100644 index 0000000..12b1c9b --- /dev/null +++ b/SOURCES/0002-v2v-linux-do-not-uninstall-open-vm-tools-w-ubuntu-se.patch @@ -0,0 +1,57 @@ +From dc4ea25b46861b5cd18dc432b3f39692a25ce441 Mon Sep 17 00:00:00 2001 +From: Pino Toscano +Date: Wed, 27 Feb 2019 17:51:59 +0100 +Subject: [PATCH] v2v: linux: do not uninstall open-vm-tools w/ ubuntu-server + +ubuntu-server depends on open-vm-tools on Ubuntu, so if v2v tries to +uninstall open-vm-tools then dpkg will (rightfully) fail with a +dependency issue. + +Since open-vm-tools is harmless after the conversion anyway (it will +not even run), then do not attempt to uninstall it if ubuntu-server is +installed too. + +Followup of commit 2bebacf8bf611f0f80a66915f78653ce30b38129. + +Thanks to: Ming Xie. + +(cherry picked from commit 1a4fd822ef057764f809cddce642b3223756629e) +--- + v2v/convert_linux.ml | 14 +++++++++++++- + 1 file changed, 13 insertions(+), 1 deletion(-) + +diff --git a/v2v/convert_linux.ml b/v2v/convert_linux.ml +index 3d61400b5..b4b2f24c4 100644 +--- a/v2v/convert_linux.ml ++++ b/v2v/convert_linux.ml +@@ -289,6 +289,18 @@ let convert (g : G.guestfs) inspect source output rcaps = + + (* Uninstall VMware Tools. *) + let remove = ref [] and libraries = ref [] in ++ (* On Ubuntu, the ubuntu-server metapackage depends on ++ * open-vm-tools, and thus any attempt to remove it will cause ++ * dependency issues. Hence, special case this situation, and ++ * leave open-vm-tools installed in this case. ++ *) ++ let has_ubuntu_server = ++ if family = `Debian_family then ++ List.exists ( ++ fun { G.app2_name = name } -> ++ name = "ubuntu-server" ++ ) inspect.i_apps ++ else false in + List.iter ( + fun { G.app2_name = name } -> + if String.is_prefix name "vmware-tools-libraries-" then +@@ -301,7 +313,7 @@ let convert (g : G.guestfs) inspect source output rcaps = + List.push_front name remove + else if String.is_prefix name "open-vm-tools-" then + List.push_front name remove +- else if name = "open-vm-tools" then ++ else if name = "open-vm-tools" && not has_ubuntu_server then + List.push_front name remove + ) inspect.i_apps; + let libraries = !libraries in +-- +2.21.0 + diff --git a/SOURCES/0003-v2v-linux-canonicalize-module-path-for-arch-detectio.patch b/SOURCES/0003-v2v-linux-canonicalize-module-path-for-arch-detectio.patch new file mode 100644 index 0000000..4ee1f8e --- /dev/null +++ b/SOURCES/0003-v2v-linux-canonicalize-module-path-for-arch-detectio.patch @@ -0,0 +1,36 @@ +From 0dc49c47060b35f6cffe73467823a07c4ca37e9e Mon Sep 17 00:00:00 2001 +From: Pino Toscano +Date: Wed, 20 Mar 2019 16:55:05 +0100 +Subject: [PATCH] v2v: linux: canonicalize module path for arch detection + (RHBZ#1690574) + +Kernel modules can be also symlinks to files available outside the +"canonical" module directory; the "file" API, used by the +"file-architecture" API, return the actual type of a file (so symlinks, +block devices, etc), and thus "file-architecture" fails on symlinks. + +To prevent this situation, canonicalize the path of the module picked +for architecture detection: this way, "file-architecture" will act on a +real file. + +(cherry picked from commit 0a093035d485b3c2e66d56541ebe159f1b632ba6) +--- + v2v/linux_kernels.ml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/v2v/linux_kernels.ml b/v2v/linux_kernels.ml +index 3313aabc7..889ec2f2a 100644 +--- a/v2v/linux_kernels.ml ++++ b/v2v/linux_kernels.ml +@@ -189,7 +189,7 @@ let detect_kernels (g : G.guestfs) inspect family bootloader = + *) + let arch = + let any_module = modpath ^ List.hd modules in +- g#file_architecture any_module in ++ g#file_architecture (g#realpath any_module) in + + (* Just return the module names, without path or extension. *) + let modules = List.filter_map ( +-- +2.21.0 + diff --git a/SOURCES/0004-v2v-linux-improve-arch-detection-from-modules-RHBZ-1.patch b/SOURCES/0004-v2v-linux-improve-arch-detection-from-modules-RHBZ-1.patch new file mode 100644 index 0000000..6bcb0b7 --- /dev/null +++ b/SOURCES/0004-v2v-linux-improve-arch-detection-from-modules-RHBZ-1.patch @@ -0,0 +1,61 @@ +From a0e44877a4ba2df153ec5334b24eb254f9c2aeb3 Mon Sep 17 00:00:00 2001 +From: Pino Toscano +Date: Wed, 20 Mar 2019 12:32:02 +0100 +Subject: [PATCH] v2v: linux: improve arch detection from modules + (RHBZ#1690574) + +Try to look for a well known kernel module (so far only virtio, or kvm) +to use for detecting the architecture of a kernel. This way, we can +avoid picking 3rd party modules that cause troubles. + +(cherry picked from commit 363b5e0b4ecebe861a9aafe8bce5a8390b54571c) +--- + v2v/linux_kernels.ml | 30 +++++++++++++++++++++++++++--- + 1 file changed, 27 insertions(+), 3 deletions(-) + +diff --git a/v2v/linux_kernels.ml b/v2v/linux_kernels.ml +index 889ec2f2a..30160f0da 100644 +--- a/v2v/linux_kernels.ml ++++ b/v2v/linux_kernels.ml +@@ -185,11 +185,35 @@ let detect_kernels (g : G.guestfs) inspect family bootloader = + assert (List.length modules > 0); + + (* Determine the kernel architecture by looking at the +- * architecture of an arbitrary kernel module. ++ * architecture of a kernel module. ++ * ++ * To avoid architecture detection issues with 3rd party ++ * modules (RHBZ#1690574), try to pick one of the well ++ * known modules, if available. Otherwise, an arbitrary ++ * module is used. + *) + let arch = +- let any_module = modpath ^ List.hd modules in +- g#file_architecture (g#realpath any_module) in ++ (* Well known kernel modules. *) ++ let candidates = [ "virtio"; "kvm" ] in ++ let all_candidates = List.flatten ( ++ List.map ( ++ fun f -> ++ [ "/" ^ f ^ ".o"; "/" ^ f ^ ".ko"; "/" ^ f ^ ".ko.xz" ] ++ ) candidates ++ ) in ++ let candidate = ++ try ++ List.find ( ++ fun m -> ++ List.exists (String.is_suffix m) all_candidates ++ ) modules ++ with Not_found -> ++ (* No known module found, pick an arbitrary one ++ * (the first). ++ *) ++ List.hd modules in ++ let candidate = modpath ^ candidate in ++ g#file_architecture (g#realpath candidate) in + + (* Just return the module names, without path or extension. *) + let modules = List.filter_map ( +-- +2.21.0 + diff --git a/SOURCES/0005-v2v-o-libvirt-write-win2k19-osinfo-ID.patch b/SOURCES/0005-v2v-o-libvirt-write-win2k19-osinfo-ID.patch new file mode 100644 index 0000000..36bf42c --- /dev/null +++ b/SOURCES/0005-v2v-o-libvirt-write-win2k19-osinfo-ID.patch @@ -0,0 +1,34 @@ +From 5686e157c90ccbe65d7c719f53d36028b6364b11 Mon Sep 17 00:00:00 2001 +From: Pino Toscano +Date: Thu, 28 Feb 2019 11:00:27 +0100 +Subject: [PATCH] v2v: -o libvirt: write win2k19 osinfo ID + +When writing the libosinfo metadata in the libvirt XML, use the newly +added (in osinfo-db) ID for Windows Server 2019; sadly, this version of +Windows has the same version as Windows Server 2016, so distinguish it +by looking at its product name. + +(cherry picked from commit bb11507fff8c65275afc0f29806d3b3de387c7f9) +--- + v2v/create_libvirt_xml.ml | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/v2v/create_libvirt_xml.ml b/v2v/create_libvirt_xml.ml +index a8dc1f2f0..dbc24315f 100644 +--- a/v2v/create_libvirt_xml.ml ++++ b/v2v/create_libvirt_xml.ml +@@ -124,6 +124,11 @@ let get_osinfo_id = function + | { i_type = "windows"; i_major_version = 6; i_minor_version = 3 } -> + Some "http://microsoft.com/win/8.1" + ++ | { i_type = "windows"; i_major_version = 10; i_minor_version = 0; ++ i_product_variant = "Server"; i_product_name = product } ++ when String.find product "2019" >= 0 -> ++ Some "http://microsoft.com/win/2k19" ++ + | { i_type = "windows"; i_major_version = 10; i_minor_version = 0; + i_product_variant = "Server" } -> + Some "http://microsoft.com/win/2k16" +-- +2.21.0 + diff --git a/SOURCES/0006-v2v-update-documentation-on-nbdkit-RHBZ-1605242.patch b/SOURCES/0006-v2v-update-documentation-on-nbdkit-RHBZ-1605242.patch new file mode 100644 index 0000000..9deb351 --- /dev/null +++ b/SOURCES/0006-v2v-update-documentation-on-nbdkit-RHBZ-1605242.patch @@ -0,0 +1,55 @@ +From 6bb859d7992908aa09619b8afd487464724c72a5 Mon Sep 17 00:00:00 2001 +From: Pino Toscano +Date: Fri, 12 Apr 2019 16:19:43 +0200 +Subject: [PATCH] v2v: update documentation on nbdkit (RHBZ#1605242) + +nbdkit >= 1.6 ships a VDDK plugin always built, so recommend that +version instead of recommending to build nbdkit from sources. + +(cherry picked from commit 0704d8eb0bcc8139886eb4291f75a3ca49a91e58) +--- + v2v/virt-v2v-input-vmware.pod | 28 ++-------------------------- + 1 file changed, 2 insertions(+), 26 deletions(-) + +diff --git a/v2v/virt-v2v-input-vmware.pod b/v2v/virt-v2v-input-vmware.pod +index 2b6dbaeec..b3ebda182 100644 +--- a/v2v/virt-v2v-input-vmware.pod ++++ b/v2v/virt-v2v-input-vmware.pod +@@ -197,32 +197,8 @@ library is permitted by the license. + + =item 2. + +-You must also compile nbdkit, enabling the VDDK plugin. nbdkit E +-1.1.25 is recommended, but it is usually best to compile from the git +-tree. +- +-=over 4 +- +-=item * +- +-L +- +-=item * +- +-L +- +-=back +- +-Compile nbdkit as described in the sources (see link above). +- +-You do B need to run C because you can run nbdkit +-from its source directory. The source directory has a shell script +-called F which runs the locally built copy of nbdkit and its +-plugins. So set C<$PATH> to point to the nbdkit top build directory +-(that is, the directory containing the shell script called F), +-eg: +- +- export PATH=/path/to/nbdkit-1.1.x:$PATH ++nbdkit E 1.6 is recommended, as it ships with the VDDK plugin ++enabled unconditionally. + + =item 3. + +-- +2.21.0 + diff --git a/SOURCES/0007-v2v-linux-add-helper-functions-for-pkg-arch-and-exte.patch b/SOURCES/0007-v2v-linux-add-helper-functions-for-pkg-arch-and-exte.patch new file mode 100644 index 0000000..a175019 --- /dev/null +++ b/SOURCES/0007-v2v-linux-add-helper-functions-for-pkg-arch-and-exte.patch @@ -0,0 +1,62 @@ +From f3574733eeda9952aa13f36e4ae40a8c5c0a5479 Mon Sep 17 00:00:00 2001 +From: Pino Toscano +Date: Tue, 26 Mar 2019 17:02:02 +0100 +Subject: [PATCH] v2v: linux: add helper functions for pkg arch and extension + +Add helper functions to get the typical extension of binary packages +for a package manager, and the string for an architecture. + +(cherry picked from commit 13ef175a7b3a010175d57d60b2c4c51bc0efb171) +--- + v2v/linux.ml | 21 +++++++++++++++++++++ + v2v/linux.mli | 8 ++++++++ + 2 files changed, 29 insertions(+) + +diff --git a/v2v/linux.ml b/v2v/linux.ml +index 99b0e0e7b..4949c8e16 100644 +--- a/v2v/linux.ml ++++ b/v2v/linux.ml +@@ -179,3 +179,24 @@ let is_package_manager_save_file filename = + (* Recognized suffixes of package managers. *) + let suffixes = [ ".dpkg-old"; ".dpkg-new"; ".rpmsave"; ".rpmnew"; ] in + List.exists (Filename.check_suffix filename) suffixes ++ ++let binary_package_extension { i_package_format = package_format } = ++ match package_format with ++ | "deb" -> "deb" ++ | "rpm" -> "rpm" ++ | format -> ++ error (f_"don’t know what is the extension of binary packages using %s") ++ format ++ ++let architecture_string { i_package_format = package_format; i_arch = arch; ++ i_distro = distro } = ++ match package_format, distro, arch with ++ | "deb", _, "x86_64" -> "amd64" ++ | "deb", _, a -> a ++ | "rpm", ("sles"|"suse-based"|"opensuse"), "i386" -> "i586" ++ | "rpm", ("sles"|"suse-based"|"opensuse"), a -> a ++ | "rpm", _, "i386" -> "i686" ++ | "rpm", _, a -> a ++ | format, distro, arch -> ++ error (f_"don’t know what is the architecture string of %s using %s on %s") ++ arch format distro +diff --git a/v2v/linux.mli b/v2v/linux.mli +index 0a5991d12..30099745c 100644 +--- a/v2v/linux.mli ++++ b/v2v/linux.mli +@@ -38,3 +38,11 @@ val is_file_owned : Guestfs.guestfs -> Types.inspect -> string -> bool + val is_package_manager_save_file : string -> bool + (** Return true if the filename is something like [*.rpmsave], ie. + a package manager save-file. *) ++ ++val binary_package_extension : Types.inspect -> string ++(** Return the extension typically used for binary packages in the ++ specified package format. *) ++ ++val architecture_string : Types.inspect -> string ++(** Return the architecture string typically used for binary packages ++ in the specified package format, and for the specified distro. *) +-- +2.21.0 + diff --git a/SOURCES/0008-v2v-try-to-pick-the-right-arch-for-qemu-ga-pkgs.patch b/SOURCES/0008-v2v-try-to-pick-the-right-arch-for-qemu-ga-pkgs.patch new file mode 100644 index 0000000..f39f5a3 --- /dev/null +++ b/SOURCES/0008-v2v-try-to-pick-the-right-arch-for-qemu-ga-pkgs.patch @@ -0,0 +1,47 @@ +From d9d48602daa653635b061ef9d16d9bc5140626ce Mon Sep 17 00:00:00 2001 +From: Pino Toscano +Date: Tue, 26 Mar 2019 17:10:38 +0100 +Subject: [PATCH] v2v: try to pick the right arch for qemu-ga pkgs + +Right now the code copies, and then tries to install, all the files +found for the directory of a distro. This does not take into account +differences in the architectures of the packages available, so a x86_64 +package must be installed only on x86_64 guests. + +As solution, filter the packages using the typical suffix used by +packages (so architecture + file extension), to pick only packages +compatible with the current guest. + +(cherry picked from commit 78f08a15faca826d4f3320834eb06309ccf3ec94) +--- + v2v/windows_virtio.ml | 11 ++++++++++- + 1 file changed, 10 insertions(+), 1 deletion(-) + +diff --git a/v2v/windows_virtio.ml b/v2v/windows_virtio.ml +index 92bf3ec60..a499fcf8a 100644 +--- a/v2v/windows_virtio.ml ++++ b/v2v/windows_virtio.ml +@@ -203,10 +203,19 @@ and install_linux_tools g inspect = + | Some os -> + let src_path = "linux" // os in + let dst_path = "/var/tmp" in ++ let pkg_arch = Linux.architecture_string inspect in ++ let pkg_ext = Linux.binary_package_extension inspect in ++ let package_suffixes = [ ++ sprintf ".%s.%s" pkg_arch pkg_ext; ++ sprintf "_%s.%s" pkg_arch pkg_ext; ++ ] in ++ let package_filter path _ = ++ List.exists (String.is_suffix path) package_suffixes ++ in + debug "locating packages in %s" src_path; + let packages = + copy_from_virtio_win g inspect src_path dst_path +- (fun _ _ -> true) ++ package_filter + (fun () -> + warning (f_"guest tools directory ‘%s’ is missing from the virtio-win directory or ISO.\n\nGuest tools are only provided in the RHV Guest Tools ISO, so this can happen if you are using the version of virtio-win which contains just the virtio drivers. In this case only virtio drivers can be installed in the guest, and installation of Guest Tools will be skipped.") + src_path) in +-- +2.21.0 + diff --git a/SOURCES/0009-v2v-change-the-reporting-of-RHV-Tools-messages-warni.patch b/SOURCES/0009-v2v-change-the-reporting-of-RHV-Tools-messages-warni.patch new file mode 100644 index 0000000..3e1ce93 --- /dev/null +++ b/SOURCES/0009-v2v-change-the-reporting-of-RHV-Tools-messages-warni.patch @@ -0,0 +1,56 @@ +From 4bb9affd19b7312af3c48cf141d695b4ec8f5656 Mon Sep 17 00:00:00 2001 +From: Pino Toscano +Date: Tue, 26 Mar 2019 17:37:56 +0100 +Subject: [PATCH] v2v: change the reporting of RHV Tools + messages/warnings/error + +The RHV Tools ISO is provided as Red Hat only product, and thus not +available for all the virt-v2v users. Hence, change the way we report +the status of the installation of the qemu guest agent from the RHV +Tools ISO: +- do not warn if virt-v2v does not know how to install the package for + the current guest +- do not warn if the ISO does not contain packages for the current guest +- on successful installations, show an info message + +Related: RHBZ#1691659 +(cherry picked from commit cbf887ed90e0ecb5c52fd2c663acb5b9b2e3e14a) +--- + v2v/windows_virtio.ml | 10 ++++------ + 1 file changed, 4 insertions(+), 6 deletions(-) + +diff --git a/v2v/windows_virtio.ml b/v2v/windows_virtio.ml +index a499fcf8a..f3302aed6 100644 +--- a/v2v/windows_virtio.ml ++++ b/v2v/windows_virtio.ml +@@ -197,9 +197,7 @@ and install_linux_tools g inspect = + | _ -> None in + + match os with +- | None -> +- warning (f_"don't know how to install guest tools on %s-%d") +- inspect.i_distro inspect.i_major_version ++ | None -> () + | Some os -> + let src_path = "linux" // os in + let dst_path = "/var/tmp" in +@@ -216,13 +214,13 @@ and install_linux_tools g inspect = + let packages = + copy_from_virtio_win g inspect src_path dst_path + package_filter +- (fun () -> +- warning (f_"guest tools directory ‘%s’ is missing from the virtio-win directory or ISO.\n\nGuest tools are only provided in the RHV Guest Tools ISO, so this can happen if you are using the version of virtio-win which contains just the virtio drivers. In this case only virtio drivers can be installed in the guest, and installation of Guest Tools will be skipped.") +- src_path) in ++ (fun () -> ()) in + debug "done copying %d files" (List.length packages); + let packages = List.map ((//) dst_path) packages in + try + Linux.install_local g inspect packages; ++ if packages <> [] then ++ info (f_"QEMU Guest Agent installed for this guest."); + with G.Error msg -> + warning (f_"failed to install QEMU Guest Agent: %s") msg + +-- +2.21.0 + diff --git a/SOURCES/0010-v2v-fix-path-to-source-when-copying-files-from-guest.patch b/SOURCES/0010-v2v-fix-path-to-source-when-copying-files-from-guest.patch new file mode 100644 index 0000000..da8b91e --- /dev/null +++ b/SOURCES/0010-v2v-fix-path-to-source-when-copying-files-from-guest.patch @@ -0,0 +1,41 @@ +From 1fc6b5a843dce740fd766c3a65ae378730fc9126 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Tom=C3=A1=C5=A1=20Golembiovsk=C3=BD?= +Date: Fri, 8 Feb 2019 11:44:41 +0100 +Subject: [PATCH] v2v: fix path to source when copying files from guest tools + directory +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +The debug message was slightly changed too to better match the similar +message for ISO case. It refers to the root directory instead of the +specific subdirectory inside guest tools. + +Signed-off-by: Tomáš Golembiovský +(cherry picked from commit f4bda5571a36da42bdc800c10f2c85cf20bf5c85) +--- + v2v/windows_virtio.ml | 7 ++++--- + 1 file changed, 4 insertions(+), 3 deletions(-) + +diff --git a/v2v/windows_virtio.ml b/v2v/windows_virtio.ml +index f3302aed6..59b0bf493 100644 +--- a/v2v/windows_virtio.ml ++++ b/v2v/windows_virtio.ml +@@ -315,10 +315,11 @@ and copy_drivers g inspect driverdir = + and copy_from_virtio_win g inspect srcdir destdir filter missing = + let ret = ref [] in + if is_directory virtio_win then ( +- let dir = virtio_win // srcdir in +- debug "windows: copy_from_virtio_win: guest tools source directory %s" dir; ++ debug "windows: copy_from_virtio_win: guest tools source directory %s" ++ virtio_win; + +- if not (is_directory srcdir) then missing () ++ let dir = virtio_win // srcdir in ++ if not (is_directory dir) then missing () + else ( + let cmd = sprintf "cd %s && find -L -type f" (quote dir) in + let paths = external_command cmd in +-- +2.21.0 + diff --git a/SOURCES/0011-v2v-warn-when-the-guest-has-direct-network-interface.patch b/SOURCES/0011-v2v-warn-when-the-guest-has-direct-network-interface.patch new file mode 100644 index 0000000..ab082c0 --- /dev/null +++ b/SOURCES/0011-v2v-warn-when-the-guest-has-direct-network-interface.patch @@ -0,0 +1,48 @@ +From 6a89d52b408885a8151939798ab5dfb57fac3fda Mon Sep 17 00:00:00 2001 +From: Pino Toscano +Date: Fri, 12 Apr 2019 17:28:12 +0200 +Subject: [PATCH] v2v: warn when the guest has direct network interfaces + (RHBZ#1518539) + +virt-v2v obviously cannot convert this kind of devices, since they are +specific to the host of the hypervisor. Thus, emit a warning about the +presence of direct network interfaces, so at least this can be noticed +when converting a guest. + +(cherry picked from commit 1629ec6a5639cf5e226e80bcee749ae8851b1fae) +--- + v2v/parse_libvirt_xml.ml | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +diff --git a/v2v/parse_libvirt_xml.ml b/v2v/parse_libvirt_xml.ml +index d5d78d367..b9970cee8 100644 +--- a/v2v/parse_libvirt_xml.ml ++++ b/v2v/parse_libvirt_xml.ml +@@ -492,6 +492,24 @@ let parse_libvirt_xml ?conn xml = + ) + in + ++ (* Check for direct attachments to physical network interfaces. ++ * (RHBZ#1518539) ++ *) ++ let () = ++ let obj = Xml.xpath_eval_expression xpathctx "/domain/devices/interface[@type='direct']" in ++ let nr_nodes = Xml.xpathobj_nr_nodes obj in ++ if nr_nodes > 0 then ( ++ (* Sadly fn_ in ocaml-gettext seems broken, and always returns the ++ * singular string no matter what. Work around this by using a simple ++ * string with sn_ (which works), and outputting it as a whole. ++ *) ++ let msg = sn_ "this guest has a direct network interface which will be ignored" ++ "this guest has direct network interfaces which will be ignored" ++ nr_nodes in ++ warning "%s" msg ++ ) ++ in ++ + ({ + s_hypervisor = hypervisor; + s_name = name; s_orig_name = name; +-- +2.21.0 + diff --git a/SOURCES/0012-Use-proper-label-for-nbdkit-sockets.patch b/SOURCES/0012-Use-proper-label-for-nbdkit-sockets.patch new file mode 100644 index 0000000..20e3da6 --- /dev/null +++ b/SOURCES/0012-Use-proper-label-for-nbdkit-sockets.patch @@ -0,0 +1,63 @@ +From d161370dbc97786e05d476ccaed219fa14d7bf1b Mon Sep 17 00:00:00 2001 +From: Martin Kletzander +Date: Mon, 27 May 2019 13:30:05 +0200 +Subject: [PATCH] Use proper label for nbdkit sockets + +While svirt_t can be used for sockets it does not always guarantee that it will +be accessible from a virtual machine. The VM might be running under svirt_tcg_t +context which will need a svirt_tcg_t label on the socket in order to access it. + +There is, however, another label, svirt_socket_t, which is accessible from +virt_domain: + + # sesearch -A -s svirt_t -c unix_stream_socket -p connectto + ... + allow virt_domain svirt_socket_t:unix_stream_socket { ... connectto ... }; + ... + +And virt_domain is a type attribute of both svirt_t and svirt_tcg_t: + + # seinfo -x -a virt_domain + Type Attributes: 1 + attribute virt_domain; + svirt_t + svirt_tcg_t + +Resolves: https://bugzilla.redhat.com/1698437 + +Signed-off-by: Martin Kletzander +(cherry picked from commit c2918b8b74506523a723b804d452816a059c5e50) +--- + v2v/input_libvirt_vddk.ml | 2 +- + v2v/output_rhv_upload.ml | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +diff --git a/v2v/input_libvirt_vddk.ml b/v2v/input_libvirt_vddk.ml +index 97c7cb532..567233d58 100644 +--- a/v2v/input_libvirt_vddk.ml ++++ b/v2v/input_libvirt_vddk.ml +@@ -290,7 +290,7 @@ object + add_arg "--newstyle"; (* use newstyle NBD protocol *) + add_arg "--exportname"; add_arg "/"; + if have_selinux then ( (* label the socket so qemu can open it *) +- add_arg "--selinux-label"; add_arg "system_u:object_r:svirt_t:s0" ++ add_arg "--selinux-label"; add_arg "system_u:object_r:svirt_socket_t:s0" + ); + + (* Name of the plugin. Everything following is a plugin parameter. *) +diff --git a/v2v/output_rhv_upload.ml b/v2v/output_rhv_upload.ml +index 77c39107e..c2a5c72c7 100644 +--- a/v2v/output_rhv_upload.ml ++++ b/v2v/output_rhv_upload.ml +@@ -217,7 +217,7 @@ See also the virt-v2v-output-rhv(1) manual.") + let args = + (* label the socket so qemu can open it *) + if have_selinux then +- args @ ["--selinux-label"; "system_u:object_r:svirt_t:s0"] ++ args @ ["--selinux-label"; "system_u:object_r:svirt_socket_t:s0"] + else args in + args in + +-- +2.21.0 + diff --git a/SOURCES/0013-v2v-rhv-upload-plugin-improve-wait-logic-after-final.patch b/SOURCES/0013-v2v-rhv-upload-plugin-improve-wait-logic-after-final.patch new file mode 100644 index 0000000..dd7febc --- /dev/null +++ b/SOURCES/0013-v2v-rhv-upload-plugin-improve-wait-logic-after-final.patch @@ -0,0 +1,55 @@ +From 93e40ab489cdfd7df2cb12de07183e7df6c6c36c Mon Sep 17 00:00:00 2001 +From: Daniel Erez +Date: Mon, 18 Mar 2019 18:51:26 +0200 +Subject: [PATCH] v2v: rhv-upload-plugin - improve wait logic after finalize + (RHBZ#1680361) + +After invoking transfer_service.finalize, check operation status by +examining DiskStatus. This is done instead of failing after a +predefined timeout regardless the status. + +Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1680361 +Signed-off-by: Richard W.M. Jones +Tested-by: Ilanit Stein +(cherry picked from commit eeabb3fdc7756887b53106f455a7b54309130637) +--- + v2v/rhv-upload-plugin.py | 19 +++++++++++++------ + 1 file changed, 13 insertions(+), 6 deletions(-) + +diff --git a/v2v/rhv-upload-plugin.py b/v2v/rhv-upload-plugin.py +index 2a950c5ed..4d61a089b 100644 +--- a/v2v/rhv-upload-plugin.py ++++ b/v2v/rhv-upload-plugin.py +@@ -523,16 +523,23 @@ def close(h): + # waiting for the transfer object to cease to exist, which + # falls through to the exception case and then we can + # continue. +- endt = time.time() + timeout ++ disk_id = disk.id ++ start = time.time() + try: + while True: + time.sleep(1) +- tmp = transfer_service.get() +- if time.time() > endt: +- raise RuntimeError("timed out waiting for transfer " +- "to finalize") ++ disk_service = h['disk_service'] ++ disk = disk_service.get() ++ if disk.status == types.DiskStatus.LOCKED: ++ if time.time() > start + timeout: ++ raise RuntimeError("timed out waiting for transfer " ++ "to finalize") ++ continue ++ if disk.status == types.DiskStatus.OK: ++ debug("finalized after %s seconds" % (time.time() - start)) ++ break + except sdk.NotFoundError: +- pass ++ raise RuntimeError("transfer failed: disk %s not found" % disk_id) + + # Write the disk ID file. Only do this on successful completion. + with builtins.open(params['diskid_file'], 'w') as fp: +-- +2.21.0 + diff --git a/SOURCES/0014-v2v-Allow-Windows-virtio-ISO-to-be-a-block-device-as.patch b/SOURCES/0014-v2v-Allow-Windows-virtio-ISO-to-be-a-block-device-as.patch new file mode 100644 index 0000000..cc47dc7 --- /dev/null +++ b/SOURCES/0014-v2v-Allow-Windows-virtio-ISO-to-be-a-block-device-as.patch @@ -0,0 +1,28 @@ +From 9dd17c25f1134b573e2dbf277ce111a33fc7845e Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Thu, 4 Jul 2019 15:51:25 +0100 +Subject: [PATCH] v2v: Allow Windows virtio ISO to be a block device as well as + a regular file. + +Thanks: Steven Rosenberg +(cherry picked from commit c22a8b68fe5729d3a8907b41eef287cd9f3a55c0) +--- + v2v/windows_virtio.ml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/v2v/windows_virtio.ml b/v2v/windows_virtio.ml +index 59b0bf493..56c7a6757 100644 +--- a/v2v/windows_virtio.ml ++++ b/v2v/windows_virtio.ml +@@ -338,7 +338,7 @@ and copy_from_virtio_win g inspect srcdir destdir filter missing = + ) paths + ) + ) +- else if is_regular_file virtio_win then ( ++ else if is_regular_file virtio_win || is_block_device virtio_win then ( + debug "windows: copy_from_virtio_win: guest tools source ISO %s" virtio_win; + + try +-- +2.21.0 + diff --git a/SOURCES/0015-v2v-Set-DISKTYPE-2-in-RHV-and-VDSM-meta-files-RHBZ-1.patch b/SOURCES/0015-v2v-Set-DISKTYPE-2-in-RHV-and-VDSM-meta-files-RHBZ-1.patch new file mode 100644 index 0000000..c5d539a --- /dev/null +++ b/SOURCES/0015-v2v-Set-DISKTYPE-2-in-RHV-and-VDSM-meta-files-RHBZ-1.patch @@ -0,0 +1,46 @@ +From 893336672393500172bf750d05980a94f489b2f6 Mon Sep 17 00:00:00 2001 +From: Nir Soffer +Date: Mon, 2 Sep 2019 17:45:13 +0100 +Subject: [PATCH] v2v: Set DISKTYPE=2 in RHV and VDSM meta files + (RHBZ#1746699). + +Added in virt-p2v commit: + + commit e83b6f50af34ce650063ecc520bfabab400e8e73 + Author: Matthew Booth + Date: Fri Mar 26 09:40:20 2010 +0000 + + Add export to RHEV + + Allow guests to be written to a RHEV NFS export storage domain. + + Add 'rhev' output method and -osd command-line option. + Example command line: + + virt-v2v -f virt-v2v.conf -ic 'esx://yellow.rhev.marston/' \ + -o rhev -osd blue:/export/export RHEL3-32 + + This will connect to an ESX server and write the guest 'RHEL3-32' to + blue:/export/export, which is a pre-initialised RHEV export storage domain. + +(cherry picked from commit fcfdbc9420b07e3003df38481afb9ccd22045e1a) +--- + v2v/create_ovf.ml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/v2v/create_ovf.ml b/v2v/create_ovf.ml +index 91ff5198d..9aad5dd15 100644 +--- a/v2v/create_ovf.ml ++++ b/v2v/create_ovf.ml +@@ -501,7 +501,7 @@ let create_meta_files output_alloc sd_uuid image_uuids overlays = + bpf "CTIME=%.0f\n" time; + bpf "MTIME=%.0f\n" time; + bpf "IMAGE=%s\n" image_uuid; +- bpf "DISKTYPE=1\n"; ++ bpf "DISKTYPE=2\n"; + bpf "PUUID=00000000-0000-0000-0000-000000000000\n"; + bpf "LEGALITY=LEGAL\n"; + bpf "POOL_UUID=\n"; +-- +2.21.0 + diff --git a/SOURCES/0016-v2v-Fix-default-graphics-driver-for-SUSE-guests.patch b/SOURCES/0016-v2v-Fix-default-graphics-driver-for-SUSE-guests.patch new file mode 100644 index 0000000..a1cecfa --- /dev/null +++ b/SOURCES/0016-v2v-Fix-default-graphics-driver-for-SUSE-guests.patch @@ -0,0 +1,40 @@ +From 671a0fcc1ee68c178852fbed9a44e123ccf9b73c Mon Sep 17 00:00:00 2001 +From: Mike Latimer +Date: Mon, 25 Mar 2019 14:38:00 +0000 +Subject: [PATCH] v2v: Fix default graphics driver for SUSE guests. + +See discussion in this upstream thread: +https://www.redhat.com/archives/libguestfs/2019-February/thread.html#00047 + +Thanks: Mike Latimer, Pino Toscano. +(cherry picked from commit 612f170e6062f2ff74643b6096b7e0765b52cfbd) +--- + v2v/convert_linux.ml | 5 +---- + 1 file changed, 1 insertion(+), 4 deletions(-) + +diff --git a/v2v/convert_linux.ml b/v2v/convert_linux.ml +index b4b2f24c4..f9e811c8d 100644 +--- a/v2v/convert_linux.ml ++++ b/v2v/convert_linux.ml +@@ -104,7 +104,7 @@ let convert (g : G.guestfs) inspect source output rcaps = + + let video = + match rcaps.rcaps_video with +- | None -> get_display_driver () ++ | None -> QXL + | Some video -> video in + + let block_type = +@@ -783,9 +783,6 @@ let convert (g : G.guestfs) inspect source output rcaps = + else + true + +- and get_display_driver () = +- if family = `SUSE_family then Cirrus else QXL +- + and configure_display_driver video = + let video_driver = match video with QXL -> "qxl" | Cirrus -> "cirrus" in + +-- +2.21.0 + diff --git a/SOURCES/0017-RHEL-7-Remove-libguestfs-live-RHBZ-798980.patch b/SOURCES/0017-RHEL-7-Remove-libguestfs-live-RHBZ-798980.patch new file mode 100644 index 0000000..877072d --- /dev/null +++ b/SOURCES/0017-RHEL-7-Remove-libguestfs-live-RHBZ-798980.patch @@ -0,0 +1,38 @@ +From 0baa56ef1bc55fd448b7031904b8485fd2626656 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Fri, 21 Dec 2012 15:50:11 +0000 +Subject: [PATCH] RHEL 7: Remove libguestfs live (RHBZ#798980). + +This isn't supported in RHEL 7. +--- + lib/launch-unix.c | 7 +++++++ + 1 file changed, 7 insertions(+) + +diff --git a/lib/launch-unix.c b/lib/launch-unix.c +index 4794a7b13..993b83601 100644 +--- a/lib/launch-unix.c ++++ b/lib/launch-unix.c +@@ -37,6 +37,12 @@ + static int + launch_unix (guestfs_h *g, void *datav, const char *sockpath) + { ++ error (g, ++ "launch: In RHEL, only the 'libvirt' or 'direct' method is supported.\n" ++ "In particular, \"libguestfs live\" is not supported."); ++ return -1; ++ ++#if 0 + int r, daemon_sock = -1; + struct sockaddr_un addr; + uint32_t size; +@@ -106,6 +112,7 @@ launch_unix (guestfs_h *g, void *datav, const char *sockpath) + g->conn = NULL; + } + return -1; ++#endif + } + + static int +-- +2.21.0 + diff --git a/SOURCES/0018-RHEL-7-Remove-9p-APIs-from-RHEL-RHBZ-921710.patch b/SOURCES/0018-RHEL-7-Remove-9p-APIs-from-RHEL-RHBZ-921710.patch new file mode 100644 index 0000000..d0ee779 --- /dev/null +++ b/SOURCES/0018-RHEL-7-Remove-9p-APIs-from-RHEL-RHBZ-921710.patch @@ -0,0 +1,372 @@ +From 53f4aa78cbeb4c1d92973c8c2545c157332a91ce Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Thu, 18 Jul 2013 18:31:53 +0100 +Subject: [PATCH] RHEL 7: Remove 9p APIs from RHEL (RHBZ#921710). + +--- + Makefile.am | 2 +- + daemon/9p.c | 224 -------------------------------------- + daemon/Makefile.am | 1 - + docs/C_SOURCE_FILES | 1 - + generator/actions_core.ml | 21 ---- + generator/proc_nr.ml | 2 - + gobject/Makefile.inc | 2 - + po/POTFILES | 2 - + 8 files changed, 1 insertion(+), 254 deletions(-) + delete mode 100644 daemon/9p.c + +diff --git a/Makefile.am b/Makefile.am +index 0067d7b7b..e9351eadc 100644 +--- a/Makefile.am ++++ b/Makefile.am +@@ -78,7 +78,7 @@ SUBDIRS += tests/xfs + SUBDIRS += tests/charsets + SUBDIRS += tests/xml + SUBDIRS += tests/mount-local +-SUBDIRS += tests/9p ++#SUBDIRS += tests/9p + SUBDIRS += tests/rsync + SUBDIRS += tests/bigdirs + SUBDIRS += tests/disk-labels +diff --git a/daemon/9p.c b/daemon/9p.c +deleted file mode 100644 +index 55644249d..000000000 +--- a/daemon/9p.c ++++ /dev/null +@@ -1,224 +0,0 @@ +-/* libguestfs - the guestfsd daemon +- * Copyright (C) 2011 Red Hat Inc. +- * +- * This program is free software; you can redistribute it and/or modify +- * it under the terms of the GNU General Public License as published by +- * the Free Software Foundation; either version 2 of the License, or +- * (at your option) any later version. +- * +- * This program is distributed in the hope that it will be useful, +- * but WITHOUT ANY WARRANTY; without even the implied warranty of +- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +- * GNU General Public License for more details. +- * +- * You should have received a copy of the GNU General Public License +- * along with this program; if not, write to the Free Software +- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +- */ +- +-#include +- +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +-#include +- +-#include "daemon.h" +-#include "actions.h" +- +-#define BUS_PATH "/sys/bus/virtio/drivers/9pnet_virtio" +- +-static char *read_whole_file (const char *filename); +- +-/* https://bugzilla.redhat.com/show_bug.cgi?id=714981#c1 */ +-char ** +-do_list_9p (void) +-{ +- CLEANUP_FREE_STRINGSBUF DECLARE_STRINGSBUF (r); +- +- DIR *dir; +- +- dir = opendir (BUS_PATH); +- if (!dir) { +- perror ("opendir: " BUS_PATH); +- if (errno != ENOENT) { +- reply_with_perror ("opendir: " BUS_PATH); +- return NULL; +- } +- +- /* If this directory doesn't exist, it probably means that +- * the virtio driver isn't loaded. Don't return an error +- * in this case, but return an empty list. +- */ +- if (end_stringsbuf (&r) == -1) +- return NULL; +- +- return take_stringsbuf (&r); +- } +- +- while (1) { +- struct dirent *d; +- +- errno = 0; +- d = readdir (dir); +- if (d == NULL) break; +- +- if (STRPREFIX (d->d_name, "virtio")) { +- CLEANUP_FREE char *mount_tag_path = NULL; +- if (asprintf (&mount_tag_path, BUS_PATH "/%s/mount_tag", +- d->d_name) == -1) { +- reply_with_perror ("asprintf"); +- closedir (dir); +- return NULL; +- } +- +- /* A bit unclear, but it looks like the virtio transport allows +- * the mount tag length to be unlimited (or up to 65536 bytes). +- * See: linux/include/linux/virtio_9p.h +- */ +- CLEANUP_FREE char *mount_tag = read_whole_file (mount_tag_path); +- if (mount_tag == 0) +- continue; +- +- if (add_string (&r, mount_tag) == -1) { +- closedir (dir); +- return NULL; +- } +- } +- } +- +- /* Check readdir didn't fail */ +- if (errno != 0) { +- reply_with_perror ("readdir: /sys/block"); +- closedir (dir); +- return NULL; +- } +- +- /* Close the directory handle */ +- if (closedir (dir) == -1) { +- reply_with_perror ("closedir: /sys/block"); +- return NULL; +- } +- +- /* Sort the tags. */ +- if (r.size > 0) +- sort_strings (r.argv, r.size); +- +- /* NULL terminate the list */ +- if (end_stringsbuf (&r) == -1) +- return NULL; +- +- return take_stringsbuf (&r); +-} +- +-/* Read whole file into dynamically allocated array. If there is an +- * error, DON'T call reply_with_perror, just return NULL. Returns a +- * \0-terminated string. +- */ +-static char * +-read_whole_file (const char *filename) +-{ +- char *r = NULL; +- size_t alloc = 0, size = 0; +- int fd; +- +- fd = open (filename, O_RDONLY|O_CLOEXEC); +- if (fd == -1) { +- perror (filename); +- return NULL; +- } +- +- while (1) { +- alloc += 256; +- char *r2 = realloc (r, alloc); +- if (r2 == NULL) { +- perror ("realloc"); +- free (r); +- close (fd); +- return NULL; +- } +- r = r2; +- +- /* The '- 1' in the size calculation ensures there is space below +- * to add \0 to the end of the input. +- */ +- ssize_t n = read (fd, r + size, alloc - size - 1); +- if (n == -1) { +- fprintf (stderr, "read: %s: %m\n", filename); +- free (r); +- close (fd); +- return NULL; +- } +- if (n == 0) +- break; +- size += n; +- } +- +- if (close (fd) == -1) { +- fprintf (stderr, "close: %s: %m\n", filename); +- free (r); +- return NULL; +- } +- +- r[size] = '\0'; +- +- return r; +-} +- +-/* Takes optional arguments, consult optargs_bitmask. */ +-int +-do_mount_9p (const char *mount_tag, const char *mountpoint, const char *options) +-{ +- CLEANUP_FREE char *mp = NULL, *opts = NULL, *err = NULL; +- struct stat statbuf; +- int r; +- +- ABS_PATH (mountpoint, 0, return -1); +- +- mp = sysroot_path (mountpoint); +- if (!mp) { +- reply_with_perror ("malloc"); +- return -1; +- } +- +- /* Check the mountpoint exists and is a directory. */ +- if (stat (mp, &statbuf) == -1) { +- reply_with_perror ("%s", mountpoint); +- return -1; +- } +- if (!S_ISDIR (statbuf.st_mode)) { +- reply_with_perror ("%s: mount point is not a directory", mountpoint); +- return -1; +- } +- +- /* Add trans=virtio to the options. */ +- if ((optargs_bitmask & GUESTFS_MOUNT_9P_OPTIONS_BITMASK) && +- STRNEQ (options, "")) { +- if (asprintf (&opts, "trans=virtio,%s", options) == -1) { +- reply_with_perror ("asprintf"); +- return -1; +- } +- } +- else { +- opts = strdup ("trans=virtio"); +- if (opts == NULL) { +- reply_with_perror ("strdup"); +- return -1; +- } +- } +- +- r = command (NULL, &err, +- "mount", "-o", opts, "-t", "9p", mount_tag, mp, NULL); +- if (r == -1) { +- reply_with_error ("%s on %s: %s", mount_tag, mountpoint, err); +- return -1; +- } +- +- return 0; +-} +diff --git a/daemon/Makefile.am b/daemon/Makefile.am +index 5d1c222db..a9b40be25 100644 +--- a/daemon/Makefile.am ++++ b/daemon/Makefile.am +@@ -76,7 +76,6 @@ guestfsd_SOURCES = \ + ../common/protocol/guestfs_protocol.h \ + ../common/utils/cleanups.h \ + ../common/utils/guestfs-utils.h \ +- 9p.c \ + acl.c \ + actions.h \ + available.c \ +diff --git a/docs/C_SOURCE_FILES b/docs/C_SOURCE_FILES +index 7f1c60b30..f45e7124d 100644 +--- a/docs/C_SOURCE_FILES ++++ b/docs/C_SOURCE_FILES +@@ -71,7 +71,6 @@ common/windows/windows.h + customize/crypt-c.c + customize/dummy.c + customize/perl_edit-c.c +-daemon/9p.c + daemon/acl.c + daemon/actions.h + daemon/augeas.c +diff --git a/generator/actions_core.ml b/generator/actions_core.ml +index 7b6568b90..f4f0d0ab6 100644 +--- a/generator/actions_core.ml ++++ b/generator/actions_core.ml +@@ -6167,27 +6167,6 @@ This returns true iff the device exists and contains all zero bytes. + + Note that for large devices this can take a long time to run." }; + +- { defaults with +- name = "list_9p"; added = (1, 11, 12); +- style = RStringList (RPlainString, "mounttags"), [], []; +- shortdesc = "list 9p filesystems"; +- longdesc = "\ +-List all 9p filesystems attached to the guest. A list of +-mount tags is returned." }; +- +- { defaults with +- name = "mount_9p"; added = (1, 11, 12); +- style = RErr, [String (PlainString, "mounttag"); String (PlainString, "mountpoint")], [OString "options"]; +- camel_name = "Mount9P"; +- shortdesc = "mount 9p filesystem"; +- longdesc = "\ +-Mount the virtio-9p filesystem with the tag C on the +-directory C. +- +-If required, C will be automatically added to the options. +-Any other options required can be passed in the optional C +-parameter." }; +- + { defaults with + name = "list_dm_devices"; added = (1, 11, 15); + style = RStringList (RDevice, "devices"), [], []; +diff --git a/generator/proc_nr.ml b/generator/proc_nr.ml +index efa8c5d21..3fd365d28 100644 +--- a/generator/proc_nr.ml ++++ b/generator/proc_nr.ml +@@ -295,8 +295,6 @@ let proc_nr = [ + 282, "internal_autosync"; + 283, "is_zero"; + 284, "is_zero_device"; +-285, "list_9p"; +-286, "mount_9p"; + 287, "list_dm_devices"; + 288, "ntfsresize"; + 289, "btrfs_filesystem_resize"; +diff --git a/gobject/Makefile.inc b/gobject/Makefile.inc +index 067f861a9..7afe83c59 100644 +--- a/gobject/Makefile.inc ++++ b/gobject/Makefile.inc +@@ -93,7 +93,6 @@ guestfs_gobject_headers= \ + include/guestfs-gobject/optargs-mksquashfs.h \ + include/guestfs-gobject/optargs-mkswap.h \ + include/guestfs-gobject/optargs-mktemp.h \ +- include/guestfs-gobject/optargs-mount_9p.h \ + include/guestfs-gobject/optargs-mount_local.h \ + include/guestfs-gobject/optargs-ntfsclone_out.h \ + include/guestfs-gobject/optargs-ntfsfix.h \ +@@ -186,7 +185,6 @@ guestfs_gobject_sources= \ + src/optargs-mksquashfs.c \ + src/optargs-mkswap.c \ + src/optargs-mktemp.c \ +- src/optargs-mount_9p.c \ + src/optargs-mount_local.c \ + src/optargs-ntfsclone_out.c \ + src/optargs-ntfsfix.c \ +diff --git a/po/POTFILES b/po/POTFILES +index 79f4b8c56..b99333d0d 100644 +--- a/po/POTFILES ++++ b/po/POTFILES +@@ -58,7 +58,6 @@ customize/crypt-c.c + customize/dummy.c + customize/perl_edit-c.c + customize/test-password.pl +-daemon/9p.c + daemon/acl.c + daemon/augeas.c + daemon/available.c +@@ -291,7 +290,6 @@ gobject/src/optargs-mkfs_btrfs.c + gobject/src/optargs-mksquashfs.c + gobject/src/optargs-mkswap.c + gobject/src/optargs-mktemp.c +-gobject/src/optargs-mount_9p.c + gobject/src/optargs-mount_local.c + gobject/src/optargs-ntfsclone_out.c + gobject/src/optargs-ntfsfix.c +-- +2.21.0 + diff --git a/SOURCES/0019-RHEL-7-Disable-unsupported-remote-drive-protocols-RH.patch b/SOURCES/0019-RHEL-7-Disable-unsupported-remote-drive-protocols-RH.patch new file mode 100644 index 0000000..75477f6 --- /dev/null +++ b/SOURCES/0019-RHEL-7-Disable-unsupported-remote-drive-protocols-RH.patch @@ -0,0 +1,611 @@ +From e3acb641091bd3866f65fb979159f5751062decc Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Mon, 29 Jul 2013 14:47:56 +0100 +Subject: [PATCH] RHEL 7: Disable unsupported remote drive protocols + (RHBZ#962113). + +This disables support for unsupported remote drive protocols: + + * ftp + * ftps + * http + * https + * tftp + * gluster + * iscsi + * sheepdog + * ssh + +Note 'nbd' is not disabled, and of course 'file' works. + +We hope to gradually add some of these back over the lifetime of RHEL 7. + +In RHEL 7.2: rbd (Ceph) support was enabled. +--- + docs/guestfs-testing.pod | 20 ----- + fish/guestfish.pod | 66 ++-------------- + fish/test-add-uri.sh | 32 -------- + generator/actions_core.ml | 50 +------------ + lib/drives.c | 8 ++ + lib/guestfs.pod | 100 ------------------------- + tests/disks/test-qemu-drive-libvirt.sh | 28 ------- + tests/disks/test-qemu-drive.sh | 60 --------------- + 8 files changed, 16 insertions(+), 348 deletions(-) + +diff --git a/docs/guestfs-testing.pod b/docs/guestfs-testing.pod +index f558964bf..8f264ed17 100644 +--- a/docs/guestfs-testing.pod ++++ b/docs/guestfs-testing.pod +@@ -109,26 +109,6 @@ image. To exit, type C. + If you get an error, try enabling debugging (add C<-v> to the command + line). Also make sure that L succeeds. + +-=head2 Try to open a remote guest image with guestfish. +- +-You may also have to disable libvirt by setting this: +- +- export LIBGUESTFS_BACKEND=direct +- +-If you have a disk image available over HTTP/FTP, try to open it. +- +- guestfish --ro -i --format=raw -a http://www.example.com/disk.img +- +-For SSH you will need to make sure that ssh-agent is set up so you +-don't need a password to log in to the remote machine. Then a command +-similar to this should work: +- +- guestfish --ro -i --format=raw \ +- -a ssh://remote.example.com/path/to/disk.img +- +-If you get an error, try enabling debugging (add C<-v> to the command +-line). Also make sure that L succeeds. +- + =head2 Run virt-alignment-scan on all your guests. + + Run L on guests or disk images: +diff --git a/fish/guestfish.pod b/fish/guestfish.pod +index 06644c5b8..15e20c427 100644 +--- a/fish/guestfish.pod ++++ b/fish/guestfish.pod +@@ -131,9 +131,9 @@ To list what is available do: + + =head2 Remote drives + +-Access a remote disk using ssh: ++Access a remote disk using NBD: + +- guestfish -a ssh://example.com/path/to/disk.img ++ guestfish -a nbd://example.com + + =head2 Remote control + +@@ -1144,12 +1144,12 @@ L>. + On the command line, you can use the I<-a> option to add network + block devices using a URI-style format, for example: + +- guestfish -a ssh://root@example.com/disk.img ++ guestfish -a nbd://example.com + + URIs I be used with the L command. The equivalent + command using the API directly is: + +- > add /disk.img protocol:ssh server:tcp:example.com username:root ++ > add /disk.img protocol:nbd server:tcp:example.com + + The possible I<-a URI> formats are described below. + +@@ -1159,40 +1159,6 @@ The possible I<-a URI> formats are described below. + + Add the local disk image (or device) called F. + +-=head2 B<-a ftp://[user@]example.com[:port]/disk.img> +- +-=head2 B<-a ftps://[user@]example.com[:port]/disk.img> +- +-=head2 B<-a http://[user@]example.com[:port]/disk.img> +- +-=head2 B<-a https://[user@]example.com[:port]/disk.img> +- +-=head2 B<-a tftp://[user@]example.com[:port]/disk.img> +- +-Add a disk located on a remote FTP, HTTP or TFTP server. +- +-The equivalent API command would be: +- +- > add /disk.img protocol:(ftp|...) server:tcp:example.com +- +-=head2 B<-a gluster://example.com[:port]/volname/image> +- +-Add a disk image located on GlusterFS storage. +- +-The server is the one running C, and may be C. +- +-The equivalent API command would be: +- +- > add volname/image protocol:gluster server:tcp:example.com +- +-=head2 B<-a iscsi://example.com[:port]/target-iqn-name[/lun]> +- +-Add a disk located on an iSCSI server. +- +-The equivalent API command would be: +- +- > add target-iqn-name/lun protocol:iscsi server:tcp:example.com +- + =head2 B<-a nbd://example.com[:port]> + + =head2 B<-a nbd://example.com[:port]/exportname> +@@ -1227,35 +1193,13 @@ The equivalent API command would be: + + > add pool/disk protocol:rbd server:tcp:example.com:port + +-=head2 B<-a sheepdog://[example.com[:port]]/volume/image> +- +-Add a disk image located on a Sheepdog volume. +- +-The server name is optional. Although libguestfs and Sheepdog +-supports multiple servers, only at most one server can be specified +-when using this URI syntax. +- +-The equivalent API command would be: +- +- > add volume protocol:sheepdog [server:tcp:example.com] +- +-=head2 B<-a ssh://[user@]example.com[:port]/disk.img> +- +-Add a disk image located on a remote server, accessed using the Secure +-Shell (ssh) SFTP protocol. SFTP is supported out of the box by all +-major SSH servers. +- +-The equivalent API command would be: +- +- > add /disk protocol:ssh server:tcp:example.com [username:user] +- + Note that the URIs follow the syntax of + L: in particular, there + are restrictions on the allowed characters for the various components + of the URI. Characters such as C<:>, C<@>, and C B be + percent-encoded: + +- $ guestfish -a ssh://user:pass%40word@example.com/disk.img ++ $ guestfish -a rbd://user:pass%40word@example.com[:port]/pool/disk + + In this case, the password is C. + +diff --git a/fish/test-add-uri.sh b/fish/test-add-uri.sh +index 756df997b..8f84fd31b 100755 +--- a/fish/test-add-uri.sh ++++ b/fish/test-add-uri.sh +@@ -40,14 +40,6 @@ function fail () + $VG guestfish -x -a file://$abs_builddir/test-add-uri.img test-add-uri.out 2>&1 + grep -sq 'add_drive ".*/test-add-uri.img"' test-add-uri.out || fail + +-# curl +-$VG guestfish -x -a ftp://user@example.com/disk.img test-add-uri.out 2>&1 +-grep -sq 'add_drive "/disk.img" "protocol:ftp" "server:tcp:example.com" "username:user"' test-add-uri.out || fail +- +-# gluster +-$VG guestfish -x -a gluster://example.com/disk test-add-uri.out 2>&1 +-grep -sq 'add_drive "disk" "protocol:gluster" "server:tcp:example.com"' test-add-uri.out || fail +- + # NBD + $VG guestfish -x -a nbd://example.com test-add-uri.out 2>&1 + grep -sq 'add_drive "" "protocol:nbd" "server:tcp:example.com"' test-add-uri.out || fail +@@ -67,29 +59,5 @@ grep -sq 'add_drive "pool/disk" "protocol:rbd" "server:tcp:example.com:6789"' te + $VG guestfish -x -a rbd:///pool/disk test-add-uri.out 2>&1 + grep -sq 'add_drive "pool/disk" "protocol:rbd"' test-add-uri.out || fail + +-# sheepdog +-$VG guestfish -x -a sheepdog:///volume/image test-add-uri.out 2>&1 +-grep -sq 'add_drive "volume/image" "protocol:sheepdog"' test-add-uri.out || fail +- +-$VG guestfish -x -a sheepdog://example.com:3000/volume/image test-add-uri.out 2>&1 +-grep -sq 'add_drive "volume/image" "protocol:sheepdog" "server:tcp:example.com:3000"' test-add-uri.out || fail +- +-# ssh +-$VG guestfish -x -a ssh://example.com/disk.img test-add-uri.out 2>&1 +-grep -sq 'add_drive "/disk.img" "protocol:ssh" "server:tcp:example.com"' test-add-uri.out || fail +- +-$VG guestfish -x -a ssh://user@example.com/disk.img test-add-uri.out 2>&1 +-grep -sq 'add_drive "/disk.img" "protocol:ssh" "server:tcp:example.com" "username:user"' test-add-uri.out || fail +- +-$VG guestfish -x -a ssh://user@example.com:2000/disk.img test-add-uri.out 2>&1 +-grep -sq 'add_drive "/disk.img" "protocol:ssh" "server:tcp:example.com:2000" "username:user"' test-add-uri.out || fail +- +-# iSCSI +-$VG guestfish -x -a iscsi://example.com/iqn.2015-12.com.libguestfs:test1/0 test-add-uri.out 2>&1 +-grep -sq 'add_drive "iqn.2015-12.com.libguestfs:test1/0" "protocol:iscsi" "server:tcp:example.com"' test-add-uri.out || fail +- +-$VG guestfish -x -a iscsi://user:password@example.com/iqn.2015-12.com.libguestfs:test2/0 test-add-uri.out 2>&1 +-grep -sq 'add_drive "iqn.2015-12.com.libguestfs:test2/0" "protocol:iscsi" "server:tcp:example.com" "username:user" "secret:password"' test-add-uri.out || fail +- + rm test-add-uri.out + rm test-add-uri.img +diff --git a/generator/actions_core.ml b/generator/actions_core.ml +index f4f0d0ab6..eb82c21b0 100644 +--- a/generator/actions_core.ml ++++ b/generator/actions_core.ml +@@ -297,29 +297,6 @@ F is interpreted as a local file or device. + This is the default if the optional protocol parameter + is omitted. + +-=item C +- +-Connect to a remote FTP, HTTP or TFTP server. +-The C parameter must also be supplied - see below. +- +-See also: L +- +-=item C +- +-Connect to the GlusterFS server. +-The C parameter must also be supplied - see below. +- +-See also: L +- +-=item C +- +-Connect to the iSCSI server. +-The C parameter must also be supplied - see below. +-The C parameter may be supplied. See below. +-The C parameter may be supplied. See below. +- +-See also: L. +- + =item C + + Connect to the Network Block Device server. +@@ -336,22 +313,6 @@ The C parameter may be supplied. See below. + + See also: L. + +-=item C +- +-Connect to the Sheepdog server. +-The C parameter may also be supplied - see below. +- +-See also: L. +- +-=item C +- +-Connect to the Secure Shell (ssh) server. +- +-The C parameter must be supplied. +-The C parameter may be supplied. See below. +- +-See also: L. +- + =back + + =item C +@@ -362,13 +323,8 @@ is a list of server(s). + Protocol Number of servers required + -------- -------------------------- + file List must be empty or param not used at all +- ftp|ftps|http|https|tftp Exactly one +- gluster Exactly one +- iscsi Exactly one + nbd Exactly one + rbd Zero or more +- sheepdog Zero or more +- ssh Exactly one + + Each list element is a string specifying a server. The string must be + in one of the following formats: +@@ -384,10 +340,10 @@ for the protocol is used (see F). + + =item C + +-For the C, C, C, C, C, C, C +-and C protocols, this specifies the remote username. ++For the C ++protocol, this specifies the remote username. + +-If not given, then the local username is used for C, and no authentication ++If not given, then no authentication + is attempted for ceph. But note this sometimes may give unexpected results, for + example if using the libvirt backend and if the libvirt backend is configured to + start the qemu appliance as a special user such as C. If in doubt, +diff --git a/lib/drives.c b/lib/drives.c +index 82ef30093..ba5d07ed0 100644 +--- a/lib/drives.c ++++ b/lib/drives.c +@@ -165,6 +165,7 @@ create_drive_non_file (guestfs_h *g, + return drv; + } + ++#if 0 /* DISABLED IN RHEL 7 */ + static struct drive * + create_drive_curl (guestfs_h *g, + const struct drive_create_data *data) +@@ -223,6 +224,7 @@ create_drive_gluster (guestfs_h *g, + + return create_drive_non_file (g, data); + } ++#endif /* DISABLED IN RHEL 7 */ + + static int + nbd_port (void) +@@ -291,6 +293,7 @@ create_drive_rbd (guestfs_h *g, + return create_drive_non_file (g, data); + } + ++#if 0 /* DISABLED IN RHEL 7 */ + static struct drive * + create_drive_sheepdog (guestfs_h *g, + const struct drive_create_data *data) +@@ -391,6 +394,7 @@ create_drive_iscsi (guestfs_h *g, + + return create_drive_non_file (g, data); + } ++#endif /* DISABLED IN RHEL 7 */ + + /** + * Create the special F drive. +@@ -826,6 +830,7 @@ guestfs_impl_add_drive_opts (guestfs_h *g, const char *filename, + drv = create_drive_file (g, &data); + } + } ++#if 0 /* DISABLED IN RHEL 7 */ + else if (STREQ (protocol, "ftp")) { + data.protocol = drive_protocol_ftp; + drv = create_drive_curl (g, &data); +@@ -850,6 +855,7 @@ guestfs_impl_add_drive_opts (guestfs_h *g, const char *filename, + data.protocol = drive_protocol_iscsi; + drv = create_drive_iscsi (g, &data); + } ++#endif /* DISABLED IN RHEL 7 */ + else if (STREQ (protocol, "nbd")) { + data.protocol = drive_protocol_nbd; + drv = create_drive_nbd (g, &data); +@@ -858,6 +864,7 @@ guestfs_impl_add_drive_opts (guestfs_h *g, const char *filename, + data.protocol = drive_protocol_rbd; + drv = create_drive_rbd (g, &data); + } ++#if 0 /* DISABLED IN RHEL 7 */ + else if (STREQ (protocol, "sheepdog")) { + data.protocol = drive_protocol_sheepdog; + drv = create_drive_sheepdog (g, &data); +@@ -870,6 +877,7 @@ guestfs_impl_add_drive_opts (guestfs_h *g, const char *filename, + data.protocol = drive_protocol_tftp; + drv = create_drive_curl (g, &data); + } ++#endif /* DISABLED IN RHEL 7 */ + else { + error (g, _("unknown protocol ‘%s’"), protocol); + drv = NULL; /*FALLTHROUGH*/ +diff --git a/lib/guestfs.pod b/lib/guestfs.pod +index 53cece2da..6d61759c0 100644 +--- a/lib/guestfs.pod ++++ b/lib/guestfs.pod +@@ -714,70 +714,6 @@ servers. The server string is documented in + L. The C and C parameters are + also optional, and if not given, then no authentication will be used. + +-=head3 FTP, HTTP AND TFTP +- +-Libguestfs can access remote disks over FTP, FTPS, HTTP, HTTPS +-or TFTP protocols. +- +-To do this, set the optional C and C parameters of +-L like this: +- +- char **servers = { "www.example.org", NULL }; +- guestfs_add_drive_opts (g, "/disk.img", +- GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", +- GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "http", +- GUESTFS_ADD_DRIVE_OPTS_SERVER, servers, +- -1); +- +-The C can be one of C<"ftp">, C<"ftps">, C<"http">, +-C<"https"> or C<"tftp">. +- +-C (the C parameter) is a list which must have a +-single element. The single element is a string defining the web, +-FTP or TFTP server. The format of this string is documented in +-L. +- +-=head3 GLUSTER +- +-Libguestfs can access Gluster disks. +- +-To do this, set the optional C and C parameters of +-L like this: +- +- char **servers = { "gluster.example.org:24007", NULL }; +- guestfs_add_drive_opts (g, "volname/image", +- GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", +- GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "gluster", +- GUESTFS_ADD_DRIVE_OPTS_SERVER, servers, +- -1); +- +-C (the C parameter) is a list which must have a +-single element. The single element is a string defining the Gluster +-server. The format of this string is documented in +-L. +- +-Note that gluster usually requires the client process (ie. libguestfs) +-to run as B and will give unfathomable errors if it is not +-(eg. "No data available"). +- +-=head3 ISCSI +- +-Libguestfs can access iSCSI disks remotely. +- +-To do this, set the optional C and C parameters like +-this: +- +- char **server = { "iscsi.example.org:3000", NULL }; +- guestfs_add_drive_opts (g, "target-iqn-name/lun", +- GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", +- GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "iscsi", +- GUESTFS_ADD_DRIVE_OPTS_SERVER, server, +- -1); +- +-The C parameter is a list which must have a single element. +-The single element is a string defining the iSCSI server. The format +-of this string is documented in L. +- + =head3 NETWORK BLOCK DEVICE + + Libguestfs can access Network Block Device (NBD) disks remotely. +@@ -840,42 +776,6 @@ L + + =back + +-=head3 SHEEPDOG +- +-Libguestfs can access Sheepdog disks. +- +-To do this, set the optional C and C parameters of +-L like this: +- +- char **servers = { /* optional servers ... */ NULL }; +- guestfs_add_drive_opts (g, "volume", +- GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", +- GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "sheepdog", +- GUESTFS_ADD_DRIVE_OPTS_SERVER, servers, +- -1); +- +-The optional list of C may be zero or more server addresses +-(C<"hostname:port">). The format of the server strings is documented +-in L. +- +-=head3 SSH +- +-Libguestfs can access disks over a Secure Shell (SSH) connection. +- +-To do this, set the C and C and (optionally) +-C parameters of L like this: +- +- char **server = { "remote.example.com", NULL }; +- guestfs_add_drive_opts (g, "/path/to/disk.img", +- GUESTFS_ADD_DRIVE_OPTS_FORMAT, "raw", +- GUESTFS_ADD_DRIVE_OPTS_PROTOCOL, "ssh", +- GUESTFS_ADD_DRIVE_OPTS_SERVER, server, +- GUESTFS_ADD_DRIVE_OPTS_USERNAME, "remoteuser", +- -1); +- +-The format of the server string is documented in +-L. +- + =head2 INSPECTION + + Libguestfs has APIs for inspecting an unknown disk image to find out +diff --git a/tests/disks/test-qemu-drive-libvirt.sh b/tests/disks/test-qemu-drive-libvirt.sh +index e49c69b43..9b1abc4ec 100755 +--- a/tests/disks/test-qemu-drive-libvirt.sh ++++ b/tests/disks/test-qemu-drive-libvirt.sh +@@ -64,34 +64,6 @@ check_output + grep -sq -- '-drive file=rbd:abc-def/ghi-jkl:auth_supported=none,' "$DEBUG_QEMU_FILE" || fail ceph2 + rm "$DEBUG_QEMU_FILE" + +-# Gluster. +- +-$guestfish -d gluster run ||: +-check_output +-grep -sq -- '-drive file=gluster://1.2.3.4:1234/volname/image,' "$DEBUG_QEMU_FILE" || fail gluster +-rm "$DEBUG_QEMU_FILE" +- +-# iSCSI. +- +-$guestfish -d iscsi run ||: +-check_output +-grep -sq -- '-drive file=iscsi://1.2.3.4:1234/iqn.2003-01.org.linux-iscsi.fedora' "$DEBUG_QEMU_FILE" || fail iscsi +-rm "$DEBUG_QEMU_FILE" +- +-# NBD. +- +-$guestfish -d nbd run ||: +-check_output +-grep -sq -- '-drive file=nbd:1.2.3.4:1234,' "$DEBUG_QEMU_FILE" || fail nbd +-rm "$DEBUG_QEMU_FILE" +- +-# Sheepdog. +- +-$guestfish -d sheepdog run ||: +-check_output +-grep -sq -- '-drive file=sheepdog:volume,' "$DEBUG_QEMU_FILE" || fail sheepdog +-rm "$DEBUG_QEMU_FILE" +- + # Local, stored in a pool. + + $guestfish -d pool1 run ||: +diff --git a/tests/disks/test-qemu-drive.sh b/tests/disks/test-qemu-drive.sh +index 19dd60a2f..583e031bd 100755 +--- a/tests/disks/test-qemu-drive.sh ++++ b/tests/disks/test-qemu-drive.sh +@@ -62,45 +62,6 @@ check_output + grep -sq -- '-drive file=rbd:abc-def/ghi-jkl:auth_supported=none,' "$DEBUG_QEMU_FILE" || fail + rm "$DEBUG_QEMU_FILE" + +-# HTTP. +- +-guestfish < +Date: Fri, 19 Sep 2014 13:38:20 +0100 +Subject: [PATCH] RHEL 7: Remove User-Mode Linux (RHBZ#1144197). + +This isn't supported in RHEL 7. +--- + lib/launch-uml.c | 13 +++++++++++++ + 1 file changed, 13 insertions(+) + +diff --git a/lib/launch-uml.c b/lib/launch-uml.c +index da20c17d9..a5e0e8179 100644 +--- a/lib/launch-uml.c ++++ b/lib/launch-uml.c +@@ -44,7 +44,9 @@ struct backend_uml_data { + char umid[UML_UMID_LEN+1]; /* umid=<...> unique ID. */ + }; + ++#if 0 + static void print_vmlinux_command_line (guestfs_h *g, char **argv); ++#endif + + /* Run uml_mkcow to create a COW overlay. */ + static char * +@@ -81,6 +83,7 @@ create_cow_overlay_uml (guestfs_h *g, void *datav, struct drive *drv) + return make_cow_overlay (g, drv->src.u.path); + } + ++#if 0 + /* Test for features which are not supported by the UML backend. + * Possibly some of these should just be warnings, not errors. + */ +@@ -128,10 +131,17 @@ uml_supported (guestfs_h *g) + + return true; + } ++#endif + + static int + launch_uml (guestfs_h *g, void *datav, const char *arg) + { ++ error (g, ++ "launch: In RHEL, only the 'libvirt' or 'direct' method is supported.\n" ++ "In particular, User-Mode Linux (UML) is not supported."); ++ return -1; ++ ++#if 0 + struct backend_uml_data *data = datav; + CLEANUP_FREE_STRINGSBUF DECLARE_STRINGSBUF (cmdline); + int console_sock = -1, daemon_sock = -1; +@@ -491,8 +501,10 @@ launch_uml (guestfs_h *g, void *datav, const char *arg) + } + g->state = CONFIG; + return -1; ++#endif + } + ++#if 0 + /* This is called from the forked subprocess just before vmlinux runs, + * so it can just print the message straight to stderr, where it will + * be picked up and funnelled through the usual appliance event API. +@@ -522,6 +534,7 @@ print_vmlinux_command_line (guestfs_h *g, char **argv) + + fputc ('\n', stderr); + } ++#endif + + static int + shutdown_uml (guestfs_h *g, void *datav, int check_for_errors) +-- +2.21.0 + diff --git a/SOURCES/0021-RHEL-7-v2v-Select-correct-qemu-binary-for-o-qemu-mod.patch b/SOURCES/0021-RHEL-7-v2v-Select-correct-qemu-binary-for-o-qemu-mod.patch new file mode 100644 index 0000000..7df37f9 --- /dev/null +++ b/SOURCES/0021-RHEL-7-v2v-Select-correct-qemu-binary-for-o-qemu-mod.patch @@ -0,0 +1,33 @@ +From e85646a32faf06301dfccdf738a2284264156dda Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Sun, 28 Sep 2014 19:14:43 +0100 +Subject: [PATCH] RHEL 7: v2v: Select correct qemu binary for -o qemu mode + (RHBZ#1147313). + +RHEL 7 does not have qemu-system-x86_64 (etc), and in addition the +qemu binary is located in /usr/libexec. Encode the path to this +binary directly in the script. + +Note that we don't support people running qemu directly like this. +It's just for quick testing of converted VMs, and to help us with +support cases. +--- + v2v/output_qemu.ml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/v2v/output_qemu.ml b/v2v/output_qemu.ml +index 1f6798aaf..8665d7b5c 100644 +--- a/v2v/output_qemu.ml ++++ b/v2v/output_qemu.ml +@@ -81,7 +81,7 @@ object + * module deals with shell and qemu comma quoting. + *) + let cmd = Qemuopts.create () in +- Qemuopts.set_binary_by_arch cmd (Some guestcaps.gcaps_arch); ++ Qemuopts.set_binary cmd "/usr/libexec/qemu-kvm"; + + let flag = Qemuopts.flag cmd + and arg = Qemuopts.arg cmd +-- +2.21.0 + diff --git a/SOURCES/0022-RHEL-7-v2v-Disable-the-qemu-boot-option-RHBZ-1147313.patch b/SOURCES/0022-RHEL-7-v2v-Disable-the-qemu-boot-option-RHBZ-1147313.patch new file mode 100644 index 0000000..f2827c8 --- /dev/null +++ b/SOURCES/0022-RHEL-7-v2v-Disable-the-qemu-boot-option-RHBZ-1147313.patch @@ -0,0 +1,105 @@ +From 5efe1b9ac626367a6dec96ae2cb59bccfc13bd70 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Tue, 30 Sep 2014 10:50:27 +0100 +Subject: [PATCH] RHEL 7: v2v: Disable the --qemu-boot option (RHBZ#1147313). + +This cannot work because there is no Gtk or SDL output mode +in RHEL 7's qemu-kvm. + +In addition you will have to edit the -display option in the +qemu script. +--- + v2v/cmdline.ml | 3 ++- + v2v/virt-v2v-output-local.pod | 6 ++---- + v2v/virt-v2v.pod | 13 ------------- + 3 files changed, 4 insertions(+), 18 deletions(-) + +diff --git a/v2v/cmdline.ml b/v2v/cmdline.ml +index 46f6910d0..aa89428c5 100644 +--- a/v2v/cmdline.ml ++++ b/v2v/cmdline.ml +@@ -240,7 +240,6 @@ let parse_cmdline () = + s_"Estimate size of source and stop"; + [ L"print-source" ], Getopt.Set print_source, + s_"Print source and stop"; +- [ L"qemu-boot" ], Getopt.Set qemu_boot, s_"Boot in qemu (-o qemu only)"; + [ L"root" ], Getopt.String ("ask|... ", set_root_choice), + s_"How to choose root filesystem"; + [ L"vddk-config" ], Getopt.String ("filename", set_input_option_compat "vddk-config"), +@@ -588,6 +587,8 @@ read the man page virt-v2v(1). + | Some d when not (is_directory d) -> + error (f_"-os %s: output directory does not exist or is not a directory") d + | Some d -> d in ++ if qemu_boot then ++ error (f_"-o qemu: the --qemu-boot option cannot be used in RHEL"); + Output_qemu.output_qemu os qemu_boot, + output_format, output_alloc + +diff --git a/v2v/virt-v2v-output-local.pod b/v2v/virt-v2v-output-local.pod +index 7427b1ed7..455d51fba 100644 +--- a/v2v/virt-v2v-output-local.pod ++++ b/v2v/virt-v2v-output-local.pod +@@ -9,7 +9,7 @@ or libvirt + + virt-v2v [-i* options] -o local -os DIRECTORY + +- virt-v2v [-i* options] -o qemu -os DIRECTORY [--qemu-boot] ++ virt-v2v [-i* options] -o qemu -os DIRECTORY + + virt-v2v [-i* options] -o null + +@@ -47,12 +47,10 @@ where C is the guest name. + + =item B<-o qemu -os> C + +-=item B<-o qemu -os> C B<--qemu-boot> +- + This converts the guest to files in C. Unlike I<-o local> + above, a shell script is created which contains the raw qemu command + you would need to boot the guest. However the shell script is not +-run, I you also add the I<--qemu-boot> option. ++run. + + =item B<-o null> + +diff --git a/v2v/virt-v2v.pod b/v2v/virt-v2v.pod +index cf9464834..0e9627829 100644 +--- a/v2v/virt-v2v.pod ++++ b/v2v/virt-v2v.pod +@@ -142,11 +142,6 @@ Since F contains the path(s) to the guest disk + image(s) you do not need to specify the name of the disk image on the + command line. + +-To convert a local disk image and immediately boot it in local +-qemu, do: +- +- virt-v2v -i disk disk.img -o qemu -os /var/tmp --qemu-boot +- + =head1 OPTIONS + + =over 4 +@@ -480,9 +475,6 @@ This is similar to I<-o local>, except that a shell script is written + which you can use to boot the guest in qemu. The converted disks and + shell script are written to the directory specified by I<-os>. + +-When using this output mode, you can also specify the I<--qemu-boot> +-option which boots the guest under qemu immediately. +- + =item B<-o> B + + This is the same as I<-o rhv>. +@@ -758,11 +750,6 @@ Print information about the source guest and stop. This option is + useful when you are setting up network and bridge maps. + See L. + +-=item B<--qemu-boot> +- +-When using I<-o qemu> only, this boots the guest immediately after +-virt-v2v finishes. +- + =item B<-q> + + =item B<--quiet> +-- +2.21.0 + diff --git a/SOURCES/0023-RHEL-7-Disable-alternate-Augeas-lenses.patch b/SOURCES/0023-RHEL-7-Disable-alternate-Augeas-lenses.patch new file mode 100644 index 0000000..e0593fb --- /dev/null +++ b/SOURCES/0023-RHEL-7-Disable-alternate-Augeas-lenses.patch @@ -0,0 +1,60 @@ +From 8df0184d9c517661d2d2c4d84720d550d1a7a173 Mon Sep 17 00:00:00 2001 +From: Pino Toscano +Date: Fri, 24 Oct 2014 16:33:50 +0100 +Subject: [PATCH] RHEL 7: Disable alternate Augeas lenses. + +These are included in the RHEL 7.1 augeas package, and therefore +not required in RHEL. + +See: +https://www.redhat.com/archives/libguestfs/2014-October/msg00220.html +--- + appliance/Makefile.am | 1 - + daemon/augeas.c | 5 ++++- + 2 files changed, 4 insertions(+), 2 deletions(-) + +diff --git a/appliance/Makefile.am b/appliance/Makefile.am +index fc424b1d0..5efc5c036 100644 +--- a/appliance/Makefile.am ++++ b/appliance/Makefile.am +@@ -91,7 +91,6 @@ supermin.d/daemon.tar.gz: ../daemon/guestfsd guestfs_shadow.aug + rm -rf tmp-d + mkdir -p tmp-d$(DAEMON_SUPERMIN_DIR) tmp-d/etc tmp-d/usr/share/guestfs + ln ../daemon/guestfsd tmp-d$(DAEMON_SUPERMIN_DIR)/guestfsd +- ln $(srcdir)/guestfs_shadow.aug tmp-d/usr/share/guestfs/guestfs_shadow.aug + ( cd tmp-d && tar zcf - * ) > $@-t + rm -r tmp-d + mv $@-t $@ +diff --git a/daemon/augeas.c b/daemon/augeas.c +index 453251337..003fcd313 100644 +--- a/daemon/augeas.c ++++ b/daemon/augeas.c +@@ -134,7 +134,7 @@ do_aug_init (const char *root, int flags) + } + + /* Pass AUG_NO_ERR_CLOSE so we can display detailed errors. */ +- aug = aug_init (buf, "/usr/share/guestfs/", flags | AUG_NO_ERR_CLOSE); ++ aug = aug_init (buf, NULL, flags | AUG_NO_ERR_CLOSE); + + if (!aug) { + reply_with_error ("augeas initialization failed"); +@@ -148,6 +148,8 @@ do_aug_init (const char *root, int flags) + return -1; + } + ++ /* We already have the needed lenses in RHEL 7 */ ++#if 0 + if (!augeas_is_version (1, 2, 1)) { + int r = aug_transform (aug, "guestfs_shadow", "/etc/shadow", + 0 /* = included */); +@@ -166,6 +168,7 @@ do_aug_init (const char *root, int flags) + } + } + } ++#endif + + return 0; + } +-- +2.21.0 + diff --git a/SOURCES/0024-RHEL-7-Fix-list-of-supported-sound-cards-to-match-RH.patch b/SOURCES/0024-RHEL-7-Fix-list-of-supported-sound-cards-to-match-RH.patch new file mode 100644 index 0000000..3d5843a --- /dev/null +++ b/SOURCES/0024-RHEL-7-Fix-list-of-supported-sound-cards-to-match-RH.patch @@ -0,0 +1,34 @@ +From 41141ee963fed3f280a6dd71ae5074ae83259faf Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Fri, 24 Apr 2015 09:45:41 -0400 +Subject: [PATCH] RHEL 7: Fix list of supported sound cards to match RHEL qemu + (RHBZ#1176493). + +--- + v2v/utils.ml | 5 +++-- + 1 file changed, 3 insertions(+), 2 deletions(-) + +diff --git a/v2v/utils.ml b/v2v/utils.ml +index 74b501f81..21e9c9c15 100644 +--- a/v2v/utils.ml ++++ b/v2v/utils.ml +@@ -51,13 +51,14 @@ let kvm_arch = function + (* Does qemu support the given sound card? *) + let qemu_supports_sound_card = function + | Types.AC97 +- | Types.ES1370 + | Types.ICH6 + | Types.ICH9 + | Types.PCSpeaker ++ -> true ++ | Types.ES1370 + | Types.SB16 + | Types.USBAudio +- -> true ++ -> false + + (* Find the UEFI firmware. *) + let find_uefi_firmware guest_arch = +-- +2.21.0 + diff --git a/SOURCES/0025-RHEL-7-Reject-use-of-libguestfs-winsupport-features-.patch b/SOURCES/0025-RHEL-7-Reject-use-of-libguestfs-winsupport-features-.patch new file mode 100644 index 0000000..ee3f0bb --- /dev/null +++ b/SOURCES/0025-RHEL-7-Reject-use-of-libguestfs-winsupport-features-.patch @@ -0,0 +1,47 @@ +From 5f38239f0fb762f50e82d676909ebb1e40ca501b Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Tue, 7 Jul 2015 09:28:03 -0400 +Subject: [PATCH] RHEL 7: Reject use of libguestfs-winsupport features except + for virt-* tools (RHBZ#1240276). + +--- + generator/c.ml | 17 +++++++++++++++++ + 1 file changed, 17 insertions(+) + +diff --git a/generator/c.ml b/generator/c.ml +index 86f7d89a3..9d7c491c2 100644 +--- a/generator/c.ml ++++ b/generator/c.ml +@@ -1826,12 +1826,29 @@ and generate_client_actions actions () = + pr " const uint64_t progress_hint = 0;\n"; + + pr "\n"; ++ + enter_event name; + check_null_strings c_name style; + reject_unknown_optargs c_name style; + check_args_validity c_name style; + trace_call name c_name style; + ++ (* RHEL 7 *) ++ if name = "mount" || name = "mount_ro" || name = "mount_options" || ++ name = "mount_vfs" then ( ++ pr " if (g->program && !STRPREFIX (g->program, \"virt-\")) {\n"; ++ pr " CLEANUP_FREE char *vfs_type = guestfs_vfs_type (g, mountable);\n"; ++ pr " if (vfs_type && STREQ (vfs_type, \"ntfs\")) {\n"; ++ pr " error (g, \"mount: unsupported filesystem type\");\n"; ++ pr " if (trace_flag)\n"; ++ pr " guestfs_int_trace (g, \"%%s = %%s (error)\",\n"; ++ pr " \"%s\", \"-1\");\n" name; ++ pr " return %s;\n" (string_of_errcode errcode); ++ pr " }\n"; ++ pr " }\n"; ++ pr "\n"; ++ ); ++ + (* Calculate the total size of all FileIn arguments to pass + * as a progress bar hint. + *) +-- +2.21.0 + diff --git a/SOURCES/0026-RHEL-7-daemon-umount-all-Hack-to-avoid-umount-sysroo.patch b/SOURCES/0026-RHEL-7-daemon-umount-all-Hack-to-avoid-umount-sysroo.patch new file mode 100644 index 0000000..0b285be --- /dev/null +++ b/SOURCES/0026-RHEL-7-daemon-umount-all-Hack-to-avoid-umount-sysroo.patch @@ -0,0 +1,40 @@ +From 70805faf938c5727d6d1ba7475717ce8e0996b11 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Thu, 23 Jul 2015 18:15:36 -0400 +Subject: [PATCH] RHEL 7: daemon: umount-all: Hack to avoid umount: /sysroot: + target is busy (RHBZ#1246032). + +This bug is not properly understood (although readily reproducible). +However this hack makes it go away for now. + +https://bugzilla.redhat.com/show_bug.cgi?id=1246032 +--- + daemon/mount.c | 5 +++++ + 1 file changed, 5 insertions(+) + +diff --git a/daemon/mount.c b/daemon/mount.c +index 61ce64449..b038a89c3 100644 +--- a/daemon/mount.c ++++ b/daemon/mount.c +@@ -28,6 +28,8 @@ + #include + #include + ++#include "ignore-value.h" ++ + #include "daemon.h" + #include "actions.h" + +@@ -306,6 +308,9 @@ do_umount_all (void) + if (mounts.size > 0) + qsort (mounts.argv, mounts.size, sizeof (char *), compare_longest_first); + ++ /* Hack to work around RHBZ#1246032. */ ++ ignore_value (system ("lsof /sysroot")); ++ + /* Unmount them. */ + for (i = 0; i < mounts.size; ++i) { + CLEANUP_FREE char *err = NULL; +-- +2.21.0 + diff --git a/SOURCES/0027-RHEL-7-Fix-tests-for-libguestfs-winsupport-7.2.patch b/SOURCES/0027-RHEL-7-Fix-tests-for-libguestfs-winsupport-7.2.patch new file mode 100644 index 0000000..ab4f265 --- /dev/null +++ b/SOURCES/0027-RHEL-7-Fix-tests-for-libguestfs-winsupport-7.2.patch @@ -0,0 +1,93 @@ +From fc1808540f3e7caafdd20eeba0554f1208de70ad Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Sun, 30 Aug 2015 03:21:57 -0400 +Subject: [PATCH] RHEL 7: Fix tests for libguestfs-winsupport 7.2. + +It doesn't let us use guestfish for arbitrary Windows edits. +--- + test-data/phony-guests/make-windows-img.sh | 1 + + tests/charsets/test-charset-fidelity.c | 2 ++ + v2v/test-v2v-virtio-win-iso.sh | 8 +++++++- + v2v/test-v2v-windows-conversion.sh | 8 +++++++- + 4 files changed, 17 insertions(+), 2 deletions(-) + +diff --git a/test-data/phony-guests/make-windows-img.sh b/test-data/phony-guests/make-windows-img.sh +index 8676b5ac0..1a88d9fc9 100755 +--- a/test-data/phony-guests/make-windows-img.sh ++++ b/test-data/phony-guests/make-windows-img.sh +@@ -37,6 +37,7 @@ fi + + # Create a disk image. + guestfish < "$script" + :> "$expected" + ++cat >> "$script" < "$response" ++guestfish --ro -a "$d/windows-sda" < "$script" > "$response" + diff -u "$expected" "$response" + + rm -r $d +diff --git a/v2v/test-v2v-windows-conversion.sh b/v2v/test-v2v-windows-conversion.sh +index f1da222a9..ff94fe39b 100755 +--- a/v2v/test-v2v-windows-conversion.sh ++++ b/v2v/test-v2v-windows-conversion.sh +@@ -73,6 +73,12 @@ mktest () + :> "$script" + :> "$expected" + ++cat >> "$script" < "$response" ++guestfish --ro -a "$d/windows-sda" < "$script" > "$response" + diff -u "$expected" "$response" + + # We also update the Registry several times, for firstboot, and (ONLY +-- +2.21.0 + diff --git a/SOURCES/0028-RHEL-7-All-qemu-kvm-in-RHEL-7-supports-discard-of-qc.patch b/SOURCES/0028-RHEL-7-All-qemu-kvm-in-RHEL-7-supports-discard-of-qc.patch new file mode 100644 index 0000000..1d762b2 --- /dev/null +++ b/SOURCES/0028-RHEL-7-All-qemu-kvm-in-RHEL-7-supports-discard-of-qc.patch @@ -0,0 +1,46 @@ +From 7b03df3c1e7c22877bafc73c5436199a0542d0b5 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Wed, 27 May 2015 10:03:00 -0400 +Subject: [PATCH] RHEL 7: All qemu-kvm in RHEL 7 supports discard of qcow2 + (RHBZ#1225467). + +For rationale behind this, see: + + https://bugzilla.redhat.com/show_bug.cgi?id=1225467#c2 +--- + lib/qemu.c | 12 ++---------- + 1 file changed, 2 insertions(+), 10 deletions(-) + +diff --git a/lib/qemu.c b/lib/qemu.c +index 10bb83105..26b63c3b6 100644 +--- a/lib/qemu.c ++++ b/lib/qemu.c +@@ -988,10 +988,6 @@ guestfs_int_discard_possible (guestfs_h *g, struct drive *drv, + * discard option on -drive at all. + */ + bool qemu15 = guestfs_int_version_ge (qemu_version, 1, 5, 0); +- /* qemu >= 1.6. This was the first version that supported unmap on +- * qcow2 backing files. +- */ +- bool qemu16 = guestfs_int_version_ge (qemu_version, 1, 6, 0); + + if (!qemu15) + NOT_SUPPORTED (g, false, +@@ -1016,12 +1012,8 @@ guestfs_int_discard_possible (guestfs_h *g, struct drive *drv, + } + else if (STREQ (drv->src.format, "raw")) + /* OK */ ; +- else if (STREQ (drv->src.format, "qcow2")) { +- if (!qemu16) +- NOT_SUPPORTED (g, false, +- _("discard cannot be enabled on this drive: " +- "qemu < 1.6 cannot do discard on qcow2 files")); +- } ++ else if (STREQ (drv->src.format, "qcow2")) ++ /* OK */ ; + else { + /* It's possible in future other formats will support discard, but + * currently (qemu 1.7) none of them do. +-- +2.21.0 + diff --git a/SOURCES/0029-RHEL-7-tests-Disable-daemon-tests-that-require-the-u.patch b/SOURCES/0029-RHEL-7-tests-Disable-daemon-tests-that-require-the-u.patch new file mode 100644 index 0000000..7b23787 --- /dev/null +++ b/SOURCES/0029-RHEL-7-tests-Disable-daemon-tests-that-require-the-u.patch @@ -0,0 +1,28 @@ +From 598aa0be79c621fab51f4ea3a619ff851c4fb45a Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Mon, 21 Sep 2015 13:12:43 -0400 +Subject: [PATCH] RHEL 7: tests: Disable daemon tests that require the 'unix' + backend. + +--- + tests/daemon/Makefile.am | 4 +--- + 1 file changed, 1 insertion(+), 3 deletions(-) + +diff --git a/tests/daemon/Makefile.am b/tests/daemon/Makefile.am +index 053cad3e1..0d723fee4 100644 +--- a/tests/daemon/Makefile.am ++++ b/tests/daemon/Makefile.am +@@ -23,9 +23,7 @@ include $(top_srcdir)/subdir-rules.mk + + check_DATA = captive-daemon.pm + +-TESTS = \ +- test-daemon-start.pl \ +- test-btrfs.pl ++TESTS = + + TESTS_ENVIRONMENT = $(top_builddir)/run --test + +-- +2.21.0 + diff --git a/SOURCES/0030-RHEL-7-v2v-Disable-the-virt-v2v-in-place-option.patch b/SOURCES/0030-RHEL-7-v2v-Disable-the-virt-v2v-in-place-option.patch new file mode 100644 index 0000000..5fc1abd --- /dev/null +++ b/SOURCES/0030-RHEL-7-v2v-Disable-the-virt-v2v-in-place-option.patch @@ -0,0 +1,286 @@ +From b6d1956b9c3aaf06bc5e808d4206d41219ec3ea7 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Thu, 14 Jan 2016 11:53:42 -0500 +Subject: [PATCH] RHEL 7: v2v: Disable the virt-v2v --in-place option. + +This disables the virt-v2v --in-place option which we do not +wish to support in RHEL. +(See commit d0069559a939e47e5f29973ed9a69a13f0b58301). +--- + v2v/Makefile.am | 2 - + v2v/cmdline.ml | 8 +-- + v2v/test-v2v-docs.sh | 1 + + v2v/test-v2v-in-place.sh | 108 --------------------------------------- + v2v/virt-v2v.pod | 48 +---------------- + 5 files changed, 7 insertions(+), 160 deletions(-) + delete mode 100755 v2v/test-v2v-in-place.sh + +diff --git a/v2v/Makefile.am b/v2v/Makefile.am +index 2312812fb..946170b5d 100644 +--- a/v2v/Makefile.am ++++ b/v2v/Makefile.am +@@ -457,7 +457,6 @@ if HAVE_LIBVIRT + TESTS += \ + test-v2v-cdrom.sh \ + test-v2v-floppy.sh \ +- test-v2v-in-place.sh \ + test-v2v-mac.sh \ + test-v2v-networks-and-bridges.sh \ + test-v2v-no-copy.sh \ +@@ -609,7 +608,6 @@ EXTRA_DIST += \ + test-v2v-i-vmx-3.vmx \ + test-v2v-i-vmx-4.vmx \ + test-v2v-i-vmx-5.vmx \ +- test-v2v-in-place.sh \ + test-v2v-it-vddk-io-query.sh \ + test-v2v-machine-readable.sh \ + test-v2v-mac-expected.xml \ +diff --git a/v2v/cmdline.ml b/v2v/cmdline.ml +index aa89428c5..b7a7f9ad8 100644 +--- a/v2v/cmdline.ml ++++ b/v2v/cmdline.ml +@@ -208,8 +208,7 @@ let parse_cmdline () = + s_"Use password from file to connect to input hypervisor"; + [ M"it" ], Getopt.String ("transport", set_string_option_once "-it" input_transport), + s_"Input transport"; +- [ L"in-place" ], Getopt.Set in_place, +- s_"Only tune the guest in the input VM"; ++ [ L"in-place" ], Getopt.Set in_place, Getopt.hidden_option_description; + [ L"mac" ], Getopt.String ("mac:network|bridge:out", add_mac), + s_"Map NIC to network or bridge"; + [ S 'n'; L"network" ], Getopt.String ("in:out", add_network), +@@ -346,7 +345,6 @@ read the man page virt-v2v(1). + pr "vddk\n"; + pr "colours-option\n"; + pr "vdsm-compat-option\n"; +- pr "in-place\n"; + pr "io/oo\n"; + pr "mac-option\n"; + List.iter (pr "input:%s\n") (Modules_list.input_modules ()); +@@ -509,6 +507,10 @@ read the man page virt-v2v(1). + error (f_"only ‘-it ssh’ can be used here") in + Input_vmx.input_vmx input_transport arg in + ++ (* Prevent use of --in-place option in RHEL. *) ++ if in_place then ++ error (f_"--in-place cannot be used in RHEL 7"); ++ + (* Common error message. *) + let error_option_cannot_be_used_in_output_mode mode opt = + error (f_"-o %s: %s option cannot be used in this output mode") mode opt +diff --git a/v2v/test-v2v-docs.sh b/v2v/test-v2v-docs.sh +index dfb12bb14..2e45705a3 100755 +--- a/v2v/test-v2v-docs.sh ++++ b/v2v/test-v2v-docs.sh +@@ -26,6 +26,7 @@ $top_srcdir/podcheck.pl virt-v2v.pod virt-v2v \ + --debug-overlay,\ + --ic,\ + --if,\ ++--in-place,\ + --io,\ + --ip,\ + --it,\ +diff --git a/v2v/test-v2v-in-place.sh b/v2v/test-v2v-in-place.sh +deleted file mode 100755 +index 6f7d78f39..000000000 +--- a/v2v/test-v2v-in-place.sh ++++ /dev/null +@@ -1,108 +0,0 @@ +-#!/bin/bash - +-# libguestfs virt-v2v test script +-# Copyright (C) 2014 Red Hat Inc. +-# Copyright (C) 2015 Parallels IP Holdings GmbH. +-# +-# This program is free software; you can redistribute it and/or modify +-# it under the terms of the GNU General Public License as published by +-# the Free Software Foundation; either version 2 of the License, or +-# (at your option) any later version. +-# +-# This program is distributed in the hope that it will be useful, +-# but WITHOUT ANY WARRANTY; without even the implied warranty of +-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +-# GNU General Public License for more details. +-# +-# You should have received a copy of the GNU General Public License +-# along with this program; if not, write to the Free Software +-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. +- +-# Test --in-place. +- +-unset CDPATH +-export LANG=C +-set -e +- +-$TEST_FUNCTIONS +-skip_if_skipped +-skip_if_backend uml +-skip_unless_phony_guest windows.img +- +-img_base="$abs_top_builddir/test-data/phony-guests/windows.img" +- +-export VIRT_TOOLS_DATA_DIR="$top_srcdir/test-data/fake-virt-tools" +-export VIRTIO_WIN="$top_srcdir/test-data/fake-virtio-win" +- +-d=$PWD/test-v2v-in-place.d +-rm -rf $d +-mkdir $d +- +-img="$d/test.qcow2" +-rm -f $img +-qemu-img create -f qcow2 -b $img_base -o compat=1.1,backing_fmt=raw $img +-md5="$(do_md5 $img_base)" +- +-libvirt_xml="$d/test.xml" +-rm -f $libvirt_xml +-n=windows-overlay +-cat > $libvirt_xml < +- +- $n +- 1048576 +- +- hvm +- +- +- +- +- +- +- +- +- +- +- +-EOF +- +-$VG virt-v2v --debug-gc -i libvirt -ic "test://$libvirt_xml" $n --in-place +- +-# Test that the drivers have been copied over into the guest +-script="$d/test.fish" +-expected="$d/expected" +-response="$d/response" +- +-mktest () +-{ +- local cmd="$1" exp="$2" +- +- echo "echo '$cmd'" >> "$script" +- echo "$cmd" >> "$expected" +- +- echo "$cmd" >> "$script" +- echo "$exp" >> "$expected" +-} +- +-:> "$script" +-:> "$expected" +- +-firstboot_dir="/Program Files/Guestfs/Firstboot" +-mktest "is-dir \"$firstboot_dir\"" true +-mktest "is-file \"$firstboot_dir/firstboot.bat\"" true +-mktest "is-dir \"$firstboot_dir/scripts\"" true +-virtio_dir="/Windows/Drivers/VirtIO" +-mktest "is-dir \"$virtio_dir\"" true +-for drv in netkvm qxl vioscsi viostor; do +- for sfx in cat inf sys; do +- mktest "is-file \"$virtio_dir/$drv.$sfx\"" true +- done +-done +- +-guestfish --ro -a "$img" -i < "$script" > "$response" +-diff -u "$expected" "$response" +- +-# Test the base image remained untouched +-test "$md5" = "$(do_md5 $img_base)" +- +-# Clean up. +-rm -r $d +diff --git a/v2v/virt-v2v.pod b/v2v/virt-v2v.pod +index 0e9627829..fdaaecfc5 100644 +--- a/v2v/virt-v2v.pod ++++ b/v2v/virt-v2v.pod +@@ -8,10 +8,6 @@ virt-v2v - Convert a guest to use KVM + [-o mode] [other -o* options] + [guest|filename] + +- virt-v2v --in-place +- [-i mode] [other -i* options] +- [guest|filename] +- + =head1 DESCRIPTION + + Virt-v2v converts a single guest from a foreign hypervisor to run on +@@ -39,9 +35,6 @@ these sides of virt-v2v are documented separately in this manual. + + Virt-v2v normally copies from the input to the output, called "copying + mode". In this case the source guest is always left unchanged. +-In-place conversion (I<--in-place>) only uses the I<-i*> options and +-modifies the source guest in-place. (See L +-below.) + + =head2 Other virt-v2v topics + +@@ -255,20 +248,6 @@ For I<-i disk> only, this specifies the format of the input disk + image. For other input methods you should specify the input + format in the metadata. + +-=item B<--in-place> +- +-Do not create an output virtual machine in the target hypervisor. +-Instead, adjust the guest OS in the source VM to run in the input +-hypervisor. +- +-This mode is meant for integration with other toolsets, which take the +-responsibility of converting the VM configuration, providing for +-rollback in case of errors, transforming the storage, etc. +- +-See L below. +- +-Conflicts with all I<-o *> options. +- + =item B<-io> OPTION=VALUE + + Set input option(s) related to the current input mode or transport. +@@ -1270,7 +1249,7 @@ Minimum free space: 10 MB + =head3 Minimum free space check in the host + + You must have sufficient free space in the host directory used to +-store temporary overlays (except in I<--in-place> mode). To find out ++store temporary overlays. To find out + which directory this is, use: + + $ df -h "`guestfish get-cachedir`" +@@ -1373,31 +1352,6 @@ that instead. + + + +-=head2 In-place conversion +- +-It is also possible to use virt-v2v in scenarios where a foreign VM +-has already been imported into a KVM-based hypervisor, but still needs +-adjustments in the guest to make it run in the new virtual hardware. +- +-In that case it is assumed that a third-party tool has created the +-target VM in the supported KVM-based hypervisor based on the source VM +-configuration and contents, but using virtual devices more appropriate +-for KVM (e.g. virtio storage and network, etc.). +- +-Then, to make the guest OS boot and run in the changed environment, +-one can use: +- +- virt-v2v -ic qemu:///system converted_vm --in-place +- +-Virt-v2v will analyze the configuration of C in the +-C libvirt instance, and apply various fixups to the +-guest OS configuration to make it match the VM configuration. This +-may include installing virtio drivers, configuring the bootloader, the +-mountpoints, the network interfaces, and so on. +- +-Should an error occur during the operation, virt-v2v exits with an +-error code leaving the VM in an undefined state. +- + =head2 Machine readable output + + The I<--machine-readable> option can be used to make the output more +-- +2.21.0 + diff --git a/SOURCES/0031-RHEL-7-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch b/SOURCES/0031-RHEL-7-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch new file mode 100644 index 0000000..2183df0 --- /dev/null +++ b/SOURCES/0031-RHEL-7-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch @@ -0,0 +1,26 @@ +From 3a0d3bf0a5f57ef4828b71c67a615a11e3a16a99 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Thu, 2 Mar 2017 14:21:37 +0100 +Subject: [PATCH] RHEL 7: v2v: -i disk: force VNC as display (RHBZ#1372671) + +The SDL output mode is not supported in RHEL 7's qemu-kvm. +--- + v2v/input_disk.ml | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/v2v/input_disk.ml b/v2v/input_disk.ml +index 8321a2a8c..6bd9f43f8 100644 +--- a/v2v/input_disk.ml ++++ b/v2v/input_disk.ml +@@ -89,7 +89,7 @@ class input_disk input_format disk = object + s_features = [ "acpi"; "apic"; "pae" ]; + s_firmware = UnknownFirmware; (* causes virt-v2v to autodetect *) + s_display = +- Some { s_display_type = Window; s_keymap = None; s_password = None; ++ Some { s_display_type = VNC; s_keymap = None; s_password = None; + s_listen = LNoListen; s_port = None }; + s_video = None; + s_sound = None; +-- +2.21.0 + diff --git a/SOURCES/0032-RHEL-7-v2v-do-not-mention-SUSE-Xen-hosts-RHBZ-143020.patch b/SOURCES/0032-RHEL-7-v2v-do-not-mention-SUSE-Xen-hosts-RHBZ-143020.patch new file mode 100644 index 0000000..49225ab --- /dev/null +++ b/SOURCES/0032-RHEL-7-v2v-do-not-mention-SUSE-Xen-hosts-RHBZ-143020.patch @@ -0,0 +1,26 @@ +From e7b5af0866ea2004ed2edc1290e482af2e41f0b2 Mon Sep 17 00:00:00 2001 +From: Pino Toscano +Date: Wed, 8 Mar 2017 11:03:40 +0100 +Subject: [PATCH] RHEL 7: v2v: do not mention SUSE Xen hosts (RHBZ#1430203) + +They are not supported in RHEL 7. +--- + v2v/virt-v2v-input-xen.pod | 2 +- + 1 file changed, 1 insertion(+), 1 deletion(-) + +diff --git a/v2v/virt-v2v-input-xen.pod b/v2v/virt-v2v-input-xen.pod +index 4bb5d2dc2..4cd8e86b4 100644 +--- a/v2v/virt-v2v-input-xen.pod ++++ b/v2v/virt-v2v-input-xen.pod +@@ -10,7 +10,7 @@ virt-v2v-input-xen - Using virt-v2v to convert guests from Xen + =head1 DESCRIPTION + + This page documents how to use L to convert guests from +-RHEL 5 Xen, or SLES and OpenSUSE Xen hosts. ++RHEL 5 Xen hosts. + + =head1 INPUT FROM XEN + +-- +2.21.0 + diff --git a/SOURCES/0033-RHEL-7-v2v-rhv-upload-Remove-restriction-on-oa-spars.patch b/SOURCES/0033-RHEL-7-v2v-rhv-upload-Remove-restriction-on-oa-spars.patch new file mode 100644 index 0000000..57cc97e --- /dev/null +++ b/SOURCES/0033-RHEL-7-v2v-rhv-upload-Remove-restriction-on-oa-spars.patch @@ -0,0 +1,91 @@ +From 099509b8d0d4951bc0aecac7ebac6e218638ce87 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Mon, 14 May 2018 10:16:58 +0100 +Subject: [PATCH] RHEL 7: v2v: rhv-upload: Remove restriction on -oa sparse. + +See: https://bugzilla.redhat.com/show_bug.cgi?id=1565681 +and the v2v-devel private thread "Do we already support migration using FC?" +--- + v2v/output_rhv_upload.ml | 11 +---------- + v2v/rhv-upload-plugin.py | 4 +--- + v2v/virt-v2v-output-rhv.pod | 8 +------- + 3 files changed, 3 insertions(+), 20 deletions(-) + +diff --git a/v2v/output_rhv_upload.ml b/v2v/output_rhv_upload.ml +index c2a5c72c7..3d6d99008 100644 +--- a/v2v/output_rhv_upload.ml ++++ b/v2v/output_rhv_upload.ml +@@ -164,19 +164,11 @@ See also the virt-v2v-output-rhv(1) manual.") + error (f_"nbdkit was compiled without SELinux support. You will have to recompile nbdkit with libselinux-devel installed, or else set SELinux to Permissive mode while doing the conversion.") + in + +- (* Output format/sparse must be raw/sparse. We may be able to +- * lift this limitation in future, but it requires changes on the +- * RHV side. See TODO file for details. XXX +- *) ++ (* Output format must be raw. *) + let error_current_limitation required_param = + error (f_"rhv-upload: currently you must use ‘%s’. This restriction will be loosened in a future version.") required_param + in + +- let error_unless_output_alloc_sparse () = +- if output_alloc <> Sparse then +- error_current_limitation "-oa sparse" +- in +- + (* JSON parameters which are invariant between disks. *) + let json_params = [ + "verbose", JSON.Bool (verbose ()); +@@ -229,7 +221,6 @@ object + error_unless_ovirtsdk4_module_available (); + error_unless_nbdkit_working (); + error_unless_nbdkit_python_plugin_working (); +- error_unless_output_alloc_sparse (); + if have_selinux then + error_unless_nbdkit_compiled_with_selinux () + +diff --git a/v2v/rhv-upload-plugin.py b/v2v/rhv-upload-plugin.py +index 4d61a089b..a631d54d6 100644 +--- a/v2v/rhv-upload-plugin.py ++++ b/v2v/rhv-upload-plugin.py +@@ -140,10 +140,8 @@ def open(readonly): + format = disk_format, + initial_size = params['disk_size'], + provisioned_size = params['disk_size'], +- # XXX Ignores params['output_sparse']. +- # Handling this properly will be complex, see: + # https://www.redhat.com/archives/libguestfs/2018-March/msg00177.html +- sparse = True, ++ sparse = params['output_sparse'], + storage_domains = [ + types.StorageDomain( + name = params['output_storage'], +diff --git a/v2v/virt-v2v-output-rhv.pod b/v2v/virt-v2v-output-rhv.pod +index 651f61dae..4608cac45 100644 +--- a/v2v/virt-v2v-output-rhv.pod ++++ b/v2v/virt-v2v-output-rhv.pod +@@ -5,7 +5,7 @@ virt-v2v-output-rhv - Using virt-v2v to convert guests to oVirt or RHV + =head1 SYNOPSIS + + virt-v2v [-i* options] -o rhv-upload [-oc ENGINE_URL] -os STORAGE +- [-op PASSWORD] [-of raw] ++ [-op PASSWORD] + [-oo rhv-cafile=FILE] + [-oo rhv-cluster=CLUSTER] + [-oo rhv-direct] +@@ -78,12 +78,6 @@ username is not specified then virt-v2v defaults to using + C which is the typical superuser account for oVirt + instances. + +-=item I<-of raw> +- +-Currently you must use I<-of raw> and you cannot use I<-oa preallocated>. +- +-These restrictions will be loosened in a future version. +- + =item I<-op> F + + A file containing a password to be used when connecting to the oVirt +-- +2.21.0 + diff --git a/SOURCES/0034-RHEL-7-o-rhv-upload-Use-Python-2-instead-of-Python-3.patch b/SOURCES/0034-RHEL-7-o-rhv-upload-Use-Python-2-instead-of-Python-3.patch new file mode 100644 index 0000000..37c61d6 --- /dev/null +++ b/SOURCES/0034-RHEL-7-o-rhv-upload-Use-Python-2-instead-of-Python-3.patch @@ -0,0 +1,283 @@ +From b0a920f38e0ba2bb4474d4a085d05a8588b1b207 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Mon, 22 Jul 2019 13:32:54 +0200 +Subject: [PATCH] RHEL 7: -o rhv-upload: Use Python 2 instead of Python 3. + +[Pino: few additional bits edited by me] +--- + v2v/output_rhv_upload.ml | 2 +- + v2v/python_script.ml | 2 +- + v2v/rhv-upload-createvm.py | 20 ++++++++++++--- + v2v/rhv-upload-plugin.py | 46 +++++++++++++++++++++++------------ + v2v/rhv-upload-precheck.py | 22 +++++++++++++---- + v2v/test-v2v-python-syntax.sh | 2 +- + 6 files changed, 67 insertions(+), 27 deletions(-) + +diff --git a/v2v/output_rhv_upload.ml b/v2v/output_rhv_upload.ml +index 3d6d99008..051ce086f 100644 +--- a/v2v/output_rhv_upload.ml ++++ b/v2v/output_rhv_upload.ml +@@ -135,7 +135,7 @@ class output_rhv_upload output_alloc output_conn + error (f_"nbdkit is not new enough, you need to upgrade to nbdkit ≥ 1.1.16") + in + +- (* Check that the python3 plugin is installed and working ++ (* Check that the python plugin is installed and working + * and can load the plugin script. + *) + let error_unless_nbdkit_python_plugin_working () = +diff --git a/v2v/python_script.ml b/v2v/python_script.ml +index 3159373a1..fa052d697 100644 +--- a/v2v/python_script.ml ++++ b/v2v/python_script.ml +@@ -24,7 +24,7 @@ open Unix_utils + + open Common_gettext.Gettext + +-let python = "python3" (* Defined by PEP 394 *) ++let python = "python" + + type script = { + tmpdir : string; (* Temporary directory. *) +diff --git a/v2v/rhv-upload-createvm.py b/v2v/rhv-upload-createvm.py +index 1d0e8c95d..3f2fae4c6 100644 +--- a/v2v/rhv-upload-createvm.py ++++ b/v2v/rhv-upload-createvm.py +@@ -1,5 +1,6 @@ + # -*- python -*- +-# oVirt or RHV upload create VM used by ‘virt-v2v -o rhv-upload’ ++# coding: utf-8 ++# oVirt or RHV upload create VM used by 'virt-v2v -o rhv-upload' + # Copyright (C) 2018 Red Hat Inc. + # + # This program is free software; you can redistribute it and/or modify +@@ -21,8 +22,8 @@ import logging + import sys + import time + +-from http.client import HTTPSConnection +-from urllib.parse import urlparse ++from httplib import HTTPSConnection ++from urlparse import urlparse + + import ovirtsdk4 as sdk + import ovirtsdk4.types as types +@@ -37,8 +38,19 @@ if len(sys.argv) != 3: + raise RuntimeError("incorrect number of parameters") + + # Parameters are passed in via a JSON document. ++# https://stackoverflow.com/a/13105359 ++def byteify(input): ++ if isinstance(input, dict): ++ return {byteify(key): byteify(value) ++ for key, value in input.iteritems()} ++ elif isinstance(input, list): ++ return [byteify(element) for element in input] ++ elif isinstance(input, unicode): ++ return input.encode('utf-8') ++ else: ++ return input + with open(sys.argv[1], 'r') as fp: +- params = json.load(fp) ++ params = byteify(json.load(fp)) + + # What is passed in is a password file, read the actual password. + with open(params['output_password'], 'r') as fp: +diff --git a/v2v/rhv-upload-plugin.py b/v2v/rhv-upload-plugin.py +index a631d54d6..adace732b 100644 +--- a/v2v/rhv-upload-plugin.py ++++ b/v2v/rhv-upload-plugin.py +@@ -1,5 +1,6 @@ + # -*- python -*- +-# oVirt or RHV upload nbdkit plugin used by ‘virt-v2v -o rhv-upload’ ++# coding: utf-8 ++# oVirt or RHV upload nbdkit plugin used by 'virt-v2v -o rhv-upload' + # Copyright (C) 2018 Red Hat Inc. + # + # This program is free software; you can redistribute it and/or modify +@@ -16,16 +17,17 @@ + # with this program; if not, write to the Free Software Foundation, Inc., + # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + +-import builtins ++from __builtin__ import open as builtin_open + import json + import logging + import socket + import ssl + import sys + import time ++import errno + +-from http.client import HTTPSConnection, HTTPConnection +-from urllib.parse import urlparse ++from httplib import HTTPSConnection, HTTPConnection ++from urlparse import urlparse + + import ovirtsdk4 as sdk + import ovirtsdk4.types as types +@@ -37,14 +39,25 @@ timeout = 5*60 + # Parameters are passed in via a JSON doc from the OCaml code. + # Because this Python code ships embedded inside virt-v2v there + # is no formal API here. ++# https://stackoverflow.com/a/13105359 ++def byteify(input): ++ if isinstance(input, dict): ++ return {byteify(key): byteify(value) ++ for key, value in input.iteritems()} ++ elif isinstance(input, list): ++ return [byteify(element) for element in input] ++ elif isinstance(input, unicode): ++ return input.encode('utf-8') ++ else: ++ return input + params = None + + def config(key, value): + global params + + if key == "params": +- with builtins.open(value, 'r') as fp: +- params = json.load(fp) ++ with builtin_open(value, 'r') as fp: ++ params = byteify(json.load(fp)) + else: + raise RuntimeError("unknown configuration key '%s'" % key) + +@@ -54,13 +67,14 @@ def config_complete(): + + def debug(s): + if params['verbose']: +- print(s, file=sys.stderr) ++ sys.stderr.write(s) ++ sys.stderr.write("\n") + sys.stderr.flush() + + def find_host(connection): + """Return the current host object or None.""" + try: +- with builtins.open("/etc/vdsm/vdsm.id") as f: ++ with builtin_open("/etc/vdsm/vdsm.id") as f: + vdsm_id = f.readline().strip() + except Exception as e: + # This is most likely not an oVirt host. +@@ -111,7 +125,7 @@ def open(readonly): + username = parsed.username or "admin@internal" + + # Read the password from file. +- with builtins.open(params['output_password'], 'r') as fp: ++ with builtin_open(params['output_password'], 'r') as fp: + password = fp.read() + password = password.rstrip() + +@@ -244,7 +258,7 @@ def open(readonly): + # New imageio never needs authentication. + needs_auth = False + +- j = json.loads(data) ++ j = byteify(json.loads(data)) + can_flush = "flush" in j['features'] + can_trim = "trim" in j['features'] + can_zero = "zero" in j['features'] +@@ -369,8 +383,9 @@ def pwrite(h, buf, offset): + + try: + http.send(buf) +- except BrokenPipeError: +- pass ++ except EnvironmentError as e: ++ if e.errno != errno.EPIPE: ++ raise + + r = http.getresponse() + if r.status != 200: +@@ -432,8 +447,9 @@ def emulate_zero(h, count, offset): + http.send(buf) + count -= len(buf) + http.send(memoryview(buf)[:count]) +- except BrokenPipeError: +- pass ++ except EnvironmentError as e: ++ if e.errno != errno.EPIPE: ++ raise + + r = http.getresponse() + if r.status != 200: +@@ -540,7 +556,7 @@ def close(h): + raise RuntimeError("transfer failed: disk %s not found" % disk_id) + + # Write the disk ID file. Only do this on successful completion. +- with builtins.open(params['diskid_file'], 'w') as fp: ++ with builtin_open(params['diskid_file'], 'w') as fp: + fp.write(disk.id) + + except: +diff --git a/v2v/rhv-upload-precheck.py b/v2v/rhv-upload-precheck.py +index 2798a29dd..5b650899f 100644 +--- a/v2v/rhv-upload-precheck.py ++++ b/v2v/rhv-upload-precheck.py +@@ -1,5 +1,6 @@ + # -*- python -*- +-# oVirt or RHV pre-upload checks used by ‘virt-v2v -o rhv-upload’ ++# coding: utf-8 ++# oVirt or RHV pre-upload checks used by 'virt-v2v -o rhv-upload' + # Copyright (C) 2018 Red Hat Inc. + # + # This program is free software; you can redistribute it and/or modify +@@ -21,8 +22,8 @@ import logging + import sys + import time + +-from http.client import HTTPSConnection +-from urllib.parse import urlparse ++from httplib import HTTPSConnection ++from urlparse import urlparse + + import ovirtsdk4 as sdk + import ovirtsdk4.types as types +@@ -36,8 +37,19 @@ if len(sys.argv) != 2: + raise RuntimeError("incorrect number of parameters") + + # Parameters are passed in via a JSON document. ++# https://stackoverflow.com/a/13105359 ++def byteify(input): ++ if isinstance(input, dict): ++ return {byteify(key): byteify(value) ++ for key, value in input.iteritems()} ++ elif isinstance(input, list): ++ return [byteify(element) for element in input] ++ elif isinstance(input, unicode): ++ return input.encode('utf-8') ++ else: ++ return input + with open(sys.argv[1], 'r') as fp: +- params = json.load(fp) ++ params = byteify(json.load(fp)) + + # What is passed in is a password file, read the actual password. + with open(params['output_password'], 'r') as fp: +@@ -67,7 +79,7 @@ vms = vms_service.list( + ) + if len(vms) > 0: + vm = vms[0] +- raise RuntimeError("VM already exists with name ‘%s’, id ‘%s’" % ++ raise RuntimeError("VM already exists with name '%s', id '%s'" % + (params['output_name'], vm.id)) + + # Otherwise everything is OK, exit with no error. +diff --git a/v2v/test-v2v-python-syntax.sh b/v2v/test-v2v-python-syntax.sh +index b167f4610..8d5924e3c 100755 +--- a/v2v/test-v2v-python-syntax.sh ++++ b/v2v/test-v2v-python-syntax.sh +@@ -25,7 +25,7 @@ skip_if_skipped + files="rhv-upload-createvm.py rhv-upload-plugin.py rhv-upload-precheck.py" + + # Base version of Python. +-python=python3 ++python=python + + # Checks the files are syntactically correct, but not very much else. + for f in $files; do +-- +2.21.0 + diff --git a/SOURCES/0035-RHEL-7-v2v-rhv-upload-Disable-Nagle-algorithm.patch b/SOURCES/0035-RHEL-7-v2v-rhv-upload-Disable-Nagle-algorithm.patch new file mode 100644 index 0000000..b05cadc --- /dev/null +++ b/SOURCES/0035-RHEL-7-v2v-rhv-upload-Disable-Nagle-algorithm.patch @@ -0,0 +1,75 @@ +From 4a2ec70c2038d47f89d37523e6bd26c5e21e0559 Mon Sep 17 00:00:00 2001 +From: Nir Soffer +Date: Fri, 15 Jun 2018 22:57:32 +0300 +Subject: [PATCH] RHEL 7: v2v: rhv-upload: Disable Nagle algorithm + +When sending a PUT request, the http header may be sent in the first +packet when calling con.endheaders(). When we send the first chunk, the +kernel may delay the send because the header packet was not acked yet. + +We have seen PUT requests delayed by 40 milliseconds on the server side +during virt-v2v upload to ovirt. Here is example log from current RHEL +virt-v2v version, uploading to RHV 4.2.3: + +2018-06-12 17:04:01,750 INFO (Thread-2) [images] Writing 52736 bytes +at offset 0 flush False to /path/to/image for ticket +374bec27-930d-4097-8e41-e4bc23324eb0 + +2018-06-12 17:04:01,790 INFO (Thread-2) [directio] Operation stats: + + +The server spent 40 milliseconds reading 52736 bytes form +rhv_upload_plugin running on the same host. + +This issue was fixed in python 3.5 by using the TCP_NO_DELAY option +after connecting[1]. I backported this change from python 3.5. + +I tested the same change using imageio example upload script. With this +change and with optimized PATCH requests, upload time of 4G sparse image +was reduced from 7 minutes to 1 minute. + +See this ovirt patch for more details: +https://gerrit.ovirt.org/#/c/92276/ + +This change is needed only for python 2. + +[1] https://bugs.python.org/issue23302 +--- + v2v/rhv-upload-plugin.py | 14 +++++++++++++- + 1 file changed, 13 insertions(+), 1 deletion(-) + +diff --git a/v2v/rhv-upload-plugin.py b/v2v/rhv-upload-plugin.py +index adace732b..8f13ce1b2 100644 +--- a/v2v/rhv-upload-plugin.py ++++ b/v2v/rhv-upload-plugin.py +@@ -26,7 +26,7 @@ import sys + import time + import errno + +-from httplib import HTTPSConnection, HTTPConnection ++from httplib import HTTPSConnection as _HTTPSConnection, HTTPConnection + from urlparse import urlparse + + import ovirtsdk4 as sdk +@@ -52,6 +52,18 @@ def byteify(input): + return input + params = None + ++class HTTPSConnection(_HTTPSConnection): ++ def connect(self): ++ """ ++ Using TCP_NO_DELAY avoids delays when sending small payload, such as ++ ovirt PATCH requests. ++ ++ This issue was fixed in python 3.5, see: ++ https://bugs.python.org/issue23302 ++ """ ++ _HTTPSConnection.connect(self) ++ self.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1) ++ + def config(key, value): + global params + +-- +2.21.0 + diff --git a/SOURCES/0036-RHEL-7-p2v-ignore-rhv-upload-driver-RHBZ-1590220.patch b/SOURCES/0036-RHEL-7-p2v-ignore-rhv-upload-driver-RHBZ-1590220.patch new file mode 100644 index 0000000..e0781ef --- /dev/null +++ b/SOURCES/0036-RHEL-7-p2v-ignore-rhv-upload-driver-RHBZ-1590220.patch @@ -0,0 +1,33 @@ +From 45c163c5b327bcaf6363cdb7fedc25783eed5ad3 Mon Sep 17 00:00:00 2001 +From: Pino Toscano +Date: Thu, 19 Jul 2018 13:30:17 +0200 +Subject: [PATCH] RHEL 7: p2v: ignore 'rhv-upload' driver (RHBZ#1590220) + +The 'rhv-upload' output mode requires few options, and virt-p2v does not +have the GUI bits for specifying them. +--- + p2v/ssh.c | 8 ++++++-- + 1 file changed, 6 insertions(+), 2 deletions(-) + +diff --git a/p2v/ssh.c b/p2v/ssh.c +index c8528033d..8aac2685d 100644 +--- a/p2v/ssh.c ++++ b/p2v/ssh.c +@@ -1021,8 +1021,12 @@ add_input_driver (const char *name, size_t len) + static void + add_output_driver (const char *name, size_t len) + { +- /* Ignore the 'vdsm' driver, since that should only be used by VDSM. */ +- if (len != 4 || memcmp (name, "vdsm", 4) != 0) ++ /* Ignore the 'vdsm' driver, since that should only be used by VDSM. ++ * Ignore the 'rhv-upload' driver, since we do not support passing all the ++ * options for it. ++ */ ++ if ((len != 4 || memcmp (name, "vdsm", 4) != 0) && ++ (len != 10 || memcmp (name, "rhv-upload", 10) != 0)) + add_option ("output", &output_drivers, name, len); + } + +-- +2.21.0 + diff --git a/SOURCES/0037-RHEL-7-point-to-KB-for-supported-v2v-hypervisors-gue.patch b/SOURCES/0037-RHEL-7-point-to-KB-for-supported-v2v-hypervisors-gue.patch new file mode 100644 index 0000000..93bf35a --- /dev/null +++ b/SOURCES/0037-RHEL-7-point-to-KB-for-supported-v2v-hypervisors-gue.patch @@ -0,0 +1,125 @@ +From 3006dd4bef08b081c1984fdb4800ce2aef03eefb Mon Sep 17 00:00:00 2001 +From: Pino Toscano +Date: Tue, 26 Mar 2019 09:42:25 +0100 +Subject: [PATCH] RHEL 7: point to KB for supported v2v hypervisors/guests + +--- + v2v/virt-v2v-support.pod | 102 ++------------------------------------- + 1 file changed, 4 insertions(+), 98 deletions(-) + +diff --git a/v2v/virt-v2v-support.pod b/v2v/virt-v2v-support.pod +index a22506068..4ec1a07c1 100644 +--- a/v2v/virt-v2v-support.pod ++++ b/v2v/virt-v2v-support.pod +@@ -8,104 +8,10 @@ systems and guests in virt-v2v + This page documents which foreign hypervisors, virtualization + management systems and guest types that L can support. + +-Note this page applies to upstream virt-v2v from +-L and in downstream distributions of virt-v2v +-sometimes features are intentionally removed, or are present but not +-supported. +- +-=head2 Hypervisors (Input) +- +-=over 4 +- +-=item VMware ESXi +- +-Must be managed by VMware vCenter E 5.0 unless VDDK is available. +- +-=item OVA exported from VMware +- +-OVAs from other hypervisors will not work. +- +-=item VMX from VMware +- +-VMX files generated by other hypervisors will not work. +- +-=item RHEL 5 Xen +- +-=item SUSE Xen +- +-=item Citrix Xen +- +-Citrix Xen has not been recently tested. +- +-=item Hyper-V +- +-Not recently tested. Requires that you export the disk or use +-L on Hyper-V. +- +-=item Direct from disk images +- +-Only disk images exported from supported hypervisors, and using +-container formats supported by qemu. +- +-=item Physical machines +- +-Using the L tool. +- +-=back +- +-=head2 Hypervisors (Output) +- +-QEMU and KVM only. +- +-=head2 Virtualization management systems (Output) +- +-=over 4 +- +-=item OpenStack +- +-=item Red Hat Virtualization (RHV) 4.1 and up +- +-=item Local libvirt +- +-And hence L, L, and similar tools. +- +-=item Local disk +- +-=back +- +-=head2 Guests +- +-=over 4 +- +-=item Red Hat Enterprise Linux 3, 4, 5, 6, 7 +- +-=item CentOS 3, 4, 5, 6, 7 +- +-=item Scientific Linux 3, 4, 5, 6, 7 +- +-=item Oracle Linux +- +-=item Fedora +- +-=item SLES 10 and up +- +-=item OpenSUSE 10 and up +- +-=item Debian 6 and up +- +-=item Ubuntu 10.04, 12.04, 14.04, 16.04, and up +- +-=item Windows XP to Windows 10 / Windows Server 2016 +- +-We use Windows internal version numbers, see +-L +- +-Currently NT 5.2 to NT 6.3 are supported. +- +-See L below for additional notes on converting Windows +-guests. +- +-=back ++For more information on supported hypervisors, and guest types in ++RHEL, please consult the following Knowledgebase article on these ++Red Hat Customer Portal: ++L. + + =head2 Guest firmware + +-- +2.21.0 + diff --git a/SOURCES/README-replacement.in b/SOURCES/README-replacement.in new file mode 100644 index 0000000..ee45abb --- /dev/null +++ b/SOURCES/README-replacement.in @@ -0,0 +1,38 @@ +Libguestfs is a set of tools and a library for accessing and modifying +guest disk images. For more information see the home page: + + http://libguestfs.org/ + +For discussion, development, patches, etc. please use the mailing +list: + + http://www.redhat.com/mailman/listinfo/libguestfs + +This Red Hat Enterprise Linux package comes with a lot of help and +examples to get you started. + +The first place to start are the manual pages. Type: + + man guestfs + man guestfs-faq + man guestfs-release-notes + man guestfish + man virt-cat # and other virt-* tools + +If you install the libguestfs-devel package, then in the +/usr/share/doc/libguestfs-devel-@VERSION@/ directory you will also +find: + + - BUGS: list of open bugs in this version + + - ChangeLog: the detailed list of changes in this version + + - ROADMAP: the roadmap for future versions + + - TODO: ideas for extending libguestfs + + - *.c: example C programs using the API + + - *.xml: example virt-inspector output + + - *.rng: virt-inspector RelaxNG schema diff --git a/SOURCES/brew-overrides.sh b/SOURCES/brew-overrides.sh new file mode 100755 index 0000000..ea91c18 --- /dev/null +++ b/SOURCES/brew-overrides.sh @@ -0,0 +1,29 @@ +#!/bin/bash - + +# This script is used when we build libguestfs from brew, as sometimes +# we require packages which are not available in the current version +# of RHEL. Normally these updated packages would be released along +# with libguestfs in the next RHEL, although unfortunately sometimes +# that doesn't happen (eg. RHBZ#1199605). + +set -x + +pkgs=" + augeas-1.4.0-5.el7 + hivex-1.3.10-6.9.el7 + ocaml-4.05.0-6.el7 + ocaml-camlp4-4.05.0-0.4.gitfc12d8c7.el7 + ocaml-fileutils-0.4.4-9.el7 + ocaml-findlib-1.7.3-7.el7 + ocaml-gettext-0.3.7-1.el7 + ocaml-srpm-macros-5-2.el7 + supermin-5.1.19-1.el7 +" + +for pkg in $pkgs ; do + brew tag-pkg rhel-7.5-temp-override $pkg +done + +for pkg in $pkgs ; do + brew wait-repo rhel-7.5-build --build=$pkg +done diff --git a/SOURCES/copy-patches.sh b/SOURCES/copy-patches.sh new file mode 100755 index 0000000..79f039a --- /dev/null +++ b/SOURCES/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=7.8 + +# Check we're in the right directory. +if [ ! -f libguestfs.spec ]; then + echo "$0: run this from the directory containing 'libguestfs.spec'" + exit 1 +fi + +git_checkout=$HOME/d/libguestfs-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 "libguestfs release on RHEL." + exit 1 +fi + +# Get the base version of libguestfs. +version=`grep '^Version:' libguestfs.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 $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 libguestfs.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/guestfish.sh b/SOURCES/guestfish.sh new file mode 100644 index 0000000..cfd0492 --- /dev/null +++ b/SOURCES/guestfish.sh @@ -0,0 +1,6 @@ +# Guestfish colour prompts. See PROMPT in guestfish(1). +GUESTFISH_PS1='\[\e[1;32m\]>\[\e[0;31m\] ' +GUESTFISH_OUTPUT='\e[0m' +GUESTFISH_RESTORE="$GUESTFISH_OUTPUT" +GUESTFISH_INIT='\e[1;34m' +export GUESTFISH_PS1 GUESTFISH_OUTPUT GUESTFISH_RESTORE GUESTFISH_INIT diff --git a/SOURCES/libguestfs-1.40.2.tar.gz.sig b/SOURCES/libguestfs-1.40.2.tar.gz.sig new file mode 100644 index 0000000..016e22b --- /dev/null +++ b/SOURCES/libguestfs-1.40.2.tar.gz.sig @@ -0,0 +1,17 @@ +-----BEGIN PGP SIGNATURE----- + +iQJFBAABCAAvFiEE93dPsa0HSn6Mh2fqkXOPc+G3aKAFAlxdivwRHHJpY2hAYW5u +ZXhpYS5vcmcACgkQkXOPc+G3aKC8SRAAotTR3nvV2lUeABLn8uiv5CjmeEEm++C4 +754zGkOb7bRSQzcQ12XC0e4WQwcS/fHHSRhT2ABc1VeLn8ehyEEQ3T3NfDpnpaKR +NYolsI3l8iae4QI0wo85/Wb/k7pXg1uWFZ9t286d1e/NYudMEZ6hiVXsUNlSu0lR +rU5Xr/XGDV01Vlalo1qcVI1p3b3zBFGcNLv5Myc0+Q+RWVYcyrm270VJYmD0OOnh +zzRgb1fBW4rVIbYEhmmhNgbL3758Qaef/jsTxU/tH83LOdJUpxWYvLD7ec3DzsHr +xcNgDCZxCtn4ObdfxJGzVbWO96nmVPxNnVMeDol+PDsrVkQnpSPMPrU/oth5Xh19 ++JeP22SSDahCIbO9YlL3AoA3l1gpLq2f9yTz9JIHm4ytBZmQPD8QU2KBQFsz+/ZE +Gulc0j/3mzlRyoesuVGb79OWBfSDCHittKVFPXqokzNu0jWZVd7GxfJ2DQqUprJd +eK4LDJpInS+Vdohjko8uuC9AfGB68hWbuazjdWLhTNQb3/8EzX5Xu2N88xlWuBQK +HRu8NPp601uI6qdjj38VUXGY5BryDIJdvqf5hoRNe/2scf3OomaMpdck59gLT4LB +/yaNbfPSRenXQ1IM3mU9Opktvm48cpJQ8B80OEmWenhhjXrHrgplVNkXK7inZ7vu +TKia/N90ugY= +=kgC8 +-----END PGP SIGNATURE----- diff --git a/SOURCES/yum.conf.in b/SOURCES/yum.conf.in new file mode 100644 index 0000000..b71abc9 --- /dev/null +++ b/SOURCES/yum.conf.in @@ -0,0 +1,16 @@ +[main] +cachedir=@PWD@/yum +debuglevel=1 +logfile=@PWD@/yum.log +retries=20 +obsoletes=1 +gpgcheck=0 +assumeyes=1 +reposdir=/dev/null + +[local] +name=local +baseurl=file://@PWD@/repo +failovermethod=priority +enabled=1 +gpgcheck=0 diff --git a/SPECS/libguestfs.spec b/SPECS/libguestfs.spec new file mode 100644 index 0000000..146acc1 --- /dev/null +++ b/SPECS/libguestfs.spec @@ -0,0 +1,4217 @@ +%global _hardened_build 1 + +# Architectures where virt-v2v is shipped. +# +# 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 +%global v2v_arches x86_64 + +# Trim older changelog entries. +# https://lists.fedoraproject.org/pipermail/devel/2013-April/thread.html#181627 +%global _changelog_trimtime %(date +%s -d "2 years ago") + +# Verify tarball signature with GPGv2 (only possible for stable branches). +%global verify_tarball_signature 1 + +# Filter perl provides +%{?perl_default_filter} + +Summary: Access and modify virtual machine disk images +Name: libguestfs +Epoch: 1 +Version: 1.40.2 +Release: 8%{?dist} +License: LGPLv2+ + +# Source and patches. +URL: http://libguestfs.org/ +Source0: http://libguestfs.org/download/1.40-stable/%{name}-%{version}.tar.gz + +%if 0%{verify_tarball_signature} +Source1: http://libguestfs.org/download/1.40-stable/%{name}-%{version}.tar.gz.sig +%endif + +ExclusiveArch: x86_64 %{power64} aarch64 s390x + +# RHEL 7 git repository is: +# https://github.com/libguestfs/libguestfs/tree/rhel-7.8 +# Use 'copy-patches.sh' to copy the patches from the git repo +# to the current directory. + +# Patches. +Patch0001: 0001-inspect-fix-icon-of-RHEL.patch +Patch0002: 0002-v2v-linux-do-not-uninstall-open-vm-tools-w-ubuntu-se.patch +Patch0003: 0003-v2v-linux-canonicalize-module-path-for-arch-detectio.patch +Patch0004: 0004-v2v-linux-improve-arch-detection-from-modules-RHBZ-1.patch +Patch0005: 0005-v2v-o-libvirt-write-win2k19-osinfo-ID.patch +Patch0006: 0006-v2v-update-documentation-on-nbdkit-RHBZ-1605242.patch +Patch0007: 0007-v2v-linux-add-helper-functions-for-pkg-arch-and-exte.patch +Patch0008: 0008-v2v-try-to-pick-the-right-arch-for-qemu-ga-pkgs.patch +Patch0009: 0009-v2v-change-the-reporting-of-RHV-Tools-messages-warni.patch +Patch0010: 0010-v2v-fix-path-to-source-when-copying-files-from-guest.patch +Patch0011: 0011-v2v-warn-when-the-guest-has-direct-network-interface.patch +Patch0012: 0012-Use-proper-label-for-nbdkit-sockets.patch +Patch0013: 0013-v2v-rhv-upload-plugin-improve-wait-logic-after-final.patch +Patch0014: 0014-v2v-Allow-Windows-virtio-ISO-to-be-a-block-device-as.patch +Patch0015: 0015-v2v-Set-DISKTYPE-2-in-RHV-and-VDSM-meta-files-RHBZ-1.patch +Patch0016: 0016-v2v-Fix-default-graphics-driver-for-SUSE-guests.patch +Patch0017: 0017-RHEL-7-Remove-libguestfs-live-RHBZ-798980.patch +Patch0018: 0018-RHEL-7-Remove-9p-APIs-from-RHEL-RHBZ-921710.patch +Patch0019: 0019-RHEL-7-Disable-unsupported-remote-drive-protocols-RH.patch +Patch0020: 0020-RHEL-7-Remove-User-Mode-Linux-RHBZ-1144197.patch +Patch0021: 0021-RHEL-7-v2v-Select-correct-qemu-binary-for-o-qemu-mod.patch +Patch0022: 0022-RHEL-7-v2v-Disable-the-qemu-boot-option-RHBZ-1147313.patch +Patch0023: 0023-RHEL-7-Disable-alternate-Augeas-lenses.patch +Patch0024: 0024-RHEL-7-Fix-list-of-supported-sound-cards-to-match-RH.patch +Patch0025: 0025-RHEL-7-Reject-use-of-libguestfs-winsupport-features-.patch +Patch0026: 0026-RHEL-7-daemon-umount-all-Hack-to-avoid-umount-sysroo.patch +Patch0027: 0027-RHEL-7-Fix-tests-for-libguestfs-winsupport-7.2.patch +Patch0028: 0028-RHEL-7-All-qemu-kvm-in-RHEL-7-supports-discard-of-qc.patch +Patch0029: 0029-RHEL-7-tests-Disable-daemon-tests-that-require-the-u.patch +Patch0030: 0030-RHEL-7-v2v-Disable-the-virt-v2v-in-place-option.patch +Patch0031: 0031-RHEL-7-v2v-i-disk-force-VNC-as-display-RHBZ-1372671.patch +Patch0032: 0032-RHEL-7-v2v-do-not-mention-SUSE-Xen-hosts-RHBZ-143020.patch +Patch0033: 0033-RHEL-7-v2v-rhv-upload-Remove-restriction-on-oa-spars.patch +Patch0034: 0034-RHEL-7-o-rhv-upload-Use-Python-2-instead-of-Python-3.patch +Patch0035: 0035-RHEL-7-v2v-rhv-upload-Disable-Nagle-algorithm.patch +Patch0036: 0036-RHEL-7-p2v-ignore-rhv-upload-driver-RHBZ-1590220.patch +Patch0037: 0037-RHEL-7-point-to-KB-for-supported-v2v-hypervisors-gue.patch + +# Use git for patch management. +BuildRequires: git + +# Run autotools after applying the patches. +BuildRequires: autoconf, automake, libtool, gettext-devel + +# Replacement README file for RHEL users. +Source4: README-replacement.in + +# Guestfish colour prompts. +Source5: guestfish.sh + +# Used to build the supermin appliance in Koji. +Source6: yum.conf.in + +# Keyring used to verify tarball signature. +%if 0%{verify_tarball_signature} +Source7: libguestfs.keyring +%endif + +# RHSRVANY and RHEV-APT, used for Windows virt-v2v conversions. +# RHSRVANY is built from source under Fedora from +# mingw32-srvany-1.0-15.20150115gitfd659e77.fc23.noarch +# RHEV-APT is taken from the RHEV Tools CD +# See https://bugzilla.redhat.com/show_bug.cgi?id=1186850 +Source96: rhsrvany.exe +Source97: RHEV-Application-Provisioning-Tool.exe_4.43-3 + +Source98: brew-overrides.sh +Source99: copy-patches.sh + +# Basic build requirements for the library and virt tools. +BuildRequires: gcc +BuildRequires: supermin5-devel >= 5.1.16-2 +BuildRequires: hivex-devel >= 1.3.10-5.8.el7 +BuildRequires: ocaml-hivex-devel +BuildRequires: perl(Pod::Simple) +BuildRequires: perl(Pod::Man) +BuildRequires: /usr/bin/pod2text +BuildRequires: po4a +BuildRequires: augeas-devel +BuildRequires: readline-devel +BuildRequires: genisoimage +BuildRequires: libxml2-devel +BuildRequires: createrepo +BuildRequires: glibc-static +BuildRequires: libselinux-utils +BuildRequires: libselinux-devel +BuildRequires: fuse, fuse-devel +BuildRequires: pcre-devel +BuildRequires: file-devel +BuildRequires: libvirt-devel +BuildRequires: gperf +BuildRequires: flex +BuildRequires: bison +BuildRequires: libdb-utils +BuildRequires: cpio +BuildRequires: libconfig-devel +BuildRequires: xz-devel +BuildRequires: zip +BuildRequires: unzip +BuildRequires: systemd-units +BuildRequires: netpbm-progs +BuildRequires: icoutils +%ifnarch aarch64 %{power64} s390x +# RHBZ#1177910 +BuildRequires: libvirt-daemon-kvm +%endif +#BuildRequires: perl(Expect) +BuildRequires: libacl-devel +BuildRequires: libcap-devel +#BuildRequires: libldm-devel +BuildRequires: jansson-devel +BuildRequires: systemd-devel +BuildRequires: bash-completion +BuildRequires: /usr/bin/ping +BuildRequires: /usr/bin/wget +BuildRequires: curl +BuildRequires: xz +BuildRequires: gtk3-devel +BuildRequires: dbus-devel +BuildRequires: /usr/bin/qemu-img +BuildRequires: perl(Win::Hivex) +BuildRequires: perl(Win::Hivex::Regedit) +%if 0%{verify_tarball_signature} +BuildRequires: gnupg2 +%endif + +# For language bindings. +# Build using OCaml with fix for CVE-2015-8869. +BuildRequires: ocaml >= 4.01.0-22.7.el7 +BuildRequires: ocaml-ocamldoc +# Make sure to get the performance fix for findlib. +BuildRequires: ocaml-findlib-devel >= 1.3.3-7.el7 +BuildRequires: ocaml-gettext-devel +BuildRequires: lua +BuildRequires: lua-devel +BuildRequires: perl-devel +BuildRequires: perl-macros +BuildRequires: perl(Sys::Virt) +BuildRequires: perl(Test::More) +BuildRequires: perl(Test::Pod) >= 1.00 +BuildRequires: perl(Test::Pod::Coverage) >= 1.00 +BuildRequires: perl(Module::Build) +BuildRequires: perl(ExtUtils::CBuilder) +BuildRequires: perl(Locale::TextDomain) +BuildRequires: python-devel +BuildRequires: libvirt-python +BuildRequires: ruby-devel +BuildRequires: rubygem-rake +BuildRequires: rubygem(minitest) +#BuildRequires: rubygem(test-unit) +BuildRequires: ruby-irb +BuildRequires: java-1.7.0-openjdk +BuildRequires: java-1.7.0-openjdk-devel +BuildRequires: jpackage-utils +#BuildRequires: php-devel +#BuildRequires: erlang-erts +#BuildRequires: erlang-erl_interface +BuildRequires: glib2-devel +BuildRequires: gobject-introspection-devel +BuildRequires: gjs +#%ifarch %{golang_arches} +#BuildRequires: golang +#%endif + +# Build requirements for the appliance. +# +# Get the initial list by doing: +# for f in `cat appliance/packagelist`; do echo $f; done | sort -u +# However you have to edit the list down to packages which exist in +# current RHEL, since supermin ignores non-existent packages. +BuildRequires: acl attr augeas-libs bash binutils btrfs-progs bzip2 coreutils cpio cryptsetup curl dhclient diffutils dosfstools e2fsprogs file findutils gawk gdisk genisoimage grep gzip hivex iproute iputils jansson kernel kmod kpartx less libcap libselinux libxml2 lsof lsscsi lvm2 lzop mdadm openssh-clients parted pciutils pcre policycoreutils procps psmisc qemu-img rsync scrub sed squashfs-tools strace systemd tar udev util-linux vim-minimal which xfsprogs xz +%ifarch x86_64 +BuildRequires: gfs2-utils +%endif +%ifarch %{ix86} x86_64 +BuildRequires: syslinux syslinux-extlinux +%endif + +# For building the appliance. +Requires: supermin5 >= 5.1.16-2 + +# The daemon dependencies are not included automatically, because it +# is buried inside the appliance, so list them here. +Requires: augeas-libs +Requires: libacl +Requires: libcap +Requires: hivex >= 1.3.10-5.8.el7 +Requires: pcre +Requires: libselinux +Requires: systemd-libs +Requires: yajl + +# RHBZ#1211321 +Requires: kernel + +# Older lvmetad "forgets" VGs if you change their UUID. libguestfs +# since 1.34 enables lvmetad. So we must ensure we have new enough +# LVM: +Requires: lvm2 >= 7:2.02.166-1.el7 + +# For core inspection API. +Requires: libdb-utils + +# For core mount-local (FUSE) API. +Requires: fuse + +# For core disk-create API. +Requires: /usr/bin/qemu-img + +# For libvirt backend. +# RHBZ#1500870, RHBZ#1501239 +Requires: libvirt-daemon-kvm >= 3.9.0-1 +%ifarch aarch64 +Requires: AAVMF +%endif + +# https://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries#Packages_granted_exceptions +Provides: bundled(gnulib) + +# Conflicts with libguestfs-winsupport from RHEL 7.0. You need to +# use the RHEL 7.2+ package. +Conflicts: libguestfs-winsupport < 7.2 + + +%description +Libguestfs is a library for accessing and modifying virtual machine +disk images. http://libguestfs.org + +It can be used to make batch configuration changes to guests, get +disk used/free statistics (virt-df), migrate between hypervisors +(virt-p2v, virt-v2v), perform backups and guest clones, change +registry/UUID/hostname info, build guests from scratch (virt-builder) +and much more. + +Libguestfs uses Linux kernel and qemu code, and can access any type of +guest filesystem that Linux and qemu can, including but not limited +to: ext2/3/4, btrfs, FAT and NTFS, LVM, many different disk partition +schemes, qcow, qcow2, vmdk. + +Libguestfs for Red Hat Enterprise Linux is split into several subpackages. +The basic subpackages are: + + libguestfs C library + libguestfs-tools virt-* tools, guestfish and guestmount (FUSE) + libguestfs-tools-c only the subset of virt tools written in C + (for reduced dependencies) + virt-dib safe and secure diskimage-builder replacement + virt-v2v convert virtual machines to run on KVM (V2V) + virt-p2v-maker convert physical machines to run on KVM (P2V) + +For enhanced features, install: + + libguestfs-gfs2 adds Global Filesystem (GFS2) support + libguestfs-inspect-icons adds support for inspecting guest icons + libguestfs-rescue enhances virt-rescue shell with more tools + libguestfs-rsync rsync to/from guest filesystems + libguestfs-xfs adds XFS support + +For developers: + + libguestfs-devel C/C++ header files and library + libguestfs-benchmarking Benchmarking utilities + +Language bindings: + + libguestfs-gobject-devel GObject bindings and GObject Introspection + libguestfs-java-devel Java bindings + lua-guestfs Lua bindings + ocaml-libguestfs-devel OCaml bindings + perl-Sys-Guestfs Perl bindings + python-libguestfs Python bindings + ruby-libguestfs Ruby bindings + + +%ifarch aarch64 x86_64 +%package benchmarking +Summary: Benchmarking utilities for %{name} +Requires: %{name} = %{epoch}:%{version}-%{release} + + +%description benchmarking +%{name}-benchmarking contains utilities for benchmarking and +performance analysis of %{name}, and also for general +understanding of the performance of the kernel and qemu when booting +small appliances. +%endif + + +%package devel +Summary: Development tools and libraries for %{name} +Requires: %{name} = %{epoch}:%{version}-%{release} +Requires: pkgconfig + +# For libguestfs-make-fixed-appliance. +Requires: xz +Requires: %{name}-tools-c = %{epoch}:%{version}-%{release} + + +%description devel +%{name}-devel contains development tools and libraries +for %{name}. + + +%ifarch x86_64 +%package gfs2 +Summary: GFS2 support for %{name} +License: LGPLv2+ +Requires: %{name} = %{epoch}:%{version}-%{release} + +%description gfs2 +This adds GFS2 support to %{name}. Install it if you want to process +disk images containing GFS2. +%endif + + +%package rescue +Summary: Additional tools for virt-rescue +License: LGPLv2+ +Requires: %{name}-tools-c = %{epoch}:%{version}-%{release} + +%description rescue +This adds additional tools to use inside the virt-rescue shell, +such as ssh, network utilities, editors and debugging utilities. + + +%package rsync +Summary: rsync support for %{name} +License: LGPLv2+ +Requires: %{name} = %{epoch}:%{version}-%{release} + +%description rsync +This adds rsync support to %{name}. Install it if you want to use +rsync to upload or download files into disk images. + + +%package xfs +Summary: XFS support for %{name} +License: LGPLv2+ +Requires: %{name} = %{epoch}:%{version}-%{release} + +%description xfs +This adds XFS support to %{name}. Install it if you want to process +disk images containing XFS. + + +%package inspect-icons +Summary: Additional dependencies for inspecting guest icons +License: LGPLv2+ +BuildArch: noarch +Requires: %{name} = %{epoch}:%{version}-%{release} + +Requires: netpbm-progs +Requires: icoutils + + +%description inspect-icons +%{name}-inspect-icons is a metapackage that pulls in additional +dependencies required by libguestfs to pull icons out of non-Linux +guests. Install this package if you want libguestfs to be able to +inspect non-Linux guests and display icons from them. + +The only reason this is a separate package is to avoid core libguestfs +having to depend on Perl. See https://bugzilla.redhat.com/1194158 + + +%package tools-c +Summary: System administration tools for virtual machines +License: GPLv2+ +Requires: %{name} = %{epoch}:%{version}-%{release} + +# for guestfish: +#Requires: /usr/bin/emacs #theoretically, but too large +Requires: /usr/bin/hexedit +Requires: /usr/bin/less +Requires: /usr/bin/man +Requires: /usr/bin/vi + +# Obsolete and replace earlier packages. +# NB: This was present in RHEL 7.0, removed accidentally in RHEL 7.1 +# (causing RHBZ#1212002), then re-added. Make sure to remove this +# section completely in RHEL 8.0. +Provides: guestfish = %{epoch}:%{version}-%{release} +Obsoletes: guestfish < %{epoch}:%{version}-%{release} +Provides: libguestfs-mount = %{epoch}:%{version}-%{release} +Obsoletes: libguestfs-mount < %{epoch}:%{version}-%{release} + +# for virt-builder: +Requires: gnupg +Requires: xz +#Requires: nbdkit, nbdkit-plugin-xz +Requires: curl + +# for virt-builder-repository: +Requires: osinfo-db + + +%description tools-c +This package contains miscellaneous system administrator command line +tools for virtual machines. + +Note that you should install %{name}-tools (which pulls in +this package). This package is only used directly when you want +to avoid dependencies on Perl. + + +%package tools +Summary: System administration tools for virtual machines +License: GPLv2+ +BuildArch: noarch +Requires: %{name} = %{epoch}:%{version}-%{release} +Requires: %{name}-tools-c = %{epoch}:%{version}-%{release} + +# NB: Only list deps here which are not picked up automatically. +Requires: perl(Sys::Virt) +Requires: perl(Win::Hivex) >= 1.2.7 + + +%description tools +This package contains miscellaneous system administrator command line +tools for virtual machines. + +Guestfish is the Filesystem Interactive SHell, for accessing and +modifying virtual machine disk images from the command line and shell +scripts. + +The guestmount command lets you mount guest filesystems on the host +using FUSE and %{name}. + +Virt-alignment-scan scans virtual machines looking for partition +alignment problems. + +Virt-builder is a command line tool for rapidly making disk images +of popular free operating systems. + +Virt-cat is a command line tool to display the contents of a file in a +virtual machine. + +Virt-copy-in and virt-copy-out are command line tools for uploading +and downloading files and directories to and from virtual machines. + +Virt-customize is a command line tool for customizing virtual machine +disk images. + +Virt-df is a command line tool to display free space on virtual +machine filesystems. Unlike other tools, it doesn’t just display the +amount of space allocated to a virtual machine, but can look inside +the virtual machine to see how much space is really being used. It is +like the df(1) command, but for virtual machines, except that it also +works for Windows virtual machines. + +Virt-diff shows the differences between virtual machines. + +Virt-edit is a command line tool to edit the contents of a file in a +virtual machine. + +Virt-filesystems is a command line tool to display the filesystems, +partitions, block devices, LVs, VGs and PVs found in a disk image +or virtual machine. It replaces the deprecated programs +virt-list-filesystems and virt-list-partitions with a much more +capable tool. + +Virt-format is a command line tool to erase and make blank disks. + +Virt-get-kernel extracts a kernel/initrd from a disk image. + +Virt-inspector examines a virtual machine and tries to determine the +version of the OS, the kernel version, what drivers are installed, +whether the virtual machine is fully virtualized (FV) or +para-virtualized (PV), what applications are installed and more. + +Virt-log is a command line tool to display the log files from a +virtual machine. + +Virt-ls is a command line tool to list out files in a virtual machine. + +Virt-make-fs is a command line tool to build a filesystem out of +a collection of files or a tarball. + +Virt-rescue provides a rescue shell for making interactive, +unstructured fixes to virtual machines. + +Virt-resize can resize existing virtual machine disk images. + +Virt-sparsify makes virtual machine disk images sparse (thin-provisioned). + +Virt-sysprep lets you reset or unconfigure virtual machines in +preparation for cloning them. + +Virt-tail follows (tails) a log file within a guest, like 'tail -f'. + +Virt-tar-in and virt-tar-out are archive, backup and upload tools +for virtual machines. These replace the deprecated program virt-tar. + +Virt-win-reg lets you look at and modify the Windows Registry of +Windows virtual machines. + + +%package -n virt-dib +Summary: Safe and secure diskimage-builder replacement +License: GPLv2+ + +Requires: %{name} = %{epoch}:%{version}-%{release} + + +%description -n virt-dib +Virt-dib is a safe and secure alternative to the OpenStack +diskimage-builder command. It is compatible with most +diskimage-builder elements. + + +%ifarch %{v2v_arches} +%package -n virt-v2v +Summary: Convert a virtual machine to run on KVM +License: GPLv2+ + +Requires: %{name} = %{epoch}:%{version}-%{release} +Requires: %{name}-tools-c = %{epoch}:%{version}-%{release} +# First version that added support for ssh, curl, json: URLs. +# (RHBZ#1226683, RHBZ#1226684, RHBZ#1226697). +Requires: qemu-kvm >= 1.5.3-92.el7 + +# For Windows conversions. +%ifarch x86_64 aarch64 +Requires: libguestfs-winsupport >= 7.2 +%endif + +Requires: gawk +Requires: gzip +Requires: unzip +Requires: curl +Requires: /usr/bin/virsh + +# Ensure the UEFI firmware is available, to properly convert +# EFI guests (RHBZ#1429643). +%ifarch x86_64 +Requires: OVMF +%endif +%ifarch aarch64 +Requires: AAVMF +%endif + +# Needed for -it vddk, and -o rhv-upload. +Requires: nbdkit +Requires: nbdkit-plugin-python2 +Requires: nbdkit-plugin-vddk + + +%description -n virt-v2v +Virt-v2v converts virtual machines from non-KVM hypervisors +to run under KVM. + +To convert physical machines, see the virt-p2v-maker package. + + +%package -n virt-p2v-maker +Summary: Convert a physical machine to run on KVM +License: GPLv2+ + +Requires: gawk +Requires: gzip + +# virt-p2v-make-disk runs virt-builder: +Requires: %{name}-tools-c = %{epoch}:%{version}-%{release} + +# virt-p2v-make-kickstart runs strip: +Requires: binutils + + +%description -n virt-p2v-maker +Virt-p2v converts (virtualizes) physical machines so they can be run +as virtual machines under KVM. + +This package contains the tools needed to make a virt-p2v boot CD or +USB key which is booted on the physical machine to perform the +conversion. You also need virt-v2v installed somewhere else to +complete the conversion. + +To convert virtual machines from other hypervisors, see virt-v2v. +%endif + + +%package bash-completion +Summary: Bash tab-completion scripts for %{name} tools +BuildArch: noarch +Requires: bash-completion >= 2.0 +Requires: %{name}-tools-c = %{epoch}:%{version}-%{release} + + +%description bash-completion +Install this package if you want intelligent bash tab-completion +for guestfish, guestmount and various virt-* tools. + + +%package -n ocaml-%{name} +Summary: OCaml bindings for %{name} +Requires: %{name} = %{epoch}:%{version}-%{release} + + +%description -n ocaml-%{name} +ocaml-%{name} contains OCaml bindings for %{name}. + +This is for toplevel and scripting access only. To compile OCaml +programs which use %{name} you will also need ocaml-%{name}-devel. + + +%package -n ocaml-%{name}-devel +Summary: OCaml bindings for %{name} +Requires: ocaml-%{name} = %{epoch}:%{version}-%{release} + + +%description -n ocaml-%{name}-devel +ocaml-%{name}-devel contains development libraries +required to use the OCaml bindings for %{name}. + + +%package -n perl-Sys-Guestfs +Summary: Perl bindings for %{name} (Sys::Guestfs) +Requires: %{name} = %{epoch}:%{version}-%{release} +Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version)) + + +%description -n perl-Sys-Guestfs +perl-Sys-Guestfs contains Perl bindings for %{name} (Sys::Guestfs). + + +%package -n python-%{name} +Summary: Python bindings for %{name} +Requires: %{name} = %{epoch}:%{version}-%{release} + +%{!?python_sitelib: %global python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} +%{!?python_sitearch: %global python_sitearch %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib(1)")} + +%description -n python-%{name} +python-%{name} contains Python bindings for %{name}. + + +%package -n ruby-%{name} +Summary: Ruby bindings for %{name} +Requires: %{name} = %{epoch}:%{version}-%{release} +Requires: ruby(release) = 2.0.0 +Requires: ruby +Provides: ruby(guestfs) = %{version} + +%description -n ruby-%{name} +ruby-%{name} contains Ruby bindings for %{name}. + + +%package java +Summary: Java bindings for %{name} +Requires: %{name} = %{epoch}:%{version}-%{release} +Requires: java-headless >= 1.7.0 +Requires: jpackage-utils + +%description java +%{name}-java contains Java bindings for %{name}. + +If you want to develop software in Java which uses %{name}, then +you will also need %{name}-java-devel. + + +%package java-devel +Summary: Java development package for %{name} +Requires: %{name} = %{epoch}:%{version}-%{release} +Requires: %{name}-java = %{epoch}:%{version}-%{release} + +%description java-devel +%{name}-java-devel contains the tools for developing Java software +using %{name}. + +See also %{name}-javadoc. + + +%package javadoc +Summary: Java documentation for %{name} +BuildArch: noarch +Requires: %{name} = %{epoch}:%{version}-%{release} +Requires: %{name}-java = %{epoch}:%{version}-%{release} +Requires: jpackage-utils + +%description javadoc +%{name}-javadoc contains the Java documentation for %{name}. + + +%package -n lua-guestfs +Summary: Lua bindings for %{name} +Requires: %{name} = %{epoch}:%{version}-%{release} +Requires: lua + +%description -n lua-guestfs +lua-guestfs contains Lua bindings for %{name}. + + +%package gobject +Summary: GObject bindings for %{name} +Requires: %{name} = %{epoch}:%{version}-%{release} + +%description gobject +%{name}-gobject contains GObject bindings for %{name}. + +To develop software against these bindings, you need to install +%{name}-gobject-devel. + + +%package gobject-devel +Summary: GObject bindings for %{name} +Requires: %{name}-gobject = %{epoch}:%{version}-%{release} + +Provides: libguestfs-gobject-doc = %{epoch}:%{version}-%{release} +Obsoletes: libguestfs-gobject-doc < %{epoch}:%{version}-%{release} + +%description gobject-devel +%{name}-gobject contains GObject bindings for %{name}. + +This package is needed if you want to write software using the +GObject bindings. It also contains GObject Introspection information. + + +%package man-pages-ja +Summary: Japanese (ja) man pages for %{name} +BuildArch: noarch +Requires: %{name} = %{epoch}:%{version}-%{release} + +%description man-pages-ja +%{name}-man-pages-ja contains Japanese (ja) man pages +for %{name}. + + +%package man-pages-uk +Summary: Ukrainian (uk) man pages for %{name} +BuildArch: noarch +Requires: %{name} = %{epoch}:%{version}-%{release} + +%description man-pages-uk +%{name}-man-pages-uk contains Ukrainian (uk) man pages +for %{name}. + + +%prep +%if 0%{verify_tarball_signature} +tmphome="$(mktemp -d)" +gpgv2 --homedir "$tmphome" --keyring %{SOURCE7} %{SOURCE1} %{SOURCE0} +%endif +%setup -q + +# For sVirt to work, the local temporary directory we use in the tests +# must be labelled the same way as /tmp. This doesn't work if either +# the directory is on NFS (no SELinux labels) or if SELinux is +# disabled, hence the tests. +if [ "$(stat -f -L -c %T .)" != "nfs" ] && \ + [ "$(getenforce | tr '[A-Z]' '[a-z]')" != "disabled" ]; then + chcon --reference=/tmp tmp +fi + +# Use git to manage patches. +# http://rwmj.wordpress.com/2011/08/09/nice-rpm-git-patch-management-trick/ +git init +git config user.email "libguestfs@redhat.com" +git config user.name "libguestfs" +git add . +git commit -a -q -m "%{version} baseline" +git am %{patches} + +# Patches affect Makefile.am and configure.ac, so rerun autotools. +autoreconf -fi + +# Replace developer-centric README that ships with libguestfs, with +# our replacement file. +mv README README.orig +sed 's/@VERSION@/%{version}/g' < %{SOURCE4} > README + + +%build +# Test if network is available. +ip addr list ||: +ip route list ||: +if ping -c 3 -w 20 8.8.8.8 && wget http://libguestfs.org -O /dev/null; then + extra= +else + mkdir cachedir repo + # -n 1 because of RHBZ#980502. + find /var/cache/{dnf,yum} -type f -name '*.rpm' -print0 | \ + xargs -0 -n 1 cp -t repo + createrepo repo + sed -e "s|@PWD@|$(pwd)|" %{SOURCE6} > yum.conf + extra=--with-supermin-packager-config=$(pwd)/yum.conf +fi + +# aarch64/ppc64/ppc64le doesn't yet have a working qemu available in +# brew, and for that reason we have to hack things here. See: +# https://bugzilla.redhat.com/show_bug.cgi?id=1125575#c18 +# https://bugzilla.redhat.com/show_bug.cgi?id=1177910 +%ifarch aarch64 %{power64} s390x +export vmchannel_test=no +export QEMU=/usr/libexec/qemu-kvm +%endif + +# In RHEL >= 7.1, supermin 5 has a different name: +export SUPERMIN=%{_bindir}/supermin5 + +%{configure} \ + --with-default-backend=libvirt \ + --with-extra="rhel=%{rhel},release=%{release},libvirt" \ + --with-qemu="qemu-kvm qemu-system-%{_build_arch} qemu" \ + --disable-php \ + --disable-haskell \ + --disable-erlang \ + --disable-golang \ + $extra + +# Building index-parse.c by hand works around a race condition in the +# autotools cruft, where two or more copies of yacc race with each +# other, resulting in a corrupted file. +# +# 'INSTALLDIRS' ensures that Perl and Ruby libs are installed in the +# vendor dir not the site dir. +make -j1 -C builder index-parse.c +make V=1 INSTALLDIRS=vendor %{?_smp_mflags} + + +%check + +# Can't test on aarch64 or ppc64/ppc64le yet because we don't have +# a working qemu available in brew. +%ifnarch aarch64 %{power64} s390x + +# Note that the major tests are done after the package has been built. +# +# Here we only do a sanity check that kernel/qemu/libvirt/appliance is +# not broken. +# +# To perform the full test suite, see instructions here: +# https://www.redhat.com/archives/libguestfs/2015-September/msg00078.html + +export LIBGUESTFS_DEBUG=1 +export LIBGUESTFS_TRACE=1 +export LIBVIRT_DEBUG=1 + +if ! make quickcheck QUICKCHECK_TEST_TOOL_ARGS="-t 1200"; then + cat $HOME/.cache/libvirt/qemu/log/* + exit 1 +fi + +%endif + + +%install +# This file is creeping over 1 MB uncompressed, and since it is +# included in the -devel subpackage, compress it to reduce +# installation size. +gzip -9 ChangeLog + +# 'INSTALLDIRS' ensures that Perl and Ruby libs are installed in the +# vendor dir not the site dir. +make DESTDIR=$RPM_BUILD_ROOT INSTALLDIRS=vendor install + +# Delete static libraries. +rm $( find $RPM_BUILD_ROOT -name '*.a' | grep -v /ocaml/ ) + +# Delete libtool files. +find $RPM_BUILD_ROOT -name '*.la' -delete + +# Delete some bogus Perl files. +find $RPM_BUILD_ROOT -name perllocal.pod -delete +find $RPM_BUILD_ROOT -name .packlist -delete +find $RPM_BUILD_ROOT -name '*.bs' -delete +find $RPM_BUILD_ROOT -name 'bindtests.pl' -delete + +# Remove obsolete binaries (RHBZ#947438). +rm $RPM_BUILD_ROOT%{_bindir}/virt-list-filesystems +rm $RPM_BUILD_ROOT%{_bindir}/virt-list-partitions +rm $RPM_BUILD_ROOT%{_bindir}/virt-tar +rm $RPM_BUILD_ROOT%{_mandir}/man1/virt-list-filesystems.1* +rm $RPM_BUILD_ROOT%{_mandir}/man1/virt-list-partitions.1* +rm $RPM_BUILD_ROOT%{_mandir}/man1/virt-tar.1* + +# Don't use versioned jar file (RHBZ#1022133). +# See: https://bugzilla.redhat.com/show_bug.cgi?id=1022184#c4 +mv $RPM_BUILD_ROOT%{_datadir}/java/%{name}-%{version}.jar \ + $RPM_BUILD_ROOT%{_datadir}/java/%{name}.jar + +# Move installed documentation back to the source directory so +# we can install it using a %%doc rule. +mv $RPM_BUILD_ROOT%{_docdir}/libguestfs installed-docs +gzip --best installed-docs/*.xml + +# Split up the monolithic packages file in the supermin appliance so +# we can install dependencies in subpackages. +pushd $RPM_BUILD_ROOT%{_libdir}/guestfs/supermin.d + +# Fix the qemu-img-ma dependency, in case it was used instead of +# qemu-img (qemu-img-ma 'Provides: qemu-img'), which is the case of +# all the architectures different than x86_64. +sed 's/^qemu-img-ma$/qemu-img/' < packages > packages-t +mv packages-t packages + +function move_to +{ + grep -Ev "^$1$" < packages > packages-t + mv packages-t packages + echo "$1" >> "$2" +} +move_to curl zz-packages-dib +move_to kpartx zz-packages-dib +move_to qemu-img zz-packages-dib +move_to which zz-packages-dib +%ifarch x86_64 +move_to gfs2-utils zz-packages-gfs2 +%endif +move_to iputils zz-packages-rescue +move_to openssh-clients zz-packages-rescue +move_to pciutils zz-packages-rescue +move_to strace zz-packages-rescue +move_to vim-minimal zz-packages-rescue +move_to rsync zz-packages-rsync +move_to xfsprogs zz-packages-xfs +popd + +# If there is a bogus dependency on kernel-rt, rename it to 'kernel' +# instead. This happens when the version of kernel-rt in brew is +# greater than the version of kernel (kernel-rt 'Provides: kernel'). +pushd $RPM_BUILD_ROOT%{_libdir}/guestfs/supermin.d +sed 's/^kernel-rt$/kernel/' < packages > packages-t +mv packages-t packages +popd + +# Guestfish colour prompts. +mkdir -p $RPM_BUILD_ROOT%{_sysconfdir}/profile.d +install -m 0644 %{SOURCE5} $RPM_BUILD_ROOT%{_sysconfdir}/profile.d + +# Virt-tools data directory. +mkdir -p $RPM_BUILD_ROOT%{_datadir}/virt-tools +cp %{SOURCE96} $RPM_BUILD_ROOT%{_datadir}/virt-tools/rhsrvany.exe +cp %{SOURCE97} $RPM_BUILD_ROOT%{_datadir}/virt-tools/rhev-apt.exe + +%ifnarch %{v2v_arches} +rm $RPM_BUILD_ROOT%{_bindir}/virt-p2v* +rm $RPM_BUILD_ROOT%{_bindir}/virt-v2v* +rm $RPM_BUILD_ROOT%{_mandir}/man1/virt-p2v* +rm $RPM_BUILD_ROOT%{_mandir}/man1/virt-v2v* +rm -r $RPM_BUILD_ROOT%{_libdir}/virt-p2v +rm -r $RPM_BUILD_ROOT%{_datadir}/virt-p2v +rm -r $RPM_BUILD_ROOT%{_datadir}/virt-tools +%endif + +# Delete the v2v test harness. (This might or might not exist +# depending on extra BRs installed when the package is built, so use +# '-f' option here.) +rm -rf $RPM_BUILD_ROOT%{_libdir}/ocaml/v2v_test_harness +rm -rf $RPM_BUILD_ROOT%{_libdir}/ocaml/stublibs/dllv2v_test_harness* +rm -f $RPM_BUILD_ROOT%{_mandir}/man1/virt-v2v-test-harness.1* + +%ifarch %{v2v_arches} +# Delete kiwi tools. +rm $RPM_BUILD_ROOT%{_bindir}/virt-p2v-make-kiwi +rm $RPM_BUILD_ROOT%{_mandir}/man1/virt-p2v-make-kiwi.1* +%endif + +# Remove the .gitignore file from ocaml/html which will be copied to docdir. +rm ocaml/html/.gitignore + +%ifarch aarch64 x86_64 +# Copy the benchmarking tools and man pages, since upstream doesn't +# install them by default. NB Don't install the libtool wrapper scripts. +libtool --mode=install install -m 0755 utils/boot-analysis/boot-analysis $RPM_BUILD_ROOT%{_bindir}/libguestfs-boot-analysis +libtool --mode=install install -m 0755 utils/boot-benchmark/boot-benchmark $RPM_BUILD_ROOT%{_bindir}/libguestfs-boot-benchmark +install -m 0755 utils/boot-benchmark/boot-benchmark-range.pl $RPM_BUILD_ROOT%{_bindir}/libguestfs-boot-benchmark-range.pl +install -m 0644 utils/boot-analysis/boot-analysis.1 $RPM_BUILD_ROOT%{_mandir}/man1/libguestfs-boot-analysis.1 +install -m 0644 utils/boot-benchmark/boot-benchmark.1 $RPM_BUILD_ROOT%{_mandir}/man1/libguestfs-boot-benchmark.1 +%endif + +# Find locale files. +%find_lang %{name} + + +%post -p /sbin/ldconfig + +%postun -p /sbin/ldconfig + +%post java -p /sbin/ldconfig + +%postun java -p /sbin/ldconfig + + +%files -f %{name}.lang +%doc COPYING README +%{_bindir}/libguestfs-test-tool +%{_libdir}/guestfs/ +%exclude %{_libdir}/guestfs/supermin.d/zz-packages-* +%{_libdir}/libguestfs.so.* +%{_mandir}/man1/guestfs-faq.1* +%{_mandir}/man1/guestfs-performance.1* +%{_mandir}/man1/guestfs-recipes.1* +%{_mandir}/man1/guestfs-release-notes.1* +%{_mandir}/man1/guestfs-security.1* +%{_mandir}/man1/libguestfs-test-tool.1* + + +%ifarch aarch64 x86_64 +%files benchmarking +%{_bindir}/libguestfs-boot-analysis +%{_bindir}/libguestfs-boot-benchmark +%{_bindir}/libguestfs-boot-benchmark-range.pl +%{_mandir}/man1/libguestfs-boot-analysis.1* +%{_mandir}/man1/libguestfs-boot-benchmark.1* +%endif + + +%files devel +%doc AUTHORS BUGS ChangeLog.gz HACKING TODO README +%doc examples/*.c +%doc installed-docs/* +%{_libdir}/libguestfs.so +%{_sbindir}/libguestfs-make-fixed-appliance +%{_mandir}/man1/guestfs-building.1* +%{_mandir}/man1/guestfs-hacking.1* +%{_mandir}/man1/guestfs-internals.1* +%{_mandir}/man1/guestfs-testing.1* +%{_mandir}/man1/libguestfs-make-fixed-appliance.1* +%{_mandir}/man3/guestfs.3* +%{_mandir}/man3/guestfs-examples.3* +%{_mandir}/man3/libguestfs.3* +%{_includedir}/guestfs.h +%{_libdir}/pkgconfig/libguestfs.pc + +%ifarch x86_64 +%files gfs2 +%{_libdir}/guestfs/supermin.d/zz-packages-gfs2 +%endif + +%files rsync +%{_libdir}/guestfs/supermin.d/zz-packages-rsync + +%files rescue +%{_libdir}/guestfs/supermin.d/zz-packages-rescue + +%files xfs +%{_libdir}/guestfs/supermin.d/zz-packages-xfs + + +%files inspect-icons +# no files + + +%files tools-c +%doc README +%config(noreplace) %{_sysconfdir}/libguestfs-tools.conf +%{_sysconfdir}/virt-builder +%dir %{_sysconfdir}/xdg/virt-builder +%dir %{_sysconfdir}/xdg/virt-builder/repos.d +%config %{_sysconfdir}/xdg/virt-builder/repos.d/* +%config %{_sysconfdir}/profile.d/guestfish.sh +%{_mandir}/man5/libguestfs-tools.conf.5* +%{_bindir}/guestfish +%{_mandir}/man1/guestfish.1* +%{_bindir}/guestmount +%{_mandir}/man1/guestmount.1* +%{_bindir}/guestunmount +%{_mandir}/man1/guestunmount.1* +%{_bindir}/virt-alignment-scan +%{_mandir}/man1/virt-alignment-scan.1* +%{_bindir}/virt-builder +%{_mandir}/man1/virt-builder.1* +%{_bindir}/virt-builder-repository +%{_mandir}/man1/virt-builder-repository.1* +%{_bindir}/virt-cat +%{_mandir}/man1/virt-cat.1* +%{_bindir}/virt-copy-in +%{_mandir}/man1/virt-copy-in.1* +%{_bindir}/virt-copy-out +%{_mandir}/man1/virt-copy-out.1* +%{_bindir}/virt-customize +%{_mandir}/man1/virt-customize.1* +%{_bindir}/virt-df +%{_mandir}/man1/virt-df.1* +%{_bindir}/virt-diff +%{_mandir}/man1/virt-diff.1* +%{_bindir}/virt-edit +%{_mandir}/man1/virt-edit.1* +%{_bindir}/virt-filesystems +%{_mandir}/man1/virt-filesystems.1* +%{_bindir}/virt-format +%{_mandir}/man1/virt-format.1* +%{_bindir}/virt-get-kernel +%{_mandir}/man1/virt-get-kernel.1* +%{_bindir}/virt-index-validate +%{_mandir}/man1/virt-index-validate.1* +%{_bindir}/virt-inspector +%{_mandir}/man1/virt-inspector.1* +%{_bindir}/virt-log +%{_mandir}/man1/virt-log.1* +%{_bindir}/virt-ls +%{_mandir}/man1/virt-ls.1* +%{_bindir}/virt-make-fs +%{_mandir}/man1/virt-make-fs.1* +%{_bindir}/virt-rescue +%{_mandir}/man1/virt-rescue.1* +%{_bindir}/virt-resize +%{_mandir}/man1/virt-resize.1* +%{_bindir}/virt-sparsify +%{_mandir}/man1/virt-sparsify.1* +%{_bindir}/virt-sysprep +%{_mandir}/man1/virt-sysprep.1* +%{_bindir}/virt-tail +%{_mandir}/man1/virt-tail.1* +%{_bindir}/virt-tar-in +%{_mandir}/man1/virt-tar-in.1* +%{_bindir}/virt-tar-out +%{_mandir}/man1/virt-tar-out.1* + + +%files tools +%doc README +%{_bindir}/virt-win-reg +%{_mandir}/man1/virt-win-reg.1* + + +%files -n virt-dib +%doc COPYING README +%{_bindir}/virt-dib +%{_mandir}/man1/virt-dib.1* +%{_libdir}/guestfs/supermin.d/zz-packages-dib + + +%ifarch %{v2v_arches} +%files -n virt-v2v +%doc COPYING 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-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* +%{_datadir}/virt-tools + + +%files -n virt-p2v-maker +%doc COPYING README +%{_bindir}/virt-p2v-make-disk +%{_bindir}/virt-p2v-make-kickstart +%{_mandir}/man1/virt-p2v.1* +%{_mandir}/man1/virt-p2v-make-disk.1* +%{_mandir}/man1/virt-p2v-make-kickstart.1* +%{_datadir}/virt-p2v +%{_libdir}/virt-p2v +%endif + + +%files bash-completion +%dir %{_datadir}/bash-completion/completions +%{_datadir}/bash-completion/completions/guestfish +%{_datadir}/bash-completion/completions/guestmount +%{_datadir}/bash-completion/completions/guestunmount +%{_datadir}/bash-completion/completions/libguestfs-test-tool +%{_datadir}/bash-completion/completions/virt-* + + +%files -n ocaml-%{name} +%{_libdir}/ocaml/guestfs +%exclude %{_libdir}/ocaml/guestfs/*.a +%exclude %{_libdir}/ocaml/guestfs/*.cmxa +%exclude %{_libdir}/ocaml/guestfs/*.cmx +%exclude %{_libdir}/ocaml/guestfs/*.mli +%{_libdir}/ocaml/stublibs/dllmlguestfs.so +%{_libdir}/ocaml/stublibs/dllmlguestfs.so.owner + + +%files -n ocaml-%{name}-devel +%doc ocaml/examples/*.ml ocaml/html +%{_libdir}/ocaml/guestfs/*.a +%{_libdir}/ocaml/guestfs/*.cmxa +%{_libdir}/ocaml/guestfs/*.cmx +%{_libdir}/ocaml/guestfs/*.mli +%{_mandir}/man3/guestfs-ocaml.3* + + +%files -n perl-Sys-Guestfs +%doc perl/examples/*.pl +%{perl_vendorarch}/* +%{_mandir}/man3/Sys::Guestfs.3pm* +%{_mandir}/man3/guestfs-perl.3* + + +%files -n python-%{name} +%doc python/examples/*.py +%{python_sitearch}/libguestfsmod.so +%{python_sitearch}/guestfs.py +%{python_sitearch}/guestfs.pyc +%{python_sitearch}/guestfs.pyo +%{_mandir}/man3/guestfs-python.3* + + +%files -n ruby-%{name} +%doc ruby/examples/*.rb +%doc ruby/doc/site/* +%{ruby_vendorlibdir}/guestfs.rb +%{ruby_vendorarchdir}/_guestfs.so +%{_mandir}/man3/guestfs-ruby.3* + + +%files java +%{_libdir}/libguestfs_jni*.so.* +%{_datadir}/java/*.jar + + +%files java-devel +%doc java/examples/*.java +%{_libdir}/libguestfs_jni*.so +%{_mandir}/man3/guestfs-java.3* + + +%files javadoc +%{_javadocdir}/%{name} + + +%files -n lua-guestfs +%doc lua/examples/*.lua +%doc lua/examples/LICENSE +%{_libdir}/lua/*/guestfs.so +%{_mandir}/man3/guestfs-lua.3* + + +%files gobject +%{_libdir}/libguestfs-gobject-1.0.so.0* +%{_libdir}/girepository-1.0/Guestfs-1.0.typelib + + +%files gobject-devel +%{_libdir}/libguestfs-gobject-1.0.so +%{_includedir}/guestfs-gobject.h +%dir %{_includedir}/guestfs-gobject +%{_includedir}/guestfs-gobject/*.h +%{_datadir}/gir-1.0/Guestfs-1.0.gir +%{_libdir}/pkgconfig/libguestfs-gobject-1.0.pc +%{_mandir}/man3/guestfs-gobject.3* + + +%files man-pages-ja +%lang(ja) %{_mandir}/ja/man1/*.1* +%lang(ja) %{_mandir}/ja/man3/*.3* +%lang(ja) %{_mandir}/ja/man5/*.5* + + +%files man-pages-uk +%lang(uk) %{_mandir}/uk/man1/*.1* +%lang(uk) %{_mandir}/uk/man3/*.3* +%lang(uk) %{_mandir}/uk/man5/*.5* + + +%changelog +* Wed Sep 18 2019 Pino Toscano - 1:1.40.2-8 +- v2v: set the video mode to QXL for SUSE guests + resolves: rhbz#1753085 + +* Tue Sep 10 2019 Pino Toscano - 1:1.40.2-7 +- v2v: -o rhv-upload: improve wait logic after finalize + resolves: rhbz#1680361 +- v2v: fix DISKTYPE value in generated .ovf files + resolves: rhbz#1750719 + +* Wed Aug 14 2019 Pino Toscano - 1:1.40.2-6 +- v2v: allow block devices as virtio-win ISO path + resolves: rhbz#1727164 + +* Mon Jul 22 2019 Pino Toscano - 1:1.40.2-5.el7_7.1 +- v2v: fix a couple of Python 2 porting issues in the nbdkit Python script + for 'rhv-upload' + resolves: rhbz#1726168 + +* Tue Jun 04 2019 Pino Toscano - 1:1.40.2-5 +- Rebase to libguestfs 1.40.2 in RHEL 7.7. + resolves: rhbz#1621895 +- v2v: uninstall the VMware Tools correctly + resolves: rhbz#1465849 + resolves: rhbz#1481930 +- v2v: fix VMware vCenter roles needed for conversion + resolves: rhbz#1530967 +- v2v: preserve the VM Generation ID + resolves: rhbz#1598350 +- Query QEMU to known whether KVM is supported + resolves: rhbz#1605071 +- v2v: add --mac option + resolves: rhbz#1607274 +- v2v: install ovirt-guest-agent-common on Linux guests migrated to RHV + resolves: rhbz#1619665 + resolves: rhbz#1691659 +- v2v: provide a way to query for the estimated size of the disks + resolves: rhbz#1622785 +- Correctly inspect the newer versions of openSUSE (15, Factory, Thumbleweed) + resolves: rhbz#1634248 +- p2v: add an option to Shutdown the machine after the conversion + resolves: rhbz#1642044 +- v2v: fix epoch when querying installed RPM packages + resolves: rhbz#1669395 +- Use a better icon for RHEL >= 7 guests + resolves: rhbz#1679482 +- v2v: improve the architecture detection of Linux kernel modules + resolves: rhbz#1690574 +- v2v: ship a newer version of rhev-apt.exe + resolves: rhbz#1688155 +- v2v: update nbdkit information in documentation + resolves: rhbz#1605242 +- v2v: warn when a guest has 'direct' network interfaces + resolves: rhbz#1151902 +- v2v: use proper SELinux label for nbdkit sockets + resolves: rhbz#1698437 + +* Fri Oct 12 2018 Pino Toscano - 1:1.38.2-12.el7_6.1 +- v2v: update documentation regarding SHA-2 certificates in Windows 7 and + Windows Server 2008 R2 + resolves: rhbz#1632788 +- v2v: fix rhev-apt firstboot command for Windows + resolves: rhbz#1625216 + +* Fri Aug 31 2018 Pino Toscano - 1:1.38.2-12 +- Rebase to libguestfs 1.38.2 in RHEL 7.6. + resolves: rhbz#1551055 +- v2v: warn about unknown VMware controller types + resolves: rhbz#1510801 +- df: show correct sizes in human-readable mode for filesystems with + block size = 512 + resolves: rhbz#1525262 +- v2v: fix example URL in man page + resolves: rhbz#1540535 +- Fix SELinux relabelling when the SELinux config has no SELINUXTYPE key + resolves: rhbz#1541525 +- Fix qemu-img-ma dependency in non-x86_64 architectures + resolves: rhbz#1568676 +- v2v: update "resume=/dev/sdaX" entries in GRUB command lines + resolves: rhbz#1532224 +- v2v: fix virtio-rng and memballoon OVF fragment for RHV + resolves: rhbz#1550168 +- v2v: detect whether the root filesystem was not mounted in read-write mode + resolves: rhbz#1567763 +- v2v: import OVAs with snapshots + resolves: rhbz#1570407 +- v2v: ship a newer version of rhev-apt.exe + resolves: rhbz#1571237 +- Move the osinfo-db dependency to libguestfs-tools-c, since it's the only + place where it used now (by virt-builder-repository). +- v2v: new 'rhv-upload' method to stream images directly to oVirt/RHV using + oVirt REST API + resolves: rhbz#1557273 +- Start lvmetad earlier when booting the appliance + resolves: rhbz#1581810 +- v2v: fix kernel detection in Ubuntu guests since 18.04 + resolves: rhbz#1591248 +- v2v: convert the CPU topology correctly + resolves: rhbz#1541908 +- Add a new inspect_get_osinfo API, and add its result to the output of + virt-inspector + resolves: rhbz#1544842 +- Pass absolute paths to NBD sockets when using the libvirt backend + resolves: rhbz#1588451 +- v2v: do not write only without in libvirt XMLs + resolves: rhbz#1591789 +- v2v: depend on nbdkit, nbdkit-plugin-python2, and nbdkit-plugin-vddk, + used for -it vddk, and -o rhv-upload + resolves: rhbz#1589776 + resolves: rhbz#1608718 +- v2v/p2v: disable on aarch64, since it is not supported (nor even working) + there + resolves: rhbz#1601488 +- v2v: handle srN devices in libvirt XML (for virt-p2v) + resolves: rhbz#1612785 +- Do not use the -cpu parameter under any circumstances for ppc64le. + resolves: rhbz#1605071 + +* Mon Jan 22 2018 Pino Toscano - 1:1.36.10-6 +- Rebase to libguestfs 1.36.10 in RHEL 7.5. + resolves: rhbz#1472272 +- Build against OCaml 4.05 + resolves: rhbz#1447981 +- Enable the copyonread flag when running the appliance using libvirt. + resolves: rhbz#1466563 +- Make sure kernel-rt is never used as Requires. + resolves: rhbz#1471651 +- v2v: disable unconfiguration of manually installed VMware tools. + resolves: rhbz#1477905 +- v2v: prefer pigz or pxz for uncompressing OVA files, if available + resolves: rhbz#1448739 +- resize: handle empty UUIDs for swap partitions + resolves: rhbz#1482737 +- v2v: remove mention of --dcpath in an error message + resolves: rhbz#1486197 +- Disables the QEMU image file locking when opening disks as read-only + resolves: rhbz#1417306 + resolves: rhbz#1503497 +- Briefly document the format used for URIs + resolves: rhbz#1450325 +- v2v: deal with grub2 configurations without a default set + resolves: rhbz#1472288 +- v2v: warn when a guest has passthrough devices + resolves: rhbz#1472719 +- v2v: fix three regular expressions + resolves: rhbz#1494555 +- v2v: enable conversion of full-disk LUKS-encrypted Linux guests + resolves: rhbz#1451665 +- v2v: new 'vddk' import method + resolves: rhbz#1477912 + resolves: rhbz#1513884 +- Enable libguestfs to work on z Systems + resolves: rhbz#1479526 +- p2v: fx check for sudo requiring a password + resolves: rhbz#1500673 +- v2v: handle disks with snapshots in vCenter + resolves: rhbz#1172425 +- rescue: backport improved version + resolves: rhbz#1438710 +- v2v: improve bootloader detection + resolves: rhbz#1508299 +- v2v: parse MAC address of network interfaces in OVF files + resolves: rhbz#1506572 +- Unconditionally depend on libvirt-daemon-kvm >= 3.9.0-1, which will always + pull the right qemu-kvm too, and thus remove the unversioned dependencies + on it + resolves: rhbz#1500870 +- v2v: fix RPM file owned test + resolves: rhbz#1503958 +- Do not open read-only disks using in the libvirt backend + resolves: rhbz#1518517 +- v2v: handle better when grubby does not report any default kernel + resolves: rhbz#1519204 +- v2v: enhance vmx import method to access via SSH + resolves: rhbz#1523767 +- builder: fix caching of templates when using --cache-all-templates + resolves: rhbz#1523650 + +* Thu Jun 22 2017 Pino Toscano - 1:1.36.3-6 +- Rebase to libguestfs 1.36 in RHEL 7.4. + resolves: rhbz#1359086 +- v2v: always use names for libvirt pools + resolves: rhbz#1141631 +- v2v: correctly find GRUB in RHEL UEFI guests +- v2v: uninstall VMware tools packages from guests + resolves: rhbz#1155150 +- v2v: install RHEV-APT only when using -o rhev/-o vdsm + resolves: rhbz#1161019 +- New API: btrfs-filesystem-show + resolves: rhbz#1164765 +- p2v: always enable debugging when running virt-v2v + resolves: rhbz#1167623 +- libguestfs prefers virtio-pci on aarch64 + resolves: rhbz#1237250 +- v2v: make sure to copy all the driver files on Windows + resolves: rhbz#1255610 +- Better tolerate corrupted Windows hivex; bump the hivex BuildRequires and + Requires to >= 1.3.10-5.8.el7 + resolves: rhbz#1311890 +- v2v: ignore all the environment variables for proxy when exporting from + vCenter + resolves: rhbz#1354507 +- virt-sysprep can deal with full-LUKS encrypted guests + resolves: rhbz#1362649 +- All the tools have bash completion scripts. + resolves: rhbz#1367738 +- v2v: do not remove Processor and Intelppm nodes in Windows guests + resolves: rhbz#1372668 +- Fix SELinux relabelling in old RHEL 6 guests, by adjusting a broken + regular expression in file_contexts file + resolves: rhbz#1374232 +- v2v: set all the properties on creation when exporting to Glance + resolves: rhbz#1374405 +- v2v: set hw_video_model when exporting to Glance + resolves: rhbz#1374651 +- v2v: fix OVA conversion as root using the libvirt backend + resolves: rhbz#1375157 +- Various improvements and fixes to the documentation + resolves: rhbz#1377081 + resolves: rhbz#1390876 + resolves: rhbz#1398070 + resolves: rhbz#1425306 +- v2v: support and + resolves: rhbz#1378022 +- v2v: allow libvirt >= 2.1.0 for vCenter conversions + resolves: rhbz#1379240 +- p2v: enable mnemonics in the GUI + resolves: rhbz#1379289 +- Split virt-p2v, and the tools for it, in an own package: virt-p2v-maker + resolves: rhbz#1382275 +- Correctly parse mount options in btrfs entries in /etc/fstab. + resolves: rhbz#1383517 +- Read secrets from libvirt domains, when inspecting them + resolves: rhbz#1392798 +- v2v: add --vdsm-compat=1.1 flag for VDSM + resolves: rhbz#1400205 +- Fix inspection with UsrMove and /usr in a separate partition + resolves: rhbz#1401474 +- v2v: improve import compatibility with OVAs produced by AWS + resolves: rhbz#1402301 +- resize: allow URIs for the output disk + resolves: rhbz#1404182 +- Disable EDD when launching the appliance + resolves: rhbz#1404287 +- v2v: increase the memory allocated to the appliance + resolves: rhbz#1418283 +- p2v: switch from GTK+ 2 to GTK+ 3 +- p2v: add dbus-devel as BuildRequires to disable suspension during the + conversion +- libguestfs-java: bump the java-headless Require to >= 1.7.0, matching the + Build-Require, and the generated bytecode + resolves: rhbz#1364518 +- Do not try to use/write to /var/cache/yum & /var/log/yum.log +- Bump ocaml-findlib-devel BuildRequires to >= 1.3.3-7.el7, because of + RHBZ#1403897 +- v2v: remove --dcpath & --dcPath from --help output too + resolves: rhbz#1429430 +- v2v: force VNC as display for -i disk, as SDL is not supported + resolves: rhbz#1372671 +- v2v, p2v: rename rhvm network to ovirtmgmt + resolves: rhbz#1429491 +- v2v: when exporting to local disk, check that UEFI firmware is installed + before conversion + resolves: rhbz#1429506 +- dib: actually generate SHA256 checksums when using --checksum + resolves: rhbz#1430184 +- v2v: do not mention SUSE Xen hosts as supported + resolves: rhbz#1430203 +- v2v: depend on OVMF/AAVMF, for converting EFI guests + resolves: rhbz#1429643 +- v2v: use absolute path when using an OVA as backing file + resolves: rhbz#1430680 +- v2v: support Debian/Ubuntu guests + resolves: rhbz#1387213 +- sysprep: remove DHCP_HOSTNAME entries + resolves: rhbz#1427529 +- v2v: avoid repeated "run virt-v2v -v -x" message on error + resolves: rhbz#1167623 +- bash-completion: add script for virt-v2v-copy-to-local + resolves: rhbz#1367738 +- v2v: fix virtio block driver installation for Windows 10 and Windows 2016 + resolves: rhbz#1434737 +- Replace the libosinfo dependency with osinfo-db, since we are only using + the osinfo database. +- v2v: fix virtio driver installation for Windows 8 UEFI + resolves: rhbz#1431579 +- v2v: new 'vmx' import method + resolves: rhbz#1441197 +- v2v: properly identify Windows 2016 guests when exporting them to RHV-M + resolves: rhbz#1447202 +- Run pvresize in non-interactive mode + resolves: rhbz#1460692 +- resize: make sure the input disk is read-only + resolves: rhbz#1463714 +- Switch qemu-kvm-rhev dependency to qemu-kvm on aarch64 + resolves: rhbz#1463646 + +* Tue Aug 30 2016 Richard W.M. Jones - 1:1.32.7-3 +- Rebase to libguestfs 1.32 in RHEL 7.3 + resolves: rhbz#1218766 +- The full tests are now run after the package has been built. +- New tool and subpackage: virt-dib (safe diskimage-builder replacement). +- New subpackage libguestfs-inspect-icons to reduce dependencies of main pkg + (see https://bugzilla.redhat.com/1194158). +- New tool: virt-get-kernel. +- Depend on java-headless instead of full java. +- New tool: virt-v2v-copy-to-local. +- Disable virt-v2v subpackage on ppc64 etc + resolves: rhbz#1287826 +- v2v: Remove VirtualBox Additions correctly + resolves: rhbz#1296606 +- Add clearer warnings sections to all man pages + resolves: rhbz#1293527 +- v2v: Disable the --in-place option. +- v2v: Support conversion of Windows > 7 + resolves: rhbz#1190669 +- Add code to verify tarball signatures. +- General performance improvements. +- v2v: Prevent duplicate -b, -n, -oa options + resolves: rhbz#1326266 + resolves: rhbz#1325825 +- v2v: Unquote UUID and LABEL in fstab (util-linux 1335671) +- v2v: Fix alignment issues in treeviews in conversion dialog + resolves: rhbz#1340407 +- p2v: spinner should be hidden when it stops spinning + resolves: rhbz#1341564 +- p2v: ethtool command is not supported on p2v client + resolves: rhbz#1341608 +- p2v: Add ifconfig command to ISO + resolves: rhbz#1342447 +- p2v: Warn if virt-p2v-make-disk used on a partition + resolves: rhbz#1342337 +- Build using OCaml with fix for CVE-2015-8869. + resolves: rhbz#1343101 +- customize: Add --uninstall option (upstream 1343375) +- p2v: Document permissions on id_rsa file + resolves: rhbz#1343414 +- p2v: Print full curl error message + resolves: rhbz#1343423 +- get-kernel: Fix --format auto + resolves: rhbz#1341984 +- v2v: Provide better information to RHEV-M + resolves: rhbz#1342398 +- customize: Give an error if --truncate-recursive path does not exist + resolves: rhbz#1345809 +- sysprep: Add --network option so that --install option can be used + resolves: rhbz#1345813 +- p2v: Print proper error if incorrect password is given + resolves: rhbz#1227599 +- p2v: Print ssh error if incorrect hostname is given + resolves: rhbz#1167916 +- p2v: Display progress of operation in non-GUI mode + resolves: rhbz#1229386 +- p2v: Add a dialog confirming the user really means to cancel + resolves: rhbz#1340464 +- p2v: log window should process colour escapes and backspaces + resolves: rhbz#1314244 +- v2v: Fix installation of virtio drivers with *.dll files + resolves: rhbz#1311373 +- p2v: Improve error message when ssh login to conversion server fails + resolves: rhbz#1348900 +- v2v: Remove --dcpath parameter from manual + resolves: rhbz#1315237 +- v2v: Fix conversion of guests with floppy drives + resolves: rhbz#1309706 +- p2v: Better error when sudo requires a password + resolves: rhbz#1340809 +- v2v: Refuse to convert if there is < 1GB free in temporary directory + resolves: rhbz#1316479 +- inspection: Get Windows drive letters for GPT disks + resolves: rhbz#1349237 +- p2v: Add disk utils and display serial number of disks + resolves: rhbz#855058 +- p2v: Fix timeout error when connecting to unresponsive ssh server + resolves: rhbz#1350363 +- Remove external dependency generator. Use supermin RPM deps instead. + related: rhbz#1309796 +- p2v: Flush messages to the journal immediately + resolves: rhbz#1229386 +- customize: Fix --install on ppc64le + resolves: rhbz#1264835 +- lib: Fix finding icons in Windows 7 64 bit guests + resolevs: rhbz#1352761 +- v2v: Add virsh --quiet flag when running virt-v2v --quiet + resolves: rhbz#1358142 +- lib: Fix inspection of ISOs with latest libosinfo + resolves: rhbz#1359652 +- dib: Fix run_command exit handlers on failure + resolves: rhbz#1362357 +- dib: Rework run of extra-data.d hooks + resolves: rhbz#1362354 +- Miscellaneous fixes to man pages and --help output + resolves: rhbz#1362668 +- lib: Specify backing format for read-only files + resolves: rhbz#1354335 +- Fix --selinux-relabel option + resolves: rhbz#1362669 +- sparsify: Fix --in-place option with UEFI guest + resolves: rhbz#1364347 +- p2v: Use latest linux-firmware in ISO + resolves: rhbz#1364419 +- v2v: Fix guest name when using -i disk + resolves: rhbz#1365005 +- p2v: Fix GUI message. +- v2v: Make fstrim message clearer + resolves: rhbz#1366456 +- v2v: Fix conversion of UEFI guests when Secure Boot OVMF installed + resolves: rhbz#1367615 +- lib: Fix assert-fail if port is missing in libvirt XML + resolves: rhbz#1370424 + +* Mon Sep 14 2015 Richard W.M. Jones - 1:1.28.1-1.55 +- Fix previous commit by applying the patch this time (1243493) + +* Sun Sep 13 2015 Richard W.M. Jones - 1:1.28.1-1.54 +- v2v: Permit libguestfs-winsupport to be used by virt-win-reg and + virt-inspector (1243493) + +* Thu Sep 10 2015 Richard W.M. Jones - 1:1.28.1-1.53 +- v2v: Error if certain options appear twice on the command line (1261242) +- v2v: Add --dcpath parameter to allow dcPath to be overridden (1256823) +- v2v: Partially revert: Fix OVF XML to enable qxl display (1260590) +- v2v: Detect AVG Technologies as AV software (1261436) + resolves: rhbz#1261281 + +* Tue Sep 8 2015 Richard W.M. Jones - 1:1.28.1-1.52 +- v2v: Warn if Group Policy or AV software may result in 7B boot failure + (1260689) +- v2v: Fix OVF XML to enable qxl display + resolves: rhbz#1260590 + +* Tue Sep 1 2015 Richard W.M. Jones - 1:1.28.1-1.51 +- v2v: Fix handling of extra slashes in dcPath calculation + resolves: rhbz#1258342 rhbz#1256823 +- v2v: Fix -oa preallocation option + resolves: rhbz#1251909 + +* Sun Aug 30 2015 Richard W.M. Jones - 1:1.28.1-1.50 +- v2v: + * When debugging, dump OVF to stderr. + * Ignore missing kernels from grub + resolves: rhbz#1230412 + * Calculate VMware dcPath correctly (1256823) + * Map empty VMware network or bridge name to default (1257895) +- p2v: + * Wait for network to come online before testing connection + resolves: rhbz#1256222 +- Fix tests to run correctly with libguestfs-winsupport 7.2. + +* Wed Aug 05 2015 Richard W.M. Jones - 1:1.28.1-1.49 +- p2v: Closing incoming ports on the virt-p2v ISO + resolves: rhbz#1248678 + +* Tue Jul 28 2015 Richard W.M. Jones - 1:1.28.1-1.48 +- v2v: Include lsof in base appliance + resolves: rhbz#1246032 + +* Thu Jul 23 2015 Richard W.M. Jones - 1:1.28.1-1.47 +- v2v: Work around 'umount: /sysroot: target is busy' + resolves: rhbz#1246032 +- v2v: Permit libguestfs-winsupport to be used by virt-win-reg and + virt-inspector + resolves: rhbz#1243493 + +* Tue Jul 7 2015 Richard W.M. Jones - 1:1.28.1-1.46 +- v2v: Refuse to convert Windows > 7 + reverts: rhbz#1190669 +- v2v: Depend directly on libguestfs-xfs + resolves: rhbz#1240275 +- v2v: Inclusion of libguestfs-winsupport in RHEL 7.2 + resolves: rhbz#1240274, rhbz#1240276 + +* Mon Jul 6 2015 Richard W.M. Jones - 1:1.28.1-1.44 +- v2v: Fix error message when grub.conf is malformed + resolves: rhbz#1239053 +- v2v: Various fixes to conversion of UEFI systems + resolves: rhbz#1184690 + +* Thu Jul 2 2015 Richard W.M. Jones - 1:1.28.1-1.43 +- virt-sysprep: Don't delete /var/spool/at/.SEQ + resolves: rhbz#1238579 + +* Wed Jul 1 2015 Richard W.M. Jones - 1:1.28.1-1.42 +- v2v: Fix installation of virtio drivers in Windows 2008 and 2008 R2 + resolves: rhbz#1237869 + related: rhbz#1234351 + +* Tue Jun 30 2015 Richard W.M. Jones - 1:1.28.1-1.41 +- v2v: Extend the timeout when converting from VMware + resolves: rhbz#1146007 +- v2v: Fix memory safety when freeing libxml2 objects. +- v2v: Add comment to OVF output if actual_size field is estimated. + +* Thu Jun 25 2015 Richard W.M. Jones - 1:1.28.1-1.40 +- v2v: Disable support for Windows > 7. + reverts: rhbz#1190669 +- v2v: Add support for getting drivers from virtio-win ISO + resolves: rhbz#1234351 + +* Tue Jun 16 2015 Richard W.M. Jones - 1:1.28.1-1.39 +- v2v: Depend on qemu-kvm instead of qemu-kvm-rhev (except on aarch64/power). +- v2v: Don't fail if one of the input disks is blank + resolves: rhbz#1232192 +- p2v: Fix parsing of p2v.memory parameter (1229262). + +* Tue Jun 09 2015 Richard W.M. Jones - 1:1.28.1-1.38 +- p2v: Set conversion status when conversion is cancelled + resolves: rhbz#1226794 +- p2v: Fix kernel command line parsing + resolves: rhbz#1229340 +- p2v: In command line mode, power off machine after conversion + resolves: rhbz#1229385 +- Fix for rebased systemd in RHEL 7.2. + +* Fri May 29 2015 Richard W.M. Jones - 1:1.28.1-1.37 +- ppc64le: Rebuild with fixed OCaml compiler + resolves: rhbz#1224676, rhbz#1224675 +- Fix virt-sparsify on qcow2 files when using qemu-kvm + resolves: rhbz#1225467 +- Remove some perl dependencies which are no longer actually used. +- Further attempts to fix qemu-kvm dependency on aarch64, ppc64le + resolves: rhbz#1177910 + +* Tue May 19 2015 Richard W.M. Jones - 1:1.28.1-1.36 +- p2v: Fix network in virt-p2v appliance + resolves: rhbz#1222975 +- p2v: Display network card MAC and vendor in conversion dialog (855059). +- p2v: More fixes to Add Network Connection dialog + related: rhbz#1167921 +- virt-builder: Fix --selinux-relabel flag on cross-arch builds + resolves: rhbz#1222993 + +* Tue May 12 2015 Richard W.M. Jones - 1:1.28.1-1.35 +- Further attempts to fix qemu-kvm dependency on aarch64, ppc64, ppc64le + resolves: rhbz#1177910 +- v2v: Fix memory leak in earlier fix for bug 889082 + resolves: rhbz#889082 + +* Mon May 11 2015 Richard W.M. Jones - 1:1.28.1-1.33 +- p2v: Add restrictions for vCPUs and memory in client + resolves: rhbz#823758 +- v2v: Check if guest with same name already exists in libvirt + resolves: rhbz#889082 +- p2v: Add Network Connection dialog + resolves: rhbz#1167921 +- v2v: Fix list of operating system variants passed to RHEV + resolves: rhbz#1219857, rhbz#1213324, rhbz#1213691 +- ppc64: Remove part of temporary workaround + related: rhbz#1177910 + +* Thu Apr 30 2015 Richard W.M. Jones - 1:1.28.1-1.32 +- v2v: Support conversion of EFI guests + resolves: rhbz#1184690 + +* Tue Apr 28 2015 Richard W.M. Jones - 1:1.28.1-1.31 +- v2v: Keep listen address for VNC (updated fix) + resolves: rhbz#1174073 + +* Fri Apr 24 2015 Richard W.M. Jones - 1:1.28.1-1.29 +- v2v: Convert sound card of guests + resolves: rhbz#1176493 + +* Mon Apr 20 2015 Richard W.M. Jones - 1:1.28.1-1.28 +- Remove 'ssh:' URLs from documentation + resolves: rhbz#1212677 +- libguestfs-tools-c 'provides' guestfish + (NB: will be removed in RHEL 8, use 'Requires: /usr/bin/guestfish' instead) + resolves: rhbz#1212002 +- v2v: Fix: warning: unknown guest operating system: windows when converting + to RHEV targets + resolves: rhbz#1213324 +- v2v: Fix: warning: fstrim: fstrim: /sysroot/: FITRIM ioctl failed + resolves: rhbz#1168144 + +* Thu Apr 16 2015 Richard W.M. Jones - 1:1.28.1-1.26 +- v2v: Keep listen address for VNC + resolves: rhbz#1174073 +- v2v: Preserve display port configuration when converting guests +- v2v: Support conversion of guests with disk type volume + resolves: rhbz#1146832 +- v2v: Initial support for gzipped ova imports. + related: rhbz#1186800 + +* Mon Apr 13 2015 Richard W.M. Jones - 1:1.28.1-1.25 +- Enable rbd (Ceph) support. +- rbd: Implement drive secrets + resolves: rhbz#1159030 +- virt-resize: Fix 'no space left on device' when resizing extended partition + resolves: rhbz#1172660 +- v2v: Update RHEV-APT to latest + resolves: rhbz#1186850 +- v2v: Update rhsrvany.exe to latest + resolves: rhbz#1187231 +- Drop dependency on selinux-policy + resolves: rhbz#1196705 +- Depend on fuse + resolves: rhbz#1201507 +- v2v: Allow configurable location for virtio drivers [1209225] +- Various fixes for setting long labels + resolves: rhbz#1164708 +- Fix mknod APIs not stripping permission bits from mode + resolves: rhbz#1182463 +- Allow LIBGUESTFS_TRACE=0, LIBGUESTFS_DEBUG=true etc + resolves: rhbz#1175196 +- Fix typo in description of ping-daemon API + resolves: rhbz#1175676 +- Disable gfs2 subpackage on !x86-64 [1211333] + +* Mon Apr 13 2015 Richard W.M. Jones - 1:1.28.1-1.24 +- Open RHEL 7.2 branch. +- Import brew-overrides.sh into dist-git. +- copy-patches.sh: Relax arbitrary requirement to split patches into + backports and RHEL 7 specific patches. +- v2v: Add --vdsm-ovf-output option + resolves: rhbz#1176598 +- v2v: Fix -o vdsm to work with multiple data domains + resolves: rhbz#1176591 +- v2v: Support conversions of Windows >= 8 + resolves: rhbz#1190669 +- v2v: Document that vCenter >= 5.0 is required + resolves: rhbz#1174200 + +* Thu Feb 5 2015 Richard W.M. Jones - 1:1.28.1-1.23 +- Fix virt-resize (and hence virt-builder --size) on guests using + UEFI bootloaders. + +* Mon Jan 26 2015 Richard W.M. Jones - 1:1.28.1-1.22 +- aarch64: Increase default appliance memory size. +- Make gfs2-utils conditional on x86, as it will not be supported on ARM. +- inspection: aarch64: Backport fix for inspection of EFI guests. + +* Fri Jan 23 2015 Richard W.M. Jones - 1:1.28.1-1.20 +- aarch64: Depend on AAVMF package. + +* Thu Jan 22 2015 Richard W.M. Jones - 1:1.28.1-1.19 +- aarch64: Add support for AAVMF + resolves: rhbz#1184504 + +* Mon Dec 15 2014 Richard W.M. Jones - 1:1.28.1-1.18 +- v2v: Copy graphics password from source to destination + resolves: rhbz#1174123 +- p2v: Allow ports to be reused and specify source port number + resolves: rhbz#1167774 +- p2v: Fix "Conversion was successful" dialog appearing on failure + resolves: rhbz#1167601 + +* Wed Dec 10 2014 Richard W.M. Jones - 1:1.28.1-1.17 +- v2v: Fix modifications to default kernel for legacy grub. + resolves: rhbz#1170073 + +* Mon Dec 8 2014 Richard W.M. Jones - 1:1.28.1-1.16 +- p2v: Wait for qemu-nbd to start up before starting virt-v2v + resolves: rhbz#1167774 + +* Fri Dec 5 2014 Richard W.M. Jones - 1:1.28.1-1.15 +- v2v: Document Windows Group Policy problems causing 0x0000007B BSOD + resolves: rhbz#1161333 +- v2v: Fix conversion of RHEL 3 guests + resolves: rhbz#1171130 +- v2v: Fix conversion of RHEL 4 guests that use epoch + resolves: rhbz#1170685 +- v2v: Favour non-debug kernels over debug kernels + resolves: rhbz#1170073 +- p2v: Fix kickstart for virt-p2v + resolves: rhbz#1168632 +- Fixed some documentation mistakes. + +* Thu Nov 27 2014 Richard W.M. Jones - 1:1.28.1-1.14 +- p2v: Add Reboot button to the GUI + resolves: rhbz#1165564 +- p2v: Fixes to 'Cancel Conversion' button + resolves: rhbz#1165569 +- v2v: -i ova: Remove incorrect warning for disks with no parent controller + resolves: rhbz#1167302 +- resize: Capture errors from ntfsresize + resolves: rhbz#1166618 + +* Thu Nov 20 2014 Richard W.M. Jones - 1:1.28.1-1.13 +- v2v: Fix device mapping of /boot/grub2/device.map + resolves: rhbz#1165975 +- v2v: Fix 'no volume groups found' because of old LVM cache file + resolves: rhbz#1164853 + +* Tue Nov 18 2014 Richard W.M. Jones - 1:1.28.1-1.12 +- v2v: Fix device remapping for RHEL guests + resolves: rhbz#1151725 + +* Mon Nov 17 2014 Richard W.M. Jones - 1:1.28.1-1.11 +- Fix inspect-get-icon on RHEL 7 guests + resolves: rhbz#1164619 +- Fix description of set-append (append) and get-append commands + resolves: rhbz#1164732 +- Fix small typo in release notes. + resolves: rhbz#1164697 + +* Thu Nov 13 2014 Richard W.M. Jones - 1:1.28.1-1.10 +- v2v: -o glance: Fix metadata for disk type and NIC + resolves: rhbz#1161575 +- check xfs label lengths + resolves: rhbz#1162966 + +* Thu Nov 6 2014 Richard W.M. Jones - 1:1.28.1-1.9 +- v2v: Fix kernel detection when multiple kernels are installed + resolves: rhbz#1161250 + +* Thu Nov 6 2014 Richard W.M. Jones - 1:1.28.1-1.8 +- p2v: Explain in the man page why the virt-p2v ISO is used. +- p2v: Ensure we are using virt-v2v >= 1.28. +- v2v: Add bounds check to Xml.xpathobj_node function. +- v2v: Ensure --bridge and --network args are documented correctly in --help +- v2v: -i libvirt vcenter: Change 'esx:' to 'vcenter:' in errors/warnings. +- v2v: Ignore small filesystems when checking for sufficient free space. +- v2v: Document minimum free filesystem space requirements. + related: rhbz#1021149 +- customize: firstboot: make sure to run Linux scripts only once + resolves: rhbz#1160043 +- customize: firstboot: fix Linux log output + resolves: rhbz#1160199 + +* Mon Nov 3 2014 Richard W.M. Jones - 1:1.28.1-1.7 +- guestfish: Fix tab completion of filenames on XFS and elsewhere + resolves: rhbz#1153844 +- v2v: Ensure are set in output so ACPI etc works + resolves: rhbz#1159258 +- v2v: Add --password-file parameter + resolves: rhbz#1158526 + +* Wed Oct 29 2014 Richard W.M. Jones - 1:1.28.1-1.6 +- p2v: Add firmware and usb-storage module to virt-p2v-make-disk. + resolves: rhbz#1157691 + +* Fri Oct 24 2014 Richard W.M. Jones - 1:1.28.1-1.5 +- virt-sysprep & virt-customize: Fix password setting problems + resolves: rhbz#1141626, rhbz#1147065 +- virt-inspector: document that -a option can take a URI + resolves: rhbz#1156301 +- bash-completion: use symlinks instead of copying files + resolves: rhbz#1156298 + +* Thu Oct 23 2014 Richard W.M. Jones - 1:1.28.1-1.4 +- v2v: Fix handling of relative paths in -i ova + resolves: rhbz#1155121 +- v2v: disable uninstallation of VMware drivers on Linux for RHEL 7.1 + resolves: rhbz#1155610 + +* Wed Oct 22 2014 Richard W.M. Jones - 1:1.28.1-1.3 +- v2v: Fix conversion from NBD sources + resolves: rhbz#1153589 +- v2v: BR zip and unzip, and require unzip, for ZIP support in -i ova mode + related: rhbz#1152998 + +* Mon Oct 20 2014 Richard W.M. Jones - 1:1.28.1-1.2 +- v2v: Add support for ZIP and *.vmdk.gz to -i ova + resolves: rhbz#1152998 +- virt-ls: Add a field for directory files when using --csv option + resolves: rhbz#1151900 +- v2v: Mitigate hangs when run against a very slow VMware vCenter server + resolves: rhbz#1153589 +- cat, diff: Avoid double slashes in paths + resolves: rhbz#1151910 + +* Sat Oct 18 2014 Richard W.M. Jones - 1:1.28.1-1.1 +- Final rebase to stable libguestfs branch 1.28. + resolves: rhbz#1021149 +- Drop dist tag for BuildRequires, so it builds on ppc64le. + resolves: rhbz#1149640 +- Make sure we require the latest libvirt, so virt-v2v can access ESX. +- Fix guestfish colour prompts when using white-on-black terminal + resolves: rhbz#1144201 +- Disable libguestfs UML backend mode + resolves: rhbz#1144197 +- Enable ppc64, ppc64le and aarch64. + On ppc64 we currently have to disable build-time testing of qemu. + resolves: rhbz#1125575 +- Remove unnecessary BR for libnl3 in RHEL < 7.1. +- Integrate changes from Rawhide. +- Add workaround for buggy libvirt 1.2.8. +- Move virt-v2v into a separate subpackage and make it depend on qemu-kvm-rhev. +- Add rhsrvany and RHEV Application Provisioning Tool to virt-v2v. +- Change Fedora -> RHEL in description. +- Disable some more protocol tests. +- Enable tests. +- Enable guestfish colour prompts. +- Add new tool virt-log. +- Enabling bash-completions subpackage means we need to BR bash-completion. +- Package libguestfs 1.27/1.28 for RHEL 7.1. +- Enable bash-completion. + +* Mon Mar 3 2014 Richard W.M. Jones - 1:1.22.6-22 +- Fix Ruby bindings + resolves: rhbz#1072079 + +* Wed Feb 12 2014 Richard W.M. Jones - 1:1.22.6-21 +- Fix segfault in guestfs_list_filesystems when presented with a + corrupt btrfs filesystem + resolves: rhbz#1064008 + +* Tue Feb 11 2014 Richard W.M. Jones - 1:1.22.6-20 +- Valid GUIDs when used as parameter to part-set-gpt-type + resolves: rhbz#1008417 + +* Wed Feb 05 2014 Richard W.M. Jones - 1:1.22.6-19 +- Fix placement of *.py[co] files + resolves: rhbz#1061155 +- Remove bogus license file from daemon + resolves: rhbz#1061160 +- Prevent virt-sparsify from overwriting block or char devices + resolves: rhbz#1056556 +- mount-local should give a clearer error if root is not mounted + resolves: rhbz#1057492 + +* Fri Dec 27 2013 Daniel Mach - 1:1.22.6-18 +- Mass rebuild 2013-12-27 + +* Thu Dec 05 2013 Richard W.M. Jones - 1:1.22.6-17 +- Rebuild for updated procps SONAME. + resolves: rhbz#1037795 + +* Wed Nov 20 2013 Richard W.M. Jones - 1:1.22.6-16 +- Allow virt-win-reg command to work with URIs + resolves: rhbz#912193 + +* Thu Oct 31 2013 Richard W.M. Jones - 1:1.22.6-15 +- Add libguestfs-tools.conf(5) man page + resolves: rhbz#1019891 +- Drop PHP bindings + resolves: rhbz#1020021 +- Disable Haskell & Erlang (in case someone has these dependencies + installed and tries to rebuild the package). + +* Wed Oct 16 2013 Richard W.M. Jones - 1:1.22.6-12 +- Backport: "daemon: Fix xfs_info parser because of new format." + which is required to fix libguestfs tests. + related: rhbz#1019503 + +* Wed Oct 16 2013 Richard W.M. Jones - 1:1.22.6-11 +- Further fixes for kvmclock + resolves: rhbz#998109 +- Document that blockdev-setbsz is deprecated and should not be used + resolves: rhbz#1016465 + +* Wed Oct 16 2013 Richard W.M. Jones - 1:1.22.6-10 +- Fix CVE-2013-4419: insecure temporary directory handling for + guestfish's network socket + resolves: rhbz#1019503 + +* Thu Sep 26 2013 Richard W.M. Jones - 1:1.22.6-9 +- Use 'host-passthrough' instead of 'host-model' (RHBZ#1011922) +- Fix mount-loop failed to setup loop device: No such file or directory + resolves: rhbz#1011907 + +* Fri Sep 13 2013 Richard W.M. Jones - 1:1.22.6-8 +- Backport 'cachemode' property of 'add_drive' + resolves: rhbz#1003291 +- Improve error reporting from aug_init + related: rhbz# 1003685 + +* Thu Aug 29 2013 Richard W.M. Jones - 1:1.22.6-5 +- Various fixes to tar-out 'excludes' + resolves: rhbz#1001875 +- Document use of glob + rsync-out + resolves: rhbz#1001876 +- Document mke2fs blockscount + resolves: rhbz#1002032 +- Fix virt-format MBR partition type byte, add --label option to + virt-format and virt-make-fs, and allow labels to be set on DOS filesystems + resolves: rhbz#1000428 +- Fix javadoc location to use _javadocdir macro. +- Call ldconfig in java post and postun scripts. +- Do not explicitly depend on perl-devel. +- Compress the ChangeLog and *.xml files in devel package. +- Create new subpackage gobject-doc for the huge HTML documentation. +- Make javadoc, gobject-doc, bash-completion, man-pages-*, tools packages + 'noarch'. +- Enable gzip-compressed appliance. +- Note this requires supermin >= 4.1.4. + +* Tue Aug 27 2013 Richard W.M. Jones - 1:1.22.6-4 +- New upstream stable version 1.22.6. + resolves: rhbz#995712, rhbz#998750, rhbz#998485 +- Backport set-UUID API and related + resolves: rhbz#995176 +- Enable kvmclock + resolves: rhbz#998109 +- Add upstream APIs guestfs_add_drive_scratch, guestfs_remount. + +* Tue Jul 30 2013 Richard W.M. Jones - 1:1.22.5-3 +- Backport support for virt-sysprep -a URI option + resolves: rhbz#968785 + +* Mon Jul 29 2013 Richard W.M. Jones - 1:1.22.5-2 +- New upstream stable version 1.22.5. +- Fix virt-sysprep --firstboot option + resolves: rhbz#988862 +- Disable unsupported remote drives + resolves: rhbz#962113 +- cap-get-file returns empty string instead of error if no capabilities + resolves: rhbz#989356 + +* Fri Jul 19 2013 Richard W.M. Jones - 1:1.22.4-2 +- New upstream stable version 1.22.4. +- Move virt-sysprep to libguestfs-tools-c package + resolves: rhbz#975573 +- Remove 9p APIs from RHEL + resolves: rhbz#921710 +- Reenable swapon test + resolves: rhbz#911674 +- Reenable file architecture test + resolves: rhbz#911678 +- Fix mkfs blocksize option when using xfs + resolves: rhbz#976250 +- Fix double-free when kernel link fails during launch + resolves: rhbz#983691 +- Fix disk-format "JSON parse error" when target file does not exist + resolves: rhbz#980338 +- Fix documentation for acl-set-file + resolves: rhbz#985856 +- libguestfs-devel should depend on full ENVR of libguestfs-tools-c. +- Require /usr/bin/vi instead of /bin/vi for UsrMove. + +* Mon Jun 3 2013 Richard W.M. Jones - 1:1.22.2-1 +- New upstream version 1.22.2. +- Do not need to remove guestfsd man page, since libguestfs no longer + installs it. + +* Mon May 20 2013 Daniel Mach - 1:1.21.33-1.1.el7 +- Rebuild for cyrus-sasl + +* Mon Apr 29 2013 Richard W.M. Jones - 1:1.21.33-1.el7 +- New upstream version 1.21.33. +- Rebuild for renamed Kerberos library. + resolves: rhbz#957616 +- Skip gnulib tests which fail. +- Skip NBD test since there is no NBD in RHEL. + +* Wed Apr 17 2013 Richard W.M. Jones - 1:1.21.31-1.el7.1 +- Rebase RHEL 7 onto libguestfs 1.21. +- Update spec file from Rawhide. + +* Tue Apr 9 2013 Richard W.M. Jones - 1:1.20.5-4 +- In RHEL 7, 'ruby(abi)' has been replaced by 'ruby(release)' + and the version of the ruby ABI/release is now 2.0.0. + +* Fri Apr 5 2013 Richard W.M. Jones - 1:1.20.5-3 +- Remove man pages of deprecated programs. + +* Tue Apr 2 2013 Richard W.M. Jones - 1:1.20.5-2 +- Remove deprecated programs virt-tar, virt-list-filesystems and + virt-list-partitions from RHEL 7. + +* Sun Mar 31 2013 Richard W.M. Jones - 1:1.20.5-1 +- New upstream version 1.20.5. +- Remove ruby vendor patch. +- Set INSTALLDIRS=vendor on both make and make install rules. + +* Tue Mar 5 2013 Richard W.M. Jones - 1:1.20.3-1 +- New upstream version 1.20.3. + +* Fri Feb 15 2013 Richard W.M. Jones - 1:1.20.2-1 +- New upstream version 1.20.2. +- Synchronize list of tests to be skipped with local list. +- Use openjdk instead of java (GCJ). +- Add BRs: libcap. +- Ship the gobject pkgconfig file. + +* Mon Feb 11 2013 Richard W.M. Jones - 1:1.20.1-7 +- 'febootstrap' has been renamed 'supermin'. + resolves: rhbz#909573 + +* Sat Jan 19 2013 Richard W.M. Jones - 1:1.20.1-6 +- Add explicit BR on seabios-bin to work around RHBZ#901542. + +* Fri Jan 18 2013 Richard W.M. Jones - 1:1.20.1-5 +- Bump and rebuild. + +* Fri Dec 21 2012 Richard W.M. Jones - 1:1.20.1-4 +- Go over all non-upstream patches from RHEL 6 and add appropriate ones + to RHEL 7: + * Emphasize libguestfs-winsupport. + * Remove libguestfs-live ('unix' attach-method). + * Exclude iptables. + * Ignore /etc/release file if /etc/redhat-release file exists. + resolves: rhbz#889536, rhbz#889537, rhbz#889538, rhbz#873219 +- Do not number patches. + +* Thu Dec 20 2012 Richard W.M. Jones - 1:1.20.1-3 +- New upstream version 1.20.1. + +* Tue Dec 18 2012 Richard W.M. Jones - 1:1.20.0-5 +- Remove RHEL-conditionals, since I have branched spec file for RHEL 7. +- Add BR gdisk. +- Change to using git to manage patches. +- Add copy-patches.sh script. +- Disable libguestfs live (RHEL only). +- "Fedora" -> "RHEL" in replacement README file. +- "fedora" -> "rhel" in version extra field. + +* Mon Dec 17 2012 Richard W.M. Jones - 1:1.20.0-2 +- Use 'make check -k' so we get to see all test failures at once. +- For RHEL 7: + * Do not depend on perl(Expect) (only needed to test virt-rescue). + * Depend on /usr/bin/qemu-img instead of qemu-img package, since the + package name (but not the binary) is different in RHEL 7. + * Add workaround for libvirt/KVM bug RHBZ#878406. + * Do not depend on libvirt-daemon-qemu. + * Do not depend on libldm (not yet in RHEL 7: RHBZ#887894). + +* Thu Dec 13 2012 Richard W.M. Jones - 1:1.20.0-1 +- New upstream version 1.20.0. +- New source URL for this branch. +- Reconcile upstream packagelist, BRs and Requires lists. +- Requires newest SELinux policy so that SVirt works. +- Fix patch 2. Actually, remove and replace with a small script. + +* Sat Dec 01 2012 Richard W.M. Jones - 1:1.19.66-1 +- New upstream version 1.19.66. + +* Fri Nov 30 2012 Richard W.M. Jones - 1:1.19.65-2 +- Add a hack to work around glibc header bug . + +* Thu Nov 29 2012 Richard W.M. Jones - 1:1.19.65-1 +- New upstream version 1.19.65. + +* Sat Nov 24 2012 Richard W.M. Jones - 1:1.19.64-1 +- New upstream version 1.19.64. + +* Sat Nov 24 2012 Richard W.M. Jones - 1:1.19.63-3 +- Re-add: Non-upstream patch to add the noapic flag on the kernel + command line on i386 only. This works around a bug in 32-bit qemu, + https://bugzilla.redhat.com/show_bug.cgi?id=857026 + +* Fri Nov 23 2012 Richard W.M. Jones - 1:1.19.63-2 +- Remove non-upstream patch designed to work around + https://bugzilla.redhat.com/show_bug.cgi?id=857026 + to see if this has been fixed. +- Re-enable tests on i686 to see if + https://bugzilla.redhat.com/show_bug.cgi?id=870042 + has been fixed. + +* Fri Nov 23 2012 Richard W.M. Jones - 1:1.19.63-1 +- New upstream version 1.19.63. + +* Tue Nov 20 2012 Richard W.M. Jones - 1:1.19.62-1 +- New upstream version 1.19.62. + +* Mon Nov 19 2012 Richard W.M. Jones - 1:1.19.61-1 +- New upstream version 1.19.61. + +* Sat Nov 17 2012 Richard W.M. Jones - 1:1.19.60-2 +- Remove Lua bogus libtool *.la file. + +* Sat Nov 17 2012 Richard W.M. Jones - 1:1.19.60-1 +- New upstream version 1.19.60. + +* Tue Nov 13 2012 Richard W.M. Jones - 1:1.19.59-1 +- New upstream version 1.19.59. + +* Sat Nov 10 2012 Richard W.M. Jones - 1:1.19.58-1 +- New upstream version 1.19.58. + +* Thu Nov 08 2012 Richard W.M. Jones - 1:1.19.57-1 +- New upstream version 1.19.57. + +* Tue Nov 06 2012 Richard W.M. Jones - 1:1.19.56-3 +- Add upstream patch to disable virt-format test, and disable + it because wipefs utility is broken. + +* Sat Nov 03 2012 Richard W.M. Jones - 1:1.19.56-2 +- Add upstream patch to fix wipefs test. + +* Fri Nov 02 2012 Richard W.M. Jones - 1:1.19.56-1 +- New upstream version 1.19.56. + +* Tue Oct 30 2012 Richard W.M. Jones - 1:1.19.55-1 +- New upstream version 1.19.55. + +* Mon Oct 29 2012 Richard W.M. Jones - 1:1.19.54-1 +- New upstream version 1.19.54. + +* Wed Oct 24 2012 Richard W.M. Jones - 1:1.19.53-3 +- Disable tests on ix86 because qemu/kernel is broken (RHBZ#870042). + +* Wed Oct 24 2012 Richard W.M. Jones - 1:1.19.53-2 +- Add upstream patch to fix guestfish tests. + +* Fri Oct 19 2012 Richard W.M. Jones - 1:1.19.53-1 +- New upstream version 1.19.53. + +* Sun Oct 14 2012 Richard W.M. Jones - 1:1.19.52-1 +- New upstream version 1.19.52. + +* Thu Oct 11 2012 Richard W.M. Jones - 1:1.19.51-1 +- New upstream version 1.19.51. + +* Thu Oct 11 2012 Petr Pisar - 1:1.19.50-2 +- Correct perl dependencies + +* Thu Oct 11 2012 Richard W.M. Jones - 1:1.19.50-1 +- New upstream version 1.19.50. + +* Wed Oct 10 2012 Richard W.M. Jones - 1:1.19.49-3 +- Upstream patch to workaround btrfs problems with kernel 3.7.0. + +* Tue Oct 09 2012 Richard W.M. Jones - 1:1.19.49-2 +- Install all libguestfs-live-service udev rules into /usr/lib/udev/rules.d. + +* Tue Oct 09 2012 Richard W.M. Jones - 1:1.19.49-1 +- New upstream version 1.19.49. + +* Sun Oct 07 2012 Richard W.M. Jones - 1:1.19.48-1 +- New upstream version 1.19.48. + +* Mon Oct 01 2012 Richard W.M. Jones - 1:1.19.46-1 +- New upstream version 1.19.46. + +* Wed Sep 26 2012 Richard W.M. Jones - 1:1.19.45-1 +- New upstream version 1.19.45. + +* Tue Sep 25 2012 Richard W.M. Jones - 1:1.19.44-2 +- Enable sVirt (NB: requires libvirt >= 0.10.2-3, selinux-policy >= 3.11.1-23). +- Add upstream patch to label the custom $TMPDIR used in test-launch-race. + +* Mon Sep 24 2012 Richard W.M. Jones - 1:1.19.44-1 +- New upstream version 1.19.44. + +* Sat Sep 22 2012 Richard W.M. Jones - 1:1.19.43-1 +- New upstream version 1.19.43. + +* Tue Sep 18 2012 Richard W.M. Jones - 1:1.19.42-2 +- New upstream version 1.19.42. +- Rebase sVirt (disable) patch. + +* Sun Sep 16 2012 Richard W.M. Jones - 1:1.19.41-1 +- New upstream version 1.19.41. + +* Fri Sep 14 2012 Richard W.M. Jones - 1:1.19.40-3 +- Add (non-upstream) patch to add the noapic flag on the kernel + command line on i386 only. This works around a bug in 32-bit qemu. + +* Wed Sep 12 2012 Richard W.M. Jones - 1:1.19.40-2 +- Enable tests because RHBZ#853408 has been fixed in qemu-1.2.0-3.fc18. + +* Wed Sep 05 2012 Richard W.M. Jones - 1:1.19.40-1 +- New upstream version 1.19.40. + +* Tue Sep 04 2012 Richard W.M. Jones - 1:1.19.39-1 +- New upstream version 1.19.39. + +* Mon Sep 03 2012 Richard W.M. Jones - 1:1.19.38-1 +- New upstream version 1.19.38. + +* Fri Aug 31 2012 Richard W.M. Jones - 1:1.19.37-1 +- New upstream version 1.19.37. + +* Thu Aug 30 2012 Richard W.M. Jones - 1:1.19.36-2 +- New upstream version 1.19.36. +- Require libvirt-daemon-qemu (for libvirt attach method). + +* Thu Aug 30 2012 Richard W.M. Jones - 1:1.19.36-1 +- Switch to using libvirt as the backend for running the appliance. See: + https://www.redhat.com/archives/libguestfs/2012-August/msg00070.html +- Use configure RPM macro instead of ./configure. + +* Wed Aug 29 2012 Richard W.M. Jones - 1:1.19.35-1 +- New upstream version 1.19.35. + +* Wed Aug 29 2012 Richard W.M. Jones - 1:1.19.34-2 +- Add upstream patch to fix Perl bindtests on 32 bit. + +* Tue Aug 28 2012 Richard W.M. Jones - 1:1.19.34-1 +- New upstream version 1.19.34. + +* Tue Aug 28 2012 Richard W.M. Jones - 1:1.19.33-1 +- New upstream version 1.19.33. + +* Mon Aug 27 2012 Richard W.M. Jones - 1:1.19.33-3 +- Fix Perl examples directory so we only include the examples. +- Add Java examples to java-devel RPM. + +* Tue Aug 21 2012 Richard W.M. Jones - 1:1.19.33-2 +- New upstream version 1.19.33. +- Reenable tests. + +* Sat Aug 18 2012 Richard W.M. Jones - 1:1.19.32-1 +- New upstream version 1.19.32. + +* Wed Aug 15 2012 Richard W.M. Jones - 1:1.19.31-1 +- New upstream version 1.19.31. + +* Tue Aug 14 2012 Richard W.M. Jones - 1:1.19.30-1 +- New upstream version 1.19.30. + +* Sat Aug 11 2012 Richard W.M. Jones - 1:1.19.29-2 +- New upstream version 1.19.29. +- Remove RELEASE NOTES from doc section, and add equivalent man page. + +* Fri Aug 10 2012 Richard W.M. Jones - 1:1.19.28-4 +- Bump and rebuild. + +* Thu Aug 02 2012 Richard W.M. Jones - 1:1.19.28-3 +- New upstream version 1.19.28. +- Update libguestfs-find-requires to generate ordinary lib dependencies. + +* Wed Aug 1 2012 Richard W.M. Jones - 1:1.19.27-2 +- Disable tests because of RHBZ#844485. + +* Mon Jul 30 2012 Richard W.M. Jones - 1:1.19.27-1 +- New upstream version 1.19.27. + +* Thu Jul 26 2012 Richard W.M. Jones - 1:1.19.26-2 +- Remove old RPM-isms like defattr. +- Add upstream patches to fix use of 'run' script in tests. + +* Thu Jul 26 2012 Richard W.M. Jones - 1:1.19.26-1 +- New upstream version 1.19.26. + +* Tue Jul 24 2012 Richard W.M. Jones - 1:1.19.25-1 +- New upstream version 1.19.25. + +* Mon Jul 23 2012 Richard W.M. Jones - 1:1.19.24-1 +- New upstream version 1.19.24. + +* Sun Jul 22 2012 Richard W.M. Jones - 1:1.19.23-1 +- New upstream version 1.19.23. + +* Thu Jul 19 2012 Richard W.M. Jones - 1:1.19.22-2 +- Add upstream patch to skip mount-local test if /dev/fuse not writable. + +* Thu Jul 19 2012 Richard W.M. Jones - 1:1.19.22-1 +- New upstream version 1.19.22. + +* Wed Jul 18 2012 Richard W.M. Jones - 1:1.19.21-1 +- New upstream version 1.19.21. + +* Tue Jul 17 2012 Richard W.M. Jones - 1:1.19.20-1 +- New upstream version 1.19.20. + +* Mon Jul 16 2012 Richard W.M. Jones - 1:1.19.19-1 +- New upstream version 1.19.19. + +* Tue Jul 10 2012 Petr Pisar - 1:1.19.18-2 +- Perl 5.16 rebuild + +* Mon Jul 09 2012 Richard W.M. Jones - 1:1.19.18-1 +- New upstream version 1.19.18. + +* Fri Jul 06 2012 Richard W.M. Jones - 1:1.19.17-1 +- New upstream version 1.19.17. + +* Wed Jul 04 2012 Richard W.M. Jones - 1:1.19.16-1 +- New upstream version 1.19.16. + +* Fri Jun 29 2012 Richard W.M. Jones - 1:1.19.15-1 +- New upstream version 1.19.15. + +* Thu Jun 28 2012 Richard W.M. Jones - 1:1.19.14-1 +- New upstream version 1.19.14. + +* Wed Jun 27 2012 Richard W.M. Jones - 1:1.19.13-2 +- New upstream version 1.19.13. +- Add upstream patch to fix GObject/Javascript tests. + +* Tue Jun 26 2012 Richard W.M. Jones - 1:1.19.12-1 +- New upstream version 1.19.12. + +* Mon Jun 25 2012 Richard W.M. Jones - 1:1.19.11-1 +- New upstream version 1.19.11. + +* Fri Jun 22 2012 Richard W.M. Jones - 1:1.19.10-1 +- New upstream version 1.19.10. + +* Mon Jun 18 2012 Richard W.M. Jones - 1:1.19.9-1 +- New upstream version 1.19.9. + +* Thu Jun 14 2012 Richard W.M. Jones - 1:1.19.8-1 +- New upstream version 1.19.8. + +* Thu Jun 14 2012 Richard W.M. Jones - 1:1.19.7-2 +- New upstream version 1.19.7. +- Require febotstrap >= 3.17. + +* Tue Jun 12 2012 Richard W.M. Jones - 1:1.19.6-2 +- Require febootstrap >= 3.16. + +* Tue Jun 12 2012 Richard W.M. Jones - 1:1.19.6-1 +- New upstream version 1.19.6. + +* Tue Jun 12 2012 Richard W.M. Jones - 1:1.19.6-1 +- New upstream version 1.19.6. +- This version defaults to using virtio-scsi. +- Requires qemu >= 1.0. +- Requires febootstrap >= 3.15. + +* Mon Jun 11 2012 Petr Pisar - 1:1.19.5-2 +- Perl 5.16 rebuild + +* Sat Jun 09 2012 Richard W.M. Jones - 1:1.19.5-1 +- New upstream version 1.19.5. + +* Thu Jun 07 2012 Richard W.M. Jones - 1:1.19.4-1 +- New upstream version 1.19.4. + +* Fri Jun 01 2012 Richard W.M. Jones - 1:1.19.3-2 +- New upstream version 1.19.3. +- Remove patches which are now upstream. + +* Tue May 29 2012 Richard W.M. Jones - 1:1.19.2-3 +- Remove obsolete list of bugs in make check rule. +- Remove some obsolete test workarounds. +- Disable i386 tests (because of RHBZ#825944). + +* Mon May 28 2012 Richard W.M. Jones - 1:1.19.2-2 +- Include patches to fix udev. + +* Mon May 28 2012 Richard W.M. Jones - 1:1.19.2-1 +- New upstream version 1.19.2. + +* Sat May 26 2012 Richard W.M. Jones - 1:1.19.1-1 +- New upstream version 1.19.1. + +* Mon May 21 2012 Richard W.M. Jones - 1:1.19.0-1 +- New upstream version 1.19.0. + +* Thu May 17 2012 Richard W.M. Jones - 1:1.17.43-1 +- New upstream version 1.17.43. + +* Thu May 17 2012 Richard W.M. Jones - 1:1.17.42-4 +- On RHEL 7 only, remove reiserfs-utils, zerofree. + +* Thu May 17 2012 Richard W.M. Jones - 1:1.17.42-3 +- On RHEL 7 only, remove nilfs-utils. + +* Tue May 15 2012 Richard W.M. Jones - 1:1.17.42-2 +- Bundled gnulib (RHBZ#821767). + +* Mon May 14 2012 Richard W.M. Jones - 1:1.17.42-1 +- New upstream version 1.17.42. + +* Fri May 11 2012 Richard W.M. Jones - 1:1.17.41-1 +- New upstream version 1.17.41. + +* Tue May 08 2012 Richard W.M. Jones - 1:1.17.40-1 +- New upstream version 1.17.40. + +* Tue May 8 2012 Richard W.M. Jones - 1:1.17.39-3 +- Disable hfsplus-tools on RHEL 7. + +* Thu May 03 2012 Richard W.M. Jones - 1:1.17.39-2 +- BR perl-XML-XPath to run the new XML test. + +* Thu May 03 2012 Richard W.M. Jones - 1:1.17.39-1 +- New upstream version 1.17.39. + +* Wed May 02 2012 Richard W.M. Jones - 1:1.17.38-3 +- Remove explicit runtime deps for old virt-sysprep. +- Add explicit runtime dep on fuse (RHBZ#767852, thanks Pádraig Brady). +- Remove explicit versioned dep on glibc. + +* Tue May 1 2012 Peter Robinson - 1:1.17.38-2 +- Update supported filesystems for ARM + +* Tue May 01 2012 Richard W.M. Jones - 1:1.17.38-1 +- New upstream version 1.17.38. + +* Tue May 01 2012 Richard W.M. Jones - 1:1.17.37-2 +- Add guestfs-faq(1) (FAQ is now a man page). + +* Tue May 01 2012 Richard W.M. Jones - 1:1.17.37-1 +- New upstream version 1.17.37. + +* Fri Apr 27 2012 Richard W.M. Jones - 1:1.17.36-2 +- Add upstream patch to fix installation of gobject headers. + +* Thu Apr 26 2012 Richard W.M. Jones - 1:1.17.36-1 +- New upstream version 1.17.36. + +* Thu Apr 26 2012 Richard W.M. Jones - 1:1.17.35-1 +- New upstream version 1.17.35. + +* Tue Apr 24 2012 Richard W.M. Jones - 1:1.17.34-1 +- New upstream version 1.17.34. + +* Mon Apr 23 2012 Richard W.M. Jones - 1:1.17.33-1 +- New upstream version 1.17.33. + +* Tue Apr 17 2012 Richard W.M. Jones - 1:1.17.32-1 +- New upstream version 1.17.32. + +* Mon Apr 16 2012 Richard W.M. Jones - 1:1.17.31-1 +- New upstream version 1.17.31. + +* Fri Apr 13 2012 Richard W.M. Jones - 1:1.17.30-1 +- New upstream version 1.17.30. + +* Thu Apr 12 2012 Richard W.M. Jones - 1:1.17.29-1 +- New upstream version 1.17.29. + +* Thu Apr 12 2012 Richard W.M. Jones - 1:1.17.28-2 +- Enable ruby 1.9 patch in RHEL 7 (RHBZ#812139). + +* Thu Apr 12 2012 Richard W.M. Jones - 1:1.17.28-1 +- New upstream version 1.17.28. + +* Wed Apr 11 2012 Richard W.M. Jones - 1:1.17.27-2 +- Add guestfs-performance(1) manual page. + +* Tue Apr 10 2012 Richard W.M. Jones - 1:1.17.27-1 +- New upstream version 1.17.27. + +* Tue Apr 03 2012 Richard W.M. Jones - 1:1.17.26-1 +- New upstream version 1.17.26. + +* Mon Apr 02 2012 Richard W.M. Jones - 1:1.17.25-1 +- New upstream version 1.17.25. + +* Sun Apr 01 2012 Richard W.M. Jones - 1:1.17.24-1 +- New upstream version 1.17.24. + +* Sun Apr 01 2012 Richard W.M. Jones - 1:1.17.23-1 +- New upstream version 1.17.23. + +* Thu Mar 29 2012 Richard W.M. Jones - 1:1.17.22-2 +- Include all gobject header files. +- Include gtk-doc, and depend on the gtk-doc package at runtime. + +* Thu Mar 29 2012 Richard W.M. Jones - 1:1.17.22-1 +- New upstream version 1.17.22. + +* Thu Mar 29 2012 Richard W.M. Jones - 1:1.17.21-2 +- Bump and rebuild. + +* Wed Mar 21 2012 Richard W.M. Jones - 1:1.17.21-1 +- New upstream version 1.17.21. + +* Mon Mar 19 2012 Richard W.M. Jones - 1:1.17.20-3 +- Reenable LUKS, since RHBZ#804345 is reported to be fixed. + +* Sun Mar 18 2012 Richard W.M. Jones - 1:1.17.20-2 +- Disable LUKS tests because LUKS is broken in Rawhide (RHBZ#804345). + +* Sat Mar 17 2012 Richard W.M. Jones - 1:1.17.20-1 +- New upstream version 1.17.20. + +* Sat Mar 17 2012 Richard W.M. Jones - 1:1.17.19-2 +- Add libguestfs-make-fixed-appliance (with man page). + +* Fri Mar 16 2012 Richard W.M. Jones - 1:1.17.19-1 +- New upstream version 1.17.19. + +* Thu Mar 15 2012 Richard W.M. Jones - 1:1.17.18-1 +- New upstream version 1.17.18. + +* Wed Mar 14 2012 Richard W.M. Jones - 1:1.17.17-1 +- New upstream version 1.17.17. + +* Wed Mar 14 2012 Richard W.M. Jones - 1:1.17.16-2 +- Bump and rebuild. + +* Tue Mar 13 2012 Richard W.M. Jones - 1:1.17.16-1 +- New upstream version 1.17.16. + +* Mon Mar 12 2012 Richard W.M. Jones - 1:1.17.15-1 +- New upstream version 1.17.15. + +* Fri Mar 09 2012 Richard W.M. Jones - 1:1.17.14-1 +- New upstream version 1.17.14. + +* Thu Mar 08 2012 Richard W.M. Jones - 1:1.17.13-1 +- New upstream version 1.17.13. + +* Thu Mar 08 2012 Richard W.M. Jones - 1:1.17.12-2 +- Enable Japanese man pages, since these are in a better state upstream. + +* Wed Mar 07 2012 Richard W.M. Jones - 1:1.17.12-1 +- New upstream version 1.17.12. + +* Wed Mar 07 2012 Richard W.M. Jones - 1:1.17.11-2 +- Require netpbm-progs, icoutils. These are needed for icon generation + during inspection, but were not being pulled in before. + +* Mon Mar 05 2012 Richard W.M. Jones - 1:1.17.11-1 +- New upstream version 1.17.11. + +* Sat Mar 03 2012 Richard W.M. Jones - 1:1.17.10-2 +- New upstream version 1.17.10. +- Rebase Ruby patch against new libguestfs. + +* Wed Feb 29 2012 Richard W.M. Jones - 1:1.17.9-1 +- New upstream version 1.17.9. + +* Wed Feb 15 2012 Richard W.M. Jones - 1:1.17.8-1 +- New upstream version 1.17.8. + +* Mon Feb 13 2012 Richard W.M. Jones - 1:1.17.7-1 +- New upstream version 1.17.7. + +* Fri Feb 10 2012 Richard W.M. Jones - 1:1.17.6-1 +- +BR ruby-irb. +- Make virtio unconditional. It's been a very long time since disabling + virtio was a good idea. +- Disable some packages not available in RHEL 7. +- New upstream version 1.17.6. + +* Fri Feb 10 2012 Petr Pisar - 1:1.17.5-3 +- Rebuild against PCRE 8.30 + +* Thu Feb 9 2012 Richard W.M. Jones - 1:1.17.5-2 +- Rebuild with ruby(abi) = 1.9.1. + +* Wed Feb 8 2012 Richard W.M. Jones - 1:1.17.5-1 +- New upstream version 1.17.5. +- Remove usrmove workaround patch, now upstream. + +* Wed Feb 8 2012 Richard W.M. Jones - 1:1.17.4-8 +- Further Ruby 1.9 changes. + +* Tue Feb 07 2012 Richard W.M. Jones - 1:1.17.4-7 +- Bump and rebuild for Ruby update. + +* Mon Feb 6 2012 Richard W.M. Jones - 1:1.17.4-6 +- Add workaround for usrmove in Fedora. + +* Wed Feb 1 2012 Richard W.M. Jones - 1:1.17.4-1 +- New upstream version 1.17.4. +- Remove patch now upstream. + +* Sat Jan 28 2012 Richard W.M. Jones - 1:1.17.3-2 +- New upstream version 1.17.3. +- Remove patch now upstream. +- Add upstream patch to fix OCaml bytecode compilation. + +* Fri Jan 27 2012 Richard W.M. Jones - 1:1.17.2-3 +- Upstream patch to work with udev >= 176. + +* Thu Jan 26 2012 Richard W.M. Jones - 1:1.17.2-2 +- New upstream version 1.17.2. +- Use libdb-utils instead of old db4-utils. +- net-tools is no longer used; replaced by iproute (RHBZ#784647). +- Try re-enabling tests on i686. + +* Tue Jan 24 2012 Richard W.M. Jones - 1:1.17.1-1 +- New upstream version 1.17.1. + +* Mon Jan 23 2012 Richard W.M. Jones - 1:1.16.0-1 +- New upstream version 1.16.0. +- Remove patches which are now upstream. +- GObject: Move *.typelib file to base gobject package. + +* Sun Jan 22 2012 Richard W.M. Jones - 1:1.15.19-1 +- New upstream version 1.15.19. +- +BR psmisc for the appliance. +- Includes GObject bindings in libguestfs-gobject and + libguestfs-gobject-devel subpackages. +- Include upstream patches for PHP 5.4. + +* Thu Jan 19 2012 Richard W.M. Jones - 1:1.15.18-1 +- New upstream version 1.15.18. + +* Wed Jan 18 2012 Richard W.M. Jones - 1:1.15.17-1 +- New upstream version 1.15.17. +- New tool: virt-format. + +* Tue Jan 10 2012 Richard W.M. Jones - 1:1.15.16-1 +- New upstream version 1.15.16. + +* Sun Jan 8 2012 Richard W.M. Jones - 1:1.15.15-2 +- New upstream version 1.15.15. +- Updated gnulib fixes builds with gcc 4.7. +- Rebuild for OCaml 3.12.1. +- Add explicit BR perl-hivex, required for various Perl virt tools. + +* Fri Dec 23 2011 Richard W.M. Jones - 1:1.15.14-1 +- New upstream version 1.15.14. +- Remove three patches, now upstream. + +* Thu Dec 22 2011 Richard W.M. Jones - 1:1.15.13-4 +- New upstream version 1.15.13. +- Fixes Security: Mitigate possible privilege escalation via SG_IO ioctl + (CVE-2011-4127, RHBZ#757071). +- Add three upstream patches to fix 'make check'. + +* Thu Dec 22 2011 Richard W.M. Jones - 1:1.15.12-1 +- New upstream version 1.15.12. + +* Fri Dec 9 2011 Richard W.M. Jones - 1:1.15.11-1 +- New upstream version 1.15.11. + +* Tue Dec 6 2011 Richard W.M. Jones - 1:1.15.10-1 +- New upstream version 1.15.10. +- Remove patch, now upstream. + +* Sat Dec 3 2011 Richard W.M. Jones - 1:1.15.9-2 +- New upstream version 1.15.9. +- Add upstream patch to fix Augeas library detection. +- Appliance explicitly requires libxml2 (because Augeas >= 0.10 requires it), + although it was implicitly included already. + +* Tue Nov 29 2011 Richard W.M. Jones - 1:1.15.8-1 +- New upstream version 1.15.8. + +* Tue Nov 29 2011 Richard W.M. Jones - 1:1.15.7-1 +- New upstream version 1.15.7. + +* Thu Nov 24 2011 Richard W.M. Jones - 1:1.15.6-1 +- New upstream version 1.15.6. + +* Mon Nov 21 2011 Richard W.M. Jones - 1:1.15.5-1 +- New upstream version 1.15.5. +- Add guestfs-testing(1) man page. + +* Thu Nov 17 2011 Richard W.M. Jones - 1:1.15.4-2 +- New upstream version 1.15.4. +- Remove patch which is now upstream. +- libguestfs_jni.a is no longer built. + +* Fri Nov 11 2011 Richard W.M. Jones - 1:1.15.3-3 +- Add upstream patch to disable part of virt-df test. + +* Thu Nov 10 2011 Richard W.M. Jones - 1:1.15.3-1 +- New upstream version 1.15.3. +- Fix list of BuildRequires so they precisely match the appliance. + +* Thu Nov 3 2011 Richard W.M. Jones - 1:1.15.2-1 +- New upstream version 1.15.2. +- ocaml-pcre is no longer required for virt-resize. +- xmlstarlet is no longer required for virt-sysprep. + +* Tue Nov 1 2011 Richard W.M. Jones - 1:1.15.1-1 +- New upstream version 1.15.1. + +* Fri Oct 28 2011 Richard W.M. Jones - 1:1.15.0-1 +- Stable branch 1.14.0 was released. This is the new development + branch version 1.15.0. + +* Wed Oct 26 2011 Richard W.M. Jones - 1:1.13.26-1 +- New upstream version 1.13.26. + +* Wed Oct 26 2011 Richard W.M. Jones - 1:1.13.25-1 +- New upstream version 1.13.25. + +* Mon Oct 24 2011 Richard W.M. Jones - 1:1.13.24-1 +- New upstream version 1.13.24. +- This version includes upstream workarounds for broken qemu, so both + non-upstream patches have now been removed from Fedora. + +* Fri Oct 21 2011 Marcela Mašláňová - 1:1.13.23-1.1 +- rebuild with new gmp without compat lib + +* Thu Oct 20 2011 Richard W.M. Jones - 1:1.13.23-1 +- New upstream version 1.13.23. + +* Wed Oct 19 2011 Richard W.M. Jones - 1:1.13.22-2 +- New upstream version 1.13.22. +- Remove 3x upstream patches. +- Renumber the two remaining non-upstream patches as patch0, patch1. +- Rebase patch1. + +* Mon Oct 17 2011 Richard W.M. Jones - 1:1.13.21-4 +- Add upstream patch to skip FUSE tests if there is no /dev/fuse. + This allows us also to remove the Fedora-specific patch which + disabled these tests before. + +* Sat Oct 15 2011 Richard W.M. Jones - 1:1.13.21-3 +- Add upstream patch to fix virt-sysprep test. + +* Fri Oct 14 2011 Richard W.M. Jones - 1:1.13.21-2 +- New upstream version 1.13.21. +- Move virt-sysprep to libguestfs-tools, to avoid pulling in extra + dependencies for RHEV-H. This tool is not likely to be useful + for RHEV-H in its current form anyway. +- Change BR cryptsetup-luks -> cryptsetup since that package changed. + +* Wed Oct 12 2011 Peter Schiffer - 1:1.13.20-1.1 +- rebuild with new gmp + +* Tue Oct 11 2011 Richard W.M. Jones - 1:1.13.20-1 +- New upstream version 1.13.20. + +* Sat Oct 8 2011 Richard W.M. Jones - 1:1.13.19-1 +- New upstream version 1.13.19. +- New tool: virt-sysprep. +- Remove the old guestfish and libguestfs-mount packages, and put these + tools into libguestfs-tools. This change is long overdue, but is also + necessitated by the new virt-sysprep tool. This new tool would pull + in guestfish anyway, so having separate packages makes no sense. +- Remove old obsoletes for virt-cat, virt-df, virt-df2 and virt-inspector, + since those packages existed only in much older Fedora. + +* Wed Oct 5 2011 Richard W.M. Jones - 1:1.13.18-1 +- New upstream version 1.13.18. +- New tool: virt-alignment-scan. + +* Tue Oct 4 2011 Richard W.M. Jones - 1:1.13.17-1 +- New upstream version 1.13.17. +- New tool: virt-sparsify. + +* Sat Oct 1 2011 Richard W.M. Jones - 1:1.13.16-1 +- New upstream version 1.13.16. + +* Thu Sep 29 2011 Richard W.M. Jones - 1:1.13.15-2 +- Rearrange description to make it clearer. +- virt-resize was written in OCaml. Move it to libguestfs-tools-c + subpackage since it doesn't require Perl. + +* Wed Sep 28 2011 Richard W.M. Jones - 1:1.13.15-1 +- New upstream version 1.13.15. +- Add lzop program to the appliance (for compress-out API). +- Remove upstream patch. + +* Mon Sep 26 2011 Richard W.M. Jones - 1:1.13.14-2 +- Upstream patch to fix timer check failures during boot (RHBZ#502058). + +* Sat Sep 24 2011 Richard W.M. Jones - 1:1.13.14-1 +- New upstream version 1.13.14. + +* Wed Sep 21 2011 Richard W.M. Jones - 1:1.13.13-1 +- Add Erlang bindings in erlang-libguestfs subpackage. +- Remove upstream patch. + +* Fri Sep 16 2011 Richard W.M. Jones - 1:1.13.12-4 +- Don't require grub. See RHBZ#737261. +- Note this (hopefully temporarily) breaks guestfs_grub_install API. +- Include upstream patch to add guestfs_grub_install into an optional group. + +* Wed Sep 14 2011 Richard W.M. Jones - 1:1.13.12-1 +- New upstream version 1.13.12. + +* Thu Sep 1 2011 Richard W.M. Jones - 1:1.13.11-1 +- New upstream version 1.13.11. + +* Tue Aug 30 2011 Richard W.M. Jones - 1:1.13.10-2 +- Remove MAKEDEV dependency (RHBZ#727247). + +* Sun Aug 28 2011 Richard W.M. Jones - 1:1.13.10-1 +- New upstream version 1.13.10. + +* Fri Aug 26 2011 Richard W.M. Jones - 1:1.13.9-1 +- New upstream version 1.13.9. + +* Fri Aug 26 2011 Richard W.M. Jones - 1:1.13.8-1 +- New upstream version 1.13.8. +- Static python library is no longer built, so don't rm it. + +* Tue Aug 23 2011 Richard W.M. Jones - 1:1.13.7-1 +- New upstream version 1.13.7. +- configure --with-extra version string contains Fedora release. +- Build with make V=1 to display full compile commands. +- Remove /usr/sbin PATH setting, not used for a very long time. + +* Fri Aug 19 2011 Richard W.M. Jones - 1:1.13.6-2 +- New upstream version 1.13.6. +- Rebase non-upstream patch to fix qemu -machine option. + +* Wed Aug 17 2011 Richard W.M. Jones - 1:1.13.5-1 +- New upstream version 1.13.5. + +* Thu Aug 11 2011 Richard W.M. Jones - 1:1.13.4-1 +- New upstream version 1.13.4. + +* Mon Aug 8 2011 Richard W.M. Jones - 1:1.13.3-4 +- New upstream version 1.13.3. +- 'test-getlogin_r.c:55: assertion failed' test must now be fixed in + gnulib/tests directory instead of daemon/tests (the latter directory + no longer exists). +- Only run testsuite on x86_64 because of qemu bug. + +* Tue Aug 2 2011 Richard W.M. Jones - 1:1.13.2-3 +- Switch Rawhide to use the new development branch (1.13). +- New upstream version 1.13.2. +- Remove upstream patch. +- Ensure config.log is printed, even in the error case. + +* Tue Jul 26 2011 Richard W.M. Jones - 1:1.12.1-4 +- New upstream stable branch version 1.12.1. +- Remove 5 x upstream patches. +- Add non-upstream patch to deal with broken qemu -machine option. +- Add upstream patch to fix segfault in OCaml bindings. + +* Tue Jul 26 2011 Richard W.M. Jones - 1:1.12.0-11 +- Bump and rebuild. + +* Fri Jul 22 2011 Richard W.M. Jones - 1:1.12.0-10 +- Rebuild against fixed hivex 1.2.7-7 in dist-f16-perl. + +* Thu Jul 21 2011 Richard W.M. Jones - 1:1.12.0-9 +- Attempt rebuild in dist-f16-perl. + +* Thu Jul 21 2011 Petr Sabata - 1:1.12.0-8 +- Perl mass rebuild + +* Thu Jul 21 2011 Richard W.M. Jones - 1:1.12.0-4 +- Disable tests, use quickcheck, because of RHBZ#723555, RHBZ#723822. + +* Wed Jul 20 2011 Richard W.M. Jones - 1:1.12.0-2 +- Readd patch to fix virtio-serial test for qemu 0.15. + +* Wed Jul 20 2011 Richard W.M. Jones - 1:1.12.0-1 +- New stable version 1.12.0 for Fedora 16. +- Remove upstream patch. +- Disable tests on i686 (because of RHBZ#723555). + +* Wed Jul 20 2011 Petr Sabata - 1:1.11.20-3 +- Perl mass rebuild + +* Tue Jul 19 2011 Richard W.M. Jones - 1:1.11.20-2 +- Add upstream patch to fix virtio-serial test for qemu 0.15. + +* Tue Jul 19 2011 Richard W.M. Jones - 1:1.11.20-1 +- New upstream version 1.11.20. +- Replace standard README file with one suited for Fedora. +- Add guestfs-java(3) manpage to libguestfs-java-devel package. + +* Mon Jul 18 2011 Richard W.M. Jones - 1:1.11.19-1 +- New upstream version 1.11.19. +- Remove upstream patch. +- Add Ukrainian (uk) man pages subpackage. + +* Fri Jul 15 2011 Richard W.M. Jones - 1:1.11.18-2 +- Add upstream patch to fix regression test. + +* Fri Jul 15 2011 Richard W.M. Jones - 1:1.11.18-1 +- New upstream version 1.11.18. +- Force febootstrap >= 3.7 which contains a fix for latest Rawhide. +- Use --enable-install-daemon to install guestfsd. + +* Thu Jul 14 2011 Richard W.M. Jones - 1:1.11.17-1 +- New upstream version 1.11.17. + +* Wed Jul 13 2011 Richard W.M. Jones - 1:1.11.16-1 +- New upstream version 1.11.16. + +* Tue Jul 12 2011 Richard W.M. Jones - 1:1.11.15-1 +- New upstream version 1.11.15. + +* Wed Jul 6 2011 Richard W.M. Jones - 1:1.11.14-1 +- New upstream version 1.11.14. + +* Wed Jul 6 2011 Richard W.M. Jones - 1:1.11.13-3 +- Further updates to libguestfs-live-service after feedback from + Dan Berrange and Lennart Poettering. + +* Tue Jul 5 2011 Richard W.M. Jones - 1:1.11.13-2 +- Add libguestfs-live-service subpackage. This can be installed in + virtual machines in order to enable safe editing of files in running + guests (eg. guestfish --live). + +* Thu Jun 30 2011 Richard W.M. Jones - 1:1.11.13-1 +- New upstream version 1.11.13. + +* Wed Jun 29 2011 Richard W.M. Jones - 1:1.11.12-3 +- Bump and rebuild for parted 3.0. +- Depend on fixed parted >= 3.0-2. + +* Tue Jun 28 2011 Richard W.M. Jones - 1:1.11.12-1 +- New upstream version 1.11.12. + +* Tue Jun 21 2011 Richard W.M. Jones - 1:1.11.11-1 +- New upstream version 1.11.11. + +* Mon Jun 20 2011 Richard W.M. Jones - 1:1.11.10-3 +- Temporarily stop setting CCFLAGS in perl subdirectory. + See: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=628522 + +* Fri Jun 17 2011 Marcela Mašláňová - 1:1.11.10-2 +- Perl mass rebuild + +* Fri Jun 10 2011 Richard W.M. Jones - 1:1.11.10-1 +- New upstream version 1.11.10. +- Enable tests since fix for RHBZ#710921 is in Rawhide kernel package. + +* Fri Jun 10 2011 Marcela Mašláňová - 1:1.11.9-8 +- Perl 5.14 mass rebuild + +* Sun Jun 5 2011 Richard W.M. Jones - 1:1.11.9-7 +- Build against new parted. +- Disable tests on i686 because of RHBZ#710921. +- Remove recipes/ doc directory. This is no longer present because it + was replaced by a guestfs-recipes(1) man page. + +* Sat Jun 4 2011 Richard W.M. Jones - 1:1.11.9-1 +- New upstream version 1.11.9. + +* Wed May 18 2011 Richard W.M. Jones - 1:1.11.8-1 +- New upstream version 1.11.8. +- "zero" command test is fixed now, so we don't need to skip it. + +* Tue May 17 2011 Richard W.M. Jones - 1:1.11.7-3 +- New upstream version 1.11.7. +- Depends on hivex >= 1.2.7. +- Remove upstream patch. +- Skip test of "zero" command (RHBZ#705499). + +* Mon May 9 2011 Richard W.M. Jones - 1:1.11.5-2 +- configure: Use Python platform-dependent site-packages. + +* Mon May 9 2011 Richard W.M. Jones - 1:1.11.5-1 +- New upstream version 1.11.5. +- virt-edit has been rewritten in C, therefore this tool has been moved + into the libguestfs-tools-c package. + +* Sun May 8 2011 Richard W.M. Jones - 1:1.11.4-1 +- New upstream version 1.11.4. + +* Fri Apr 22 2011 Richard W.M. Jones - 1:1.11.3-1 +- New upstream version 1.11.3. + +* Mon Apr 18 2011 Richard W.M. Jones - 1:1.11.2-1 +- New upstream version 1.11.2. +- Fixes Python bindings when used in Python threads. +- Remove upstream patch. + +* Sat Apr 16 2011 Richard W.M. Jones - 1:1.11.1-2 +- New upstream version 1.11.1. +- Add upstream patch so we don't depend on libtool. + +* Fri Apr 15 2011 Richard W.M. Jones - 1:1.11.0-2 +- Bump and rebuild. + +* Tue Apr 12 2011 Richard W.M. Jones - 1:1.11.0-1 +- New upstream development branch 1.11.0. +- New Source URL. +- Remove patches which are now upstream. + +* Sun Apr 10 2011 Richard W.M. Jones - 1:1.9.18-4 +- Include further fixes to virt-resize from upstream. + +* Sat Apr 9 2011 Richard W.M. Jones - 1:1.9.18-2 +- New upstream version 1.9.18. +- Requires ocaml-pcre for new virt-resize. +- Remove libguestfs-test-tool-helper program which is no longer used. +- Include upstream fix for virt-resize build. + +* Wed Apr 6 2011 Richard W.M. Jones - 1:1.9.17-2 +- Remove partially translated Ukrainian manpages. + +* Tue Apr 5 2011 Richard W.M. Jones - 1:1.9.17-1 +- New upstream version 1.9.17. + +* Fri Apr 1 2011 Richard W.M. Jones - 1:1.9.16-1 +- New upstream version 1.9.16. + +* Fri Apr 1 2011 Richard W.M. Jones - 1:1.9.15-1 +- New upstream version 1.9.15. +- Add BR libconfig-devel. +- Add /etc/libguestfs-tools.conf (config file for guestfish, guestmount, + virt-rescue; in future for other tools as well). + +* Mon Mar 28 2011 Richard W.M. Jones - 1:1.9.14-1 +- New upstream version 1.9.14. +- Include 'acl' as BR so virt-rescue gets getfacl and setfacl programs. + +* Mon Mar 28 2011 Richard W.M. Jones - 1:1.9.13-2 +- Include 'attr' as BR (required for getfattr, setfattr programs in + virt-rescue). + +* Thu Mar 24 2011 Richard W.M. Jones - 1:1.9.13-1 +- New upstream version 1.9.13. + +* Fri Mar 18 2011 Richard W.M. Jones - 1:1.9.12-1 +- New upstream version 1.9.12. + +* Wed Mar 16 2011 Richard W.M. Jones - 1:1.9.11-2 +- Add runtime requires on minimum glibc because of newly readable binaries. + +* Tue Mar 15 2011 Richard W.M. Jones - 1:1.9.11-1 +- New upstream version 1.9.11. +- Add generated Ruby documentation (rdoc). + +* Tue Mar 8 2011 Richard W.M. Jones - 1:1.9.10-1 +- New upstream version 1.9.10. +- Remove patches (now upstream). + +* Fri Mar 4 2011 Richard W.M. Jones - 1:1.9.9-2 +- Include upstream patches to fix virt-make-fs with qemu-img 0.14. + +* Fri Mar 4 2011 Richard W.M. Jones - 1:1.9.9-1 +- New upstream version 1.9.9. + +* Tue Feb 08 2011 Fedora Release Engineering - 1:1.9.8-2 +- Rebuilt for https://fedoraproject.org/wiki/Fedora_15_Mass_Rebuild + +* Sun Feb 6 2011 Richard W.M. Jones - 1:1.9.8-1 +- New upstream version 1.9.8. + +* Sun Feb 6 2011 Richard W.M. Jones - 1:1.9.7-7 +- Rebuild against rpm-4.9.0-0.beta1.6.fc15 to fix OCaml deps. See discussion: + http://lists.fedoraproject.org/pipermail/devel/2011-February/148398.html + +* Wed Feb 2 2011 Richard W.M. Jones - 1:1.9.7-6 +- Add temporary non-upstream patch to fix /etc/mtab. + See: https://www.redhat.com/archives/libguestfs/2011-February/msg00006.html +- Add fix for regressions/rhbz557655.sh so it works when tracing is enabled. +- Add guestfs-perl(3) man page. + +* Tue Feb 1 2011 Richard W.M. Jones - 1:1.9.7-3 +- Enable trace in 'make check' section. + +* Sun Jan 30 2011 Richard W.M. Jones - 1:1.9.7-1 +- New upstream version 1.9.7. + +* Wed Jan 26 2011 Richard W.M. Jones - 1:1.9.6-2 +- Bump and rebuild. + +* Sat Jan 22 2011 Richard W.M. Jones - 1:1.9.6-1 +- New upstream version 1.9.6. + +* Tue Jan 18 2011 Richard W.M. Jones - 1:1.9.5-1 +- New upstream version 1.9.5. + +* Sat Jan 15 2011 Richard W.M. Jones - 1:1.9.4-1 +- New upstream version 1.9.4. + +* Fri Jan 14 2011 Richard W.M. Jones - 1:1.9.3-2 +- Only runtime require febootstrap-supermin-helper (not whole of + febootstrap). + +* Tue Jan 11 2011 Richard W.M. Jones - 1:1.9.3-1 +- New upstream version 1.9.3. + +* Wed Jan 05 2011 Richard W.M. Jones - 1:1.9.2-2 +- Bump and rebuild. + +* Mon Jan 3 2011 Richard W.M. Jones - 1:1.9.2-1 +- New upstream version 1.9.2. +- New tools: virt-copy-in, virt-copy-out, virt-tar-in, virt-tar-out. + These are just shell script wrappers around guestfish so they are + included in the guestfish package. + +* Fri Dec 31 2010 Richard W.M. Jones - 1:1.9.1-1 +- New upstream version 1.9.1. + +* Tue Dec 21 2010 Richard W.M. Jones - 1:1.9.0-2 +- Bump and rebuild. + +* Sun Dec 19 2010 Richard W.M. Jones - 1:1.9.0-1 +- New upstream development branch 1.9.0. +- Include ROADMAP in devel package. + +* Thu Dec 16 2010 Richard Jones - 1:1.7.24-1 +- New upstream version 1.7.24. +- Adds getxattr/lgetxattr APIs to support guestfs-browser. + +* Sat Dec 11 2010 Richard Jones - 1:1.7.23-1 +- New upstream version 1.7.23. + +* Sat Dec 11 2010 Richard Jones - 1:1.7.22-1 +- New upstream version 1.7.22. +- Depend on febootstrap 3.3 which fixes the checksum stability problem. + +* Fri Dec 10 2010 Richard Jones - 1:1.7.21-1 +- New upstream version 1.7.21. + +* Tue Dec 7 2010 Richard Jones - 1:1.7.20-1 +- New upstream version 1.7.20. +- Remove patches which are upstream. + +* Tue Dec 7 2010 Richard Jones - 1:1.7.19-15 +- Rebuild appliance with febootstrap 3.1-5 because we accidentally + reopened RHBZ#654638. + +* Mon Dec 6 2010 Richard Jones - 1:1.7.19-14 +- Rebuild appliance properly using febootstrap 3.1 and alternate yum repo. + +* Sun Dec 5 2010 Richard Jones - 1:1.7.19-1 +- New upstream development version 1.7.19. +- Appliance building in this version has been substantially rewritten + and this requires febootstrap >= 3.0 to build. +- createrepo no longer required. +- Supermin appliance is the default. + +* Wed Dec 1 2010 Richard Jones - 1:1.7.18-1 +- New upstream development version 1.7.18. + +* Tue Nov 30 2010 Richard Jones - 1:1.7.17-1 +- New upstream development version 1.7.17. + +* Fri Nov 26 2010 Richard Jones - 1:1.7.16-1 +- New upstream development version 1.7.16. +- guestfish no longer requires pod2text, hence no longer requires perl. +- Require febootstrap >= 2.11. + +* Fri Nov 26 2010 Richard Jones - 1:1.7.15-2 +- New upstream development version 1.7.15. +- Split out new libguestfs-tools-c package from libguestfs-tools. + . This is so that the -tools-c package can be pulled in by people + wanting to avoid a dependency on Perl, while -tools pulls in everything + as before. + . The C tools currently are: cat, df, filesystems, fish, inspector, ls, + mount, rescue. + . guestfish still requires pod2text which requires perl. This will be + rectified in the next release. + . libguestfs-tools no longer pulls in guestfish. +- guestfish also depends on: less, man, vi +- Add BR db4-utils (although since RPM needs it, it not really necessary). +- Runtime requires on db4-utils should be on core lib, not tools package. +- Change all "Requires: perl-Foo" to "Requires: perl(Foo)". + +* Thu Nov 25 2010 Richard Jones - 1:1.7.14-1 +- New upstream development version 1.7.14. + +* Wed Nov 24 2010 Richard Jones - 1:1.7.13-3 +- New upstream development version 1.7.13. +- New manual pages containing example code. +- Ship examples for C, OCaml, Ruby, Python. +- Don't ship HTML versions of man pages. +- Rebase no-fuse-test patch to latest version. + +* Tue Nov 23 2010 Richard Jones - 1:1.7.12-1 +- New upstream development version 1.7.12. +- New tool: virt-filesystems. virt-list-filesystems and virt-list-partitions + are deprecated, but still included in the package. + +* Wed Nov 17 2010 Richard Jones - 1:1.7.11-1 +- New upstream development version 1.7.11. +- Fix Source0 URL which had pointed to the 1.5 directory. +- virt-inspector is not a dependency of guestmount. + +* Wed Nov 17 2010 Richard Jones - 1:1.7.10-1 +- New upstream development version 1.7.10. + +* Tue Nov 16 2010 Richard Jones - 1:1.7.9-1 +- New upstream development version 1.7.9. + +* Mon Nov 15 2010 Richard Jones - 1:1.7.8-1 +- New upstream development version 1.7.8. +- Add Obsoletes so perl-Sys-Guestfs overrides perl-libguestfs (RHBZ#652587). + +* Mon Nov 15 2010 Richard Jones - 1:1.7.7-1 +- New upstream development version 1.7.7. +- Rename perl-libguestfs as perl-Sys-Guestfs (RHBZ#652587). + +* Sat Nov 13 2010 Richard Jones - 1:1.7.6-1 +- New upstream development version 1.7.6. + +* Sat Nov 13 2010 Richard Jones - 1:1.7.5-2 +- New upstream development version 1.7.5. +- Remove hand-installation of Ruby bindings. +- Remove upstream patch. + +* Thu Nov 11 2010 Richard Jones - 1:1.7.4-2 +- New upstream development version 1.7.4. +- ocaml-xml-light is no longer required. +- Remove guestfs-actions.h and guestfs-structs.h. Libguestfs now + only exports a single header file. +- Add patch to fix broken Perl test. +- Remove workaround for RHBZ#563103. + +* Mon Nov 8 2010 Richard Jones - 1:1.7.3-1 +- New upstream development version 1.7.3. +- Add AUTHORS file from tarball. + +* Fri Nov 5 2010 Richard Jones - 1:1.7.2-1 +- New upstream development version 1.7.2. +- Add requires ruby to ruby-libguestfs package. + +* Wed Nov 3 2010 Richard Jones - 1:1.7.1-1 +- New upstream development version 1.7.1. +- Add BR gperf. + +* Tue Nov 2 2010 Richard Jones - 1:1.7.0-1 +- New upstream development branch and version 1.7.0. + +* Fri Oct 29 2010 Richard Jones - 1:1.5.26-1 +- New upstream development version 1.5.26. + +* Thu Oct 28 2010 Richard Jones - 1:1.5.25-1 +- New upstream development version 1.5.25. +- Rewritten virt-inspector. +- Requires febootstrap >= 2.10. +- New virt-inspector requires db_dump program. + +* Wed Oct 27 2010 Richard Jones - 1:1.5.24-2 +- Attempt to run tests. + +* Wed Oct 27 2010 Richard Jones - 1:1.5.24-1 +- New upstream development version 1.5.24. + +* Sat Oct 23 2010 Richard Jones - 1:1.5.23-1 +- Fix for libguestfs: missing disk format specifier when adding a disk + (RHBZ#642934, CVE-2010-3851). + +* Tue Oct 19 2010 Richard Jones - 1:1.5.22-1 +- New upstream development version 1.5.22. + +* Sat Oct 9 2010 Richard Jones - 1:1.5.21-2 +- guestfish no longer requires virt-inspector. + +* Fri Oct 1 2010 Richard Jones - 1:1.5.21-1 +- New upstream development version 1.5.21. + +* Sun Sep 26 2010 Richard Jones - 1:1.5.20-1 +- New upstream development version 1.5.20. + +* Wed Sep 22 2010 Richard Jones - 1:1.5.18-1 +- New upstream development version 1.5.18. +- Note that guestfish '-a' and '-d' options were broken in 1.5.17, so + upgrading to this version is highly recommended. + +* Tue Sep 21 2010 Richard Jones - 1:1.5.17-1 +- New upstream development version 1.5.17. + +* Wed Sep 15 2010 Richard Jones - 1:1.5.16-1 +- New upstream development version 1.5.16. + +* Wed Sep 15 2010 Richard Jones - 1:1.5.15-1 +- New upstream development version 1.5.15. + +* Tue Sep 14 2010 Richard Jones - 1:1.5.14-1 +- New upstream development version 1.5.14. + +* Mon Sep 13 2010 Richard Jones - 1:1.5.13-1 +- New upstream version 1.5.13. +- Removed the patch workaround for RHBZ#630583. The same workaround + is now upstream (the bug is not fixed). + +* Sat Sep 11 2010 Richard Jones - 1:1.5.12-1 +- New upstream version 1.5.12. + +* Fri Sep 10 2010 Richard Jones - 1:1.5.11-1 +- New upstream version 1.5.11. +- Note: fixes a serious bug in guestfish 'copy-out' command. + +* Thu Sep 9 2010 Richard Jones - 1:1.5.10-1 +- New upstream version 1.5.10. + +* Wed Sep 8 2010 Richard Jones - 1:1.5.9-2 +- Disable tests, still failing because of RHBZ#630777. + +* Wed Sep 8 2010 Richard Jones - 1:1.5.9-1 +- New upstream version 1.5.9. + +* Mon Sep 6 2010 Richard Jones - 1:1.5.8-2 +- Add patch to work around RHBZ#630583 and reenable tests. + +* Sat Sep 4 2010 Richard Jones - 1:1.5.8-1 +- New upstream version 1.5.8. +- Add BR po4a for translations of man pages. +- Add PHP bindings. +- Remove partially-translated Japanese webpages. + +* Wed Sep 1 2010 Richard Jones - 1:1.5.7-1 +- New upstream version 1.5.7. +- 'debug' command is enabled by default now. + +* Fri Aug 27 2010 Richard Jones - 1:1.5.6-1 +- New upstream version 1.5.6. + +* Fri Aug 27 2010 Richard Jones - 1:1.5.5-2 +- Use bug-fixed febootstrap 2.9. + +* Thu Aug 26 2010 Richard Jones - 1:1.5.5-1 +- New upstream version 1.5.5. + +* Tue Aug 24 2010 Richard Jones - 1:1.5.4-2 +- Disable tests again, because the Rawhide kernel still won't boot. + +* Tue Aug 24 2010 Richard Jones - 1:1.5.4-1 +- New upstream development version 1.5.4. +- Now requires febootstrap >= 2.8 and qemu >= 0.12. +- Re-enable tests because RHBZ#624854 is supposed to be fixed. +- Upstream Source URL has changed. + +* Wed Aug 18 2010 Richard Jones - 1:1.5.3-2 +- Disable tests because of RHBZ#624854. + +* Tue Aug 17 2010 Richard Jones - 1:1.5.3-1 +- New upstream development version 1.5.3. + +* Wed Aug 11 2010 Richard Jones - 1:1.5.2-6 +- Bump and rebuild. + +* Thu Aug 05 2010 Richard Jones - 1:1.5.2-5 +- Bump and rebuild. + +* Fri Jul 23 2010 David Malcolm - 1:1.5.2-4 +- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild + +* Fri Jul 23 2010 David Malcolm - 1:1.5.2-3 +- Rebuilt for https://fedoraproject.org/wiki/Features/Python_2.7/MassRebuild + +* Thu Jul 22 2010 Richard W.M. Jones - 1:1.5.2-2 +- New upstream development version 1.5.2. +- +BuildRequires: cryptsetup-luks. + +* Wed Jul 21 2010 Richard W.M. Jones - 1:1.5.1-1 +- New upstream development version 1.5.1. + +* Tue Jul 20 2010 Richard W.M. Jones - 1:1.5.0-7 +- Requires binutils (RHBZ#616437). + +* Mon Jul 19 2010 Richard W.M. Jones - 1:1.5.0-6 +- Fix libguestfs-find-requires.sh for new location of hostfiles (RHBZ#615946). + +* Thu Jul 8 2010 Richard W.M. Jones - 1:1.5.0-5 +- Include RELEASE-NOTES in devel package. + +* Thu Jul 8 2010 Richard W.M. Jones - 1:1.5.0-4 +- New development branch 1.5.0. +- Remove two upstream patches. +- Work around permanently broken test-getlogin_r Gnulib test. + +* Mon Jun 28 2010 Richard W.M. Jones - 1:1.3.21-4 +- Explicitly depend on e2fsprogs. +- Add patch to add e2fsprogs to the appliance. +- Add patch to fix GFS kernel module problem. + +* Fri Jun 25 2010 Mamoru Tasaka - 1:1.3.21-2 +- Rebuild + +* Wed Jun 16 2010 Richard W.M. Jones - 1:1.3.21-1 +- New upstream version 1.3.21. + +* Tue Jun 8 2010 Richard W.M. Jones - 1:1.3.20-1 +- New upstream version 1.3.20. +- Since upstream commit a043b6854a0c4 we don't need to run make install + twice. + +* Fri Jun 4 2010 Richard W.M. Jones - 1:1.3.19-1 +- New upstream version 1.3.19. + +* Wed Jun 2 2010 Richard W.M. Jones - 1:1.3.18-1 +- New upstream version 1.3.18. + +* Thu May 27 2010 Richard W.M. Jones - 1:1.3.17-1 +- New upstream version 1.3.17. +- Change repo name to 'fedora-14'. + +* Wed May 26 2010 Richard W.M. Jones - 1:1.3.16-6 +- Co-own bash_completion.d directory. + +* Tue May 25 2010 Richard W.M. Jones - 1:1.3.16-4 +- New upstream version 1.3.16. +- Add guestfish bash tab completion script. + +* Mon May 24 2010 Richard W.M. Jones - 1:1.3.14-1 +- New upstream version 1.3.14. + +* Sun May 16 2010 Richard W.M. Jones - 1:1.3.13-1 +- New upstream version 1.3.13. +- Add BUGS to documentation. +- Force update of hivex dependency to 1.2.2 since it contains + important registry import fixes. +- Remove patch1, now upstream. + +* Fri May 14 2010 Richard W.M. Jones - 1:1.3.12-3 +- Backport supermin build fix from upstream. +- Further changes required for new layout of supermin appliance. + +* Fri May 14 2010 Richard W.M. Jones - 1:1.3.12-1 +- New upstream version 1.3.12. +- febootstrap >= 2.7 is required at compile time and at runtime (at runtime + because of the new febootstrap-supermin-helper). +- Bugs fixed: 591155 591250 576879 591142 588651 507810 521674 559963 516096. + +* Sat May 8 2010 Richard W.M. Jones - 1:1.3.11-1 +- New upstream version 1.3.11. + +* Fri May 7 2010 Richard W.M. Jones - 1:1.3.10-2 +- New upstream version 1.3.10. + +* Thu May 06 2010 Richard W.M. Jones - 1:1.3.9-2 +- Bump and rebuild against updated libconfig + +* Fri Apr 30 2010 Richard W.M. Jones - 1:1.3.9-1 +- New upstream version 1.3.9. + +* Thu Apr 29 2010 Marcela Maslanova - 1:1.3.8-2 +- Mass rebuild with perl-5.12.0 + +* Tue Apr 27 2010 Richard W.M. Jones - 1:1.3.8-1 +- New upstream version 1.3.8. + +* Fri Apr 23 2010 Richard W.M. Jones - 1:1.3.7-1 +- New upstream version 1.3.7. +- NOTE: fixes a segfault in guestfish 1.3.6 when using the -a option. + +* Thu Apr 22 2010 Richard W.M. Jones - 1:1.3.6-1 +- New upstream version 1.3.6. + +* Mon Apr 19 2010 Richard W.M. Jones - 1:1.3.5-1 +- New upstream version 1.3.5. + +* Sat Apr 17 2010 Richard W.M. Jones - 1:1.3.4-1 +- New upstream version 1.3.4. + +* Sun Apr 11 2010 Richard W.M. Jones - 1:1.3.3-1 +- New upstream version 1.3.3. +- New virt-resize option --LV-expand. +- New API: lvresize-free. +- Fixes RHBZ#581501. + +* Sun Apr 11 2010 Richard W.M. Jones - 1:1.3.2-3 +- Disable checksum-device test. + +* Sat Apr 10 2010 Richard W.M. Jones - 1:1.3.2-2 +- Bump and rebuild. + +* Sat Apr 10 2010 Richard W.M. Jones - 1:1.3.2-1 +- New upstream version 1.3.2. +- New APIs: checksum-device, part-del, part-get-bootable, part-get-mbr-id, + part-set-mbr-id, vgscan, ntfsresize, txz-in, txz-out. +- Enhanced/fixed virt-resize tool. +- Enhanced virt-list-partitions tool. +- Fixes: 580016, 580650, 579155, 580556. + +* Sat Apr 10 2010 Richard W.M. Jones - 1:1.3.1-4 +- Bump and rebuild. + +* Thu Apr 8 2010 Richard W.M. Jones - 1:1.3.1-3 +- Runtime requires should only be on libguestfs-tools subpackage. + +* Thu Apr 8 2010 Richard W.M. Jones - 1:1.3.1-2 +- Missing BR on qemu-img package. + +* Thu Apr 8 2010 Richard W.M. Jones - 1:1.3.1-1 +- New upstream version 1.3.1. +- For explanation of apparently large version jump, see: + https://www.redhat.com/archives/libguestfs/2010-April/msg00057.html +- New tool: virt-make-fs. +- New API: guestfs_zero_device. +- Fixes RHBZ#580246 (tar-in command hangs if uploading more than + available space) +- Fixes RHBZ#579664 (guestfish doesn't report error when there is not + enough space for image allocation) +- +BR perl-String-ShellQuote (for virt-make-fs). + +* Tue Mar 30 2010 Richard W.M. Jones - 1:1.0.89-1 +- New upstream version 1.0.89. +- Improved version of virt-win-reg. +- Many smaller bugfixes. +- Requires hivex >= 1.2.1. +- Remove TERM=dumb patch which is now upstream. + +* Tue Mar 30 2010 Richard W.M. Jones - 1:1.0.88-7 +- Backport of TERM=dumb patch from upstream. +- Workaround failure caused by RHBZ#575734. +- Workaround unknown failure of test_swapon_label_0. + +* Tue Mar 30 2010 Richard W.M. Jones - 1:1.0.88-5 +- Attempted workaround for RHBZ#563103, so we can reenable tests. + +* Fri Mar 26 2010 Richard W.M. Jones - 1:1.0.88-2 +- Remember to check in the new sources. + +* Fri Mar 26 2010 Richard W.M. Jones - 1:1.0.88-1 +- New upstream version 1.0.88. +- Mainly small bugfixes. +- Update Spanish translation of libguestfs (RHBZ#576876). +- Use ext4 dev tools on RHEL 5 (RHBZ#576688). +- Add support for minix filesystem (RHBZ#576689). + +* Fri Mar 26 2010 Richard W.M. Jones - 1:1.0.87-2 +- Add vim-minimal to BR, it is now required by the appliance. + +* Tue Mar 23 2010 Richard W.M. Jones - 1:1.0.87-1 +- New upstream version 1.0.87. +- New tools: virt-resize and virt-list-partitions. +- New APIs: guestfs_copy_size; APIs for querying the relationship between + LVM objects. +- Add vim to the virt-rescue appliance. + +* Fri Mar 12 2010 Richard W.M. Jones - 1:1.0.86-1 +- New upstream version 1.0.86. +- libguestfs-supermin-helper rewritten in C (from shell), reduces + appliance boot time by 2-3 seconds. +- Fix parsing of integers in guestfish on 32 bit platforms (RHBZ#569757 + and RHBZ#567567). +- Enhance virt-inspector output for Windows guests. +- Add product_name field to virt-inspector output for all guests. +- Weaken dependencies on libntfs-3g.so, don't include SONAME in dep. +- Remove false dependency on libply (plymouth libraries). +- Spanish translation (RHBZ#570181). +- Fix bash regexp quoting bug. + +* Fri Mar 12 2010 Richard W.M. Jones - 1:1.0.85-4 +- Bump and rebuild. + +* Thu Mar 11 2010 Richard W.M. Jones - 1:1.0.85-3 +- Bump and rebuild. + +* Sat Mar 06 2010 Richard W.M. Jones - 1:1.0.85-2 +- Bump and rebuild. + +* Mon Mar 1 2010 Richard W.M. Jones - 1:1.0.85-1 +- New upstream version 1.0.85. +- Remove hivex, now a separate upstream project and package. +- Remove supermin quoting patch, now upstream. + +* Mon Mar 1 2010 Richard W.M. Jones - 1:1.0.84-6 +- Fix quoting in supermin-split script (RHBZ#566511). +- Don't include bogus './builddir' entries in supermin hostfiles + (RHBZ#566512). + +* Mon Feb 22 2010 Richard W.M. Jones - 1:1.0.84-4 +- Don't include generator.ml in rpm. It's 400K and almost no one will need it. +- Add comments to spec file about how repo building works. +- Whitespace changes in the spec file. + +* Mon Feb 22 2010 Richard W.M. Jones - 1:1.0.84-3 +- Bump and rebuild. + +* Tue Feb 16 2010 Richard W.M. Jones - 1:1.0.84-2 +- Bump and rebuild. + +* Fri Feb 12 2010 Richard W.M. Jones - 1:1.0.84-1 +- New upstream version 1.0.84. + +* Fri Feb 12 2010 Richard W.M. Jones - 1:1.0.83-8 +- Bump and rebuild. + +* Thu Feb 11 2010 Richard W.M. Jones - 1.0.83-7 +- Disable tests. These fail in Koji (on RHEL 5 kernel) because of a + bug in preadv/pwritev emulation in glibc (RHBZ#563103). + +* Tue Feb 9 2010 Matthew Booth - 1.0.83-6 +- Change buildnonet to buildnet +- Allow buildnet, mirror, updates, virtio and runtests to be configured by user + macros. + +* Mon Feb 8 2010 Richard W.M. Jones - 1.0.83-5 +- libguestfs-tools should require perl-XML-Writer (RHBZ#562858). + +* Mon Feb 8 2010 Richard W.M. Jones - 1.0.83-4 +- Use virtio for block device access (RHBZ#509383 is fixed). + +* Fri Feb 5 2010 Richard W.M. Jones - 1.0.83-3 +- Rebuild: possible timing-related build problem in Koji. + +* Fri Feb 5 2010 Richard W.M. Jones - 1.0.83-2 +- New upstream release 1.0.83. +- This release fixes: + Add Marathi translations (RHBZ#561671). + Polish translations (RHBZ#502533). + Add Gujarti translations (Sweta Kothari) (RHBZ#560918). + Update Oriya translations (thanks Manoj Kumar Giri) (RHBZ#559498). + Set locale in C programs so l10n works (RHBZ#559962). + Add Tamil translation (RHBZ#559877) (thanks to I.Felix) + Update Punjabi translation (RHBZ#559480) (thanks Jaswinder Singh) +- There are significant fixes to hive file handling. +- Add hivexsh and manual page. +- Remove two patches, now upstream. + +* Sun Jan 31 2010 Richard W.M. Jones - 1:1.0.82-7 +- Bump and rebuild. + +* Fri Jan 29 2010 Richard W.M. Jones - 1.0.82-6 +- Backport a better fix for RHBZ557655 test from upstream. +- Backport fix for unreadable yum.log from upstream. + +* Thu Jan 28 2010 Richard W.M. Jones - 1.0.82-3 +- Backport RHBZ557655 test fix from upstream. + +* Thu Jan 28 2010 Richard W.M. Jones - 1.0.82-1 +- New upstream version 1.0.82. This includes the two patches + we were carrying, so those are now removed. +- This release fixes: + RHBZ#559498 (Oriya translation). + RHBZ#559480 (Punjabi translation). + RHBZ#558593 (Should prevent corruption by multilib). + RHBZ#559237 (Telugu translation). + RHBZ#557655 (Use xstrtol/xstrtoll to parse integers in guestfish). + RHBZ#557195 (Missing crc kernel modules for recent Linux). +- In addition this contains numerous fixes to the hivex library + for parsing Windows Registry files, making hivex* and virt-win-reg + more robust. +- New API call 'filesize'. + +* Thu Jan 28 2010 Richard W.M. Jones - 1.0.81-8 +- Backport special handling of libgcc_s.so. +- Backport unreadable files patch from RHEL 6 / upstream. + +* Fri Jan 22 2010 Richard W.M. Jones - 1.0.81-5 +- Require febootstrap >= 2.6 (RHBZ#557262). + +* Thu Jan 21 2010 Richard W.M. Jones - 1.0.81-4 +- Rebuild for unannounced soname bump (libntfs-3g.so). + +* Fri Jan 15 2010 Richard W.M. Jones - 1.0.81-3 +- Rebuild for unannounced soname bump (libplybootsplash.so). + +* Thu Jan 14 2010 Richard W.M. Jones - 1.0.81-2 +- Rebuild for broken dependency (iptables soname bump). + +* Wed Jan 13 2010 Richard W.M. Jones - 1.0.81-1 +- New upstream version 1.0.81. +- Remove two upstream patches. +- virt-inspector: Make RPM application data more specific (RHBZ#552718). + +* Tue Jan 12 2010 Richard W.M. Jones - 1.0.80-14 +- Reenable tests because RHBZ#553689 is fixed. + +* Tue Jan 12 2010 Richard W.M. Jones - 1.0.80-13 +- Rebuild because of libparted soname bump (1.9 -> 2.1). + +* Fri Jan 8 2010 Richard W.M. Jones - 1.0.80-12 +- qemu in Rawhide is totally broken (RHBZ#553689). Disable tests. + +* Thu Jan 7 2010 Richard W.M. Jones - 1.0.80-11 +- Remove gfs-utils (deprecated and removed from Fedora 13 by the + upstream Cluster Suite developers). +- Include patch to fix regression in qemu -serial stdio option. + +* Tue Dec 29 2009 Richard W.M. Jones - 1.0.80-10 +- Remove some debugging statements which were left in the requires + script by accident. + +* Mon Dec 21 2009 Richard W.M. Jones - 1.0.80-9 +- Generate additional requires for supermin (RHBZ#547496). + +* Fri Dec 18 2009 Richard W.M. Jones - 1.0.80-3 +- Work around udevsettle command problem (RHBZ#548121). +- Enable tests. + +* Wed Dec 16 2009 Richard W.M. Jones - 1.0.80-2 +- Disable tests because of RHBZ#548121. + +* Wed Dec 16 2009 Richard W.M. Jones - 1.0.80-1 +- New upstream release 1.0.80. +- New Polish translations (RHBZ#502533). +- Give a meaningful error if no usable kernels are found (RHBZ#539746). +- New tool: virt-list-filesystems + +* Fri Dec 4 2009 Stepan Kasal - 1:1.0.79-3 +- rebuild against perl 5.10.1 + +* Wed Nov 18 2009 Richard W.M. Jones - 1.0.79-2 +- New upstream release 1.0.79. +- Adds FUSE test script and multiple fixes for FUSE (RHBZ#538069). +- Fix virt-df in Xen (RHBZ#538041). +- Improve speed of supermin appliance. +- Disable FUSE-related tests because Koji doesn't currently allow them. + fuse: device not found, try 'modprobe fuse' first + +* Tue Nov 10 2009 Richard W.M. Jones - 1.0.78-2 +- New upstream release 1.0.78. +- Many more filesystem types supported by this release - add them + as dependencies. + +* Tue Nov 3 2009 Richard W.M. Jones - 1.0.77-1 +- New upstream release 1.0.77. +- Support for mounting guest in host using FUSE (guestmount command). +- hivex*(1) man pages should be in main package, not -devel, since + they are user commands. +- libguestfs-tools: Fix "self-obsoletion" issue raised by rpmlint. +- perl: Remove bogus script Sys/bindtests.pl. + +* Thu Oct 29 2009 Richard W.M. Jones - 1.0.75-2 +- New upstream release 1.0.75. +- New library: libhivex. +- New tools: virt-win-reg, hivexml, hivexget. +- Don't require chntpw. +- Add BR libxml2-devel, accidentally omitted before. + +* Tue Oct 20 2009 Richard W.M. Jones - 1.0.74-1 +- New upstream release 1.0.74. +- New API call: guestfs_find0. +- New tools: virt-ls, virt-tar. + +* Wed Oct 14 2009 Richard W.M. Jones - 1.0.73-1 +- New upstream release 1.0.73. +- OCaml library now depends on xml-light. +- Deal with installed documentation. + +* Tue Sep 29 2009 Richard W.M. Jones - 1.0.72-2 +- Force rebuild. + +* Wed Sep 23 2009 Richard W.M. Jones - 1.0.72-1 +- New upstream release 1.0.72. +- New tools: virt-edit, virt-rescue. +- Combine virt-cat, virt-df, virt-edit, virt-inspector and virt-rescue + into a single package called libguestfs-tools. + +* Tue Sep 22 2009 Richard W.M. Jones - 1.0.71-2 +- New upstream release 1.0.71. + +* Fri Sep 18 2009 Richard W.M. Jones - 1.0.70-2 +- Perl bindings require perl-XML-XPath (fixed RHBZ#523547). + +* Tue Sep 15 2009 Richard W.M. Jones - 1.0.70-1 +- New upstream release 1.0.70. +- Fixes build problem related to old version of GNU gettext. + +* Tue Sep 15 2009 Richard W.M. Jones - 1.0.69-1 +- New upstream release 1.0.69. +- Reenable the tests (because RHBZ#516543 is supposed to be fixed). +- New main loop code should fix RHBZ#501888, RHBZ#504418. +- Add waitpid along guestfs_close path (fixes RHBZ#518747). + +* Wed Aug 19 2009 Richard W.M. Jones - 1.0.68-2 +- New upstream release 1.0.68. +- BR genisoimage. + +* Thu Aug 13 2009 Richard W.M. Jones - 1.0.67-2 +- New upstream release 1.0.67. + +* Fri Aug 7 2009 Richard W.M. Jones - 1.0.66-5 +- Set network interface to ne2k_pci (workaround for RHBZ#516022). +- Rerun autoconf because patch touches configure script. + +* Thu Aug 6 2009 Richard W.M. Jones - 1.0.66-1 +- New upstream release 1.0.66. + +* Wed Jul 29 2009 Richard W.M. Jones - 1.0.65-1 +- New upstream release 1.0.65. +- Add Obsoletes for virt-df2 (RHBZ#514309). +- Disable tests because of ongoing TCG problems with newest qemu in Rawhide. + +* Thu Jul 23 2009 Richard W.M. Jones - 1.0.64-3 +- RHBZ#513249 bug in qemu is now fixed, so try to rebuild and run tests. +- However RHBZ#503236 still prevents us from testing on i386. + +* Thu Jul 23 2009 Richard W.M. Jones - 1.0.64-1 +- New upstream release 1.0.64. +- New tool 'libguestfs-test-tool'. + +* Wed Jul 15 2009 Richard W.M. Jones - 1.0.61-1 +- New upstream release 1.0.61. +- New tool / subpackage 'virt-cat'. +- New BR perl-libintl. + +* Wed Jul 15 2009 Richard W.M. Jones - 1.0.60-2 +- Fix runtime Requires so they use epoch correctly. + +* Tue Jul 14 2009 Richard W.M. Jones - 1.0.60-1 +- New upstream release 1.0.60. + +* Fri Jul 10 2009 Richard W.M. Jones - 1.0.58-2 +- New upstream release 1.0.58. + +* Fri Jul 10 2009 Richard W.M. Jones - 1.0.57-1 +- New upstream release 1.0.57. +- New tool virt-df (obsoletes existing package with this name). +- RHBZ#507066 may be fixed, so reenable tests. + +* Tue Jul 7 2009 Richard W.M. Jones - 1.0.56-2 +- New upstream release 1.0.56. +- Don't rerun generator. + +* Thu Jul 2 2009 Richard W.M. Jones - 1.0.55-1 +- New upstream release 1.0.55. +- New manual page libguestfs(3). + +* Mon Jun 29 2009 Richard W.M. Jones - 1.0.54-2 +- New upstream release 1.0.54. +- +BR perl-XML-Writer. + +* Wed Jun 24 2009 Richard W.M. Jones - 1.0.53-1 +- New upstream release 1.0.53. +- Disable all tests (because of RHBZ#507066). + +* Wed Jun 24 2009 Richard W.M. Jones - 1.0.52-1 +- New upstream release 1.0.52. + +* Mon Jun 22 2009 Richard W.M. Jones - 1.0.51-1 +- New upstream release 1.0.51. +- Removed patches which are now upstream. + +* Sat Jun 20 2009 Richard W.M. Jones - 1.0.49-5 +- Remove workaround for RHBZ#507007, since bug is now fixed. +- Pull in upstream patch to fix pclose checking + (testing as possible fix for RHBZ#507066). +- Pull in upstream patch to check waitpid return values + (testing as possible fix for RHBZ#507066). + +* Fri Jun 19 2009 Richard W.M. Jones - 1.0.49-2 +- New upstream release 1.0.49. +- Add workaround for RHBZ#507007. + +* Tue Jun 16 2009 Richard W.M. Jones - 1.0.48-2 +- Accidentally omitted the supermin image from previous version. + +* Tue Jun 16 2009 Richard W.M. Jones - 1.0.48-1 +- New upstream release 1.0.48. +- Should fix all the brokenness from 1.0.47. +- Requires febootstrap >= 2.3. + +* Mon Jun 15 2009 Richard W.M. Jones - 1.0.47-2 +- New upstream release 1.0.47. +- Enable experimental supermin appliance build. +- Fix path to appliance. + +* Fri Jun 12 2009 Richard W.M. Jones - 1.0.45-2 +- New upstream release 1.0.45. + +* Wed Jun 10 2009 Richard W.M. Jones - 1.0.44-2 +- Disable ppc/ppc64 tests again because of RHBZ#505109. + +* Wed Jun 10 2009 Richard W.M. Jones - 1.0.44-1 +- New upstream version 1.0.44. +- Try enabling tests on ppc & ppc64 since it looks like the bug(s?) + in qemu which might have caused them to fail have been fixed. + +* Tue Jun 9 2009 Richard W.M. Jones - 1.0.43-1 +- New upstream version 1.0.43. +- New upstream URL. +- Requires chntpw program. + +* Sat Jun 6 2009 Richard W.M. Jones - 1.0.42-1 +- New upstream version 1.0.42. + +* Thu Jun 4 2009 Richard W.M. Jones - 1.0.41-1 +- New upstream version 1.0.41. +- Fixes a number of regressions in RHBZ#503169. + +* Thu Jun 4 2009 Richard W.M. Jones - 1.0.40-1 +- New upstream version 1.0.40. + +* Thu Jun 4 2009 Richard W.M. Jones - 1.0.39-1 +- New upstream version 1.0.39. +- Fixes: + . libguestfs /dev is too sparse for kernel installation/upgrade (RHBZ#503169) + . OCaml bindings build failure (RHBZ#502309) + +* Tue Jun 2 2009 Richard W.M. Jones - 1.0.38-2 +- Disable tests on ix86 because of RHBZ#503236. + +* Tue Jun 2 2009 Richard W.M. Jones - 1.0.38-1 +- New upstream version 1.0.38. + +* Fri May 29 2009 Richard W.M. Jones - 1.0.37-1 +- New upstream version 1.0.37. +- Fixes: + . "mkdir-p" should not throw errors on preexisting directories (RHBZ#503133) + . cramfs and squashfs modules should be available in libguestfs appliances + (RHBZ#503135) + +* Thu May 28 2009 Richard W.M. Jones - 1.0.36-2 +- New upstream version 1.0.36. +- Rerun the generator in prep section. + +* Thu May 28 2009 Richard W.M. Jones - 1.0.35-1 +- New upstream version 1.0.35. +- Fixes multiple bugs in bindings parameters (RHBZ#501892). + +* Wed May 27 2009 Richard W.M. Jones - 1.0.34-1 +- New upstream version 1.0.34. + +* Wed May 27 2009 Richard W.M. Jones - 1.0.33-1 +- New upstream version 1.0.33. +- --with-java-home option is no longer required. +- Upstream contains potential fixes for: + 501878 built-in commands like 'alloc' and 'help' don't autocomplete + 501883 javadoc messed up in libguestfs java documentation + 501885 Doesn't detect missing Java, --with-java-home=no should not be needed + 502533 Polish translation of libguestfs + n/a Allow more ext filesystem kmods (Charles Duffy) + +* Tue May 26 2009 Richard W.M. Jones - 1.0.32-2 +- New upstream version 1.0.32. +- Use %%find_lang macro. + +* Sat May 23 2009 Richard W.M. Jones - 1.0.31-1 +- Rebuild for OCaml 3.11.1. +- New upstream version 1.0.31. + +* Thu May 21 2009 Richard Jones - 1.0.30-1 +- New upstream version 1.0.30. Now includes test-bootbootboot.sh script. + +* Thu May 21 2009 Richard Jones - 1.0.29-3 +- New upstream version 1.0.29 (fixes RHBZ#502007 RHBZ#502018). +- This should allow us to enable tests for i386 and x86-64. +- Added test-bootbootboot.sh script which was missed from 1.0.29 tarball. +- Pass kernel noapic flag to workaround RHBZ#502058. + +* Thu May 21 2009 Richard Jones - 1.0.28-1 +- New upstream version 1.0.28. Nothing has visibly changed, but + the source has been gettextized and we want to check that doesn't + break anything. + +* Thu May 21 2009 Richard Jones - 1.0.27-3 +- Change requirement from qemu -> qemu-kvm (RHBZ#501761). + +* Tue May 19 2009 Richard Jones - 1.0.27-2 +- New upstream version 1.0.27. + +* Mon May 18 2009 Richard Jones - 1.0.26-6 +- Experimentally try to reenable ppc and ppc64 builds. +- Note BZ numbers which are causing tests to fail. + +* Mon May 18 2009 Richard Jones - 1.0.26-1 +- New upstream version 1.0.26. + +* Tue May 12 2009 Richard Jones - 1.0.25-4 +- New upstream version 1.0.25. +- Enable debugging when running the tests. +- Disable tests - don't work correctly in Koji. + +* Tue May 12 2009 Richard Jones - 1.0.24-1 +- New upstream version 1.0.24. +- BRs glibc-static for the new command tests. +- Enable tests. + +* Mon May 11 2009 Richard Jones - 1.0.23-2 +- New upstream version 1.0.23. +- Don't try to use updates during build. + +* Fri May 8 2009 Richard Jones - 1.0.21-3 +- New upstream version 1.0.21. + +* Thu May 7 2009 Richard Jones - 1.0.20-2 +- New upstream version 1.0.20. + +* Thu May 7 2009 Richard Jones - 1.0.19-1 +- New upstream version 1.0.19. + +* Tue Apr 28 2009 Richard Jones - 1.0.15-1 +- New upstream version 1.0.15. + +* Fri Apr 24 2009 Richard Jones - 1.0.12-1 +- New upstream version 1.0.12. + +* Wed Apr 22 2009 Richard Jones - 1.0.6-1 +- New upstream version 1.0.6. + +* Mon Apr 20 2009 Richard Jones - 1.0.2-1 +- New upstream version 1.0.2. + +* Thu Apr 16 2009 Richard Jones - 0.9.9-12 +- Multiple fixes to get it to scratch build in Koji. + +* Sat Apr 4 2009 Richard Jones - 0.9.9-1 +- Initial build.