Sync from SUSE:SLFO:Main libguestfs revision 568575c487a41c65233725fcc42f0db8

This commit is contained in:
Adrian Schröter 2024-05-03 15:02:54 +02:00
commit 028c6a7032
9 changed files with 3211 additions and 0 deletions

23
.gitattributes vendored Normal file
View File

@ -0,0 +1,23 @@
## Default LFS
*.7z filter=lfs diff=lfs merge=lfs -text
*.bsp filter=lfs diff=lfs merge=lfs -text
*.bz2 filter=lfs diff=lfs merge=lfs -text
*.gem filter=lfs diff=lfs merge=lfs -text
*.gz filter=lfs diff=lfs merge=lfs -text
*.jar filter=lfs diff=lfs merge=lfs -text
*.lz filter=lfs diff=lfs merge=lfs -text
*.lzma filter=lfs diff=lfs merge=lfs -text
*.obscpio filter=lfs diff=lfs merge=lfs -text
*.oxt filter=lfs diff=lfs merge=lfs -text
*.pdf filter=lfs diff=lfs merge=lfs -text
*.png filter=lfs diff=lfs merge=lfs -text
*.rpm filter=lfs diff=lfs merge=lfs -text
*.tbz filter=lfs diff=lfs merge=lfs -text
*.tbz2 filter=lfs diff=lfs merge=lfs -text
*.tgz filter=lfs diff=lfs merge=lfs -text
*.ttf filter=lfs diff=lfs merge=lfs -text
*.txz filter=lfs diff=lfs merge=lfs -text
*.whl filter=lfs diff=lfs merge=lfs -text
*.xz filter=lfs diff=lfs merge=lfs -text
*.zip filter=lfs diff=lfs merge=lfs -text
*.zst filter=lfs diff=lfs merge=lfs -text

3
README Normal file
View File

@ -0,0 +1,3 @@
The ntfs-3g tools contained in this archive are provided for the exclusive
use of guestfs tools. Any use of these ntfs-3g tools outside the guestfs
tools context is unsupported and strictly forbidden.

6
guestfish.sh Normal file
View File

@ -0,0 +1,6 @@
# Guestfish colour prompts. See PROMPT in guestfish(1).
GUESTFISH_PS1='\[\e[1;32m\]><fs>\[\e[0;31m\] '
GUESTFISH_OUTPUT='\e[0m'
GUESTFISH_RESTORE="$GUESTFISH_OUTPUT"
GUESTFISH_INIT='\e[1;34m'
export GUESTFISH_PS1 GUESTFISH_OUTPUT GUESTFISH_RESTORE GUESTFISH_INIT

BIN
libguestfs-1.52.0.tar.gz (Stored with Git LFS) Normal file

Binary file not shown.

View File

@ -0,0 +1,17 @@
-----BEGIN PGP SIGNATURE-----
iQJFBAABCAAvFiEE93dPsa0HSn6Mh2fqkXOPc+G3aKAFAmWW64MRHHJpY2hAYW5u
ZXhpYS5vcmcACgkQkXOPc+G3aKDVHw//UIr27iA6WpJy0KyLOSmcdyrtYbnnySwP
GH7ho8tpggDjXjSYyuUSjeqhCluMSy6XGYxYmZKNx8gyvydCfX7oflr6Lldti6tk
9vARyrIg85knFH4VgxZfVpN7FUava3qbVSW5EH4T539+rKi7r8M6bgyPzeeOCd0w
8jzeLy0VPz9XMCBMQ0HRbtX6EjttblNSgD7NnjhqQt274UJW6bdrzXvTHw/uyr0p
+Qbzas8qaUye5E1L6jqlH+5fHoF0R481PDq6XS8CvGWGD+/7MMTuRUDYa69ia9Du
pbD5XjTWU1ELGiS/nah3HWcprKzpw7MJmqqOKCnQedxPyeNbJQ5XfRc0R6HRkxil
yHq8hU2eidWz+/zLvV69vL1jXoUddYdv0YpIFqTtyAAFYvzfc6GgcJ/wcAr8DdOl
/ULMxf+AH0Lm7Pygj6R/cdbd0OvmDCi3LoN2oyMVMvVAhsx0UMcGfPdHony7FUYS
u23k6fJ7B3ksL6TtWJyjSbzW7v3I7LcfI8SShprR728VppYjyryEkxB+4H/DsWe7
eTMqnOddoteuBAapUoXZnOdfbMLkZib+2Kel7DnezLCiAnWXXALRWUreyrasr0vT
r1bZwJKjJH1atbKO+6taKkcATVoieRUxJkBDDdSOlpE3zuLL8btMgU6KerWLl1Yu
YRiSNBCEfjM=
=4eIl
-----END PGP SIGNATURE-----

2369
libguestfs.changes Normal file

File diff suppressed because it is too large Load Diff

7
libguestfs.rpmlintrc Normal file
View File

@ -0,0 +1,7 @@
addFilter("shlib-policy-nonversioned-dir")
addFilter("shlib-policy-missing-lib")
addFilter("shlib-policy-name-error")
addFilter("shlib-fixed-dependency")
# This script is supposed to be run from within the appliance only
addFilter("non-executable-script /usr/share/virt-p2v/launch-virt-p2v")
addFilter("non-standard-group Development/Languages")

738
libguestfs.spec Normal file
View File

@ -0,0 +1,738 @@
#
# spec file for package libguestfs
#
# 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/
#
Name: libguestfs
ExclusiveArch: x86_64 ppc64 ppc64le s390x aarch64 riscv64
Version: 1.52.0
Release: 0
Summary: Access and modify virtual machine disk images
License: GPL-2.0-or-later
URL: http://libguestfs.org
Source0: %{name}-%{version}.tar.gz
Source1: %{name}-%{version}.tar.gz.sig
Source3: libguestfs.rpmlintrc
Source5: guestfish.sh
Source100: mount-rootfs-and-chroot.sh
Source101: README
# Patches
BuildRequires: bison
BuildRequires: file-devel
BuildRequires: flex
BuildRequires: gawk
BuildRequires: gcc-c++
BuildRequires: gobject-introspection-devel
BuildRequires: gperf
BuildRequires: libtool
BuildRequires: ocaml-augeas-devel
BuildRequires: ocaml-hivex-devel
BuildRequires: ocaml-rpm-macros
BuildRequires: po4a
BuildRequires: readline-devel
BuildRequires: supermin >= 5.1.18
BuildRequires: zstd
BuildRequires: ocaml(ocaml_base_version) >= 4.07
BuildRequires: ocamlfind(findlib)
BuildRequires: perl(Getopt::Long)
BuildRequires: perl(Locale::TextDomain)
BuildRequires: perl(Module::Build)
BuildRequires: perl(Pod::Man)
BuildRequires: perl(Pod::Simple)
BuildRequires: perl(Pod::Usage)
BuildRequires: perl(Test::More)
BuildRequires: pkgconfig(augeas)
BuildRequires: pkgconfig(bash-completion)
BuildRequires: pkgconfig(fuse)
BuildRequires: pkgconfig(hivex)
BuildRequires: pkgconfig(jansson)
BuildRequires: pkgconfig(libacl)
BuildRequires: pkgconfig(libcap)
BuildRequires: pkgconfig(libconfig)
BuildRequires: pkgconfig(liblzma)
BuildRequires: pkgconfig(libpcre2-8)
BuildRequires: pkgconfig(libtirpc)
BuildRequires: pkgconfig(libvirt)
BuildRequires: pkgconfig(libxml-2.0)
BuildRequires: pkgconfig(ncurses)
BuildRequires: pkgconfig(python3)
BuildRequires: pkgconfig(rpm) >= 4.6.0
BuildRequires: pkgconfig(tinfo)
Requires: libguestfs-appliance
Obsoletes: guestfs-tools <= 1.44.2
%description
Libguestfs is a library for accessing and modifying virtual machine
disk images. http://libguestfs.org
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.
%prep
%autosetup -p1
sed -i 's|RPMVSF_MASK_NOSIGNATURES|_RPMVSF_NOSIGNATURES|' daemon/rpm-c.c
sed -i 's/tar zcf/tar -zcf/' appliance/Makefile.am
%build
# provide a wrapper to tar that creates bit-reproducible output (boo#1218191)
# used in supermin for base.tar.gz, in %install for zz-winsupport.tar.gz zz-scripts.tar.gz and in appliance/Makefile.am for 3 more .tar.gz files
SOURCE_DATE_EPOCH=${SOURCE_DATE_EPOCH:-$(date -r %{SOURCE0} +%%s)}
mkdir ~/bin ; cat >~/bin/tar <<EOF
#!/bin/sh
exec /usr/bin/tar \
--sort=name --clamp-mtime --mtime=@$SOURCE_DATE_EPOCH \
--owner=0 --group=0 --numeric-owner \
--pax-option=exthdr.name=%%d/PaxHeaders/%%f,delete=atime,delete=ctime \
"\$@"
EOF
chmod a+x ~/bin/tar
PATH=~/bin:$PATH
%global _lto_cflags %{_lto_cflags} -ffat-lto-objects
# use 'env LIBGUESTFS_HV=/path/to/kvm libguestfs-test-tool' to verify
%define kvm_binary /bin/false
%ifarch aarch64
%define kvm_binary %{_bindir}/qemu-system-aarch64
%endif
%ifarch ppc64le
%define kvm_binary %{_bindir}/qemu-system-ppc64
%endif
%ifarch ppc64
%define kvm_binary %{_bindir}/qemu-system-ppc64
%endif
%ifarch riscv64
%define kvm_binary %{_bindir}/qemu-system-riscv64
%endif
%ifarch s390x
%define kvm_binary %{_bindir}/qemu-system-s390x
%endif
%ifarch x86_64
%define kvm_binary %{_bindir}/qemu-system-x86_64
%endif
#
%define guestfs_docdir %{_defaultdocdir}/%{name}
export AWK='%{_bindir}/gawk'
export CPIO='%{_bindir}/cpio'
export GPERF='%{_bindir}/gperf'
export MKISOFS='%{_bindir}/xorrisofs'
export XMLLINT='%{_bindir}/xmllint'
export PO4A_GETTEXTIZE='%{_bindir}/po4a-gettextize'
export PO4A_TRANSLATE='%{_bindir}/po4a-translate'
export SQLITE3='%{_bindir}/sqlite3'
export PBMTEXT='%{_bindir}/pbmtext'
export PNMTOPNG='%{_bindir}/pnmtopng'
export BMPTOPNM='%{_bindir}/bmptopnm'
export PAMCUT='%{_bindir}/pamcut'
export WRESTOOL='%{_bindir}/wrestool'
export XZCAT='%{_bindir}/xzcat'
export VALGRIND='%{_bindir}/valgrind'
export FUSER='%{_bindir}/fuser'
export TOOL_TRUE='%{_bindir}/true'
export XGETTEXT='%{_bindir}/xgettext'
export MSGCAT='%{_bindir}/msgcat'
export MSGFMT='%{_bindir}/msgfmt'
export MSGMERGE='%{_bindir}/msgmerge'
export RPCGEN='%{_bindir}/rpcgen'
export SUPERMIN='%{_bindir}/supermin'
export QEMU="%{kvm_binary}"
export vmchannel_test=no
export PERL='%{_bindir}/perl'
export PYTHON='%{_bindir}/python3'
sed -i~ '
/test-data/d
' configure.ac
diff -u "$_"~ "$_" && exit 0
sed -i~ '
/SUBDIRS/s@test-data@@
' Makefile.am
diff -u "$_"~ "$_" && exit 0
autoreconf -fi
%configure --help
%configure \
--docdir=%{guestfs_docdir} \
--with-distro=SUSE \
--with-readline \
--with-guestfs-path=%{_libdir}/guestfs \
--with-qemu=$QEMU \
--with-supermin-packager-config="$PWD/zypper.priv.conf --use-installed --verbose" \
--without-java \
--enable-appliance-format-auto \
--enable-daemon \
--enable-install-daemon \
--enable-ocaml \
--enable-perl \
--enable-python \
--disable-erlang \
--disable-haskell \
--disable-php \
--disable-rpath \
--disable-static \
%nil
# 'INSTALLDIRS' ensures that perl libs are installed in the vendor dir instead of the site dir
build_it() {
make \
INSTALLDIRS=vendor \
LD_RUN_PATH= \
"$@"
}
build_it %{?_smp_mflags} || build_it
%install
PATH=~/bin:$PATH
%make_install \
INSTALLDIRS=vendor \
udevrulesdir=%{_udevrulesdir}
find %buildroot -ls
rm -f $( find %buildroot -name '*.a' | grep -v /ocaml/ )
find %buildroot -name '*.la' -delete
mkdir -p %{buildroot}/etc/profile.d
cp %{S:5} %{buildroot}/etc/profile.d
# Perl
find %{buildroot}/ -name "*.bs" -size 0c -print -delete
%perl_process_packlist
# OCaml
%ocaml_create_file_list
# Supermin
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
remove "$1"
echo "$1" >> "$2"
}
move_to iputils zz-packages-rescue
move_to lsof zz-packages-rescue
move_to pciutils zz-packages-rescue
move_to strace zz-packages-rescue
move_to vim zz-packages-rescue
move_to rsync zz-packages-rsync
move_to xfsprogs zz-packages-xfs
popd
# Remove the .gitignore file from ocaml/html which will be copied to docdir.
rm ocaml/html/.gitignore
%find_lang %{name}
# Appliance NTFS files
# Just copy the content of the ntfs packages
mkdir winsupport
for pkg in $(rpm -qa | grep ntfs); do
rpm -ql $pkg > $pkg.list
rsync -av --files-from $pkg.list / winsupport
done
cp %{S:101} winsupport
pushd winsupport
tar -czf %{buildroot}%{_libdir}/guestfs/supermin.d/zz-winsupport.tar.gz .
popd
cat > %{buildroot}%{_libdir}/guestfs/supermin.d/zz-packages-winsupport << EOF
libfuse2
hwinfo
EOF
# Do some cleanup so that rpm can properly empty directories without permission denied
# The winsupport directory has already been tar'ed up, so we don't care much
find winsupport -type d -exec chmod 755 {} \;
mkdir -p %{buildroot}/tmp/usr/bin
cp %{S:100} %{buildroot}/tmp/usr/bin
chmod a+x %{buildroot}/tmp/usr/bin/*
pushd %{buildroot}/tmp
tar -czf %{buildroot}/%{_libdir}/guestfs/supermin.d/zz-scripts.tar.gz usr
popd
rm -rf %{buildroot}/tmp
%package -n libguestfs0
Summary: Runtime library of libguestfs
Requires: %{kvm_binary}
%description -n libguestfs0
Shared object library for libguestfs tools which are used to access
and modify virtual machines.
%package -n libguestfsd
Summary: Daemon for the libguestfs appliance
Provides: guestfsd = %{version}
Obsoletes: guestfsd < %{version}
%description -n libguestfsd
guestfsd runs within the libguestfs appliance. It receives commands from the host
and performs the requested action by calling the helper binaries.
This package is only required for building the appliance.
%package -n libguestfs-appliance
BuildRequires: augeas-lenses
BuildRequires: bc
BuildRequires: btrfsprogs
BuildRequires: bzip2
BuildRequires: coreutils
BuildRequires: cpio
BuildRequires: cryptsetup
BuildRequires: dhcp-client
BuildRequires: diffutils
BuildRequires: dosfstools
BuildRequires: e2fsprogs
BuildRequires: file
BuildRequires: findutils
BuildRequires: glibc
BuildRequires: gptfdisk
BuildRequires: grep
BuildRequires: gzip
BuildRequires: initviocons
BuildRequires: iproute2
BuildRequires: jfsutils
BuildRequires: ldmtool
BuildRequires: lvm2
BuildRequires: mdadm
BuildRequires: mkisofs
BuildRequires: module-init-tools
BuildRequires: ncurses-utils
BuildRequires: nfs-client
BuildRequires: ntfs-3g
BuildRequires: ntfsprogs
BuildRequires: pam-config
BuildRequires: parted
BuildRequires: psmisc
BuildRequires: sg3_utils
BuildRequires: strace
BuildRequires: sysconfig-netconfig
%ifarch %ix86 x86_64
BuildRequires: syslinux
%endif
BuildRequires: tar
BuildRequires: terminfo-base
BuildRequires: tunctl
BuildRequires: udev
BuildRequires: util-linux
BuildRequires: util-linux-lang
BuildRequires: xfsprogs
BuildRequires: xz
# Needed by guestfsd which is burried in the appliance
#
# The problem with this design is that rpm can't find the
# library dependencies from the guestfsd hidden in the
# daemon.tar.gz tarball. Supermin will compute an appliance
# at runtime based on the packages it will find on the host.
# Thus if there is no libaugeas, libhivex, etc on the host,
# the appliance will fail to start the guestfsd.
Requires: augeas
Requires: augeas-lenses
Requires: libaugeas0
Requires: libcap2
Requires: libguestfs0
Requires: libhivex0
Requires: libpcre1
# For core disk features
Requires: qemu-tools
Requires: supermin >= 5.1.18
# Optional packages that could be picked up by supermin
Recommends: btrfsprogs
Recommends: cryptsetup
Recommends: dosfstools
Recommends: e2fsprogs
Recommends: gptfdisk
Recommends: jfsutils
Recommends: ldmtool
Recommends: mdadm
Recommends: mkisofs
Recommends: parted
Recommends: xfsprogs
Recommends: zerofree
Summary: Virtual machine needed for libguestfs
Provides: guestfs-data = %{version}
Obsoletes: guestfs-data < %{version}
%description -n libguestfs-appliance
libguestfs-appliance provides the appliance used by libguestfs.
%package winsupport
Summary: Windows guest support in libguestfs
Requires: libguestfs >= 1.32
BuildRequires: ntfs-3g
BuildRequires: ntfsprogs
BuildRequires: rsync
Provides: guestfs-winsupport = %{version}
Obsoletes: guestfs-winsupport < %{version}
%description winsupport
Provides the needed pieces for libguestfs to handle Windows guests.
%package devel
Summary: Development files for libguestfs
Requires: libguestfs0 = %{version}
%description devel
Development files for libguestfs.
libguestfs is a set of tools for accessing and modifying virtual machine (VM)
disk images. You can use this for viewing and editing files inside guests,
scripting changes to VMs, monitoring disk used/free statistics, P2V, V2V,
performing partial backups, cloning VMs, and much else besides.
%package bash-completion
Summary: Bash tab-completion scripts for %{name} tools
BuildArch: noarch
Requires: bash-completion >= 2.0
%description bash-completion
Install this package if you want intelligent bash tab-completion
for guestfish, guestmount and various virt-* tools.
%package inspect-icons
Summary: Additional dependencies for inspecting guest icons
BuildArch: noarch
Requires: %{name} = %{version}-%{release}
%if 0%{?suse_version} > 1500
Requires: icoutils
%endif
%description inspect-icons
%{name}-inspect-icons is a metapackage that pulls in additional
dependencies required by libguestfs to pull icons out of non-Linux
guests. Install this package if you want libguestfs to be able to
inspect non-Linux guests and display icons from them.
The only reason this is a separate package is to avoid core libguestfs
having to depend on Perl.
%package -n ocaml-%{name}
Summary: OCaml bindings for %{name}
Requires: %{name} = %{version}-%{release}
%description -n ocaml-%{name}
ocaml-%{name} contains OCaml bindings for %{name}.
This is for toplevel and scripting access only. To compile OCaml
programs which use %{name} you will also need ocaml-%{name}-devel.
%package -n ocaml-%{name}-devel
Summary: OCaml bindings for %{name}
Requires: ocaml-%{name} = %{version}-%{release}
%description -n ocaml-%{name}-devel
ocaml-%{name}-devel contains development libraries
required to use the OCaml bindings for %{name}.
%package -n perl-Sys-Guestfs
Summary: Perl bindings for %{name} (Sys::Guestfs)
Requires: %{name} = %{version}-%{release}
Requires: perl(:MODULE_COMPAT_%(eval "`%{__perl} -V:version`"; echo $version))
%description -n perl-Sys-Guestfs
perl-Sys-Guestfs contains Perl bindings for %{name} (Sys::Guestfs).
%package -n python3-%{name}
Summary: Python 3 bindings for %{name}
BuildRequires: python-rpm-macros
Requires: %{name} = %{version}-%{release}
%{?python_provide:%python_provide python3-%{name}}
%description -n python3-%{name}
python3-%{name} contains Python 3 bindings for %{name}.
%package -n rubygem-%{name}
Summary: Ruby bindings for %{name}
BuildRequires: ruby
BuildRequires: ruby-devel
BuildRequires: rubygem(rake)
Requires: %{name} = %{version}-%{release}
Requires: ruby
%description -n rubygem-%{name}
ruby-%{name} contains Ruby bindings for %{name}.
%package -n lua-%{name}
Summary: Lua bindings for %{name}
BuildRequires: lua-devel
Requires: %{name} = %{version}-%{release}
Requires: lua
%description -n lua-%{name}
lua-%{name} contains Lua bindings for %{name}.
%package gobject-1_0
Summary: GObject bindings for %{name}
Requires: %{name} = %{version}-%{release}
Obsoletes: libguestfs0 <= 1.44.2
%description gobject-1_0
%{name}-gobject-1_0 contains GObject bindings for %{name}.
To develop software against these bindings, you need to install
%{name}-gobject-devel.
%package typelib-Guestfs-1_0
Summary: Libguestfs GObject introspection data
Group: System/Libraries
%description typelib-Guestfs-1_0
This package contains the GObject introspection data.
%package gobject-devel
Summary: GObject bindings for %{name}
Requires: %{name}-gobject-1_0 = %{version}-%{release}
Requires: glib2-devel
%description gobject-devel
%{name}-gobject contains GObject bindings for %{name}.
This package is needed if you want to write software using the
GObject bindings. It also contains GObject Introspection information.
%package rescue
Summary: Virt-rescue shell
BuildRequires: iputils
BuildRequires: lsof
BuildRequires: pciutils
BuildRequires: strace
BuildRequires: vim
%description rescue
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
Summary: Rsync support for %{name}
Requires: %{name} = %{version}-%{release}
BuildRequires: rsync
%description rsync
This adds rsync support to %{name}. Install it if you want to use
rsync to upload or download files into disk images.
%package xfs
Summary: XFS support for %{name}
Requires: %{name} = %{version}-%{release}
%description xfs
This adds XFS support to %{name}. Install it if you want to process
disk images containing XFS.
%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}.
%post -n %{name} -p /sbin/ldconfig
%postun -n %{name} -p /sbin/ldconfig
%post -n libguestfs0 -p /sbin/ldconfig
%postun -n libguestfs0 -p /sbin/ldconfig
%post -n %{name}-gobject-1_0 -p /sbin/ldconfig
%postun -n %{name}-gobject-1_0 -p /sbin/ldconfig
%files -f %{name}.lang
%license README COPYING
%{_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
%{_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.gz
%{_mandir}/man1/guestfs-release-notes-1*.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 -n libguestfs0
%license COPYING.LIB
%{_libdir}/libguestfs.so.*
%files -n libguestfs-appliance
%dir %{_libdir}/guestfs
%dir %{_libdir}/guestfs/supermin.d
%{_libdir}/guestfs/supermin.d/base.tar.gz
%{_libdir}/guestfs/supermin.d/daemon.tar.gz
%{_libdir}/guestfs/supermin.d/init.tar.gz
%{_libdir}/guestfs/supermin.d/udev-rules.tar.gz
%{_libdir}/guestfs/supermin.d/excludefiles
%{_libdir}/guestfs/supermin.d/hostfiles
%{_libdir}/guestfs/supermin.d/packages
%{_libdir}/guestfs/supermin.d/zz-scripts.tar.gz
%files winsupport
%{_libdir}/guestfs/supermin.d/zz-*winsupport*
%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-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 inspect-icons
# no files
%files -n ocaml-%{name} -f %name.files
%files -n ocaml-%{name}-devel -f %name.files.devel
%doc ocaml/examples/*.ml ocaml/html
%{_mandir}/man3/guestfs-ocaml.3*
%files -n perl-Sys-Guestfs
%{perl_vendorarch}/*
%doc perl/examples/*.pl
%{_mandir}/man3/Sys::Guestfs.3pm*
%{_mandir}/man3/guestfs-perl.3*
%files -n python3-%{name}
%doc python/examples/*.py
%{python3_sitearch}/libguestfsmod*.so
%{python3_sitearch}/guestfs.py
%{_mandir}/man3/guestfs-python.3*
%files -n rubygem-%{name}
%doc ruby/examples/*.rb
%doc ruby/doc/site/*
%{_libdir}/ruby
%{_mandir}/man3/guestfs-ruby.3*
%files -n lua-%{name}
%doc lua/examples/*.lua
%doc lua/examples/LICENSE
%{_libdir}/lua
%{_mandir}/man3/guestfs-lua.3*
%files gobject-1_0
%{_libdir}/libguestfs-gobject-1.0.so.0*
%files typelib-Guestfs-1_0
%{_libdir}/girepository-1.0/Guestfs-1.0.typelib
%files gobject-devel
%{_libdir}/libguestfs-gobject-1.0.so
%{_includedir}/guestfs-gobject.h
%dir %{_includedir}/guestfs-gobject
%{_includedir}/guestfs-gobject/*.h
%{_datadir}/gir-1.0/Guestfs-1.0.gir
%{_libdir}/pkgconfig/libguestfs-gobject-1.0.pc
%{_mandir}/man3/guestfs-gobject.3*
%files devel
%doc examples/*.c
%{_sbindir}/libguestfs-make-fixed-appliance
%{_libdir}/*.so
%{_libdir}/pkgconfig/libguestfs.pc
%{_includedir}/guestfs.h
%{_mandir}/man1/guestfs-building.1*
%{_mandir}/man1/guestfs-hacking.1*
%{_mandir}/man1/guestfs-internals.1*
%{_mandir}/man1/guestfs-testing.1*
%{_mandir}/man1/libguestfs-make-fixed-appliance.1*
%{_mandir}/man3/guestfs.3*
%{_mandir}/man3/guestfs-examples.3*
%{_mandir}/man3/libguestfs.3*
%files -n libguestfsd
%{_udevrulesdir}
%{_sbindir}/guestfsd
%{_mandir}/man8/*
%files rescue
%{_libdir}/guestfs/supermin.d/zz-packages-rescue
%{_bindir}/virt-rescue
%{_mandir}/man1/virt-rescue.1*
%files rsync
%{_libdir}/guestfs/supermin.d/zz-packages-rsync
%files xfs
%{_libdir}/guestfs/supermin.d/zz-packages-xfs
%files man-pages-ja
%lang(ja) %{_mandir}/ja/man1/*.1*
%lang(ja) %{_mandir}/ja/man3/*.3*
%lang(ja) %{_mandir}/ja/man5/*.5*
%files man-pages-uk
%if 0%{?suse_version} <= 1500
%dir %{_mandir}/uk
%dir %{_mandir}/uk/man{1,3,5}
%endif
%lang(uk) %{_mandir}/uk/man1/*.1*
%lang(uk) %{_mandir}/uk/man3/*.3*
%lang(uk) %{_mandir}/uk/man5/*.5*
%changelog

View File

@ -0,0 +1,45 @@
#!/bin/bash
# Usage: $0 /dev/sda5
rootfs=$1
mnt=/sysroot
mounts=
if test -b "${rootfs}"
then
mkdir -v -p "${mnt}"
if mount -v "${rootfs}" "${mnt}"
then
for i in dev dev/pts proc sys selinux
do
if test -d /${i} && test -d "${mnt}/${i}" && test "`stat -c %D /`" != "`stat -c %D ${i}`"
then
mount -v --bind /${i} "${mnt}/${i}"
fi
done
chroot "${mnt}" su -
while read b m rest
do
case "${m}" in
${mnt}*)
mounts="${m} ${mounts}"
;;
esac
done <<-EOF
`
cat < /proc/mounts
`
EOF
for i in ${mounts}
do
umount -v "${i}"
done
fi
fi