You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-overlay/app-emulation/libguestfs/libguestfs-1.48.6-r1.ebuild

256 lines
5.9 KiB

# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
# Bump with app-emulation/guestfs-tools and app-emulation/libguestfs-appliance (if any new release there)
LUA_COMPAT=( lua5-1 )
PYTHON_COMPAT=( python3_{10..11} )
inherit autotools flag-o-matic linux-info lua-single perl-functions python-single-r1 strip-linguas toolchain-funcs
MY_PV_1="$(ver_cut 1-2)"
MY_PV_2="$(ver_cut 2)"
[[ $(( ${MY_PV_2} % 2 )) -eq 0 ]] && SD="stable" || SD="development"
DESCRIPTION="Tools for accessing, inspecting, and modifying virtual machine (VM) disk images"
HOMEPAGE="https://libguestfs.org/"
SRC_URI="https://download.libguestfs.org/${MY_PV_1}-${SD}/${P}.tar.gz"
LICENSE="GPL-2 LGPL-2"
SLOT="0/${MY_PV_1}"
if [[ ${SD} == "stable" ]] ; then
KEYWORDS="amd64 ~ppc64 ~x86"
fi
IUSE="doc erlang +fuse gtk inspect-icons introspection libvirt lua +ocaml +perl python ruby selinux static-libs systemtap test"
RESTRICT="!test? ( test )"
REQUIRED_USE="
lua? ( ${LUA_REQUIRED_USE} )
python? ( ${PYTHON_REQUIRED_USE} )
"
# Failures - doc
COMMON_DEPEND="
>=app-admin/augeas-1.8.0
app-alternatives/cpio
app-arch/lzma
app-arch/rpm
app-arch/unzip[natspec]
app-arch/xz-utils
app-forensics/yara
app-cdr/cdrtools
app-crypt/gnupg
>=app-emulation/qemu-2.0[qemu_softmmu_targets_x86_64,systemtap?,selinux?,filecaps]
>=app-misc/hivex-1.3.1
dev-lang/perl:=
dev-libs/libconfig:=
dev-libs/libpcre2
dev-libs/libxml2:2=
dev-libs/jansson:=
>=dev-libs/yajl-2.0.4
net-libs/libtirpc:=
sys-libs/ncurses:0=
>=sys-apps/fakechroot-2.8
sys-apps/fakeroot
sys-apps/file
sys-devel/gettext
sys-fs/squashfs-tools:*
sys-libs/libcap
sys-libs/readline:=
virtual/acl
virtual/libcrypt:=
erlang? ( dev-lang/erlang )
perl? (
virtual/perl-ExtUtils-MakeMaker
>=dev-perl/Sys-Virt-0.2.4
virtual/perl-Getopt-Long
virtual/perl-Data-Dumper
dev-perl/libintl-perl
>=app-misc/hivex-1.3.1[perl?]
dev-perl/String-ShellQuote
)
python? ( ${PYTHON_DEPS} )
fuse? ( sys-fs/fuse:0 )
gtk? (
sys-apps/dbus
x11-libs/gtk+:3
)
introspection? (
>=dev-libs/glib-2.26:2
>=dev-libs/gobject-introspection-1.30.0:=
)
inspect-icons? (
media-libs/netpbm
media-gfx/icoutils
)
libvirt? ( app-emulation/libvirt )
lua? ( ${LUA_DEPS} )
ocaml? ( >=dev-lang/ocaml-4.03:=[ocamlopt] )
selinux? (
sys-libs/libselinux:=
sys-libs/libsemanage
)
systemtap? ( dev-debug/systemtap )
"
# Some OCaml is always required
# bug #729674
DEPEND="
${COMMON_DEPEND}
>=dev-lang/ocaml-4.03:=[ocamlopt]
dev-util/gperf
dev-ml/findlib[ocamlopt]
doc? ( app-text/po4a )
ocaml? (
dev-ml/ounit2[ocamlopt]
|| (
<dev-ml/ocaml-gettext-0.4.2
dev-ml/ocaml-gettext-stub[ocamlopt]
)
)
ruby? ( dev-lang/ruby virtual/rubygems dev-ruby/rake )
test? ( introspection? ( dev-libs/gjs ) )
"
RDEPEND="
${COMMON_DEPEND}
app-emulation/libguestfs-appliance
acct-group/kvm
"
# Upstream build scripts compile and install Lua bindings for the ABI version
# obtained by running 'lua' on the build host
BDEPEND="
sys-devel/bison
sys-devel/flex
virtual/pkgconfig
lua? ( ${LUA_DEPS} )
"
DOCS=( AUTHORS BUGS ChangeLog HACKING README TODO )
PATCHES=(
#"${FILESDIR}"/${MY_PV_1}/
#"${FILESDIR}"/1.44/
)
pkg_setup() {
CONFIG_CHECK="~KVM ~VIRTIO"
[[ -n "${CONFIG_CHECK}" ]] && check_extra_config
use lua && lua-single_pkg_setup
use python && python-single-r1_pkg_setup
}
src_prepare() {
default
eautoreconf
}
src_configure() {
# bug #794877
tc-export AR
# Needs both bison+flex (bug #915339, see configure too)
unset LEX YACC
# Skip Bash test
# (See 13-test-suite.log in linked bug)
# bug #794874
export SKIP_TEST_COMPLETE_IN_SCRIPT_SH=1
# Need to investigate (fails w/ 1.48.4)
export SKIP_TEST_QEMU_DRIVE_SH=1
export SKIP_TEST_BIG_HEAP=1
export SKIP_TEST_NOEXEC_STACK_PL=1
# Need to be in KVM group
export SKIP_TEST_MOUNTABLE_INSPECT_SH=1
# Missing test data (Fedora image)
export SKIP_TEST_JOURNAL_PL=1
# Disable feature test for kvm for more reason
# i.e: not loaded module in __build__ time,
# build server not supported kvm, etc. ...
#
# In fact, this feature is virtio support and requires
# configured kernel.
export vmchannel_test=no
# Give a nudge to help find libxcrypt[-system]
# We have a := dep on virtual/libcrypt to ensure this doesn't become stale.
# bug #703118, bug #789354
if ! has_version 'sys-libs/libxcrypt[system]' ; then
append-ldflags "-L${ESYSROOT}/usr/$(get_libdir)/xcrypt"
append-ldflags "-Wl,-R${ESYSROOT}/usr/$(get_libdir)/xcrypt"
fi
# Avoid automagic SELinux dependency
export ac_cv_header_selinux_selinux_h=$(usex selinux)
# Test suite at least has a bunch of bashisms
SHELL="${BROOT}"/bin/bash CONFIG_SHELL="${BROOT}"/bin/bash econf \
--disable-appliance \
--disable-daemon \
--disable-haskell \
--disable-golang \
--disable-rust \
--disable-php \
--without-java \
--with-extra="-gentoo" \
--with-readline \
$(usex doc '' PO4A=no) \
$(use_enable ocaml) \
$(use_enable erlang) \
$(use_enable fuse) \
$(use_enable introspection gobject) \
$(use_enable introspection) \
$(use_with libvirt) \
$(use_enable lua) \
$(use_enable python) \
$(use_enable perl) \
$(use_enable ruby) \
$(use_enable static-libs static) \
$(use_enable systemtap probes)
}
src_test() {
local -x LIBGUESTFS_DEBUG=1
local -x LIBGUESTFS_TRACE=1
local -x LIBVIRT_DEBUG=1
# Try this?
#emake quickcheck
default
}
src_install() {
strip-linguas -i po
emake DESTDIR="${D}" install "LINGUAS=""${LINGUAS}"""
find "${ED}" -name '*.la' -delete || die
if use perl ; then
perl_delete_localpod
# Workaround Build.PL for now
doman "${ED}"/usr/man/man3/Sys::Guestfs.3pm
rm -rf "${ED}"/usr/man || die
fi
use python && python_optimize
}
pkg_postinst() {
einfo "Please ensure you are in the 'kvm' group for decent performance!"
if ! use gtk ; then
einfo "virt-p2v NOT installed"
fi
einfo "Note that common tools like virt-resize are now part of app-emulation/guestfs-tools"
}