commit: 11013e3e089db828d2fb68a59aad7ee3e16e9228 Author: Christopher Byrne <salah.coronya <AT> gmail <DOT> com> AuthorDate: Wed Jul 31 21:43:15 2024 +0000 Commit: Joonas Niilola <juippis <AT> gentoo <DOT> org> CommitDate: Thu Feb 20 09:08:54 2025 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=11013e3e
app-emulation/libguestfs: add 1.55.5 Removal of "systemtap" USE flag. No longer supported by upstream Removal of "gtk" USE flag. No longer links against GTK. Merge "inspect-icons" into {R,}DEPEND. This flag didn't do what it said, it just added some additional support for some icon formats. Added "vala" use flag for Vala binding. Completely refactored dependencies. This package's build system is a mess. It automagically probes things, some of which it never uses with certain options. libvirt will be the default backend with the libvirt USE flag is set. Either dev-libs/libisoburn or app-cdr/cdrtools can satisfy dependency (former preferred) Several bugs fixed Broken tests skipped, some previously broken tests were fixed. Python 3.13 support added Without KVM acceleration, the tests take a long time (On a 8-core 11th gen Intel processor with hyperthreading it takes 2 to 3 hours to run the test suite). One of the tests alone have 600 sub-tests and takes 30-60 minutes to complete just that one test. This can worked around by adding a strategic "addwrite /dev/kvm" and the proper /dev/kvm permissions so Portage can access it (for testing only, not for production use!). Or turn off the sandboxes, however, some tests will succeed when they would normally fail in the sandbox, so I don't recommend it for development purposes. With KVM, the whole testsuite runs in 5-10 minutes. Signed-off-by: Christopher Byrne <salah.coronya <AT> gmail.com> Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org> app-emulation/libguestfs/Manifest | 1 + app-emulation/libguestfs/libguestfs-1.55.5.ebuild | 232 ++++++++++++++++++++++ 2 files changed, 233 insertions(+) diff --git a/app-emulation/libguestfs/Manifest b/app-emulation/libguestfs/Manifest index 0dc8a4ab0d99..a5111bff675e 100644 --- a/app-emulation/libguestfs/Manifest +++ b/app-emulation/libguestfs/Manifest @@ -1,2 +1,3 @@ DIST libguestfs-1.48.6.tar.gz 19179600 BLAKE2B 22359ed4b55e29f985dbbbc4f0337eaec32f21a1413bd778656c3f0270891bec520a0b9590e104836eaf9367aeb9ac681b0bf85852fb7a2059da3f7062bc5111 SHA512 7d929db183fbb1d4d1c9159f28871ab4f1bd0be5b3d9fbc5137271666f50c067fd0906674cb1a52c1e070c11a18da4d2aa11bc64ddabda5cac54e72252c6abf2 DIST libguestfs-1.54.1.tar.gz 19023492 BLAKE2B 13fe3a536ec04901a69192ecc9fefe055099d057ba3609bd1ec51b8853e5ad50fd608ef4de7d6296f9bf53a19c1bc81f2ae54c185c18c6e68f7a541f34222f93 SHA512 0113ea1cd26aba9b935b65299cf34d53c3d669508238d642a1a97622eb24948df05b55072d4c715cacb4fdfc7339c69ca25f65ca51ac87c40c5325175e939a0d +DIST libguestfs-1.55.5.tar.gz 19020798 BLAKE2B 7e4d6ec57a6c5487f6285f8ec2023758908b9c73cbfd540310136a89b84fdf6622e36976f3a2b53ab4d7965d26d36545d9eb78ba07e164cbfcf970458fafce5c SHA512 01b08e0c72cb52c643406767b611599f2de776deea5927518f7dbceb590195655e4313fd17ce0f9d1a54bb8847943dcf816f6b63c17b570ce1a0bc68a5cf4381 diff --git a/app-emulation/libguestfs/libguestfs-1.55.5.ebuild b/app-emulation/libguestfs/libguestfs-1.55.5.ebuild new file mode 100644 index 000000000000..f041a0d2511b --- /dev/null +++ b/app-emulation/libguestfs/libguestfs-1.55.5.ebuild @@ -0,0 +1,232 @@ +# Copyright 1999-2025 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..13} ) +USE_RUBY=( ruby3{1..3} ) +LUA_COMPAT=( lua5-{1..4} luajit ) + +inherit autotools bash-completion-r1 linux-info lua-single perl-functions\ + python-single-r1 ruby-single toolchain-funcs vala + +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 introspection libvirt lua +ocaml +perl python readline ruby selinux static-libs test vala" + +REQUIRED_USE=" + lua? ( ${LUA_REQUIRED_USE} ) + python? ( ${PYTHON_REQUIRED_USE} ) + vala? ( introspection ) +" + +RESTRICT="!test? ( test )" + +# Not part of the system profile, but dependenices of it with base USE flags +COMMON_DEPEND_DEFAULT=" + app-arch/xz-utils + app-arch/zstd + dev-libs/libpcre2:= + dev-libs/libxml2 + net-libs/libtirpc:= + sys-libs/libcap-ng + sys-libs/ncurses:= + sys-libs/readline:= + virtual/acl + virtual/libcrypt +" +# Won't compile without it +COMMON_DEPEND_EXPLICIT=" + app-admin/augeas + app-alternatives/cpio + app-emulation/qemu[qemu_softmmu_targets_x86_64,selinux?] + app-misc/hivex[ocaml?] + dev-libs/json-c:= + || ( + dev-libs/libisoburn + app-cdr/cdrtools + ) +" +# "Automagic" dependencies +COMMON_DEPEND_IMPLICIT=" + dev-libs/libconfig:= + media-libs/netpbm[png] + media-gfx/icoutils +" +# Sum of the above + conditional dependencies +COMMON_DEPEND=" + ${COMMON_DEPEND_DEFAULT} + ${COMMON_DEPEND_EXPLICIT} + ${COMMON_DEPEND_IMPLICIT} + erlang? ( dev-lang/erlang ) + fuse? ( sys-fs/fuse:0 ) + introspection? ( + dev-libs/glib + dev-libs/gobject-introspection + ) + libvirt? ( app-emulation/libvirt[qemu] ) + perl? ( + dev-perl/libintl-perl + virtual/perl-Getopt-Long + ) + python? ( ${PYTHON_DEPS} ) + readline? ( sys-libs/readline ) + ruby? ( ${RUBY_DEPS} ) + selinux? ( sys-libs/libselinux ) + vala? ( $(vala_depend) ) +" +# Some OCaml is always required +# Bug #729674 +DEPEND=" + ${COMMON_DEPEND} + dev-lang/ocaml:=[ocamlopt] + dev-ml/findlib[ocamlopt] + dev-util/gperf +" +RDEPEND=" + ${COMMON_DEPEND} + app-emulation/libguestfs-appliance +" +BDEPEND=" + sys-devel/bison + sys-devel/flex + sys-devel/gettext + virtual/pkgconfig + doc? ( app-text/po4a ) + lua? ( ${LUA_DEPS} ) + perl? ( + virtual/perl-Pod-Simple + virtual/perl-ExtUtils-CBuilder + dev-perl/Module-Build + ) + test? ( + ocaml? ( dev-ml/ounit2[ocamlopt] ) + introspection? ( dev-libs/gjs ) + ) +" + +PATCHES=( + "${FILESDIR}/${PN}-1.52.1-disable-obsolete-lvmetad-in-tests.patch" +) + +src_prepare() { + cat <<EOF > "${S}/m4/guestfs-bash-completion.m4" || die +dnl Unconditionally install Bash completion files +AC_MSG_CHECKING([for bash-completions directory]) +AC_SUBST([BASH_COMPLETIONS_DIR],[$(get_bashcompdir)]) +AC_MSG_RESULT([\$BASH_COMPLETIONS_DIR]) +AM_CONDITIONAL([HAVE_BASH_COMPLETION],[/bin/true]) +EOF + + default + eautoreconf +} + +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_configure() { + # Bug #794877 + tc-export AR + + # m4/guestfs-progs.m4: (f)lex and bison for virt-builder (required). + # Bug #915339 + unset LEX YACC + + local myconf=( + --disable-appliance + --disable-daemon + --disable-haskell + --disable-golang + --disable-rust + $(use_enable ocaml) + --disable-php + --without-java + $(use_enable lua) + $(use_enable erlang) + $(use_enable vala) + $(usex doc '' PO4A=no) + --with-extra="-gentoo" + $(use_with readline) + $(use_enable ruby) + $(use_enable fuse) + $(use_enable introspection gobject) + $(use_enable introspection) + $(use_with libvirt) + --with-default-backend=$(usex libvirt libvirt direct) + $(use_enable perl) + $(use_enable python) + $(use_enable static-libs static) + ) + + # Avoid automagic SELinux dependency + local -x ac_cv_header_selinux_selinux_h + + if use selinux && use !libvirt; then + ewarn "USE=selinux has no effect without USE=libvirt" + ac_cv_header_selinux_selinux_h="no" + else + ac_cv_header_selinux_selinux_h=$(usex selinux) + fi + + use vala && vala_setup + + econf "${myconf[@]}" +} + +src_install() { + emake INSTALLDIRS=vendor DESTDIR="${D}" install "LINGUAS=""${LINGUAS}""" + + find "${ED}" -name '*.la' -delete || die + + use perl && perl_delete_localpod + use python && python_optimize +} + +src_test() { + # app-shells/bash-completion may not be installed + # Bug #794874 + local -x SKIP_TEST_COMPLETE_IN_SCRIPT_SH=1 + # Upstream doesn't ship the test data + local -x SKIP_TEST_JOURNAL_PL=1 + local -x SKIP_TEST_MOUNTABLE_INSPECT_SH=1 + # Sandbox interferes with tests + local -x SKIP_TEST_BIG_HEAP=1 + local -x SKIP_TEST_SELINUX_XATTRS_FUSE=1 + local -x SKIP_TEST_GUESTUNMOUNT_FD=1 + # Doesn't work correctly when --without-daemon is specified + local -x SKIP_TEST_NOEXEC_STACK_PL=1 + # Loongarch failures. guestfs_get_architechture returns something other than what's expected + local -x SKIP_TEST_FILE_ARCHITECTURE_6=1 + local -x SKIP_TEST_FILE_ARCHITECTURE_18=1 + # Upstream appliance not built with sys-apps/file[zstd,-seccomp]. + local -x SKIP_TEST_FILE_ARCHITECTURE_28=1 + # guestfs_part_get_gpt_attributes should return 0x3000000000005, but only returns 0x5 for some reaosn. + local -x SKIP_TEST_PART_GET_GPT_ATTRIBUTES_0=1 + # Socket pathname too long for libvirt backend + local -x LIBGUESTFS_BACKEND=direct + # Increase vebosity + local -x LIBGUESTFS_DEBUG=1 + local -x LIBGUESTFS_TRACE=1 + + addwrite /dev/kvm + + default +}