Initial import (RHBZ#1942114).

Created as a split from libguestfs, see:
https://bugzilla.redhat.com/show_bug.cgi?id=1942114
This commit is contained in:
Richard W.M. Jones 2021-03-25 18:57:30 +00:00
parent fb9b7b85f8
commit 6f2364b74b
11 changed files with 1010 additions and 0 deletions

2
.gitignore vendored Normal file
View File

@ -0,0 +1,2 @@
/guestfs-tools-*.tar.gz
/guestfs-tools-*.tar.gz.sig

View File

@ -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/7] 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

View File

@ -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/7] 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

View File

@ -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/7] 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

View File

@ -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/7] 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

View File

@ -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/7] 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

View File

@ -0,0 +1,64 @@
From b470270d44e8dc37a2417c1157eefdd9c3d65dd1 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Wed, 24 Mar 2021 18:30:45 +0000
Subject: [PATCH 6/7] builder: Use correct ounit2 module.
Fixes: commit 4354a3126152a2748cc9097cba139b3908ccc342
---
builder/Makefile.am | 2 +-
m4/guestfs-ocaml.m4 | 10 +++++-----
2 files changed, 6 insertions(+), 6 deletions(-)
diff --git a/builder/Makefile.am b/builder/Makefile.am
index 4d2e07843c..f49a3b0aaa 100644
--- a/builder/Makefile.am
+++ b/builder/Makefile.am
@@ -192,7 +192,7 @@ if HAVE_OCAML_PKG_GETTEXT
OCAMLPACKAGES += -package gettext-stub
endif
if HAVE_OCAML_PKG_OUNIT
-OCAMLPACKAGES_TESTS += -package oUnit
+OCAMLPACKAGES_TESTS += -package ounit2
endif
OCAMLCLIBS = \
diff --git a/m4/guestfs-ocaml.m4 b/m4/guestfs-ocaml.m4
index a2f6cada9f..f5ac7eff29 100644
--- a/m4/guestfs-ocaml.m4
+++ b/m4/guestfs-ocaml.m4
@@ -105,7 +105,7 @@ if test "x$OCAML_PKG_guestfs" = "xno"; then
fi
OCAML_PKG_gettext=no
-OCAML_PKG_oUnit=no
+OCAML_PKG_ounit2=no
ounit_is_v2=no
have_Bytes_module=no
AS_IF([test "x$OCAMLC" != "xno"],[
@@ -117,11 +117,11 @@ AS_IF([test "x$OCAMLC" != "xno"],[
GUESTFS_CREATE_COMMON_GETTEXT_ML([common/mlgettext/common_gettext.ml])
- AC_CHECK_OCAML_PKG(oUnit)
+ AC_CHECK_OCAML_PKG(ounit2)
# oUnit >= 2 is required, so check that it has OUnit2.
- if test "x$OCAML_PKG_oUnit" != "xno"; then
- AC_CHECK_OCAML_MODULE(ounit_is_v2,[OUnit.OUnit2],OUnit2,[+oUnit])
+ if test "x$OCAML_PKG_ounit2" != "xno"; then
+ AC_CHECK_OCAML_MODULE(ounit_is_v2,[OUnit.OUnit2],OUnit2,[+ounit2])
fi
# Check if we have the 'Bytes' module. If not (OCaml < 4.02) then
@@ -141,7 +141,7 @@ AS_IF([test "x$OCAMLC" != "xno"],[
AM_CONDITIONAL([HAVE_OCAML_PKG_GETTEXT],
[test "x$OCAML_PKG_gettext" != "xno"])
AM_CONDITIONAL([HAVE_OCAML_PKG_OUNIT],
- [test "x$OCAML_PKG_oUnit" != "xno" && test "x$ounit_is_v2" != "xno"])
+ [test "x$OCAML_PKG_ounit2" != "xno" && test "x$ounit_is_v2" != "xno"])
AC_CHECK_PROG([OCAML_GETTEXT],[ocaml-gettext],[ocaml-gettext],[no])
AM_CONDITIONAL([HAVE_OCAML_GETTEXT],
--
2.29.0.rc2

View File

@ -0,0 +1,95 @@
From 6e80a33b70f89c18cd2fbde739243e8c5a7efc25 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 25 Mar 2021 08:14:49 +0000
Subject: [PATCH 7/7] Update common submodule to latest.
---
common | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
Submodule common ca8a16a926..7c39a06fe3:
diff --git a/common/mlstdutils/Makefile.am b/common/mlstdutils/Makefile.am
index 2b4aed8..650f18c 100644
--- a/common/mlstdutils/Makefile.am
+++ b/common/mlstdutils/Makefile.am
@@ -85,7 +85,7 @@ OCAMLPACKAGES = \
-I $(builddir)
OCAMLPACKAGES_TESTS = $(MLSTDUTILS_CMA)
if HAVE_OCAML_PKG_OUNIT
-OCAMLPACKAGES_TESTS += -package oUnit
+OCAMLPACKAGES_TESTS += -package ounit2
endif
OCAMLFLAGS = $(OCAML_FLAGS) $(OCAML_WARN_ERROR) -ccopt '$(CFLAGS)'
diff --git a/common/mltools/Makefile.am b/common/mltools/Makefile.am
index 6bb2b88..5cec178 100644
--- a/common/mltools/Makefile.am
+++ b/common/mltools/Makefile.am
@@ -129,7 +129,7 @@ if HAVE_OCAML_PKG_GETTEXT
OCAMLPACKAGES += -package gettext-stub
endif
if HAVE_OCAML_PKG_OUNIT
-OCAMLPACKAGES_TESTS += -package oUnit
+OCAMLPACKAGES_TESTS += -package ounit2
endif
OCAMLCLIBS = \
@@ -263,7 +263,8 @@ tools_utils_tests_DEPENDENCIES = \
$(MLTOOLS_CMA) \
$(top_srcdir)/ocaml-link.sh
tools_utils_tests_LINK = \
- $(top_srcdir)/ocaml-link.sh -cclib '-lutils $(LIBXML2_LIBS) -lgnu' -- \
+ $(top_srcdir)/ocaml-link.sh \
+ -cclib '-pthread -lpthread -lutils $(LIBXML2_LIBS) -lgnu' -- \
$(OCAMLFIND) $(BEST) $(OCAMLFLAGS) $(OCAMLLINKFLAGS) \
$(OCAMLPACKAGES) $(OCAMLPACKAGES_TESTS) \
$(tools_utils_tests_THEOBJECTS) -o $@
@@ -290,7 +291,8 @@ JSON_tests_DEPENDENCIES = \
$(MLTOOLS_CMA) \
$(top_srcdir)/ocaml-link.sh
JSON_tests_LINK = \
- $(top_srcdir)/ocaml-link.sh -- \
+ $(top_srcdir)/ocaml-link.sh \
+ -cclib '-pthread -lpthread' -- \
$(OCAMLFIND) $(BEST) $(OCAMLFLAGS) $(OCAMLLINKFLAGS) \
$(OCAMLPACKAGES) $(OCAMLPACKAGES_TESTS) \
$(JSON_tests_THEOBJECTS) -o $@
@@ -303,7 +305,8 @@ JSON_parser_tests_DEPENDENCIES = \
$(MLTOOLS_CMA) \
$(top_srcdir)/ocaml-link.sh
JSON_parser_tests_LINK = \
- $(top_srcdir)/ocaml-link.sh -cclib '$(OCAMLCLIBS)' -- \
+ $(top_srcdir)/ocaml-link.sh \
+ -cclib '-pthread -lpthread $(OCAMLCLIBS)' -- \
$(OCAMLFIND) $(BEST) $(OCAMLFLAGS) $(OCAMLLINKFLAGS) \
$(OCAMLPACKAGES) $(OCAMLPACKAGES_TESTS) \
$(JSON_parser_tests_THEOBJECTS) -o $@
diff --git a/common/mlutils/Makefile.am b/common/mlutils/Makefile.am
index e86d7bb..17dfac3 100644
--- a/common/mlutils/Makefile.am
+++ b/common/mlutils/Makefile.am
@@ -112,10 +112,10 @@ c_utils_unit_tests_CFLAGS = $(libmlcutils_a_CFLAGS)
if !HAVE_OCAMLOPT
# Can't call this c_utils_unit_tests_OBJECTS because automake gets confused.
c_utils_unit_tests_THEOBJECTS = $(c_utils_unit_tests_BOBJECTS)
-c_utils_unit_tests.cmo: OCAMLPACKAGES += -package oUnit
+c_utils_unit_tests.cmo: OCAMLPACKAGES += -package ounit2
else
c_utils_unit_tests_THEOBJECTS = $(c_utils_unit_tests_XOBJECTS)
-c_utils_unit_tests.cmx: OCAMLPACKAGES += -package oUnit
+c_utils_unit_tests.cmx: OCAMLPACKAGES += -package ounit2
endif
OCAMLLINKFLAGS = \
@@ -131,7 +131,7 @@ c_utils_unit_tests_DEPENDENCIES = \
c_utils_unit_tests_LINK = \
$(top_srcdir)/ocaml-link.sh -cclib '-lutils -lgnu' -- \
$(OCAMLFIND) $(BEST) $(OCAMLFLAGS) \
- $(OCAMLPACKAGES) -package oUnit \
+ $(OCAMLPACKAGES) -package ounit2 \
$(OCAMLLINKFLAGS) \
$(c_utils_unit_tests_THEOBJECTS) -o $@
--
2.29.0.rc2

406
guestfs-tools.spec Normal file
View File

@ -0,0 +1,406 @@
# 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: 4%{?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
Patch6: 0006-builder-Use-correct-ounit2-module.patch
Patch7: 0007-Update-common-submodule-to-latest.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: 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: perl(Locale::TextDomain)
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 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+
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/*
%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
* 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.

BIN
libguestfs.keyring Normal file

Binary file not shown.

2
sources Normal file
View File

@ -0,0 +1,2 @@
SHA512 (guestfs-tools-1.45.2.tar.gz) = 8cf9a77209ad5f724b68dba8865cd5ea1d2d65f22a7c6c85796eccbff9fd9591cc9cf9d95c5426c60d15005b7bb4e23ce392cefc641e46fa4c0dfca4a6541edd
SHA512 (guestfs-tools-1.45.2.tar.gz.sig) = 52a49d652766e896390e135dd9efa5d109b4094cc1e4a34e5ec8540f992b491754e10c889e3d545a5e4d08bafe3f0ec64af69d494fb39221a4a0f5e74ff18268