From 66aa18f3623f976d1b90eeb7a80377b57487cc13 Mon Sep 17 00:00:00 2001 From: "Richard W.M. Jones" Date: Tue, 23 Mar 2021 11:49:37 +0000 Subject: [PATCH 1/1] New fedora-reviews repository. Start with guestfs-tools. --- guestfs-tools/.gitignore | 2 + ...dfiles-Fix-bogus-directories-in-this-file.patch | 53 +++ ...-t-try-to-install-.3-and-.5-files-which-d.patch | 26 ++ ...emove-dependency-on-gobject-introspection.patch | 129 +++++++ ...-build-Remove-dependency-on-perl-Sys-Virt.patch | 30 ++ ...-rid-of-etc-xdg-and-XDG_CONFIG_DIRS-nonse.patch | 203 +++++++++++ guestfs-tools/guestfs-tools.spec | 392 +++++++++++++++++++++ guestfs-tools/libguestfs.keyring | Bin 0 -> 2823 bytes 8 files changed, 835 insertions(+) create mode 100644 guestfs-tools/.gitignore create mode 100644 guestfs-tools/0001-po-docs-podfiles-Fix-bogus-directories-in-this-file.patch create mode 100644 guestfs-tools/0002-po-docs-Don-t-try-to-install-.3-and-.5-files-which-d.patch create mode 100644 guestfs-tools/0003-build-Remove-dependency-on-gobject-introspection.patch create mode 100644 guestfs-tools/0004-build-Remove-dependency-on-perl-Sys-Virt.patch create mode 100644 guestfs-tools/0005-builder-Get-rid-of-etc-xdg-and-XDG_CONFIG_DIRS-nonse.patch create mode 100644 guestfs-tools/guestfs-tools.spec create mode 100644 guestfs-tools/libguestfs.keyring diff --git a/guestfs-tools/.gitignore b/guestfs-tools/.gitignore new file mode 100644 index 0000000..27c51f8 --- /dev/null +++ b/guestfs-tools/.gitignore @@ -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 index 0000000..1fbb9d9 --- /dev/null +++ b/guestfs-tools/0001-po-docs-podfiles-Fix-bogus-directories-in-this-file.patch @@ -0,0 +1,53 @@ +From 3bcb261f69dab9121a30aa452ef5bb6001c2f58e Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +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 index 0000000..5934c40 --- /dev/null +++ b/guestfs-tools/0002-po-docs-Don-t-try-to-install-.3-and-.5-files-which-d.patch @@ -0,0 +1,26 @@ +From cba4cc0f5148fae6a8ba34c03559b9328749cbf1 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +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 index 0000000..13f7373 --- /dev/null +++ b/guestfs-tools/0003-build-Remove-dependency-on-gobject-introspection.patch @@ -0,0 +1,129 @@ +From 6bfe41474937bbaabd7c953ac62dc9a28aa6fa30 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +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 index 0000000..b845c4d --- /dev/null +++ b/guestfs-tools/0004-build-Remove-dependency-on-perl-Sys-Virt.patch @@ -0,0 +1,30 @@ +From 47efe06984ae1e0ba914ebcf9306d348a5ecd366 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +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 index 0000000..ab82999 --- /dev/null +++ b/guestfs-tools/0005-builder-Get-rid-of-etc-xdg-and-XDG_CONFIG_DIRS-nonse.patch @@ -0,0 +1,203 @@ +From f66af6b6ddfefcbd6ecd6f4d47e0fa4ca231b125 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +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 +-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 ++if not set). + + =back + +@@ -1866,7 +1866,7 @@ Used to determine the location of the template cache. See L. + Used to determine the location of the user' sources. See + L. + +-=item C ++=item C + + Used to determine the location of the system sources. See + L. +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 index 0000000..47a5812 --- /dev/null +++ b/guestfs-tools/guestfs-tools.spec @@ -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 - 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 index 0000000000000000000000000000000000000000..bb3eb5537b7c398a10b7e2b26ca00af011d1a73e GIT binary patch literal 2823 zcma*oXEYm(0><$qB7$nPViakqqNG)u+FR_sQdc{DRukabMCqKo^wCkug~Y-bN=ZdDzIiUZ#$40(0^!V6(C-KH79?s=m3cGghyAo z1|dJMm+eiM>Vb)QYy4I#;Xu&Z^B~&YVZ!Whl6YA`T0fY9jOhHw z+Y;*35;Jx(8F=n(3o5j*bNOr3S) zCOp0NiMsuh^>)x<=&*u##pa25u9;{ZZc=y@%)4CE$a$A}A*UQGOC-D04;}dULUfuV z)^qc0R62lhwbK5pAcC9hk{LK2KJQ&jd|seog-6NxEVm_4X)8y7DYjWwHK2eI$lRku zmeq4z0zkjTs4a++z4bu{k^$N0>0MkG^k~>}tQQd>eap=1)cK}mGM_yYhtaPw3u{n! zU9d7X%GZbXT!~-iaePA-_ZF&Sz{>(|!tON<`4C)es{n-Uesd{GoD$><>+YS*e%6$X zv}81ZQEu&BDa*m|%?xc}K? ztXy1dUpQFtxVqa*MT11aG(ZsGE-C15Js>6$2qig`j06Osg@VW_D8Y0f5+LX{5JVpY zpdhDC^oaLZsK??x8DJOWJSw`FnKV|{5~fVJ%k`yWLJxgLVDcRdn^Wa_F@huK2}*V{VwcRgyv*)4g2Qgt1JGlabiOx*7Fj?B<+5~s41Ba znTns*;eGgN*mTv0;L>wfxeCI*{K-s;9kSV!?`oEYYHR#>`F5iO`ZuDJL%yslOO9&w zhbbHM^ngdugCnWhKqq{uTHT9qS(fk}s?L44SS*-LzWFNMdJ_cZV+Pj}Fc0 z$z?*yD| z^ee!4Z%nhXNm_MKw>GfR!|#AT7wI=d8;#FBd0Dn`;z*2sFEnNL=50xc+d7>-sr4hc z1H^ZFsD|Tz3VZsuG#PhW4A#n%$Hvw9zllAj{C|nDDp3Q9IoOo59u_f15UB-d(i^Ft zm}W~GSou3Y2Zae}aUVFWKJ)XZ-FcZ)f7}5VNSmEBezlPwny+1V!c|G1q2)yJu^>SU zBG(uFdMTFhV(LalnV(s$P>l{I_IXET&d9&(TxDa{R*NCzcuMf&q78elSLN9YIaoM7X!j3`9@_C^pJ@OJh;qD77 z`}&Nz_D*Iq6f;t7?Bqxowet8!npZ$`6NXiVD@~AY_g*>B){{F>D1? zN$g|68|pA_wcr~kt)JAUlnukx>iU8KA)f_4{X1&=@-!^E^P8QCNsCiKiUK_F>Xsli+q$Z*{a2b32CMwb3D{%D_`*E!rm9<3xmVE)l89dYVw5nlryxm zap55S(@vrBI7zH^ydCt_O(Ugr9>qJgQm;i{)`fD?)7n|Jj)=c?=qu9x3%|TVwl?!x z?-#a4>J7h7(TrYP9;;VFFnL~q)11l=W{2zM0PM_#^G-;w9~Y(6gf0(xy$5NJB{8G) z2_PZQC}tF@|I|RCJ_Ct6H6l-=E50j$d5Ku9&`{QVe8Z;T+VX2372^TDbVX-o_tL$y zfM36H?e10e)+AoUd;Ar?$c*rS7DBr*maRLN9n|78-|^BE1bP6RW%uVWO+Eh#-^#2q zU1o2OGeEnJe`vc1&bKa=PK5K>MrUoy*4Di*xQ~Hr8YK=ae$S@5;A6m-C*^N>H6QiE z+Z~%eGDDNK_vktjC^nxMUEXZReG3G^_uml$%lONCD~B)o&u@Ar}fQG5;T#E%^U88SI<&z@~yy|THGE%E1PbI z?F^r&ZTiw{?xi@{*DAy6C4z2C)^HACOJ!QTq)OKNiy$F_ao^+$ziBa!`o*phmK_>s za)NY_nGb%M+@h1zb zdfh2x>9W=SlC19X_yB5T8jPIITr(IuajP65y|~iU>niq=mN|NI*0)B&ixQw`dlhcIFP)G9WnV`}K3C{4m}cRO<&1vJ^K5DAVUo*Z<@ zunwMvxU0NO;ORRnw0-LRLg3}q^7?BlO`eOGFQ3pD@ literal 0 HcmV?d00001 -- 1.8.3.1