commit:     184dbcb88b4ddb2bce8341da32faa08ce3bfff40
Author:     Christopher Byrne <salah.coronya <AT> gmail <DOT> com>
AuthorDate: Wed Jul 31 05:54:33 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=184dbcb8

app-emulation/libguestfs: add 1.54.1

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.

Closes: https://bugs.gentoo.org/816759
Closes: https://bugs.gentoo.org/911641
Closes: https://bugs.gentoo.org/930590
Closes: https://bugs.gentoo.org/933712
Closes: https://bugs.gentoo.org/936623
Closes: https://bugs.gentoo.org/857849
Signed-off-by: Christopher Byrne <salah.coronya <AT> gmail.com>
Signed-off-by: Joonas Niilola <juippis <AT> gentoo.org>

 app-emulation/libguestfs/Manifest                  |   1 +
 ...-1.52.1-disable-obsolete-lvmetad-in-tests.patch |  12 ++
 app-emulation/libguestfs/libguestfs-1.54.1.ebuild  | 225 +++++++++++++++++++++
 3 files changed, 238 insertions(+)

diff --git a/app-emulation/libguestfs/Manifest 
b/app-emulation/libguestfs/Manifest
index 5e4dfc6354e9..0dc8a4ab0d99 100644
--- a/app-emulation/libguestfs/Manifest
+++ b/app-emulation/libguestfs/Manifest
@@ -1 +1,2 @@
 DIST libguestfs-1.48.6.tar.gz 19179600 BLAKE2B 
22359ed4b55e29f985dbbbc4f0337eaec32f21a1413bd778656c3f0270891bec520a0b9590e104836eaf9367aeb9ac681b0bf85852fb7a2059da3f7062bc5111
 SHA512 
7d929db183fbb1d4d1c9159f28871ab4f1bd0be5b3d9fbc5137271666f50c067fd0906674cb1a52c1e070c11a18da4d2aa11bc64ddabda5cac54e72252c6abf2
+DIST libguestfs-1.54.1.tar.gz 19023492 BLAKE2B 
13fe3a536ec04901a69192ecc9fefe055099d057ba3609bd1ec51b8853e5ad50fd608ef4de7d6296f9bf53a19c1bc81f2ae54c185c18c6e68f7a541f34222f93
 SHA512 
0113ea1cd26aba9b935b65299cf34d53c3d669508238d642a1a97622eb24948df05b55072d4c715cacb4fdfc7339c69ca25f65ca51ac87c40c5325175e939a0d

diff --git 
a/app-emulation/libguestfs/files/libguestfs-1.52.1-disable-obsolete-lvmetad-in-tests.patch
 
b/app-emulation/libguestfs/files/libguestfs-1.52.1-disable-obsolete-lvmetad-in-tests.patch
new file mode 100644
index 000000000000..ba5b9c726361
--- /dev/null
+++ 
b/app-emulation/libguestfs/files/libguestfs-1.52.1-disable-obsolete-lvmetad-in-tests.patch
@@ -0,0 +1,12 @@
+diff --git a/appliance/init b/appliance/init
+index 5d35a47dd..8b63be245 100755
+--- a/appliance/init
++++ b/appliance/init
+@@ -166,7 +166,6 @@ fi
+ 
+ LVM_SYSTEM_DIR=/tmp/lvm
+ export LVM_SYSTEM_DIR
+-lvmetad
+ 
+ # Scan for LVM.
+ modprobe dm_mod ||:

diff --git a/app-emulation/libguestfs/libguestfs-1.54.1.ebuild 
b/app-emulation/libguestfs/libguestfs-1.54.1.ebuild
new file mode 100644
index 000000000000..1ce6bbbed21a
--- /dev/null
+++ b/app-emulation/libguestfs/libguestfs-1.54.1.ebuild
@@ -0,0 +1,225 @@
+# 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/jansson:=
+       || (
+               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() {
+       # bash-completions may not exist
+       # 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
+       # Appliance requires sys-apps/file[zstd,-seccomp].
+       local -x SKIP_TEST_FILE_ARCHITECTURE_26=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
+
+       default
+}

Reply via email to