New fedora-reviews repository.
authorRichard W.M. Jones <rjones@redhat.com>
Tue, 23 Mar 2021 11:49:37 +0000 (11:49 +0000)
committerRichard W.M. Jones <rjones@redhat.com>
Tue, 23 Mar 2021 16:57:20 +0000 (16:57 +0000)
Start with guestfs-tools.

guestfs-tools/.gitignore [new file with mode: 0644]
guestfs-tools/0001-po-docs-podfiles-Fix-bogus-directories-in-this-file.patch [new file with mode: 0644]
guestfs-tools/0002-po-docs-Don-t-try-to-install-.3-and-.5-files-which-d.patch [new file with mode: 0644]
guestfs-tools/0003-build-Remove-dependency-on-gobject-introspection.patch [new file with mode: 0644]
guestfs-tools/0004-build-Remove-dependency-on-perl-Sys-Virt.patch [new file with mode: 0644]
guestfs-tools/0005-builder-Get-rid-of-etc-xdg-and-XDG_CONFIG_DIRS-nonse.patch [new file with mode: 0644]
guestfs-tools/guestfs-tools.spec [new file with mode: 0644]
guestfs-tools/libguestfs.keyring [new file with mode: 0644]

diff --git a/guestfs-tools/.gitignore b/guestfs-tools/.gitignore
new file mode 100644 (file)
index 0000000..27c51f8
--- /dev/null
@@ -0,0 +1,2 @@
+/guestfs-tools-*.tar.gz
+/guestfs-tools-*.tar.gz.sig
diff --git a/guestfs-tools/0001-po-docs-podfiles-Fix-bogus-directories-in-this-file.patch b/guestfs-tools/0001-po-docs-podfiles-Fix-bogus-directories-in-this-file.patch
new file mode 100644 (file)
index 0000000..1fbb9d9
--- /dev/null
@@ -0,0 +1,53 @@
+From 3bcb261f69dab9121a30aa452ef5bb6001c2f58e Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones" <rjones@redhat.com>
+Date: Tue, 23 Mar 2021 14:09:44 +0000
+Subject: [PATCH 1/5] po-docs/podfiles: Fix bogus directories in this file.
+
+These were caused by a partial dist directory having been created, and
+then "make podfiles" being run at the wrong moment.
+
+Fixes: commit 3e6e0b4fd4365118bdc011aaa76347272fa16abd
+---
+ po-docs/podfiles | 26 --------------------------
+ 1 file changed, 26 deletions(-)
+
+diff --git a/po-docs/podfiles b/po-docs/podfiles
+index bf7091320c..d7ef138938 100644
+--- a/po-docs/podfiles
++++ b/po-docs/podfiles
+@@ -19,32 +19,6 @@ diff/virt-diff.pod
+ edit/virt-edit.pod
+ format/virt-format.pod
+ get-kernel/virt-get-kernel.pod
+-guestfs-tools-1.45.2/align/virt-alignment-scan.pod
+-guestfs-tools-1.45.2/builder/virt-builder-repository.pod
+-guestfs-tools-1.45.2/builder/virt-builder.pod
+-guestfs-tools-1.45.2/builder/virt-index-validate.pod
+-guestfs-tools-1.45.2/cat/virt-cat.pod
+-guestfs-tools-1.45.2/cat/virt-filesystems.pod
+-guestfs-tools-1.45.2/cat/virt-log.pod
+-guestfs-tools-1.45.2/cat/virt-ls.pod
+-guestfs-tools-1.45.2/cat/virt-tail.pod
+-guestfs-tools-1.45.2/common/mlcustomize/customize-options.pod
+-guestfs-tools-1.45.2/common/mlcustomize/customize-synopsis.pod
+-guestfs-tools-1.45.2/common/options/blocksize-option.pod
+-guestfs-tools-1.45.2/common/options/key-option.pod
+-guestfs-tools-1.45.2/common/options/keys-from-stdin-option.pod
+-guestfs-tools-1.45.2/customize/virt-customize.pod
+-guestfs-tools-1.45.2/df/virt-df.pod
+-guestfs-tools-1.45.2/dib/virt-dib.pod
+-guestfs-tools-1.45.2/diff/virt-diff.pod
+-guestfs-tools-1.45.2/edit/virt-edit.pod
+-guestfs-tools-1.45.2/format/virt-format.pod
+-guestfs-tools-1.45.2/get-kernel/virt-get-kernel.pod
+-guestfs-tools-1.45.2/inspector/virt-inspector.pod
+-guestfs-tools-1.45.2/make-fs/virt-make-fs.pod
+-guestfs-tools-1.45.2/resize/virt-resize.pod
+-guestfs-tools-1.45.2/sparsify/virt-sparsify.pod
+-guestfs-tools-1.45.2/sysprep/virt-sysprep.pod
+ inspector/virt-inspector.pod
+ make-fs/virt-make-fs.pod
+ resize/virt-resize.pod
+-- 
+2.29.0.rc2
+
diff --git a/guestfs-tools/0002-po-docs-Don-t-try-to-install-.3-and-.5-files-which-d.patch b/guestfs-tools/0002-po-docs-Don-t-try-to-install-.3-and-.5-files-which-d.patch
new file mode 100644 (file)
index 0000000..5934c40
--- /dev/null
@@ -0,0 +1,26 @@
+From cba4cc0f5148fae6a8ba34c03559b9328749cbf1 Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones" <rjones@redhat.com>
+Date: Tue, 23 Mar 2021 12:19:01 +0000
+Subject: [PATCH 2/5] po-docs: Don't try to install *.3 and *.5 files which
+ don't exist.
+
+Fixes: commit 4354a3126152a2748cc9097cba139b3908ccc342
+---
+ po-docs/language.mk | 4 ----
+ 1 file changed, 4 deletions(-)
+
+diff --git a/po-docs/language.mk b/po-docs/language.mk
+index 2c8f7aff6b..ee05183c57 100644
+--- a/po-docs/language.mk
++++ b/po-docs/language.mk
+@@ -117,7 +117,3 @@ virt-sysprep.1: virt-sysprep.pod sysprep-extra-options.pod sysprep-operations.po
+ install-data-hook:
+       $(MKDIR_P) $(DESTDIR)$(mandir)/$(LINGUA)/man1
+       $(INSTALL) -m 0644 $(srcdir)/*.1 $(DESTDIR)$(mandir)/$(LINGUA)/man1
+-      $(MKDIR_P) $(DESTDIR)$(mandir)/$(LINGUA)/man3
+-      $(INSTALL) -m 0644 $(srcdir)/*.3 $(DESTDIR)$(mandir)/$(LINGUA)/man3
+-      $(MKDIR_P) $(DESTDIR)$(mandir)/$(LINGUA)/man5
+-      $(INSTALL) -m 0644 $(srcdir)/*.5 $(DESTDIR)$(mandir)/$(LINGUA)/man5
+-- 
+2.29.0.rc2
+
diff --git a/guestfs-tools/0003-build-Remove-dependency-on-gobject-introspection.patch b/guestfs-tools/0003-build-Remove-dependency-on-gobject-introspection.patch
new file mode 100644 (file)
index 0000000..13f7373
--- /dev/null
@@ -0,0 +1,129 @@
+From 6bfe41474937bbaabd7c953ac62dc9a28aa6fa30 Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones" <rjones@redhat.com>
+Date: Tue, 23 Mar 2021 13:38:56 +0000
+Subject: [PATCH 3/5] build: Remove dependency on gobject-introspection.
+
+Only required for libguestfs GObject bindings, not for these tools.
+
+Fixes: commit 4354a3126152a2748cc9097cba139b3908ccc342
+---
+ Makefile.am         |  1 -
+ m4/introspection.m4 | 94 ---------------------------------------------
+ 2 files changed, 95 deletions(-)
+ delete mode 100644 m4/introspection.m4
+
+diff --git a/Makefile.am b/Makefile.am
+index 382f2db130..b5c1bc0b87 100644
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -75,7 +75,6 @@ EXTRA_DIST = \
+       common/README \
+       lib/guestfs-internal-all.h \
+       m4/.gitignore \
+-      m4/introspection.m4 \
+       podcheck.pl \
+       test-functions.sh \
+       tmp/.gitignore \
+diff --git a/m4/introspection.m4 b/m4/introspection.m4
+deleted file mode 100644
+index 586d679eea..0000000000
+--- a/m4/introspection.m4
++++ /dev/null
+@@ -1,94 +0,0 @@
+-dnl -*- mode: autoconf -*-
+-dnl Copyright 2009 Johan Dahlin
+-dnl
+-dnl This file is free software; the author(s) gives unlimited
+-dnl permission to copy and/or distribute it, with or without
+-dnl modifications, as long as this notice is preserved.
+-dnl
+-
+-# serial 1
+-
+-m4_define([_GOBJECT_INTROSPECTION_CHECK_INTERNAL],
+-[
+-    AC_BEFORE([AC_PROG_LIBTOOL],[$0])dnl setup libtool first
+-    AC_BEFORE([AM_PROG_LIBTOOL],[$0])dnl setup libtool first
+-    AC_BEFORE([LT_INIT],[$0])dnl setup libtool first
+-
+-    dnl enable/disable introspection
+-    m4_if([$2], [require],
+-    [dnl
+-        enable_introspection=yes
+-    ],[dnl
+-        AC_ARG_ENABLE(introspection,
+-                  AS_HELP_STRING([--enable-introspection[=@<:@no/auto/yes@:>@]],
+-                                 [enable introspection for this build]),,
+-                                 [enable_introspection=auto])
+-    ])dnl
+-
+-    AC_MSG_CHECKING([for gobject-introspection])
+-
+-    dnl presence/version checking
+-    AS_CASE([$enable_introspection],
+-    [no], [dnl
+-        found_introspection="no (disabled, use --enable-introspection to enable)"
+-    ],dnl
+-    [yes],[dnl
+-        PKG_CHECK_EXISTS([gobject-introspection-1.0],,
+-                         AC_MSG_ERROR([gobject-introspection-1.0 is not installed]))
+-        PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1],
+-                         found_introspection=yes,
+-                         AC_MSG_ERROR([You need to have gobject-introspection >= $1 installed to build AC_PACKAGE_NAME]))
+-    ],dnl
+-    [auto],[dnl
+-        PKG_CHECK_EXISTS([gobject-introspection-1.0 >= $1], found_introspection=yes, found_introspection=no)
+-    ],dnl
+-    [dnl
+-        AC_MSG_ERROR([invalid argument passed to --enable-introspection, should be one of @<:@no/auto/yes@:>@])
+-    ])dnl
+-
+-    AC_MSG_RESULT([$found_introspection])
+-
+-    INTROSPECTION_SCANNER=
+-    INTROSPECTION_COMPILER=
+-    INTROSPECTION_GENERATE=
+-    INTROSPECTION_GIRDIR=
+-    INTROSPECTION_TYPELIBDIR=
+-    if test "x$found_introspection" = "xyes"; then
+-       INTROSPECTION_SCANNER=`$PKG_CONFIG --variable=g_ir_scanner gobject-introspection-1.0`
+-       INTROSPECTION_COMPILER=`$PKG_CONFIG --variable=g_ir_compiler gobject-introspection-1.0`
+-       INTROSPECTION_GENERATE=`$PKG_CONFIG --variable=g_ir_generate gobject-introspection-1.0`
+-       INTROSPECTION_GIRDIR=`$PKG_CONFIG --variable=girdir gobject-introspection-1.0`
+-       INTROSPECTION_TYPELIBDIR="$($PKG_CONFIG --variable=typelibdir gobject-introspection-1.0)"
+-       INTROSPECTION_CFLAGS=`$PKG_CONFIG --cflags gobject-introspection-1.0`
+-       INTROSPECTION_LIBS=`$PKG_CONFIG --libs gobject-introspection-1.0`
+-       INTROSPECTION_MAKEFILE=`$PKG_CONFIG --variable=datadir gobject-introspection-1.0`/gobject-introspection-1.0/Makefile.introspection
+-    fi
+-    AC_SUBST(INTROSPECTION_SCANNER)
+-    AC_SUBST(INTROSPECTION_COMPILER)
+-    AC_SUBST(INTROSPECTION_GENERATE)
+-    AC_SUBST(INTROSPECTION_GIRDIR)
+-    AC_SUBST(INTROSPECTION_TYPELIBDIR)
+-    AC_SUBST(INTROSPECTION_CFLAGS)
+-    AC_SUBST(INTROSPECTION_LIBS)
+-    AC_SUBST(INTROSPECTION_MAKEFILE)
+-
+-    AM_CONDITIONAL(HAVE_INTROSPECTION, test "x$found_introspection" = "xyes")
+-])
+-
+-
+-dnl Usage:
+-dnl   GOBJECT_INTROSPECTION_CHECK([minimum-g-i-version])
+-
+-AC_DEFUN([GOBJECT_INTROSPECTION_CHECK],
+-[
+-  _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1])
+-])
+-
+-dnl Usage:
+-dnl   GOBJECT_INTROSPECTION_REQUIRE([minimum-g-i-version])
+-
+-
+-AC_DEFUN([GOBJECT_INTROSPECTION_REQUIRE],
+-[
+-  _GOBJECT_INTROSPECTION_CHECK_INTERNAL([$1], [require])
+-])
+-- 
+2.29.0.rc2
+
diff --git a/guestfs-tools/0004-build-Remove-dependency-on-perl-Sys-Virt.patch b/guestfs-tools/0004-build-Remove-dependency-on-perl-Sys-Virt.patch
new file mode 100644 (file)
index 0000000..b845c4d
--- /dev/null
@@ -0,0 +1,30 @@
+From 47efe06984ae1e0ba914ebcf9306d348a5ecd366 Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones" <rjones@redhat.com>
+Date: Tue, 23 Mar 2021 13:52:19 +0000
+Subject: [PATCH 4/5] build: Remove dependency on perl Sys::Virt.
+
+In libguestfs this used to be required to run tests against local
+guests, but it's not needed in either libguestfs or guestfs-tools any
+longer.
+
+Fixes: commit 4354a3126152a2748cc9097cba139b3908ccc342
+---
+ m4/guestfs-perl.m4 | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/m4/guestfs-perl.m4 b/m4/guestfs-perl.m4
+index 4c889d843a..c8337ed9b5 100644
+--- a/m4/guestfs-perl.m4
++++ b/m4/guestfs-perl.m4
+@@ -66,7 +66,7 @@ AM_CONDITIONAL([HAVE_PERL],
+ dnl Check for Perl modules needed by Perl virt tools (virt-df, etc.)
+ AS_IF([test "x$PERL" != "xno"],[
+     missing_perl_modules=no
+-    for pm in Pod::Usage Getopt::Long Sys::Virt Locale::TextDomain Win::Hivex Win::Hivex::Regedit ; do
++    for pm in Pod::Usage Getopt::Long Locale::TextDomain Win::Hivex Win::Hivex::Regedit ; do
+         AC_MSG_CHECKING([for $pm])
+         if ! $PERL -M$pm -e1 >&AS_MESSAGE_LOG_FD 2>&1; then
+             AC_MSG_RESULT([no])
+-- 
+2.29.0.rc2
+
diff --git a/guestfs-tools/0005-builder-Get-rid-of-etc-xdg-and-XDG_CONFIG_DIRS-nonse.patch b/guestfs-tools/0005-builder-Get-rid-of-etc-xdg-and-XDG_CONFIG_DIRS-nonse.patch
new file mode 100644 (file)
index 0000000..ab82999
--- /dev/null
@@ -0,0 +1,203 @@
+From f66af6b6ddfefcbd6ecd6f4d47e0fa4ca231b125 Mon Sep 17 00:00:00 2001
+From: "Richard W.M. Jones" <rjones@redhat.com>
+Date: Tue, 23 Mar 2021 14:06:12 +0000
+Subject: [PATCH 5/5] builder: Get rid of /etc/xdg and XDG_CONFIG_DIRS
+ nonsense.
+
+Put the configuration in /etc/virt-builder as god intended.
+---
+ builder/Makefile.am                             | 8 ++------
+ builder/libguestfs.conf.in                      | 4 ++--
+ builder/opensuse.conf.in                        | 2 +-
+ builder/paths.ml                                | 4 ++--
+ builder/paths.mli                               | 4 ++--
+ builder/test-virt-builder-cacheall.sh           | 2 +-
+ builder/test-virt-builder-list-simplestreams.sh | 2 +-
+ builder/test-virt-builder-list.sh               | 2 +-
+ builder/test-virt-builder-planner.sh            | 2 +-
+ builder/test-virt-builder.sh                    | 2 +-
+ builder/virt-builder.pod                        | 8 ++++----
+ run.in                                          | 6 +++---
+ 12 files changed, 21 insertions(+), 25 deletions(-)
+
+diff --git a/builder/Makefile.am b/builder/Makefile.am
+index d67c8e0ded..4d2e07843c 100644
+--- a/builder/Makefile.am
++++ b/builder/Makefile.am
+@@ -423,12 +423,8 @@ endif
+ # virt-builder's default repository
+-repoconfdir = $(sysconfdir)/xdg/virt-builder/repos.d
+-repoconf_DATA = libguestfs.conf libguestfs.gpg \
+-              opensuse.conf opensuse.gpg
+-
+-install-exec-hook:
+-      $(LN_S) -f xdg/virt-builder $(DESTDIR)$(sysconfdir)/virt-builder
++repoconfdir = $(sysconfdir)/virt-builder/repos.d
++repoconf_DATA = libguestfs.conf libguestfs.gpg opensuse.conf opensuse.gpg
+ # Build a small C index validator program.
+ bin_PROGRAMS += virt-index-validate
+diff --git a/builder/libguestfs.conf.in b/builder/libguestfs.conf.in
+index 412079df64..8d8feab756 100644
+--- a/builder/libguestfs.conf.in
++++ b/builder/libguestfs.conf.in
+@@ -1,7 +1,7 @@
+ [libguestfs.org]
+ uri=http://builder.libguestfs.org/index.asc
+-gpgkey=file://@SYSCONFDIR@/xdg/virt-builder/repos.d/libguestfs.gpg
++gpgkey=file://@SYSCONFDIR@/virt-builder/repos.d/libguestfs.gpg
+ [archive.libguestfs.org]
+ uri=http://archive.libguestfs.org/builder/index.asc
+-gpgkey=file://@SYSCONFDIR@/xdg/virt-builder/repos.d/libguestfs.gpg
++gpgkey=file://@SYSCONFDIR@/virt-builder/repos.d/libguestfs.gpg
+diff --git a/builder/opensuse.conf.in b/builder/opensuse.conf.in
+index 80db267113..19f9796992 100644
+--- a/builder/opensuse.conf.in
++++ b/builder/opensuse.conf.in
+@@ -1,3 +1,3 @@
+ [opensuse.org]
+ uri=http://download.opensuse.org/repositories/Virtualization:/virt-builder-images/images/index
+-gpgkey=file://@SYSCONFDIR@/xdg/virt-builder/repos.d/opensuse.gpg
++gpgkey=file://@SYSCONFDIR@/virt-builder/repos.d/opensuse.gpg
+diff --git a/builder/paths.ml b/builder/paths.ml
+index b8ce57191e..a7b1f4cc63 100644
+--- a/builder/paths.ml
++++ b/builder/paths.ml
+@@ -35,8 +35,8 @@ let xdg_config_home () =
+ let xdg_config_dirs () =
+   let dirs =
+-    try Sys.getenv "XDG_CONFIG_DIRS"
+-    with Not_found -> "/etc/xdg" in
++    try Sys.getenv "VIRT_BUILDER_DIRS"
++    with Not_found -> "/etc" in
+   let dirs = String.nsplit ":" dirs in
+   let dirs = List.filter (fun x -> x <> "") dirs in
+   List.map (fun x -> x // prog) dirs
+diff --git a/builder/paths.mli b/builder/paths.mli
+index 566c323e57..f4897da952 100644
+--- a/builder/paths.mli
++++ b/builder/paths.mli
+@@ -23,6 +23,6 @@ val xdg_config_home : unit -> string option
+ (** [$XDG_CONFIG_HOME/prog] or [$HOME/.config/prog] or [None]. *)
+ val xdg_config_dirs : unit -> string list
+-(** [$XDG_CONFIG_DIRS] (which is a colon-separated path), split.  Empty
++(** [$VIRT_BUILDER_DIRS] (which is a colon-separated path), split.  Empty
+     elements are removed from the list.  If the environment variable
+-    is not set [["/etc/xdg"]] is returned instead. *)
++    is not set [["/etc/virt-builder"]] is returned instead. *)
+diff --git a/builder/test-virt-builder-cacheall.sh b/builder/test-virt-builder-cacheall.sh
+index c80d9ecd2a..26298228a0 100755
+--- a/builder/test-virt-builder-cacheall.sh
++++ b/builder/test-virt-builder-cacheall.sh
+@@ -68,7 +68,7 @@ uri=$indexfile
+ EOF
+ export XDG_CONFIG_HOME=
+-export XDG_CONFIG_DIRS="$tmpdir"
++export VIRT_BUILDER_DIRS="$tmpdir"
+ export XDG_CACHE_HOME="$cachedir"
+ short_list=$($VG virt-builder --no-check-signature --no-cache --list)
+diff --git a/builder/test-virt-builder-list-simplestreams.sh b/builder/test-virt-builder-list-simplestreams.sh
+index 3158066b16..4467971a90 100755
+--- a/builder/test-virt-builder-list-simplestreams.sh
++++ b/builder/test-virt-builder-list-simplestreams.sh
+@@ -22,7 +22,7 @@ $TEST_FUNCTIONS
+ skip_if_skipped
+ export XDG_CONFIG_HOME=
+-export XDG_CONFIG_DIRS="$abs_builddir/test-simplestreams"
++export VIRT_BUILDER_DIRS="$abs_builddir/test-simplestreams"
+ short_list=$($VG virt-builder --no-check-signature --no-cache --list)
+diff --git a/builder/test-virt-builder-list.sh b/builder/test-virt-builder-list.sh
+index 66910fcc3d..a66c1b5d0f 100755
+--- a/builder/test-virt-builder-list.sh
++++ b/builder/test-virt-builder-list.sh
+@@ -24,7 +24,7 @@ $TEST_FUNCTIONS
+ skip_if_skipped
+ export XDG_CONFIG_HOME=
+-export XDG_CONFIG_DIRS="$abs_builddir/test-config"
++export VIRT_BUILDER_DIRS="$abs_builddir/test-config"
+ short_list=$($VG virt-builder --no-check-signature --no-cache --list)
+diff --git a/builder/test-virt-builder-planner.sh b/builder/test-virt-builder-planner.sh
+index 108b70e95f..135319398c 100755
+--- a/builder/test-virt-builder-planner.sh
++++ b/builder/test-virt-builder-planner.sh
+@@ -24,7 +24,7 @@ skip_if_skipped
+ skip_if_backend uml
+ export XDG_CONFIG_HOME=
+-export XDG_CONFIG_DIRS="$abs_builddir/test-config"
++export VIRT_BUILDER_DIRS="$abs_builddir/test-config"
+ if [ ! -f fedora.xz -o ! -f fedora.qcow2 -o ! -f fedora.qcow2.xz ]; then
+     echo "$0: test skipped because there is no fedora.xz, fedora.qcow2 or fedora.qcow2.xz in the build directory"
+diff --git a/builder/test-virt-builder.sh b/builder/test-virt-builder.sh
+index 18673874a3..fe06071370 100755
+--- a/builder/test-virt-builder.sh
++++ b/builder/test-virt-builder.sh
+@@ -22,7 +22,7 @@ $TEST_FUNCTIONS
+ skip_if_skipped
+ export XDG_CONFIG_HOME=
+-export XDG_CONFIG_DIRS="$abs_builddir/test-config"
++export VIRT_BUILDER_DIRS="$abs_builddir/test-config"
+ if [ ! -f fedora.xz ]; then
+     echo "$0: test skipped because there is no fedora.xz in the build directory"
+diff --git a/builder/virt-builder.pod b/builder/virt-builder.pod
+index eddadc7962..a56fa89cb1 100644
+--- a/builder/virt-builder.pod
++++ b/builder/virt-builder.pod
+@@ -1146,9 +1146,9 @@ F<$HOME/.config> if not set).
+ =item *
+-$XDG_CONFIG_DIRS/virt-builder/repos.d/ (where C<$XDG_CONFIG_DIRS>
+-means any of the directories in that environment variable, or just F</etc/xdg>
+-if not set)
++$VIRT_BUILDER_DIRS/virt-builder/repos.d/ (where C<$VIRT_BUILDER_DIRS>
++means any of the directories in that environment variable, or just F</etc>
++if not set).
+ =back
+@@ -1866,7 +1866,7 @@ Used to determine the location of the template cache.  See L</CACHING>.
+ Used to determine the location of the user' sources.  See
+ L</SOURCES OF TEMPLATES>.
+-=item C<XDG_CONFIG_DIRS>
++=item C<VIRT_BUILDER_DIRS>
+ Used to determine the location of the system sources.  See
+ L</SOURCES OF TEMPLATES>.
+diff --git a/run.in b/run.in
+index 5e36aa819b..7b401870d5 100755
+--- a/run.in
++++ b/run.in
+@@ -95,9 +95,9 @@ export PATH
+ # Make virt-builder use the local website copy to avoid hitting
+ # the network all the time.
+-if [ -z "$XDG_CONFIG_DIRS" ]; then
+-    prepend XDG_CONFIG_DIRS "$b/builder/test-website"
+-    export XDG_CONFIG_DIRS
++if [ -z "$VIRT_BUILDER_DIRS" ]; then
++    prepend VIRT_BUILDER_DIRS "$b/builder/test-website"
++    export VIRT_BUILDER_DIRS
+ fi
+ # This is a cheap way to find some use-after-free and uninitialized
+-- 
+2.29.0.rc2
+
diff --git a/guestfs-tools/guestfs-tools.spec b/guestfs-tools/guestfs-tools.spec
new file mode 100644 (file)
index 0000000..47a5812
--- /dev/null
@@ -0,0 +1,392 @@
+# 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.45-development
+
+# Filter perl provides.
+%{?perl_default_filter}
+
+Summary:       Tools to access and modify virtual machine disk images
+Name:          guestfs-tools
+Version:       1.45.2
+Release:       1%{?dist}
+License:       GPLv2+
+
+# Build only for architectures that have a kernel
+ExclusiveArch: %{kernel_arches}
+
+# 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
+
+# Upstream patches to fix various build issues discovered while
+# packaging this for Fedora.
+Patch1:        0001-po-docs-podfiles-Fix-bogus-directories-in-this-file.patch
+Patch2:        0002-po-docs-Don-t-try-to-install-.3-and-.5-files-which-d.patch
+Patch3:        0003-build-Remove-dependency-on-gobject-introspection.patch
+Patch4:        0004-build-Remove-dependency-on-perl-Sys-Virt.patch
+Patch5:        0005-builder-Get-rid-of-etc-xdg-and-XDG_CONFIG_DIRS-nonse.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.44.0
+BuildRequires: libguestfs-xfs
+BuildRequires: perl(Pod::Simple)
+BuildRequires: perl(Pod::Man)
+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: perl(Sys::Guestfs)
+BuildRequires: perl(Win::Hivex)
+BuildRequires: perl(Win::Hivex::Regedit)
+
+%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 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-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+
+
+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
+
+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
+
+
+# Find locale files.
+%find_lang %{name}
+
+
+%files -f %{name}.lang
+%license COPYING
+%doc README
+%doc installed-docs/*
+%{_sysconfdir}/virt-builder
+%dir %{_sysconfdir}/virt-builder
+%dir %{_sysconfdir}/virt-builder/repos.d
+%config %{_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
+%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
+* Tue Mar 23 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.2-1
+- New guestfs-tools package, split off from libguestfs.
diff --git a/guestfs-tools/libguestfs.keyring b/guestfs-tools/libguestfs.keyring
new file mode 100644 (file)
index 0000000..bb3eb55
Binary files /dev/null and b/guestfs-tools/libguestfs.keyring differ