diff --git a/0001-Don-t-include-huge-ChangeLog-in-the-tarball.patch b/0001-Don-t-include-huge-ChangeLog-in-the-tarball.patch new file mode 100644 index 0000000..757df37 --- /dev/null +++ b/0001-Don-t-include-huge-ChangeLog-in-the-tarball.patch @@ -0,0 +1,60 @@ +From eb53d74ba2e5e9086a5ac8679d55e6a338397e07 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +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 + diff --git a/0001-Revert-appliance-Use-cpu-mode-maximum-for-cpu-max-on.patch b/0001-Revert-appliance-Use-cpu-mode-maximum-for-cpu-max-on.patch new file mode 100644 index 0000000..e1709ee --- /dev/null +++ b/0001-Revert-appliance-Use-cpu-mode-maximum-for-cpu-max-on.patch @@ -0,0 +1,34 @@ +From 7af98c099c181f0b378a8390fb72f424d4bc7a4a Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +Date: Thu, 25 Mar 2021 19:44:34 +0000 +Subject: [PATCH] Revert "appliance: Use 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 + diff --git a/0001-appliance-Use-cpu-max.patch b/0001-appliance-Use-cpu-max.patch deleted file mode 100644 index 70b482a..0000000 --- a/0001-appliance-Use-cpu-max.patch +++ /dev/null @@ -1,80 +0,0 @@ -From 282e2f74cf1209ecf6bb18655018b2000a5b36a1 Mon Sep 17 00:00:00 2001 -From: "Richard W.M. Jones" -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 - - ---- - 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 - diff --git a/0002-bash-completion-Remove-completion-scripts-for-tools.patch b/0002-bash-completion-Remove-completion-scripts-for-tools.patch new file mode 100644 index 0000000..4ccac0b --- /dev/null +++ b/0002-bash-completion-Remove-completion-scripts-for-tools.patch @@ -0,0 +1,125 @@ +From 4991fe525961450704bbc80b5f2095bc8499f767 Mon Sep 17 00:00:00 2001 +From: "Richard W.M. Jones" +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 + diff --git a/libguestfs.spec b/libguestfs.spec index 9fc8f60..0015d01 100644 --- a/libguestfs.spec +++ b/libguestfs.spec @@ -44,7 +44,7 @@ %global patches_touch_autotools 1 # The source directory. -%global source_directory 1.44-stable +%global source_directory 1.45-development # Filter perl provides. %{?perl_default_filter} @@ -55,8 +55,8 @@ Summary: Access and modify virtual machine disk images Name: libguestfs Epoch: 1 -Version: 1.44.0 -Release: 5%{?dist} +Version: 1.45.2 +Release: 2%{?dist} License: LGPLv2+ # Build only for architectures that have a kernel @@ -86,14 +86,20 @@ Source7: libguestfs.keyring # Maintainer script which helps with handling patches. Source8: copy-patches.sh -# Upstream patch to use -cpu max. -Patch1: 0001-appliance-Use-cpu-max.patch +# Upstream patches since 1.45.2 was released fixing various build issues. +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} BuildRequires: autoconf, automake, libtool, gettext-devel %endif -# Basic build requirements for the library and virt tools. +# Basic build requirements. BuildRequires: gcc, gcc-c++ BuildRequires: make BuildRequires: rpcgen @@ -114,7 +120,7 @@ BuildRequires: glibc-static BuildRequires: libselinux-utils BuildRequires: libselinux-devel BuildRequires: fuse, fuse-devel -BuildRequires: pcre-devel +BuildRequires: pcre2-devel BuildRequires: file-devel BuildRequires: libvirt-devel BuildRequires: gperf @@ -131,7 +137,8 @@ BuildRequires: unzip BuildRequires: systemd-units BuildRequires: netpbm-progs BuildRequires: icoutils -BuildRequires: libvirt-daemon-kvm >= 5.3.0 +#BuildRequires: libvirt-daemon-kvm >= 7.1.0 +BuildRequires: libvirt-daemon-kvm %if !0%{?rhel} BuildRequires: perl(Expect) %endif @@ -145,11 +152,8 @@ BuildRequires: systemd-devel BuildRequires: bash-completion BuildRequires: /usr/bin/ping BuildRequires: /usr/bin/wget -BuildRequires: curl BuildRequires: xz BuildRequires: /usr/bin/qemu-img -BuildRequires: perl(Win::Hivex) -BuildRequires: perl(Win::Hivex::Regedit) %if 0%{verify_tarball_signature} BuildRequires: gnupg2 @@ -160,13 +164,14 @@ BuildRequires: ocaml BuildRequires: ocaml-ocamldoc BuildRequires: ocaml-findlib-devel BuildRequires: ocaml-gettext-devel +%if !0%{?rhel} BuildRequires: ocaml-ounit-devel +%endif BuildRequires: lua BuildRequires: lua-devel BuildRequires: perl-devel BuildRequires: perl-generators BuildRequires: perl-macros -BuildRequires: perl(Sys::Virt) BuildRequires: perl(Test::More) BuildRequires: perl(Test::Pod) >= 1.00 BuildRequires: perl(Test::Pod::Coverage) >= 1.00 @@ -213,8 +218,8 @@ BuildRequires: bzip2 BuildRequires: coreutils BuildRequires: cpio BuildRequires: cryptsetup -BuildRequires: curl %if !0%{?rhel} +BuildRequires: curl BuildRequires: debootstrap %endif BuildRequires: dhclient @@ -239,12 +244,11 @@ BuildRequires: hfsplus-tools BuildRequires: hivex BuildRequires: iproute BuildRequires: iputils -%if !0%{?rhel} -BuildRequires: jfsutils -%endif BuildRequires: kernel BuildRequires: kmod +%if !0%{?rhel} BuildRequires: kpartx +%endif BuildRequires: less BuildRequires: libcap %if !0%{?rhel} @@ -258,22 +262,16 @@ BuildRequires: lvm2 BuildRequires: lzop BuildRequires: mdadm %if !0%{?rhel} -BuildRequires: nilfs-utils -%endif -%if !0%{?rhel} BuildRequires: ntfs-3g ntfsprogs ntfs-3g-system-compression %endif BuildRequires: openssh-clients BuildRequires: parted BuildRequires: pciutils -BuildRequires: pcre +BuildRequires: pcre2 BuildRequires: policycoreutils BuildRequires: procps BuildRequires: psmisc BuildRequires: qemu-img -%if !0%{?rhel} -BuildRequires: reiserfs-utils -%endif BuildRequires: rsync BuildRequires: scrub BuildRequires: sed @@ -290,7 +288,9 @@ BuildRequires: tar BuildRequires: udev BuildRequires: util-linux BuildRequires: vim-minimal +%if !0%{?rhel} BuildRequires: which +%endif BuildRequires: xfsprogs BuildRequires: xz BuildRequires: yajl @@ -313,7 +313,7 @@ Requires: augeas-libs%{?_isa} >= 1.7.0 Requires: libacl%{?_isa} Requires: libcap%{?_isa} Requires: hivex%{?_isa} >= 1.3.10 -Requires: pcre%{?_isa} +Requires: pcre2%{?_isa} Requires: libselinux%{?_isa} Requires: systemd-libs%{?_isa} Requires: yajl%{?_isa} @@ -335,22 +335,22 @@ Suggests: qemu-block-iscsi Suggests: qemu-block-rbd Suggests: qemu-block-ssh Recommends: libvirt-daemon-config-network +#Requires: libvirt-daemon-driver-qemu >= 7.1.0 Requires: libvirt-daemon-driver-qemu Requires: libvirt-daemon-driver-secret Recommends: libvirt-daemon-driver-storage-core -Requires: libvirt-daemon-kvm >= 5.3.0 Requires: selinux-policy >= 3.11.1-63 %ifarch aarch64 Requires: edk2-aarch64 %endif -# For UML backend (this backend only works on x86). -# UML has been broken upstream (in the kernel) for a while, so don't -# include this. Note that uml_utilities also depends on Perl. -#% ifarch % {ix86} x86_64 -#Requires: uml_utilities -#% endif +# 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 # https://fedoraproject.org/wiki/Packaging:No_Bundled_Libraries#Packages_granted_exceptions Provides: bundled(gnulib) @@ -364,29 +364,15 @@ Conflicts: libguestfs-winsupport < 7.2 %endif - %description Libguestfs is a library for accessing and modifying virtual machine 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 guest filesystem that Linux and qemu can, including but not limited to: ext2/3/4, btrfs, FAT and NTFS, LVM, many different disk partition 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: %if !0%{?rhel} @@ -395,11 +381,6 @@ For enhanced features, install: libguestfs-hfsplus adds HFS+ (Mac filesystem) support %endif 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-rsync rsync to/from guest filesystems %if !0%{?rhel} @@ -438,9 +419,9 @@ Summary: Development tools and libraries for %{name} Requires: %{name}%{?_isa} = %{epoch}:%{version}-%{release} Requires: pkgconfig -# For libguestfs-make-fixed-appliance. +# libguestfs-make-fixed-appliance requires guestfish. Requires: xz -Requires: %{name}-tools-c = %{epoch}:%{version}-%{release} +Requires: %{name} = %{epoch}:%{version}-%{release} %description devel @@ -448,6 +429,17 @@ Requires: %{name}-tools-c = %{epoch}:%{version}-%{release} 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} %package forensics Summary: Filesystem forensics support for %{name} @@ -486,50 +478,14 @@ disk images containing HFS+ / Mac OS Extended filesystems. %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 -Summary: Additional tools for virt-rescue +Summary: virt-rescue shell License: LGPLv2+ -Requires: %{name}-tools-c = %{epoch}:%{version}-%{release} %description rescue -This adds additional tools to use inside the virt-rescue shell, -such as ssh, network utilities, editors and debugging utilities. +This adds the virt-rescue shell which is a "rescue disk" for virtual +machines, and additional tools to use inside the shell such as ssh, +network utilities, editors and debugging utilities. %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 -%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 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-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 Summary: Bash tab-completion scripts for %{name} tools BuildArch: noarch Requires: bash-completion >= 2.0 -Requires: %{name}-tools-c = %{epoch}:%{version}-%{release} %description bash-completion @@ -954,13 +771,8 @@ fi --disable-erlang \ $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 # vendor dir not the site dir. -make -j1 -C builder index-parse.c make V=1 INSTALLDIRS=vendor %{?_smp_mflags} @@ -979,11 +791,6 @@ fi %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 # vendor dir not the site dir. 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 '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 # source files to %%{_datadir}/gocode/src. %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 %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 # we can install dependencies in subpackages. pushd $RPM_BUILD_ROOT%{_libdir}/guestfs/supermin.d +function remove +{ + grep -Ev "^$1$" < packages > packages-t + mv packages-t packages +} + function move_to { if ! grep -Esq "^$1$" packages; then echo "move_to $1: package name not found in packages file" exit 1 fi - grep -Ev "^$1$" < packages > packages-t - mv packages-t packages + remove "$1" echo "$1" >> "$2" } -move_to curl zz-packages-dib %if !0%{?rhel} +move_to curl zz-packages-dib move_to debootstrap zz-packages-dib -%endif move_to kpartx zz-packages-dib move_to qemu-img 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} move_to sleuthkit zz-packages-forensics move_to gfs2-utils zz-packages-gfs2 move_to hfsplus-tools zz-packages-hfsplus -move_to jfsutils zz-packages-jfs -move_to nilfs-utils zz-packages-nilfs -move_to reiserfs-utils zz-packages-reiserfs +%else +remove sleuthkit +remove gfs2-utils +remove hfsplus-tools %endif move_to iputils 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 move_to zfs-fuse zz-packages-zfs %endif +%else +remove zfs-fuse %endif %if !0%{?rhel} @@ -1097,23 +905,39 @@ rm ocaml/html/.gitignore %files -f %{name}.lang %doc COPYING README +%{_bindir}/guestfish +%{_bindir}/guestmount +%{_bindir}/guestunmount %{_bindir}/libguestfs-test-tool +%{_bindir}/virt-copy-in +%{_bindir}/virt-copy-out +%{_bindir}/virt-tar-in +%{_bindir}/virt-tar-out %{_libdir}/guestfs/ %exclude %{_libdir}/guestfs/supermin.d/zz-packages-* %{_libdir}/libguestfs.so.* +%{_mandir}/man1/guestfish.1* %{_mandir}/man1/guestfs-faq.1* %{_mandir}/man1/guestfs-performance.1* %{_mandir}/man1/guestfs-recipes.1* %{_mandir}/man1/guestfs-release-notes-1*.1* %{_mandir}/man1/guestfs-release-notes-historical.1* %{_mandir}/man1/guestfs-security.1* +%{_mandir}/man1/guestmount.1* +%{_mandir}/man1/guestunmount.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 -%doc AUTHORS BUGS ChangeLog.gz HACKING TODO README +%doc AUTHORS BUGS HACKING TODO README %doc examples/*.c -%doc installed-docs/* %{_libdir}/libguestfs.so %{_sbindir}/libguestfs-make-fixed-appliance %{_mandir}/man1/guestfs-building.1* @@ -1128,6 +952,11 @@ rm ocaml/html/.gitignore %{_libdir}/pkgconfig/libguestfs.pc +%if !0%{?rhel} +%files dib +%{_libdir}/guestfs/supermin.d/zz-packages-dib +%endif + %if !0%{?rhel} %files forensics %{_libdir}/guestfs/supermin.d/zz-packages-forensics @@ -1145,26 +974,13 @@ rm ocaml/html/.gitignore %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 %{_libdir}/guestfs/supermin.d/zz-packages-rsync %files rescue %{_libdir}/guestfs/supermin.d/zz-packages-rescue +%{_bindir}/virt-rescue +%{_mandir}/man1/virt-rescue.1* %if !0%{?rhel} %files ufs @@ -1186,93 +1002,17 @@ rm ocaml/html/.gitignore # 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 %dir %{_datadir}/bash-completion/completions %{_datadir}/bash-completion/completions/guestfish %{_datadir}/bash-completion/completions/guestmount %{_datadir}/bash-completion/completions/guestunmount %{_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} @@ -1377,6 +1117,44 @@ rm ocaml/html/.gitignore %changelog +* Fri Mar 26 2021 Richard W.M. Jones - 1:1.45.2-2 +- Remove no longer needed requires on libguestfs-tools-c. + +* Tue Mar 23 2021 Richard W.M. Jones - 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 - 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 - 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 - 1:1.45.1-3 +- Bump and rebuild for ocaml-gettext update. + +* Fri Mar 5 2021 Remi Collet - 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 - 1:1.45.1-1 +- New upstream version 1.45.1. + +* Tue Mar 2 2021 Richard W.M. Jones - 1:1.44.0-8 +- OCaml 4.12.0 build +- Fixes for OCaml 4.12. + +* Wed Feb 17 2021 Richard W.M. Jones - 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 - 1:1.44.0-5 - Remove gfs2-utils dependency in RHEL 9. @@ -2166,7 +1944,6 @@ rm ocaml/html/.gitignore * Thu Jul 09 2015 Richard W.M. Jones - 1:1.29.50-1 - New upstream version 1.29.50. - - Add virt-dib. * Thu Jul 02 2015 Richard W.M. Jones - 1:1.29.49-1 diff --git a/sources b/sources index 8064041..e98ceae 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (libguestfs-1.44.0.tar.gz) = e5052d6deb130f9bceea06d2d6626162991cb83ffaf0ed9923ff5d8bb67137e565053104d8854d37ea8c871dce2a5ca29507d17357de813a8ac49896f00be103 -SHA512 (libguestfs-1.44.0.tar.gz.sig) = 26cb5b97dbc0d649466668964080220acc28c3fabc565563df0da5472420e61893907b4bedcb9f8977d7df9e867855d7178e4ad097df41dcbcaa98d0c07feac3 +SHA512 (libguestfs-1.45.2.tar.gz) = ff8a9ad7f420e2e10e0b91258d2cd12b3f00bdceed1c71b0d0b8f55b2275ce0e60c123066d66669a041400327abed6ddea7d8b0930c33f916e76a6ffe6ada8be +SHA512 (libguestfs-1.45.2.tar.gz.sig) = e4e6d58f241073338f2ae810e4eb2c7747b8889914fde3d1e67ddb447e164955a62afc1f1b7d9fba7fa208d87980ebbe81ea4fd1610db3bc3b47a09ef2dab512