import guestfs-tools-1.46.1-6.el9

This commit is contained in:
CentOS Sources 2022-05-17 04:50:30 -04:00 committed by Stepan Oksanichenko
commit 60f3fa9b9f
11 changed files with 987 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
SOURCES/guestfs-tools-1.46.1.tar.gz
SOURCES/libguestfs.keyring

2
.guestfs-tools.metadata Normal file
View File

@ -0,0 +1,2 @@
a34069426419e2c5cabf951f5282cb57a7ba788d SOURCES/guestfs-tools-1.46.1.tar.gz
1bbc40f501a7fef9eef2a39b701a71aee2fea7c4 SOURCES/libguestfs.keyring

View File

@ -0,0 +1,191 @@
From 83de85e717ad525423b0eabe153b48ff8af90bd1 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Mon, 17 May 2021 15:18:04 +0100
Subject: [PATCH] win-reg: Fix output of virt-win-reg --version
Before we split libguestfs and guestfs-tools the version of programs
was exactly the same as the version of libguestfs. This was
convenient for virt-win-reg where it is difficult to encode the
version into the script, because virt-win-reg could simply use the
version from Sys::Guestfs (ie. libguestfs). However after the split
this no longer applies, so we must do the difficult thing.
After this change virt-win-reg will print both the version of
guestfs-tools and the version of libguestfs, eg:
$ virt-win-reg --version
virt-win-reg 1.47.1
libguestfs 1.45.5fedora=35,release=1.fc35,libvirt
Reported-by: Yongkui Guo
Fixes: commit 4354a3126152a2748cc9097cba139b3908ccc342
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1961160
(cherry picked from commit 9e9eeeaf4c4b478eca82bf0d4c3e680a624d6d91)
---
.gitignore | 1 +
configure.ac | 2 ++
po-docs/podfiles | 2 +-
po/POTFILES-pl | 2 +-
po/guestfs-tools.pot | 18 +++++++++---------
win-reg/Makefile.am | 6 ------
win-reg/{virt-win-reg => virt-win-reg.in} | 5 +++--
7 files changed, 17 insertions(+), 19 deletions(-)
rename win-reg/{virt-win-reg => virt-win-reg.in} (99%)
diff --git a/.gitignore b/.gitignore
index 006042a8..6bc509fa 100644
--- a/.gitignore
+++ b/.gitignore
@@ -163,3 +163,4 @@ Makefile.in
/test-data/phony-guests/windows-software
/test-data/phony-guests/windows-system
/website/*.html
+/win-reg/virt-win-reg
diff --git a/configure.ac b/configure.ac
index 56cfef57..ef412670 100644
--- a/configure.ac
+++ b/configure.ac
@@ -99,6 +99,8 @@ AC_CONFIG_FILES([podwrapper.pl],
[chmod +x,-w podwrapper.pl])
AC_CONFIG_FILES([run],
[chmod +x,-w run])
+AC_CONFIG_FILES([win-reg/virt-win-reg],
+ [chmod +x,-w win-reg/virt-win-reg])
AC_CONFIG_FILES([Makefile
align/Makefile
diff --git a/po-docs/podfiles b/po-docs/podfiles
index d7ef1389..6b0c481f 100644
--- a/po-docs/podfiles
+++ b/po-docs/podfiles
@@ -26,4 +26,4 @@ sparsify/virt-sparsify.pod
sysprep/sysprep-extra-options.pod
sysprep/sysprep-operations.pod
sysprep/virt-sysprep.pod
-win-reg/virt-win-reg
+win-reg/virt-win-reg.in
diff --git a/po/POTFILES-pl b/po/POTFILES-pl
index 47d30fc8..c6520cea 100644
--- a/po/POTFILES-pl
+++ b/po/POTFILES-pl
@@ -1 +1 @@
-win-reg/virt-win-reg
+win-reg/virt-win-reg.in
diff --git a/po/guestfs-tools.pot b/po/guestfs-tools.pot
index a3be1b95..d7e9a3a7 100644
--- a/po/guestfs-tools.pot
+++ b/po/guestfs-tools.pot
@@ -9,7 +9,7 @@ msgstr ""
"Project-Id-Version: guestfs-tools 1.46.1\n"
"Report-Msgid-Bugs-To: https://bugzilla.redhat.com/enter_bug.cgi?"
"component=libguestfs&product=Virtualization+Tools\n"
-"POT-Creation-Date: 2021-05-08 08:57+0100\n"
+"POT-Creation-Date: 2021-05-17 15:25+0100\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@@ -4213,11 +4213,11 @@ msgstr ""
msgid "%s: subprocess failed\n"
msgstr ""
-#: win-reg/virt-win-reg:260
+#: win-reg/virt-win-reg.in:261
msgid "no libvirt domain name or disk image given\n"
msgstr ""
-#: win-reg/virt-win-reg:316
+#: win-reg/virt-win-reg.in:317
#, perl-brace-format
msgid ""
"{prog}: No operating system could be detected inside this disk image.\n"
@@ -4230,33 +4230,33 @@ msgid ""
"information about the disk image as possible.\n"
msgstr ""
-#: win-reg/virt-win-reg:320
+#: win-reg/virt-win-reg.in:321
#, perl-brace-format
msgid "{prog}: multiboot operating systems are not supported.\n"
msgstr ""
-#: win-reg/virt-win-reg:342
+#: win-reg/virt-win-reg.in:343
msgid ""
"expecting 1 or 2 more parameters, subkey path and optionally the value to "
"export\n"
msgstr ""
-#: win-reg/virt-win-reg:502
+#: win-reg/virt-win-reg.in:503
#, perl-brace-format
msgid "virt-win-reg: {p}: cannot find user directory\n"
msgstr ""
-#: win-reg/virt-win-reg:507
+#: win-reg/virt-win-reg.in:508
#, perl-brace-format
msgid "virt-win-reg: {p}: not a supported Windows Registry path\n"
msgstr ""
-#: win-reg/virt-win-reg:580
+#: win-reg/virt-win-reg.in:581
#, perl-brace-format
msgid "virt-win-reg: {p}: could not download registry file: {err}\n"
msgstr ""
-#: win-reg/virt-win-reg:597
+#: win-reg/virt-win-reg.in:598
#, perl-brace-format
msgid "virt-win-reg: {p}: could not upload registry file: {err}\n"
msgstr ""
diff --git a/win-reg/Makefile.am b/win-reg/Makefile.am
index 22a22db4..61ec066a 100644
--- a/win-reg/Makefile.am
+++ b/win-reg/Makefile.am
@@ -17,8 +17,6 @@
include $(top_srcdir)/subdir-rules.mk
-EXTRA_DIST = virt-win-reg
-
bin_SCRIPTS = virt-win-reg
# Manual pages and HTML files for the website.
@@ -36,7 +34,3 @@ stamp-virt-win-reg.pod: virt-win-reg
--warning custom \
$<
touch $@
-
-all-local:
- for f in virt-win-reg; do echo win-reg/$$f; done \
- > $(top_srcdir)/po/POTFILES-pl
diff --git a/win-reg/virt-win-reg b/win-reg/virt-win-reg.in
similarity index 99%
rename from win-reg/virt-win-reg
rename to win-reg/virt-win-reg.in
index 1a936c5d..6d9d0a28 100755
--- a/win-reg/virt-win-reg
+++ b/win-reg/virt-win-reg.in
@@ -1,6 +1,6 @@
#!/usr/bin/env perl
# virt-win-reg
-# Copyright (C) 2010 Red Hat Inc.
+# Copyright (C) 2010-2021 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
@@ -234,9 +234,10 @@ my %opts = ("help|?" => \$help,
GetOptions (%opts) or pod2usage (2);
pod2usage (1) if $help;
if ($version) {
+ print "virt-win-reg @PACKAGE_VERSION@\n";
my $g = Sys::Guestfs->new ();
my %h = $g->version ();
- print "virt-win-reg $h{major}.$h{minor}.$h{release}$h{extra}\n";
+ print "libguestfs $h{major}.$h{minor}.$h{release}$h{extra}\n";
exit
}
--
2.31.1

View File

@ -0,0 +1,32 @@
From 662e12ba1a2c2f06151b0f06814e6da0025cff2d Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 5 Oct 2021 20:51:19 +0100
Subject: [PATCH] m4/guestfs-ocaml.m4: Fix deprecated warning format
In OCaml 4.13:
Alert ocaml_deprecated_cli: Setting a warning with a sequence of lowercase or uppercase letters,
like 'CDEFLMPSUVYZX', is deprecated.
Use the equivalent signed form: +C+D+E+F+L+M+P+S+U+V+Y+Z+X+52-3.
(cherry picked from commit fa4f59e1d99c08d7e0bae2a7cb54f254a6506d67)
---
m4/guestfs-ocaml.m4 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/m4/guestfs-ocaml.m4 b/m4/guestfs-ocaml.m4
index f5ac7eff..d2b3804a 100644
--- a/m4/guestfs-ocaml.m4
+++ b/m4/guestfs-ocaml.m4
@@ -166,7 +166,7 @@ EOF
])
dnl Flags we want to pass to every OCaml compiler call.
-OCAML_WARN_ERROR="-warn-error CDEFLMPSUVYZX+52-3"
+OCAML_WARN_ERROR="-warn-error +C+D+E+F+L+M+P+S+U+V+Y+Z+X+52-3"
AC_SUBST([OCAML_WARN_ERROR])
OCAML_FLAGS="-g -annot $safe_string_option"
AC_SUBST([OCAML_FLAGS])
--
2.31.1

View File

@ -0,0 +1,33 @@
From 89617fbe8867254b8c5a77c7fd28ab7746338751 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 5 Oct 2021 20:53:25 +0100
Subject: [PATCH] customize: Suppress OCaml warning
In OCaml 4.13:
File "perl_edit.ml", line 30, characters 2-13:
30 | c_edit_file (verbose ()) g (Guestfs.c_pointer g) file expr
^^^^^^^^^^^
Error (warning 6 [labels-omitted]): label verbose was omitted in the application of this function.
(cherry picked from commit a4930f5fad82e5358d565b8cf3610970e9646259)
---
m4/guestfs-ocaml.m4 | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/m4/guestfs-ocaml.m4 b/m4/guestfs-ocaml.m4
index d2b3804a..8a23877c 100644
--- a/m4/guestfs-ocaml.m4
+++ b/m4/guestfs-ocaml.m4
@@ -166,7 +166,7 @@ EOF
])
dnl Flags we want to pass to every OCaml compiler call.
-OCAML_WARN_ERROR="-warn-error +C+D+E+F+L+M+P+S+U+V+Y+Z+X+52-3"
+OCAML_WARN_ERROR="-warn-error +C+D+E+F+L+M+P+S+U+V+Y+Z+X+52-3-6"
AC_SUBST([OCAML_WARN_ERROR])
OCAML_FLAGS="-g -annot $safe_string_option"
AC_SUBST([OCAML_FLAGS])
--
2.31.1

View File

@ -0,0 +1,38 @@
From e8148241cfd6019e493269580c7fe74d62e0fbdc Mon Sep 17 00:00:00 2001
From: Laszlo Ersek <lersek@redhat.com>
Date: Wed, 13 Oct 2021 18:30:42 +0200
Subject: [PATCH] virt-inspector.rng: recognize "kalilinux" and "msdos" distros
As of libguestfs @ e597fc5317e0, the "string_of_distro" function
[daemon/inspect_types.ml] may output "kalilinux" and "msdos" beyond what
"virt-inspector.rng" currently accepts. Add these distro identifiers to
"virt-inspector.rng" now.
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20211013163043.21837-2-lersek@redhat.com>
Acked-by: Richard W.M. Jones <rjones@redhat.com>
(cherry picked from commit aefdf0dcd4954b822e6a098f7258899f1b6a72b7)
---
inspector/virt-inspector.rng | 2 ++
1 file changed, 2 insertions(+)
diff --git a/inspector/virt-inspector.rng b/inspector/virt-inspector.rng
index 7807e4d7..0a81538e 100644
--- a/inspector/virt-inspector.rng
+++ b/inspector/virt-inspector.rng
@@ -87,10 +87,12 @@
<value>freedos</value>
<value>frugalware</value>
<value>gentoo</value>
+ <value>kalilinux</value>
<value>linuxmint</value>
<value>mageia</value>
<value>mandriva</value>
<value>meego</value>
+ <value>msdos</value>
<value>neokylin</value>
<value>netbsd</value>
<value>openbsd</value>
--
2.31.1

View File

@ -0,0 +1,29 @@
From 8dad474829a8f6874c01a6d85749d8fd66d192ae Mon Sep 17 00:00:00 2001
From: Laszlo Ersek <lersek@redhat.com>
Date: Wed, 13 Oct 2021 18:30:43 +0200
Subject: [PATCH] virt-inspector.rng: Add support for Kylin (RHBZ#1995391).
Similar-to: b8bc491ff59cc1cc24a1935be99cee0c5edfb5be
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20211013163043.21837-3-lersek@redhat.com>
Acked-by: Richard W.M. Jones <rjones@redhat.com>
(cherry picked from commit f041a5e24d8c5850daf7ad8f8e1a284e0445266b)
---
inspector/virt-inspector.rng | 1 +
1 file changed, 1 insertion(+)
diff --git a/inspector/virt-inspector.rng b/inspector/virt-inspector.rng
index 0a81538e..5b460b36 100644
--- a/inspector/virt-inspector.rng
+++ b/inspector/virt-inspector.rng
@@ -88,6 +88,7 @@
<value>frugalware</value>
<value>gentoo</value>
<value>kalilinux</value>
+ <value>kylin</value>
<value>linuxmint</value>
<value>mageia</value>
<value>mandriva</value>
--
2.31.1

View File

@ -0,0 +1,96 @@
From 6f8c270b3fb7b5b3109d2553fef38f128b6137ac Mon Sep 17 00:00:00 2001
From: Laszlo Ersek <lersek@redhat.com>
Date: Thu, 2 Dec 2021 14:10:06 +0100
Subject: [PATCH] sysprep: remove system-local NetworkManager connection
profiles (keyfiles)
Add a simple (default) operation to remove
/etc/NetworkManager/system-connections/*.nmconnection
which arguably carry stale information after the initial creation of the
system disk image.
Note: no side effect callback is invoked. Before commit 576f1541a20c
("sysprep: Use customize module for customizing the guest after
sysprepping.", 2014-03-25), the "delete" operation had been native to
virt-sysprep ("sysprep/sysprep_operation_delete.ml"), and it didn't invoke
side effects. In said commit, "delete" was delegated to virt-customize,
and that was when "side_effects#created_file" was introduced (most likely)
as a catch-all. (We still have the "XXX Did we?" comment today.)
Bugzilla: https://bugzilla.redhat.com/show_bug.cgi?id=1980922
Signed-off-by: Laszlo Ersek <lersek@redhat.com>
Message-Id: <20211202131006.12774-1-lersek@redhat.com>
Acked-by: Richard W.M. Jones <rjones@redhat.com>
(cherry picked from commit 903819ecf480bcefec108bdbd7e9bdec1b3b5a49)
---
sysprep/Makefile.am | 1 +
sysprep/sysprep_operation_net_nmconn.ml | 43 +++++++++++++++++++++++++
2 files changed, 44 insertions(+)
create mode 100644 sysprep/sysprep_operation_net_nmconn.ml
diff --git a/sysprep/Makefile.am b/sysprep/Makefile.am
index d32ab20e..561a71ae 100644
--- a/sysprep/Makefile.am
+++ b/sysprep/Makefile.am
@@ -52,6 +52,7 @@ operations = \
mail_spool \
net_hostname \
net_hwaddr \
+ net_nmconn \
pacct_log \
package_manager_cache \
pam_data \
diff --git a/sysprep/sysprep_operation_net_nmconn.ml b/sysprep/sysprep_operation_net_nmconn.ml
new file mode 100644
index 00000000..2d8667f1
--- /dev/null
+++ b/sysprep/sysprep_operation_net_nmconn.ml
@@ -0,0 +1,43 @@
+(* virt-sysprep
+ * Copyright (C) 2012-2021 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.
+ *)
+
+open Common_gettext.Gettext
+open Sysprep_operation
+
+let glob = "/etc/NetworkManager/system-connections/*.nmconnection"
+
+let net_nmconn_perform (g : Guestfs.guestfs) root side_effects =
+ let typ = g#inspect_get_type root in
+ let distro = g#inspect_get_distro root in
+ match typ, distro with
+ | "linux", ("fedora"|"rhel"|"centos"|"scientificlinux"|"oraclelinux"|
+ "redhat-based") -> Array.iter g#rm_f (g#glob_expand glob)
+ | _ -> ()
+
+let op = {
+ defaults with
+ name = "net-nmconn";
+ enabled_by_default = true;
+ heading = s_"Remove system-local NetworkManager connection profiles \
+ (keyfiles)";
+ pod_description = Some (s_"On Fedora and Red Hat Enterprise Linux, remove \
+ the C<" ^ glob ^ "> files.");
+ perform_on_filesystems = Some net_nmconn_perform;
+}
+
+let () = register_operation op
--
2.31.1

60
SOURCES/copy-patches.sh Executable file
View File

@ -0,0 +1,60 @@
#!/bin/bash -
set -e
# Maintainer script to copy patches from the git repo to the current
# directory. Use it like this:
# ./copy-patches.sh
project=guestfs-tools
rhel_version=9.0
# Check we're in the right directory.
if [ ! -f $project.spec ]; then
echo "$0: run this from the directory containing '$project.spec'"
exit 1
fi
case `id -un` in
rjones) git_checkout=$HOME/d/$project-rhel-$rhel_version ;;
lersek) git_checkout=$HOME/src/guestfs-tools/$project ;;
*) git_checkout=$HOME/d/$project-rhel-$rhel_version ;;
esac
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 "$project release on RHEL."
exit 1
fi
# Get the base version of the project.
version=`grep '^Version:' $project.spec | awk '{print $2}'`
tag="v$version"
# Remove any existing patches.
git rm -f [0-9]*.patch ||:
rm -f [0-9]*.patch
# Get the patches.
(cd $git_checkout; rm -f [0-9]*.patch; git format-patch -N --submodule=diff $tag)
mv $git_checkout/[0-9]*.patch .
# Remove any not to be applied.
rm -f *NOT-FOR-RPM*.patch
# Add the patches.
git add [0-9]*.patch
# Print out the patch lines.
echo
echo "--- Copy the following text into $project.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"

View File

@ -0,0 +1,17 @@
-----BEGIN PGP SIGNATURE-----
iQJFBAABCAAvFiEE93dPsa0HSn6Mh2fqkXOPc+G3aKAFAmCWR4QRHHJpY2hAYW5u
ZXhpYS5vcmcACgkQkXOPc+G3aKB9Qg/5AYHa5Jges5uviaps3aDahEWZjKHdkHOR
ttZ3LGxqUeY8qxwaoLpGfTpFVmTI8VQj6mQES3IeSPOpBYVPeACz7j3GCvhedsv7
naKVIl3RO1koG8IvPUc3H9P3iaNwp9w/8I8qUinbz2++xhP3tideeomz5js0taud
beEry79TvkxRtGRDz50YD3KOv4kVDWS46WN+tms2XJOSTX7SdZavK6VMmX+zt8aT
8oFL6kbGKyk9bswoBLSnbrholBS6l09UbIbfhKr+xvqBgUGvbm2wqTNR7I3T2rPj
19MPW1o/jrjRjPW7j3H73piHP/nD8S8M1Y+yEUycIZh1FEn4EDbVsiVGSbOxWZwP
SKn0+sfuLnoINzT/PyrRKHqoP9U3kUKeanPXk1jZerCF1aBqYL/8a1fExy5Ha4LW
JVq9P9KrWzQ5hfb5Emp+5dR2quroPfBQcRCJP8PC/5Nc0PN/JCngDfPQNScyH4lR
PI51zDIo/E9OHqoAzrOws+Jir4AaZabERO2JDBaibtbZlbOqISOdf05SYaHFfm0u
Tf2PFdDCd9tN1rfcv4zP5EB5Ty/APPkIa0nlhyk0QZPkx23PLF60iuyl4UOZxL5r
IQRadagD17iaYQ9dm+V61YOuYDSr2luRh4FnyPOVJUeeCjbivz/e0f3dmRVlZzpo
s8mtYmo7vUM=
=qllH
-----END PGP SIGNATURE-----

487
SPECS/guestfs-tools.spec Normal file
View File

@ -0,0 +1,487 @@
# Architectures that we run the test suite on.
#
# As the test suite takes a very long time to run and is somewhat
# unreliable on !x86 architectures, only run it on x86-64.
%if !0%{?rhel}
%global test_arches x86_64
%else
# RHEL 9 only:
# x86-64: "/lib64/libc.so.6: CPU ISA level is lower than required"
# (RHBZ#1919389)
%global test_arches NONE
%endif
# Verify tarball signature with GPGv2.
%global verify_tarball_signature 1
# If there are patches which touch autotools files, set this to 1.
%global patches_touch_autotools 1
# The source directory.
%global source_directory 1.46-stable
# Filter perl provides.
%{?perl_default_filter}
Summary: Tools to access and modify virtual machine disk images
Name: guestfs-tools
Version: 1.46.1
Release: 6%{?dist}
License: GPLv2+
# Build only for architectures that have a kernel
ExclusiveArch: %{kernel_arches}
%if 0%{?rhel}
# No qemu-kvm on POWER (RHBZ#1946532).
ExcludeArch: %{power64}
%endif
# Source and patches.
URL: http://libguestfs.org/
Source0: http://download.libguestfs.org/guestfs-tools/%{source_directory}/%{name}-%{version}.tar.gz
%if 0%{verify_tarball_signature}
Source1: http://download.libguestfs.org/guestfs-tools/%{source_directory}/%{name}-%{version}.tar.gz.sig
%endif
# Keyring used to verify tarball signature.
%if 0%{verify_tarball_signature}
Source2: libguestfs.keyring
%endif
# Maintainer script which helps with handling patches.
Source3: copy-patches.sh
# Patches are maintained in the following repository:
# https://github.com/rwmjones/guestfs-tools/commits/rhel-9.0.0
# Fix virt-win-reg --version (RHBZ#1961160)
Patch0001: 0001-win-reg-Fix-output-of-virt-win-reg-version.patch
# Fix detection of Kylin Desktop (RHBZ#2025950)
Patch0002: 0002-m4-guestfs-ocaml.m4-Fix-deprecated-warning-format.patch
Patch0003: 0003-customize-Suppress-OCaml-warning.patch
Patch0004: 0004-virt-inspector.rng-recognize-kalilinux-and-msdos-dis.patch
Patch0005: 0005-virt-inspector.rng-Add-support-for-Kylin-RHBZ-199539.patch
# Clean up NetworkManager connection files (RHBZ#1980922)
Patch0006: 0006-sysprep-remove-system-local-NetworkManager-connectio.patch
%if 0%{patches_touch_autotools}
BuildRequires: autoconf, automake, libtool, gettext-devel
%endif
# Basic build requirements.
BuildRequires: gcc, gcc-c++
BuildRequires: make
BuildRequires: libguestfs-devel >= 1.45.3-1
BuildRequires: libguestfs-xfs
BuildRequires: perl(Pod::Simple)
BuildRequires: perl(Pod::Man)
BuildRequires: perl(Module::Build)
BuildRequires: perl(Test::More)
BuildRequires: /usr/bin/pod2text
BuildRequires: po4a
BuildRequires: pcre2-devel
BuildRequires: libxml2-devel
BuildRequires: jansson-devel
BuildRequires: libvirt-devel
BuildRequires: libxcrypt-devel
BuildRequires: ncurses-devel
BuildRequires: ocaml-libguestfs-devel
BuildRequires: ocaml-findlib-devel
BuildRequires: ocaml-gettext-devel
%if !0%{?rhel}
BuildRequires: ocaml-ounit-devel
%endif
BuildRequires: flex
BuildRequires: bison
BuildRequires: xz-devel
%if !0%{?rhel}
BuildRequires: zip
BuildRequires: unzip
%endif
%if !0%{?rhel}
BuildRequires: perl(Expect)
%endif
BuildRequires: bash-completion
BuildRequires: /usr/bin/qemu-img
BuildRequires: xorriso
BuildRequires: perl(Locale::TextDomain)
BuildRequires: perl(Sys::Guestfs)
BuildRequires: perl(Win::Hivex)
BuildRequires: perl(Win::Hivex::Regedit)
BuildRequires: perl-generators
%if 0%{verify_tarball_signature}
BuildRequires: gnupg2
%endif
# For virt-builder:
Requires: curl
Requires: gnupg2
Requires: /usr/bin/qemu-img
Requires: xz
# For virt-builder-repository:
Suggests: osinfo-db
# For virt-inspector, since Fedora and RHEL >= 7 use XFS:
Recommends: libguestfs-xfs
# For virt-edit and virt-customize:
Suggests: perl
# This replaces the libguestfs-tools-c package.
Provides: libguestfs-tools-c = 1:%{version}-%{release}
Obsoletes: libguestfs-tools-c <= 1:1.45.2-1
%description
guestfs-tools is a set of tools that can be used to make batch
configuration changes to guests, get disk used/free statistics
(virt-df), perform backups and guest clones, change
registry/UUID/hostname info, build guests from scratch (virt-builder)
and much more.
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-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 doesnt 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-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'.
%package -n virt-win-reg
Summary: Access and modify the Windows Registry of a Windows VM
License: GPLv2+
BuildArch: noarch
# This replaces the libguestfs-tools package.
Provides: libguestfs-tools = 1:%{version}-%{release}
Obsoletes: libguestfs-tools <= 1:1.45.2-1
%description -n virt-win-reg
Virt-win-reg lets you look at and modify the Windows Registry of
Windows virtual machines.
%if !0%{?rhel}
%package -n virt-dib
Summary: Safe and secure diskimage-builder replacement
License: GPLv2+
# This subpackage (only) must have an Epoch of 1 because it
# replaces a package in libguestfs which had an Epoch of 1.
Epoch: 1
Requires: libguestfs-dib >= 1:1.45.2-1
%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.
%endif
%package bash-completion
Summary: Bash tab-completion scripts for %{name}
BuildArch: noarch
Requires: bash-completion >= 2.0
Requires: %{name} = %{version}-%{release}
%description bash-completion
Install this package if you want intelligent bash tab-completion
for the virt-* tools.
%package man-pages-ja
Summary: Japanese (ja) man pages for %{name}
BuildArch: noarch
Requires: %{name} = %{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} = %{version}-%{release}
%description man-pages-uk
%{name}-man-pages-uk contains Ukrainian (uk) man pages
for %{name}.
%prep
%if 0%{verify_tarball_signature}
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
%endif
%setup -q
%autopatch -p1
%if 0%{patches_touch_autotools}
autoreconf -i
%endif
%build
%{configure}
# 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.
make -j1 -C builder index-parse.c
make V=1 %{?_smp_mflags}
%check
%ifarch %{test_arches}
# Enable debugging.
export LIBGUESTFS_DEBUG=1
export LIBGUESTFS_TRACE=1
# This test is currently broken and needs further investigation.
export SKIP_TEST_MACHINE_READABLE_SH=1
# This test fails for me in local mock and Koji, but not when running
# in an unrestricted environment.
export SKIP_TEST_VIRT_FORMAT_SH=1
# This test takes too long to run under Koji and times out. It runs
# fine with KVM enabled.
export SKIP_TEST_VIRT_RESIZE_PL=1
if ! make check -k ; then
# Dump out the log files of any failing tests to make
# debugging test failures easier.
for f in `find -name test-suite.log | xargs grep -l ^FAIL:`; do
echo '*****' $f '*****'
cat $f
echo
done
exit 1
fi
%endif
%install
make DESTDIR=$RPM_BUILD_ROOT install
# Delete libtool files.
find $RPM_BUILD_ROOT -name '*.la' -delete
# Move installed documentation back to the source directory so
# we can install it using a %%doc rule.
mv $RPM_BUILD_ROOT%{_docdir}/%{name} installed-docs
gzip --best installed-docs/*.xml
%if 0%{?rhel}
# Remove virt-dib if it was built.
rm -f $RPM_BUILD_ROOT%{_bindir}/virt-dib
rm -f $RPM_BUILD_ROOT%{_mandir}/man1/virt-dib.1*
%endif
# Find locale files.
%find_lang %{name}
# Fix upgrades from old libguestfs-tools-c package
# which had /etc/virt-builder -> xdg/virt-builder.
# https://docs.fedoraproject.org/en-US/packaging-guidelines/Directory_Replacement/
# This can be removed in Fedora > 36.
%pretrans -p <lua>
path = "/etc/virt-builder"
st = posix.stat(path)
if st and st.type == "link" then
os.remove(path)
end
%files -f %{name}.lang
%license COPYING
%doc README
%doc installed-docs/*
%dir %{_sysconfdir}/virt-builder
%dir %{_sysconfdir}/virt-builder/repos.d
%config(noreplace) %{_sysconfdir}/virt-builder/repos.d/*
%{_bindir}/virt-alignment-scan
%{_bindir}/virt-builder
%{_bindir}/virt-builder-repository
%{_bindir}/virt-cat
%{_bindir}/virt-customize
%{_bindir}/virt-df
%{_bindir}/virt-diff
%{_bindir}/virt-edit
%{_bindir}/virt-filesystems
%{_bindir}/virt-format
%{_bindir}/virt-get-kernel
%{_bindir}/virt-index-validate
%{_bindir}/virt-inspector
%{_bindir}/virt-log
%{_bindir}/virt-ls
%{_bindir}/virt-make-fs
%{_bindir}/virt-resize
%{_bindir}/virt-sparsify
%{_bindir}/virt-sysprep
%{_bindir}/virt-tail
%{_mandir}/man1/virt-alignment-scan.1*
%{_mandir}/man1/virt-builder-repository.1*
%{_mandir}/man1/virt-builder.1*
%{_mandir}/man1/virt-cat.1*
%{_mandir}/man1/virt-customize.1*
%{_mandir}/man1/virt-df.1*
%{_mandir}/man1/virt-diff.1*
%{_mandir}/man1/virt-edit.1*
%{_mandir}/man1/virt-filesystems.1*
%{_mandir}/man1/virt-format.1*
%{_mandir}/man1/virt-get-kernel.1*
%{_mandir}/man1/virt-index-validate.1*
%{_mandir}/man1/virt-inspector.1*
%{_mandir}/man1/virt-log.1*
%{_mandir}/man1/virt-ls.1*
%{_mandir}/man1/virt-make-fs.1*
%{_mandir}/man1/virt-resize.1*
%{_mandir}/man1/virt-sparsify.1*
%{_mandir}/man1/virt-sysprep.1*
%{_mandir}/man1/virt-tail.1*
%files -n virt-win-reg
%license COPYING
%doc README
%{_bindir}/virt-win-reg
%{_mandir}/man1/virt-win-reg.1*
%if !0%{?rhel}
%files -n virt-dib
%license COPYING
%doc README
%{_bindir}/virt-dib
%{_mandir}/man1/virt-dib.1*
%endif
%files bash-completion
%license COPYING
%dir %{_datadir}/bash-completion/completions
%{_datadir}/bash-completion/completions/virt-*
%files man-pages-ja
%lang(ja) %{_mandir}/ja/man1/*.1*
%files man-pages-uk
%lang(uk) %{_mandir}/uk/man1/*.1*
%changelog
* Sat Dec 04 2021 Richard W.M. Jones <rjones@redhat.com> - 1.46.1-6
- Clean up NetworkManager connection files
- Add the copy-patches.sh script from virt-v2v
resolves: rhbz#1980922
* Tue Nov 23 2021 Richard W.M. Jones <rjones@redhat.com> - 1.46.1-5
- Fix detection of Kylin Desktop
resolves: rhbz#2025950
* Mon Aug 09 2021 Mohan Boddu <mboddu@redhat.com> - 1.46.1-4.1
- Rebuilt for IMA sigs, glibc 2.34, aarch64 flags
Related: rhbz#1991688
* Wed Jun 2 2021 Richard W.M. Jones <rjones@redhat.com> - 1.46.1-3.el9.1
- Add gating tests (for RHEL 9)
* Mon May 17 2021 Richard W.M. Jones <rjones@redhat.com> - 1.46.1-3
- Fix virt-win-reg --version
resolves: rhbz#1961160
* Thu May 13 2021 Richard W.M. Jones <rjones@redhat.com> - 1.46.1-2
- BR perl-generators so deps of virt-win-reg subpackage are correct.
resolves: rhbz#1960191
* Sat May 08 2021 Richard W.M. Jones <rjones@redhat.com> - 1.46.1-1
- New stable branch version 1.46.1.
* Tue Apr 27 2021 Richard W.M. Jones <rjones@redhat.com> - 1.46.0-1
- New stable branch version 1.46.0.
* Wed Apr 07 2021 Richard W.M. Jones <rjones@redhat.com> - 1.45.3-4
- Use Epoch 1 for virt-dib subpackage (only).
* Wed Mar 31 2021 Richard W.M. Jones <rjones@redhat.com> - 1.45.3-3
- Add BR xorriso, needed to run the tests.
* Mon Mar 29 2021 Richard W.M. Jones <rjones@redhat.com> - 1.45.3-1
- New upstream version 1.45.3.
- Fix symlink replacement of virt-builder directory (RHBZ#1943838).
* Fri Mar 26 2021 Richard W.M. Jones <rjones@redhat.com> - 1.45.2-5
- Skip test-virt-resize.pl that takes too long to run.
* Thu Mar 25 2021 Richard W.M. Jones <rjones@redhat.com> - 1.45.2-4
- Add perl(Test::More) dependency for the Perl test suite.
- Add perl(Module::Build) dependency for the Perl bindings.
- Fix ounit2 dependency again.
* Wed Mar 24 2021 Richard W.M. Jones <rjones@redhat.com> - 1.45.2-2
- Add perl(Locale::TextDomain) dependency for virt-win-reg.
- Fix ounit2 dependency upstream.
* Tue Mar 23 2021 Richard W.M. Jones <rjones@redhat.com> - 1.45.2-1
- New guestfs-tools package, split off from libguestfs.