diff options
Diffstat (limited to 'app-emulation/libguestfs/libguestfs-1.48.6-r1.ebuild')
-rw-r--r-- | app-emulation/libguestfs/libguestfs-1.48.6-r1.ebuild | 255 |
1 files changed, 255 insertions, 0 deletions
diff --git a/app-emulation/libguestfs/libguestfs-1.48.6-r1.ebuild b/app-emulation/libguestfs/libguestfs-1.48.6-r1.ebuild new file mode 100644 index 000000000000..17be6704f2bb --- /dev/null +++ b/app-emulation/libguestfs/libguestfs-1.48.6-r1.ebuild @@ -0,0 +1,255 @@ +# 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..12} ) + +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" +} |