325 lines
9.3 KiB
RPMSpec
325 lines
9.3 KiB
RPMSpec
|
#
|
|||
|
# spec file for package guestfs-tools
|
|||
|
#
|
|||
|
# Copyright (c) 2024 SUSE LLC
|
|||
|
#
|
|||
|
# All modifications and additions to the file contributed by third parties
|
|||
|
# remain the property of their copyright owners, unless otherwise agreed
|
|||
|
# upon. The license for this file, and modifications and additions to the
|
|||
|
# file, is the same license as for the pristine package itself (unless the
|
|||
|
# license for the pristine package is not an Open Source License, in which
|
|||
|
# case the license is the MIT License). An "Open Source License" is a
|
|||
|
# license that conforms to the Open Source Definition (Version 1.9)
|
|||
|
# published by the Open Source Initiative.
|
|||
|
|
|||
|
# Please submit bugfixes or comments via https://bugs.opensuse.org/
|
|||
|
#
|
|||
|
# needsbinariesforbuild
|
|||
|
|
|||
|
|
|||
|
%global patches_touch_autotools 1
|
|||
|
|
|||
|
# The source directory.
|
|||
|
%global source_directory 1.52-stable
|
|||
|
|
|||
|
#
|
|||
|
%define guestfs_docdir %{_defaultdocdir}/%{name}
|
|||
|
|
|||
|
# Filter perl provides.
|
|||
|
%{?perl_default_filter}
|
|||
|
|
|||
|
Summary: Tools to access and modify virtual machine disk images
|
|||
|
Name: guestfs-tools
|
|||
|
Version: 1.52.0
|
|||
|
Release: 0
|
|||
|
License: GPL-2.0-or-later
|
|||
|
|
|||
|
# Build only for architectures that have a kernel
|
|||
|
ExclusiveArch: x86_64 ppc64le s390x aarch64 riscv64
|
|||
|
|
|||
|
# Source and patches.
|
|||
|
URL: http://libguestfs.org/
|
|||
|
Source0: http://download.libguestfs.org/guestfs-tools/%{source_directory}/%{name}-%{version}.tar.gz
|
|||
|
Source1: http://download.libguestfs.org/guestfs-tools/%{source_directory}/%{name}-%{version}.tar.gz.sig
|
|||
|
|
|||
|
%if 0%{patches_touch_autotools}
|
|||
|
BuildRequires: autoconf
|
|||
|
BuildRequires: automake
|
|||
|
BuildRequires: gettext-devel
|
|||
|
BuildRequires: libtool
|
|||
|
%endif
|
|||
|
|
|||
|
# Basic build requirements.
|
|||
|
BuildRequires: bison
|
|||
|
BuildRequires: flex
|
|||
|
BuildRequires: gcc
|
|||
|
BuildRequires: gcc-c++
|
|||
|
BuildRequires: libguestfs-devel >= 1.45.3-1
|
|||
|
BuildRequires: libguestfs-xfs
|
|||
|
BuildRequires: libjansson-devel
|
|||
|
BuildRequires: libosinfo-devel
|
|||
|
BuildRequires: libvirt-devel
|
|||
|
BuildRequires: libxcrypt-devel
|
|||
|
BuildRequires: libxml2-devel
|
|||
|
BuildRequires: make
|
|||
|
BuildRequires: ncurses-devel
|
|||
|
BuildRequires: ocaml-findlib-devel
|
|||
|
BuildRequires: ocaml-gettext-devel
|
|||
|
BuildRequires: ocaml-libguestfs-devel
|
|||
|
BuildRequires: ocaml-ounit-devel
|
|||
|
BuildRequires: pcre2-devel
|
|||
|
BuildRequires: perl
|
|||
|
BuildRequires: po4a
|
|||
|
BuildRequires: qemu-tools
|
|||
|
BuildRequires: unzip
|
|||
|
BuildRequires: xorriso
|
|||
|
BuildRequires: xz-devel
|
|||
|
BuildRequires: zip
|
|||
|
BuildRequires: ocaml(ocaml_base_version) >= 4.07
|
|||
|
BuildRequires: perl(Expect)
|
|||
|
BuildRequires: perl(Locale::TextDomain)
|
|||
|
BuildRequires: perl(Module::Build)
|
|||
|
BuildRequires: perl(Pod::Man)
|
|||
|
BuildRequires: perl(Pod::Simple)
|
|||
|
BuildRequires: perl(Sys::Guestfs)
|
|||
|
BuildRequires: perl(Test::More)
|
|||
|
BuildRequires: perl(Win::Hivex)
|
|||
|
BuildRequires: perl(Win::Hivex::Regedit)
|
|||
|
BuildRequires: pkgconfig(bash-completion)
|
|||
|
|
|||
|
# For virt-builder:
|
|||
|
Requires: curl
|
|||
|
Requires: gpg2
|
|||
|
###Requires: /usr/bin/qemu-img
|
|||
|
Requires: xz
|
|||
|
|
|||
|
# Obsolete guestfs-tools from the libguestfs package
|
|||
|
Provides: %{name} < %{version}
|
|||
|
Obsoletes: %{name} < %{version}
|
|||
|
|
|||
|
# 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
|
|||
|
|
|||
|
%description
|
|||
|
guestfs-tools is a set of tools that can be used to make batch
|
|||
|
configuration changes to guests, get disk used/free statistics
|
|||
|
(virt-df), perform backups and guest clones, change
|
|||
|
registry/UUID/hostname info, build guests from scratch (virt-builder)
|
|||
|
and much more.
|
|||
|
|
|||
|
Virt-alignment-scan scans virtual machines looking for partition
|
|||
|
alignment problems.
|
|||
|
|
|||
|
Virt-builder is a command line tool for rapidly making disk images
|
|||
|
of popular free operating systems.
|
|||
|
|
|||
|
Virt-cat is a command line tool to display the contents of a file in a
|
|||
|
virtual machine.
|
|||
|
|
|||
|
Virt-customize is a command line tool for customizing virtual machine
|
|||
|
disk images.
|
|||
|
|
|||
|
Virt-df is a command line tool to display free space on virtual
|
|||
|
machine filesystems. Unlike other tools, it doesn’t just display the
|
|||
|
amount of space allocated to a virtual machine, but can look inside
|
|||
|
the virtual machine to see how much space is really being used. It is
|
|||
|
like the df(1) command, but for virtual machines, except that it also
|
|||
|
works for Windows virtual machines.
|
|||
|
|
|||
|
Virt-diff shows the differences between virtual machines.
|
|||
|
|
|||
|
Virt-edit is a command line tool to edit the contents of a file in a
|
|||
|
virtual machine.
|
|||
|
|
|||
|
Virt-filesystems is a command line tool to display the filesystems,
|
|||
|
partitions, block devices, LVs, VGs and PVs found in a disk image
|
|||
|
or virtual machine. It replaces the deprecated programs
|
|||
|
virt-list-filesystems and virt-list-partitions with a much more
|
|||
|
capable tool.
|
|||
|
|
|||
|
Virt-format is a command line tool to erase and make blank disks.
|
|||
|
|
|||
|
Virt-get-kernel extracts a kernel/initrd from a disk image.
|
|||
|
|
|||
|
Virt-inspector examines a virtual machine and tries to determine the
|
|||
|
version of the OS, the kernel version, what drivers are installed,
|
|||
|
whether the virtual machine is fully virtualized (FV) or
|
|||
|
para-virtualized (PV), what applications are installed and more.
|
|||
|
|
|||
|
Virt-log is a command line tool to display the log files from a
|
|||
|
virtual machine.
|
|||
|
|
|||
|
Virt-ls is a command line tool to list out files in a virtual machine.
|
|||
|
|
|||
|
Virt-make-fs is a command line tool to build a filesystem out of
|
|||
|
a collection of files or a tarball.
|
|||
|
|
|||
|
Virt-resize can resize existing virtual machine disk images.
|
|||
|
|
|||
|
Virt-sparsify makes virtual machine disk images sparse (thin-provisioned).
|
|||
|
|
|||
|
Virt-sysprep lets you reset or unconfigure virtual machines in
|
|||
|
preparation for cloning them.
|
|||
|
|
|||
|
Virt-tail follows (tails) a log file within a guest, like 'tail -f'.
|
|||
|
|
|||
|
%package -n virt-win-reg
|
|||
|
Summary: Access and modify the Windows Registry of a Windows VM
|
|||
|
BuildArch: noarch
|
|||
|
|
|||
|
%description -n virt-win-reg
|
|||
|
Virt-win-reg lets you look at and modify the Windows Registry of
|
|||
|
Windows virtual machines.
|
|||
|
|
|||
|
%package bash-completion
|
|||
|
Summary: Bash tab-completion scripts for %{name}
|
|||
|
BuildArch: noarch
|
|||
|
Requires: %{name} = %{version}-%{release}
|
|||
|
Requires: bash-completion >= 2.0
|
|||
|
|
|||
|
%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
|
|||
|
%autosetup -p1
|
|||
|
|
|||
|
%if 0%{patches_touch_autotools}
|
|||
|
autoreconf -i
|
|||
|
%endif
|
|||
|
|
|||
|
%build
|
|||
|
%{configure} \
|
|||
|
--docdir=%{guestfs_docdir}
|
|||
|
|
|||
|
# 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
|
|||
|
|
|||
|
%install
|
|||
|
%makeinstall \
|
|||
|
DESTDIR=%{buildroot} \
|
|||
|
INSTALLDIRS=vendor
|
|||
|
|
|||
|
# Delete libtool files.
|
|||
|
find %{buildroot} -name '*.la' -delete
|
|||
|
|
|||
|
# Move installed documentation back to the source directory so
|
|||
|
# we can install it using a %%doc rule.
|
|||
|
mv %{buildroot}%{_docdir}/%{name} installed-docs
|
|||
|
gzip -n --best installed-docs/*.xml
|
|||
|
|
|||
|
# Remove virt-dib if it was built.
|
|||
|
rm -f $RPM_BUILD_ROOT%{_bindir}/virt-dib
|
|||
|
rm -f $RPM_BUILD_ROOT%{_mandir}/man1/virt-dib.1*
|
|||
|
|
|||
|
# 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-drivers
|
|||
|
%{_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/guestfs-tools-release-notes-1.*.1.gz
|
|||
|
%{_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-drivers.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*
|
|||
|
|
|||
|
%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*
|
|||
|
%if 0%{?suse_version} <= 1500
|
|||
|
%dir %{_mandir}/ja
|
|||
|
%dir %{_mandir}/ja/man1
|
|||
|
%endif
|
|||
|
|
|||
|
%files man-pages-uk
|
|||
|
%lang(uk) %{_mandir}/uk/man1/*.1*
|
|||
|
%if 0%{?suse_version} <= 1500
|
|||
|
%dir %{_mandir}/uk
|
|||
|
%dir %{_mandir}/uk/man1
|
|||
|
%endif
|
|||
|
|
|||
|
%changelog
|