Merged update from upstream sources

This is an automated DistroBaker update from upstream sources.
If you do not know what this is about or would like to opt out,
contact the OSCI team.

Source: https://src.fedoraproject.org/rpms/libguestfs.git#3ad6d7c006d4e91ae53b36d0c736d99778151254
This commit is contained in:
DistroBaker 2021-03-30 14:55:19 +00:00
parent 214ec76a02
commit 68dda0e02f
6 changed files with 358 additions and 442 deletions

View File

@ -0,0 +1,60 @@
From eb53d74ba2e5e9086a5ac8679d55e6a338397e07 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 23 Mar 2021 10:00:12 +0000
Subject: [PATCH 1/2] Don't include huge ChangeLog in the tarball.
Adds a few megabytes which people can easily get from the git
repository.
---
.gitignore | 1 -
Makefile.am | 9 +--------
2 files changed, 1 insertion(+), 9 deletions(-)
diff --git a/.gitignore b/.gitignore
index 716a9b2cd..f6e7d18e5 100644
--- a/.gitignore
+++ b/.gitignore
@@ -81,7 +81,6 @@ Makefile.in
/build-aux/test-driver
/build-aux/ylwrap
/bundled/ocaml-augeas/.depend
-/ChangeLog
/compile
/config.cache
/config.guess
diff --git a/Makefile.am b/Makefile.am
index 9feac761b..743d2fbad 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -215,15 +215,13 @@ maintainer-upload-website:
# When doing 'make dist' update a few files automatically.
#
# BUGS - list of bugs (created from Bugzilla)
-# ChangeLog - changelog (created from git)
# docs/C_SOURCE_FILES
# - source files scanned for internal documentation
# po/POTFILES - files with ordinary extensions, but not OCaml files
# po/POTFILES-ml - OCaml files, which need a special tool to translate
-dist-hook: BUGS ChangeLog docs/C_SOURCE_FILES po/POTFILES po/POTFILES-ml
+dist-hook: BUGS docs/C_SOURCE_FILES po/POTFILES po/POTFILES-ml
cp BUGS $(distdir)/BUGS
- cp ChangeLog $(distdir)/ChangeLog
BUGS: configure.ac
rm -f $@ $@-t
@@ -231,11 +229,6 @@ BUGS: configure.ac
$(top_srcdir)/update-bugs.sh > $@-t
mv $@-t $@
-ChangeLog: configure.ac
- rm -f $@ $@-t
- git log --decorate=false > $@-t
- mv $@-t $@
-
# This has to be in the top-level Makefile.am so that we have access
# to DIST_SUBDIRS.
docs/C_SOURCE_FILES: configure.ac
--
2.29.0.rc2

View File

@ -0,0 +1,34 @@
From 7af98c099c181f0b378a8390fb72f424d4bc7a4a Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 25 Mar 2021 19:44:34 +0000
Subject: [PATCH] Revert "appliance: Use <cpu mode="maximum"/> for -cpu max on
libvirt."
This reverts commit 13ceb6a87b2869909a6a0e3c8caa962b72e4cb0e.
---
lib/launch-libvirt.c | 9 +++++++--
1 file changed, 7 insertions(+), 2 deletions(-)
diff --git a/lib/launch-libvirt.c b/lib/launch-libvirt.c
index 194530c49..2d995bee0 100644
--- a/lib/launch-libvirt.c
+++ b/lib/launch-libvirt.c
@@ -1183,8 +1183,13 @@ construct_libvirt_xml_cpu (guestfs_h *g,
} end_element ();
}
else if (STREQ (cpu_model, "max")) {
- /* https://bugzilla.redhat.com/show_bug.cgi?id=1935572#c11 */
- attribute ("mode", "maximum");
+ if (params->data->is_kvm)
+ attribute ("mode", "host-passthrough");
+ else
+ attribute ("mode", "host-model");
+ start_element ("model") {
+ attribute ("fallback", "allow");
+ } end_element ();
}
else
single_element ("model", cpu_model);
--
2.29.0.rc2

View File

@ -1,80 +0,0 @@
From 282e2f74cf1209ecf6bb18655018b2000a5b36a1 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Thu, 28 Jan 2021 12:20:49 +0000
Subject: [PATCH] appliance: Use -cpu max.
QEMU has a newish feature (from about 2017 / qemu 2.9) called -cpu max
which is supposed to select the best CPU, ideal for libguestfs.
After this change, on x86-64:
KVM TCG
Direct -cpu max -cpu max
(non-libvirt)
Libvirt <cpu mode="host-passthrough"> <cpu mode="host-model">
<model fallback="allow"/> <model fallback="allow"/>
</cpu> </cpu>
---
lib/appliance-cpu.c | 16 ++++++++--------
lib/launch-libvirt.c | 9 +++++++++
2 files changed, 17 insertions(+), 8 deletions(-)
diff --git a/lib/appliance-cpu.c b/lib/appliance-cpu.c
index 5ef9f5c72..54ac6e2e3 100644
--- a/lib/appliance-cpu.c
+++ b/lib/appliance-cpu.c
@@ -38,6 +38,11 @@
*
* The literal string C<"host"> means use C<-cpu host>.
*
+ * =item C<"max">
+ *
+ * The literal string C<"max"> means use C<-cpu max> (the best
+ * possible). This requires awkward translation for libvirt.
+ *
* =item some string
*
* Some string such as C<"cortex-a57"> means use C<-cpu cortex-a57>.
@@ -80,14 +85,9 @@ guestfs_int_get_cpu_model (int kvm)
/* See discussion in https://bugzilla.redhat.com/show_bug.cgi?id=1605071 */
return NULL;
#else
- /* On most architectures, it is faster to pass the CPU host model to
- * the appliance, allowing maximum speed for things like checksums
- * and encryption. Only do this with KVM. It is broken in subtle
- * ways on TCG, and fairly pointless when you're emulating anyway.
+ /* On most architectures we can use "max" to get the best possible CPU.
+ * For recent qemu this should work even on TCG.
*/
- if (kvm)
- return "host";
- else
- return NULL;
+ return "max";
#endif
}
diff --git a/lib/launch-libvirt.c b/lib/launch-libvirt.c
index 026dc6b26..eff1c8f7e 100644
--- a/lib/launch-libvirt.c
+++ b/lib/launch-libvirt.c
@@ -1169,6 +1169,15 @@ construct_libvirt_xml_cpu (guestfs_h *g,
attribute ("fallback", "allow");
} end_element ();
}
+ else if (STREQ (cpu_model, "max")) {
+ if (params->data->is_kvm)
+ attribute ("mode", "host-passthrough");
+ else
+ attribute ("mode", "host-model");
+ start_element ("model") {
+ attribute ("fallback", "allow");
+ } end_element ();
+ }
else
single_element ("model", cpu_model);
} end_element ();
--
2.29.0.rc2

View File

@ -0,0 +1,125 @@
From 4991fe525961450704bbc80b5f2095bc8499f767 Mon Sep 17 00:00:00 2001
From: "Richard W.M. Jones" <rjones@redhat.com>
Date: Tue, 23 Mar 2021 11:08:42 +0000
Subject: [PATCH 2/2] bash-completion: Remove completion scripts for tools.
These have moved to guestfs-tools.
Fixes: commit 733d2182b64df7abc5c5cd7d78177baa6079628c
---
.gitignore | 19 ----------
bash/Makefile.am | 43 +---------------------
bash/{virt-alignment-scan => guestunmount} | 0
3 files changed, 2 insertions(+), 60 deletions(-)
rename bash/{virt-alignment-scan => guestunmount} (100%)
diff --git a/.gitignore b/.gitignore
index f6e7d18e5..a37ab0593 100644
--- a/.gitignore
+++ b/.gitignore
@@ -45,29 +45,10 @@ Makefile.in
/appliance/supermin.d
/AUTHORS
/autom4te.cache
-/bash/guestunmount
-/bash/virt-builder
-/bash/virt-cat
/bash/virt-copy-in
/bash/virt-copy-out
-/bash/virt-customize
-/bash/virt-df
-/bash/virt-dib
-/bash/virt-diff
-/bash/virt-edit
-/bash/virt-filesystems
-/bash/virt-format
-/bash/virt-get-kernel
-/bash/virt-inspector
-/bash/virt-log
-/bash/virt-ls
-/bash/virt-resize
-/bash/virt-sysprep
-/bash/virt-sparsify
-/bash/virt-tail
/bash/virt-tar-in
/bash/virt-tar-out
-/bash/virt-win-reg
/build-aux/.gitignore
/build-aux/ar-lib
/build-aux/compile
diff --git a/bash/Makefile.am b/bash/Makefile.am
index 23933806e..86f38d4af 100644
--- a/bash/Makefile.am
+++ b/bash/Makefile.am
@@ -20,35 +20,16 @@ include $(top_srcdir)/subdir-rules.mk
scripts = \
guestfish \
guestmount \
+ guestunmount \
libguestfs-test-tool \
- virt-alignment-scan \
virt-rescue
# Some of the scripts are simply symbolic links.
symlinks = \
- guestunmount \
- virt-builder \
- virt-cat \
virt-copy-in \
virt-copy-out \
- virt-customize \
- virt-diff \
- virt-df \
- virt-dib \
- virt-edit \
- virt-filesystems \
- virt-format \
- virt-get-kernel \
- virt-inspector \
- virt-log \
- virt-ls \
- virt-resize \
- virt-sparsify \
- virt-sysprep \
- virt-tail \
virt-tar-in \
- virt-tar-out \
- virt-win-reg
+ virt-tar-out
# Note: Don't distribute the symbolic links, only the real files.
EXTRA_DIST = \
@@ -59,26 +40,6 @@ EXTRA_DIST = \
CLEANFILES += \
$(symlinks)
-# Any tool that has --short-options and --long-options only is handled
-# by this common script.
-virt-win-reg:
- rm -f $@
- $(LN_S) libguestfs-test-tool $@
-
-# Any tool that has --short-options and --long-options and a few
-# common options like -d is handled by this common script. However
-# this script cannot deal with commands that use --ro/--rw
-# (eg. virt-rescue), nor commands that have lots of exceptions
-# (eg. guestfish). Those tools have to be handled individually.
-guestunmount \
-virt-builder virt-cat virt-customize virt-df virt-dib virt-diff \
-virt-edit virt-filesystems virt-format virt-get-kernel virt-inspector \
-virt-log virt-ls \
-virt-resize virt-sparsify virt-sysprep \
-virt-tail:
- rm -f $@
- $(LN_S) virt-alignment-scan $@
-
# guestfish is handled specially.
virt-copy-in virt-copy-out virt-tar-in virt-tar-out:
rm -f $@
diff --git a/bash/virt-alignment-scan b/bash/guestunmount
similarity index 100%
rename from bash/virt-alignment-scan
rename to bash/guestunmount
--
2.29.0.rc2

View File

@ -44,7 +44,7 @@
%global patches_touch_autotools 1 %global patches_touch_autotools 1
# The source directory. # The source directory.
%global source_directory 1.44-stable %global source_directory 1.45-development
# Filter perl provides. # Filter perl provides.
%{?perl_default_filter} %{?perl_default_filter}
@ -55,8 +55,8 @@
Summary: Access and modify virtual machine disk images Summary: Access and modify virtual machine disk images
Name: libguestfs Name: libguestfs
Epoch: 1 Epoch: 1
Version: 1.44.0 Version: 1.45.2
Release: 5%{?dist} Release: 2%{?dist}
License: LGPLv2+ License: LGPLv2+
# Build only for architectures that have a kernel # Build only for architectures that have a kernel
@ -86,14 +86,20 @@ Source7: libguestfs.keyring
# Maintainer script which helps with handling patches. # Maintainer script which helps with handling patches.
Source8: copy-patches.sh Source8: copy-patches.sh
# Upstream patch to use -cpu max. # Upstream patches since 1.45.2 was released fixing various build issues.
Patch1: 0001-appliance-Use-cpu-max.patch Patch1: 0001-Don-t-include-huge-ChangeLog-in-the-tarball.patch
Patch2: 0002-bash-completion-Remove-completion-scripts-for-tools.patch
# Non-upstream patch which reverts (temporarily) libvirt cpu maximum.
# This feature requires libvirt 7.1 which is not currently available
# in Fedora 34.
Patch3: 0001-Revert-appliance-Use-cpu-mode-maximum-for-cpu-max-on.patch
%if 0%{patches_touch_autotools} %if 0%{patches_touch_autotools}
BuildRequires: autoconf, automake, libtool, gettext-devel BuildRequires: autoconf, automake, libtool, gettext-devel
%endif %endif
# Basic build requirements for the library and virt tools. # Basic build requirements.
BuildRequires: gcc, gcc-c++ BuildRequires: gcc, gcc-c++
BuildRequires: make BuildRequires: make
BuildRequires: rpcgen BuildRequires: rpcgen
@ -114,7 +120,7 @@ BuildRequires: glibc-static
BuildRequires: libselinux-utils BuildRequires: libselinux-utils
BuildRequires: libselinux-devel BuildRequires: libselinux-devel
BuildRequires: fuse, fuse-devel BuildRequires: fuse, fuse-devel
BuildRequires: pcre-devel BuildRequires: pcre2-devel
BuildRequires: file-devel BuildRequires: file-devel
BuildRequires: libvirt-devel BuildRequires: libvirt-devel
BuildRequires: gperf BuildRequires: gperf
@ -131,7 +137,8 @@ BuildRequires: unzip
BuildRequires: systemd-units BuildRequires: systemd-units
BuildRequires: netpbm-progs BuildRequires: netpbm-progs
BuildRequires: icoutils BuildRequires: icoutils
BuildRequires: libvirt-daemon-kvm >= 5.3.0 #BuildRequires: libvirt-daemon-kvm >= 7.1.0
BuildRequires: libvirt-daemon-kvm
%if !0%{?rhel} %if !0%{?rhel}
BuildRequires: perl(Expect) BuildRequires: perl(Expect)
%endif %endif
@ -145,11 +152,8 @@ BuildRequires: systemd-devel
BuildRequires: bash-completion BuildRequires: bash-completion
BuildRequires: /usr/bin/ping BuildRequires: /usr/bin/ping
BuildRequires: /usr/bin/wget BuildRequires: /usr/bin/wget
BuildRequires: curl
BuildRequires: xz BuildRequires: xz
BuildRequires: /usr/bin/qemu-img BuildRequires: /usr/bin/qemu-img
BuildRequires: perl(Win::Hivex)
BuildRequires: perl(Win::Hivex::Regedit)
%if 0%{verify_tarball_signature} %if 0%{verify_tarball_signature}
BuildRequires: gnupg2 BuildRequires: gnupg2
@ -160,13 +164,14 @@ BuildRequires: ocaml
BuildRequires: ocaml-ocamldoc BuildRequires: ocaml-ocamldoc
BuildRequires: ocaml-findlib-devel BuildRequires: ocaml-findlib-devel
BuildRequires: ocaml-gettext-devel BuildRequires: ocaml-gettext-devel
%if !0%{?rhel}
BuildRequires: ocaml-ounit-devel BuildRequires: ocaml-ounit-devel
%endif
BuildRequires: lua BuildRequires: lua
BuildRequires: lua-devel BuildRequires: lua-devel
BuildRequires: perl-devel BuildRequires: perl-devel
BuildRequires: perl-generators BuildRequires: perl-generators
BuildRequires: perl-macros BuildRequires: perl-macros
BuildRequires: perl(Sys::Virt)
BuildRequires: perl(Test::More) BuildRequires: perl(Test::More)
BuildRequires: perl(Test::Pod) >= 1.00 BuildRequires: perl(Test::Pod) >= 1.00
BuildRequires: perl(Test::Pod::Coverage) >= 1.00 BuildRequires: perl(Test::Pod::Coverage) >= 1.00
@ -213,8 +218,8 @@ BuildRequires: bzip2
BuildRequires: coreutils BuildRequires: coreutils
BuildRequires: cpio BuildRequires: cpio
BuildRequires: cryptsetup BuildRequires: cryptsetup
BuildRequires: curl
%if !0%{?rhel} %if !0%{?rhel}
BuildRequires: curl
BuildRequires: debootstrap BuildRequires: debootstrap
%endif %endif
BuildRequires: dhclient BuildRequires: dhclient
@ -239,12 +244,11 @@ BuildRequires: hfsplus-tools
BuildRequires: hivex BuildRequires: hivex
BuildRequires: iproute BuildRequires: iproute
BuildRequires: iputils BuildRequires: iputils
%if !0%{?rhel}
BuildRequires: jfsutils
%endif
BuildRequires: kernel BuildRequires: kernel
BuildRequires: kmod BuildRequires: kmod
%if !0%{?rhel}
BuildRequires: kpartx BuildRequires: kpartx
%endif
BuildRequires: less BuildRequires: less
BuildRequires: libcap BuildRequires: libcap
%if !0%{?rhel} %if !0%{?rhel}
@ -258,22 +262,16 @@ BuildRequires: lvm2
BuildRequires: lzop BuildRequires: lzop
BuildRequires: mdadm BuildRequires: mdadm
%if !0%{?rhel} %if !0%{?rhel}
BuildRequires: nilfs-utils
%endif
%if !0%{?rhel}
BuildRequires: ntfs-3g ntfsprogs ntfs-3g-system-compression BuildRequires: ntfs-3g ntfsprogs ntfs-3g-system-compression
%endif %endif
BuildRequires: openssh-clients BuildRequires: openssh-clients
BuildRequires: parted BuildRequires: parted
BuildRequires: pciutils BuildRequires: pciutils
BuildRequires: pcre BuildRequires: pcre2
BuildRequires: policycoreutils BuildRequires: policycoreutils
BuildRequires: procps BuildRequires: procps
BuildRequires: psmisc BuildRequires: psmisc
BuildRequires: qemu-img BuildRequires: qemu-img
%if !0%{?rhel}
BuildRequires: reiserfs-utils
%endif
BuildRequires: rsync BuildRequires: rsync
BuildRequires: scrub BuildRequires: scrub
BuildRequires: sed BuildRequires: sed
@ -290,7 +288,9 @@ BuildRequires: tar
BuildRequires: udev BuildRequires: udev
BuildRequires: util-linux BuildRequires: util-linux
BuildRequires: vim-minimal BuildRequires: vim-minimal
%if !0%{?rhel}
BuildRequires: which BuildRequires: which
%endif
BuildRequires: xfsprogs BuildRequires: xfsprogs
BuildRequires: xz BuildRequires: xz
BuildRequires: yajl BuildRequires: yajl
@ -313,7 +313,7 @@ Requires: augeas-libs%{?_isa} >= 1.7.0
Requires: libacl%{?_isa} Requires: libacl%{?_isa}
Requires: libcap%{?_isa} Requires: libcap%{?_isa}
Requires: hivex%{?_isa} >= 1.3.10 Requires: hivex%{?_isa} >= 1.3.10
Requires: pcre%{?_isa} Requires: pcre2%{?_isa}
Requires: libselinux%{?_isa} Requires: libselinux%{?_isa}
Requires: systemd-libs%{?_isa} Requires: systemd-libs%{?_isa}
Requires: yajl%{?_isa} Requires: yajl%{?_isa}
@ -335,22 +335,22 @@ Suggests: qemu-block-iscsi
Suggests: qemu-block-rbd Suggests: qemu-block-rbd
Suggests: qemu-block-ssh Suggests: qemu-block-ssh
Recommends: libvirt-daemon-config-network Recommends: libvirt-daemon-config-network
#Requires: libvirt-daemon-driver-qemu >= 7.1.0
Requires: libvirt-daemon-driver-qemu Requires: libvirt-daemon-driver-qemu
Requires: libvirt-daemon-driver-secret Requires: libvirt-daemon-driver-secret
Recommends: libvirt-daemon-driver-storage-core Recommends: libvirt-daemon-driver-storage-core
Requires: libvirt-daemon-kvm >= 5.3.0
Requires: selinux-policy >= 3.11.1-63 Requires: selinux-policy >= 3.11.1-63
%ifarch aarch64 %ifarch aarch64
Requires: edk2-aarch64 Requires: edk2-aarch64
%endif %endif
# For UML backend (this backend only works on x86). # For guestfish.
# UML has been broken upstream (in the kernel) for a while, so don't #Requires: /usr/bin/emacs #theoretically, but too large
# include this. Note that uml_utilities also depends on Perl. Requires: /usr/bin/hexedit
#% ifarch % {ix86} x86_64 Requires: /usr/bin/less
#Requires: uml_utilities Requires: /usr/bin/man
#% endif Requires: /usr/bin/vi
# https://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries#Packages_granted_exceptions # https://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries#Packages_granted_exceptions
Provides: bundled(gnulib) Provides: bundled(gnulib)
@ -364,29 +364,15 @@ Conflicts: libguestfs-winsupport < 7.2
%endif %endif
%description %description
Libguestfs is a library for accessing and modifying virtual machine Libguestfs is a library for accessing and modifying virtual machine
disk images. http://libguestfs.org disk images. http://libguestfs.org
It 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.
Libguestfs uses Linux kernel and qemu code, and can access any type of Libguestfs uses Linux kernel and qemu code, and can access any type of
guest filesystem that Linux and qemu can, including but not limited guest filesystem that Linux and qemu can, including but not limited
to: ext2/3/4, btrfs, FAT and NTFS, LVM, many different disk partition to: ext2/3/4, btrfs, FAT and NTFS, LVM, many different disk partition
schemes, qcow, qcow2, vmdk. schemes, qcow, qcow2, vmdk.
Libguestfs is split into several subpackages. The basic subpackages are:
libguestfs C library
libguestfs-tools virt-* tools, guestfish and guestmount (FUSE)
libguestfs-tools-c only the subset of virt tools written in C
(for reduced dependencies)
virt-dib safe and secure diskimage-builder replacement
For enhanced features, install: For enhanced features, install:
%if !0%{?rhel} %if !0%{?rhel}
@ -395,11 +381,6 @@ For enhanced features, install:
libguestfs-hfsplus adds HFS+ (Mac filesystem) support libguestfs-hfsplus adds HFS+ (Mac filesystem) support
%endif %endif
libguestfs-inspect-icons adds support for inspecting guest icons libguestfs-inspect-icons adds support for inspecting guest icons
%if !0%{?rhel}
libguestfs-jfs adds JFS support
libguestfs-nilfs adds NILFS v2 support
libguestfs-reiserfs adds ReiserFS support
%endif
libguestfs-rescue enhances virt-rescue shell with more tools libguestfs-rescue enhances virt-rescue shell with more tools
libguestfs-rsync rsync to/from guest filesystems libguestfs-rsync rsync to/from guest filesystems
%if !0%{?rhel} %if !0%{?rhel}
@ -438,9 +419,9 @@ Summary: Development tools and libraries for %{name}
Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release} Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
Requires: pkgconfig Requires: pkgconfig
# For libguestfs-make-fixed-appliance. # libguestfs-make-fixed-appliance requires guestfish.
Requires: xz Requires: xz
Requires: %{name}-tools-c = %{epoch}:%{version}-%{release} Requires: %{name} = %{epoch}:%{version}-%{release}
%description devel %description devel
@ -448,6 +429,17 @@ Requires: %{name}-tools-c = %{epoch}:%{version}-%{release}
for %{name}. for %{name}.
%if !0%{?rhel}
%package dib
Summary: Additional tools for virt-dib
License: LGPLv2+
%description dib
This adds extra packages needed by virt-dib to %{name}. You should
normally install the virt-dib package which depends on this one.
%endif
%if !0%{?rhel} %if !0%{?rhel}
%package forensics %package forensics
Summary: Filesystem forensics support for %{name} Summary: Filesystem forensics support for %{name}
@ -486,50 +478,14 @@ disk images containing HFS+ / Mac OS Extended filesystems.
%endif %endif
%if !0%{?rhel}
%package jfs
Summary: JFS support for %{name}
License: LGPLv2+
Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
%description jfs
This adds JFS support to %{name}. Install it if you want to process
disk images containing JFS.
%endif
%if !0%{?rhel}
%package nilfs
Summary: NILFS support for %{name}
License: LGPLv2+
Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
%description nilfs
This adds NILFS v2 support to %{name}. Install it if you want to process
disk images containing NILFS v2.
%endif
%if !0%{?rhel}
%package reiserfs
Summary: ReiserFS support for %{name}
License: LGPLv2+
Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
%description reiserfs
This adds ReiserFS support to %{name}. Install it if you want to process
disk images containing ReiserFS.
%endif
%package rescue %package rescue
Summary: Additional tools for virt-rescue Summary: virt-rescue shell
License: LGPLv2+ License: LGPLv2+
Requires: %{name}-tools-c = %{epoch}:%{version}-%{release}
%description rescue %description rescue
This adds additional tools to use inside the virt-rescue shell, This adds the virt-rescue shell which is a "rescue disk" for virtual
such as ssh, network utilities, editors and debugging utilities. machines, and additional tools to use inside the shell such as ssh,
network utilities, editors and debugging utilities.
%package rsync %package rsync
@ -598,149 +554,10 @@ The only reason this is a separate package is to avoid core libguestfs
having to depend on Perl. See https://bugzilla.redhat.com/1194158 having to depend on Perl. See https://bugzilla.redhat.com/1194158
%package tools-c
Summary: System administration tools for virtual machines
License: GPLv2+
Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
# For guestfish:
#Requires: /usr/bin/emacs #theoretically, but too large
Requires: /usr/bin/hexedit
Requires: /usr/bin/less
Requires: /usr/bin/man
Requires: /usr/bin/vi
# For virt-builder:
Requires: gnupg2
Requires: xz
#Requires: nbdkit, nbdkit-plugin-xz
Requires: curl
# For virt-builder-repository:
Suggests: osinfo-db
# Some Fedora, and all RHEL 7, use XFS:
Recommends: libguestfs-xfs
# For virt-edit and virt-customize:
Suggests: perl
%description tools-c
This package contains miscellaneous system administrator command line
tools for virtual machines.
Note that you should install %{name}-tools (which pulls in
this package). This package is only used directly when you want
to avoid dependencies on Perl.
%package tools
Summary: System administration tools for virtual machines
License: GPLv2+
BuildArch: noarch
Requires: %{name} = %{epoch}:%{version}-%{release}
Requires: %{name}-tools-c = %{epoch}:%{version}-%{release}
%description tools
This package contains miscellaneous system administrator command line
tools for virtual machines.
Guestfish is the Filesystem Interactive SHell, for accessing and
modifying virtual machine disk images from the command line and shell
scripts.
The guestmount command lets you mount guest filesystems on the host
using FUSE and %{name}.
Virt-alignment-scan scans virtual machines looking for partition
alignment problems.
Virt-builder is a command line tool for rapidly making disk images
of popular free operating systems.
Virt-cat is a command line tool to display the contents of a file in a
virtual machine.
Virt-copy-in and virt-copy-out are command line tools for uploading
and downloading files and directories to and from virtual machines.
Virt-customize is a command line tool for customizing virtual machine
disk images.
Virt-df is a command line tool to display free space on virtual
machine filesystems. Unlike other tools, it 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-rescue provides a rescue shell for making interactive,
unstructured fixes to virtual machines.
Virt-resize can resize existing virtual machine disk images.
Virt-sparsify makes virtual machine disk images sparse (thin-provisioned).
Virt-sysprep lets you reset or unconfigure virtual machines in
preparation for cloning them.
Virt-tail follows (tails) a log file within a guest, like 'tail -f'.
Virt-tar-in and virt-tar-out are archive, backup and upload tools
for virtual machines. These replace the deprecated program virt-tar.
Virt-win-reg lets you look at and modify the Windows Registry of
Windows virtual machines.
%package -n virt-dib
Summary: Safe and secure diskimage-builder replacement
License: GPLv2+
Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release}
%description -n virt-dib
Virt-dib is a safe and secure alternative to the OpenStack
diskimage-builder command. It is compatible with most
diskimage-builder elements.
%package bash-completion %package bash-completion
Summary: Bash tab-completion scripts for %{name} tools Summary: Bash tab-completion scripts for %{name} tools
BuildArch: noarch BuildArch: noarch
Requires: bash-completion >= 2.0 Requires: bash-completion >= 2.0
Requires: %{name}-tools-c = %{epoch}:%{version}-%{release}
%description bash-completion %description bash-completion
@ -954,13 +771,8 @@ fi
--disable-erlang \ --disable-erlang \
$extra $extra
# Building index-parse.c by hand works around a race condition in the
# autotools cruft, where two or more copies of yacc race with each
# other, resulting in a corrupted file.
#
# 'INSTALLDIRS' ensures that Perl and Ruby libs are installed in the # 'INSTALLDIRS' ensures that Perl and Ruby libs are installed in the
# vendor dir not the site dir. # vendor dir not the site dir.
make -j1 -C builder index-parse.c
make V=1 INSTALLDIRS=vendor %{?_smp_mflags} make V=1 INSTALLDIRS=vendor %{?_smp_mflags}
@ -979,11 +791,6 @@ fi
%install %install
# This file is creeping over 1 MB uncompressed, and since it is
# included in the -devel subpackage, compress it to reduce
# installation size.
gzip -9 ChangeLog
# 'INSTALLDIRS' ensures that Perl and Ruby libs are installed in the # 'INSTALLDIRS' ensures that Perl and Ruby libs are installed in the
# vendor dir not the site dir. # vendor dir not the site dir.
make DESTDIR=$RPM_BUILD_ROOT INSTALLDIRS=vendor install make DESTDIR=$RPM_BUILD_ROOT INSTALLDIRS=vendor install
@ -1000,14 +807,6 @@ find $RPM_BUILD_ROOT -name .packlist -delete
find $RPM_BUILD_ROOT -name '*.bs' -delete find $RPM_BUILD_ROOT -name '*.bs' -delete
find $RPM_BUILD_ROOT -name 'bindtests.pl' -delete find $RPM_BUILD_ROOT -name 'bindtests.pl' -delete
# Remove obsolete binaries (RHBZ#1213298).
rm $RPM_BUILD_ROOT%{_bindir}/virt-list-filesystems
rm $RPM_BUILD_ROOT%{_bindir}/virt-list-partitions
rm $RPM_BUILD_ROOT%{_bindir}/virt-tar
rm $RPM_BUILD_ROOT%{_mandir}/man1/virt-list-filesystems.1*
rm $RPM_BUILD_ROOT%{_mandir}/man1/virt-list-partitions.1*
rm $RPM_BUILD_ROOT%{_mandir}/man1/virt-tar.1*
# golang: Ignore what libguestfs upstream installs, and just copy the # golang: Ignore what libguestfs upstream installs, and just copy the
# source files to %%{_datadir}/gocode/src. # source files to %%{_datadir}/gocode/src.
%ifarch %{golang_arches} %ifarch %{golang_arches}
@ -1016,40 +815,47 @@ mkdir -p $RPM_BUILD_ROOT%{_datadir}/gocode/src
cp -a golang/src/libguestfs.org $RPM_BUILD_ROOT%{_datadir}/gocode/src cp -a golang/src/libguestfs.org $RPM_BUILD_ROOT%{_datadir}/gocode/src
%endif %endif
# Move installed documentation back to the source directory so
# we can install it using a %%doc rule.
mv $RPM_BUILD_ROOT%{_docdir}/libguestfs installed-docs
gzip --best installed-docs/*.xml
# Split up the monolithic packages file in the supermin appliance so # Split up the monolithic packages file in the supermin appliance so
# we can install dependencies in subpackages. # we can install dependencies in subpackages.
pushd $RPM_BUILD_ROOT%{_libdir}/guestfs/supermin.d pushd $RPM_BUILD_ROOT%{_libdir}/guestfs/supermin.d
function remove
{
grep -Ev "^$1$" < packages > packages-t
mv packages-t packages
}
function move_to function move_to
{ {
if ! grep -Esq "^$1$" packages; then if ! grep -Esq "^$1$" packages; then
echo "move_to $1: package name not found in packages file" echo "move_to $1: package name not found in packages file"
exit 1 exit 1
fi fi
grep -Ev "^$1$" < packages > packages-t remove "$1"
mv packages-t packages
echo "$1" >> "$2" echo "$1" >> "$2"
} }
move_to curl zz-packages-dib
%if !0%{?rhel} %if !0%{?rhel}
move_to curl zz-packages-dib
move_to debootstrap zz-packages-dib move_to debootstrap zz-packages-dib
%endif
move_to kpartx zz-packages-dib move_to kpartx zz-packages-dib
move_to qemu-img zz-packages-dib move_to qemu-img zz-packages-dib
move_to which zz-packages-dib move_to which zz-packages-dib
%else
remove curl
remove debootstrap
remove kpartx
remove qemu-img
remove which
%endif
%if !0%{?rhel} %if !0%{?rhel}
move_to sleuthkit zz-packages-forensics move_to sleuthkit zz-packages-forensics
move_to gfs2-utils zz-packages-gfs2 move_to gfs2-utils zz-packages-gfs2
move_to hfsplus-tools zz-packages-hfsplus move_to hfsplus-tools zz-packages-hfsplus
move_to jfsutils zz-packages-jfs %else
move_to nilfs-utils zz-packages-nilfs remove sleuthkit
move_to reiserfs-utils zz-packages-reiserfs remove gfs2-utils
remove hfsplus-tools
%endif %endif
move_to iputils zz-packages-rescue move_to iputils zz-packages-rescue
move_to lsof zz-packages-rescue move_to lsof zz-packages-rescue
@ -1063,6 +869,8 @@ move_to xfsprogs zz-packages-xfs
%ifnarch %{arm} aarch64 s390 s390x riscv64 %ifnarch %{arm} aarch64 s390 s390x riscv64
move_to zfs-fuse zz-packages-zfs move_to zfs-fuse zz-packages-zfs
%endif %endif
%else
remove zfs-fuse
%endif %endif
%if !0%{?rhel} %if !0%{?rhel}
@ -1097,23 +905,39 @@ rm ocaml/html/.gitignore
%files -f %{name}.lang %files -f %{name}.lang
%doc COPYING README %doc COPYING README
%{_bindir}/guestfish
%{_bindir}/guestmount
%{_bindir}/guestunmount
%{_bindir}/libguestfs-test-tool %{_bindir}/libguestfs-test-tool
%{_bindir}/virt-copy-in
%{_bindir}/virt-copy-out
%{_bindir}/virt-tar-in
%{_bindir}/virt-tar-out
%{_libdir}/guestfs/ %{_libdir}/guestfs/
%exclude %{_libdir}/guestfs/supermin.d/zz-packages-* %exclude %{_libdir}/guestfs/supermin.d/zz-packages-*
%{_libdir}/libguestfs.so.* %{_libdir}/libguestfs.so.*
%{_mandir}/man1/guestfish.1*
%{_mandir}/man1/guestfs-faq.1* %{_mandir}/man1/guestfs-faq.1*
%{_mandir}/man1/guestfs-performance.1* %{_mandir}/man1/guestfs-performance.1*
%{_mandir}/man1/guestfs-recipes.1* %{_mandir}/man1/guestfs-recipes.1*
%{_mandir}/man1/guestfs-release-notes-1*.1* %{_mandir}/man1/guestfs-release-notes-1*.1*
%{_mandir}/man1/guestfs-release-notes-historical.1* %{_mandir}/man1/guestfs-release-notes-historical.1*
%{_mandir}/man1/guestfs-security.1* %{_mandir}/man1/guestfs-security.1*
%{_mandir}/man1/guestmount.1*
%{_mandir}/man1/guestunmount.1*
%{_mandir}/man1/libguestfs-test-tool.1* %{_mandir}/man1/libguestfs-test-tool.1*
%{_mandir}/man1/virt-copy-in.1*
%{_mandir}/man1/virt-copy-out.1*
%{_mandir}/man1/virt-tar-in.1*
%{_mandir}/man1/virt-tar-out.1*
%{_mandir}/man5/libguestfs-tools.conf.5*
%config %{_sysconfdir}/profile.d/guestfish.sh
%config(noreplace) %{_sysconfdir}/libguestfs-tools.conf
%files devel %files devel
%doc AUTHORS BUGS ChangeLog.gz HACKING TODO README %doc AUTHORS BUGS HACKING TODO README
%doc examples/*.c %doc examples/*.c
%doc installed-docs/*
%{_libdir}/libguestfs.so %{_libdir}/libguestfs.so
%{_sbindir}/libguestfs-make-fixed-appliance %{_sbindir}/libguestfs-make-fixed-appliance
%{_mandir}/man1/guestfs-building.1* %{_mandir}/man1/guestfs-building.1*
@ -1128,6 +952,11 @@ rm ocaml/html/.gitignore
%{_libdir}/pkgconfig/libguestfs.pc %{_libdir}/pkgconfig/libguestfs.pc
%if !0%{?rhel}
%files dib
%{_libdir}/guestfs/supermin.d/zz-packages-dib
%endif
%if !0%{?rhel} %if !0%{?rhel}
%files forensics %files forensics
%{_libdir}/guestfs/supermin.d/zz-packages-forensics %{_libdir}/guestfs/supermin.d/zz-packages-forensics
@ -1145,26 +974,13 @@ rm ocaml/html/.gitignore
%endif %endif
%endif %endif
%if !0%{?rhel}
%files jfs
%{_libdir}/guestfs/supermin.d/zz-packages-jfs
%endif
%if !0%{?rhel}
%files nilfs
%{_libdir}/guestfs/supermin.d/zz-packages-nilfs
%endif
%if !0%{?rhel}
%files reiserfs
%{_libdir}/guestfs/supermin.d/zz-packages-reiserfs
%endif
%files rsync %files rsync
%{_libdir}/guestfs/supermin.d/zz-packages-rsync %{_libdir}/guestfs/supermin.d/zz-packages-rsync
%files rescue %files rescue
%{_libdir}/guestfs/supermin.d/zz-packages-rescue %{_libdir}/guestfs/supermin.d/zz-packages-rescue
%{_bindir}/virt-rescue
%{_mandir}/man1/virt-rescue.1*
%if !0%{?rhel} %if !0%{?rhel}
%files ufs %files ufs
@ -1186,93 +1002,17 @@ rm ocaml/html/.gitignore
# no files # no files
%files tools-c
%doc README
%config(noreplace) %{_sysconfdir}/libguestfs-tools.conf
%{_sysconfdir}/virt-builder
%dir %{_sysconfdir}/xdg/virt-builder
%dir %{_sysconfdir}/xdg/virt-builder/repos.d
%config %{_sysconfdir}/xdg/virt-builder/repos.d/*
%config %{_sysconfdir}/profile.d/guestfish.sh
%{_mandir}/man5/libguestfs-tools.conf.5*
%{_bindir}/guestfish
%{_mandir}/man1/guestfish.1*
%{_bindir}/guestmount
%{_mandir}/man1/guestmount.1*
%{_bindir}/guestunmount
%{_mandir}/man1/guestunmount.1*
%{_bindir}/virt-alignment-scan
%{_mandir}/man1/virt-alignment-scan.1*
%{_bindir}/virt-builder
%{_mandir}/man1/virt-builder.1*
%{_bindir}/virt-builder-repository
%{_mandir}/man1/virt-builder-repository.1*
%{_bindir}/virt-cat
%{_mandir}/man1/virt-cat.1*
%{_bindir}/virt-copy-in
%{_mandir}/man1/virt-copy-in.1*
%{_bindir}/virt-copy-out
%{_mandir}/man1/virt-copy-out.1*
%{_bindir}/virt-customize
%{_mandir}/man1/virt-customize.1*
%{_bindir}/virt-df
%{_mandir}/man1/virt-df.1*
%{_bindir}/virt-diff
%{_mandir}/man1/virt-diff.1*
%{_bindir}/virt-edit
%{_mandir}/man1/virt-edit.1*
%{_bindir}/virt-filesystems
%{_mandir}/man1/virt-filesystems.1*
%{_bindir}/virt-format
%{_mandir}/man1/virt-format.1*
%{_bindir}/virt-get-kernel
%{_mandir}/man1/virt-get-kernel.1*
%{_bindir}/virt-index-validate
%{_mandir}/man1/virt-index-validate.1*
%{_bindir}/virt-inspector
%{_mandir}/man1/virt-inspector.1*
%{_bindir}/virt-log
%{_mandir}/man1/virt-log.1*
%{_bindir}/virt-ls
%{_mandir}/man1/virt-ls.1*
%{_bindir}/virt-make-fs
%{_mandir}/man1/virt-make-fs.1*
%{_bindir}/virt-rescue
%{_mandir}/man1/virt-rescue.1*
%{_bindir}/virt-resize
%{_mandir}/man1/virt-resize.1*
%{_bindir}/virt-sparsify
%{_mandir}/man1/virt-sparsify.1*
%{_bindir}/virt-sysprep
%{_mandir}/man1/virt-sysprep.1*
%{_bindir}/virt-tail
%{_mandir}/man1/virt-tail.1*
%{_bindir}/virt-tar-in
%{_mandir}/man1/virt-tar-in.1*
%{_bindir}/virt-tar-out
%{_mandir}/man1/virt-tar-out.1*
%files tools
%doc README
%{_bindir}/virt-win-reg
%{_mandir}/man1/virt-win-reg.1*
%files -n virt-dib
%doc COPYING README
%{_bindir}/virt-dib
%{_mandir}/man1/virt-dib.1*
%{_libdir}/guestfs/supermin.d/zz-packages-dib
%files bash-completion %files bash-completion
%dir %{_datadir}/bash-completion/completions %dir %{_datadir}/bash-completion/completions
%{_datadir}/bash-completion/completions/guestfish %{_datadir}/bash-completion/completions/guestfish
%{_datadir}/bash-completion/completions/guestmount %{_datadir}/bash-completion/completions/guestmount
%{_datadir}/bash-completion/completions/guestunmount %{_datadir}/bash-completion/completions/guestunmount
%{_datadir}/bash-completion/completions/libguestfs-test-tool %{_datadir}/bash-completion/completions/libguestfs-test-tool
%{_datadir}/bash-completion/completions/virt-* %{_datadir}/bash-completion/completions/virt-copy-in
%{_datadir}/bash-completion/completions/virt-copy-out
%{_datadir}/bash-completion/completions/virt-rescue
%{_datadir}/bash-completion/completions/virt-tar-in
%{_datadir}/bash-completion/completions/virt-tar-out
%files -n ocaml-%{name} %files -n ocaml-%{name}
@ -1377,6 +1117,44 @@ rm ocaml/html/.gitignore
%changelog %changelog
* Fri Mar 26 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.2-2
- Remove no longer needed requires on libguestfs-tools-c.
* Tue Mar 23 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.2-1
- New upstream version 1.45.2.
- This drops the tools. Now packaged as guestfs-tools.
- guestfish, guestmount, guestunmount now packaged with libguestfs.
- virt-rescue now packaged in libguestfs-rescue.
- Drop ChangeLog file.
- Remove virt-dib in RHEL 9.
- Depend on PCRE2 instead of PCRE.
* Thu Mar 18 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.1-6
- Drop dependency on perl(Sys::Virt).
- Fix -cpu max and require libvirt >= 7.1.0.
* Wed Mar 10 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.1-4
- Drop Requires: libvirt-daemon-kvm, pulls in the whole of qemu and subpkgs.
* Mon Mar 8 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.1-3
- Bump and rebuild for ocaml-gettext update.
* Fri Mar 5 2021 Remi Collet <remi@fedoraproject.org> - 1:1.45.1-2
- rebuild for https://fedoraproject.org/wiki/Changes/php80
- add trivial patch to fix build with PHP 8
* Wed Mar 3 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.45.1-1
- New upstream version 1.45.1.
* Tue Mar 2 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.44.0-8
- OCaml 4.12.0 build
- Fixes for OCaml 4.12.
* Wed Feb 17 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.44.0-6
- Remove jfsutils (dead upstream since 2011).
- Remove nilfs (dead upstream since 2015).
- Remove reiserfs (dead upstream since 2006).
* Tue Feb 09 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.44.0-5 * Tue Feb 09 2021 Richard W.M. Jones <rjones@redhat.com> - 1:1.44.0-5
- Remove gfs2-utils dependency in RHEL 9. - Remove gfs2-utils dependency in RHEL 9.
@ -2166,7 +1944,6 @@ rm ocaml/html/.gitignore
* Thu Jul 09 2015 Richard W.M. Jones <rjones@redhat.com> - 1:1.29.50-1 * Thu Jul 09 2015 Richard W.M. Jones <rjones@redhat.com> - 1:1.29.50-1
- New upstream version 1.29.50. - New upstream version 1.29.50.
- Add virt-dib. - Add virt-dib.
* Thu Jul 02 2015 Richard W.M. Jones <rjones@redhat.com> - 1:1.29.49-1 * Thu Jul 02 2015 Richard W.M. Jones <rjones@redhat.com> - 1:1.29.49-1

View File

@ -1,2 +1,2 @@
SHA512 (libguestfs-1.44.0.tar.gz) = e5052d6deb130f9bceea06d2d6626162991cb83ffaf0ed9923ff5d8bb67137e565053104d8854d37ea8c871dce2a5ca29507d17357de813a8ac49896f00be103 SHA512 (libguestfs-1.45.2.tar.gz) = ff8a9ad7f420e2e10e0b91258d2cd12b3f00bdceed1c71b0d0b8f55b2275ce0e60c123066d66669a041400327abed6ddea7d8b0930c33f916e76a6ffe6ada8be
SHA512 (libguestfs-1.44.0.tar.gz.sig) = 26cb5b97dbc0d649466668964080220acc28c3fabc565563df0da5472420e61893907b4bedcb9f8977d7df9e867855d7178e4ad097df41dcbcaa98d0c07feac3 SHA512 (libguestfs-1.45.2.tar.gz.sig) = e4e6d58f241073338f2ae810e4eb2c7747b8889914fde3d1e67ddb447e164955a62afc1f1b7d9fba7fa208d87980ebbe81ea4fd1610db3bc3b47a09ef2dab512