diff --git a/metadata/md5-cache/sys-apps/fwupd-9999 b/metadata/md5-cache/sys-apps/fwupd-9999 new file mode 100644 index 0000000..ba848e6 --- /dev/null +++ b/metadata/md5-cache/sys-apps/fwupd-9999 @@ -0,0 +1,17 @@ +BDEPEND=|| ( dev-lang/vala:0.56 ) python_single_target_python3_10? ( dev-python/jinja2[python_targets_python3_10(-)] ) python_single_target_python3_11? ( dev-python/jinja2[python_targets_python3_11(-)] ) python_single_target_python3_12? ( dev-python/jinja2[python_targets_python3_12(-)] ) python_single_target_python3_13? ( dev-python/jinja2[python_targets_python3_13(-)] ) >=dev-build/meson-1.3.2 virtual/pkgconfig gtk-doc? ( python_single_target_python3_10? ( >=dev-python/markdown-3.2[python_targets_python3_10(-)] ) python_single_target_python3_11? ( >=dev-python/markdown-3.2[python_targets_python3_11(-)] ) python_single_target_python3_12? ( >=dev-python/markdown-3.2[python_targets_python3_12(-)] ) python_single_target_python3_13? ( >=dev-python/markdown-3.2[python_targets_python3_13(-)] ) >=dev-util/gi-docgen-2021.1 ) bash-completion? ( >=app-shells/bash-completion-2.0 ) introspection? ( dev-libs/gobject-introspection ) test? ( net-libs/gnutls[tools] ) >=dev-build/meson-1.2.3 app-alternatives/ninja dev-build/meson-format-array virtual/pkgconfig >=dev-vcs/git-1.8.2.1[curl] +DEFINED_PHASES=compile configure install postinst postrm preinst prepare setup test unpack +DEPEND=python_single_target_python3_10? ( dev-lang/python:3.10 ) python_single_target_python3_11? ( dev-lang/python:3.11 ) python_single_target_python3_12? ( dev-lang/python:3.12 ) python_single_target_python3_13? ( dev-lang/python:3.13 ) >=app-arch/gcab-1.0 app-arch/xz-utils >=dev-libs/glib-2.72:2 >=dev-libs/json-glib-1.6.0 >=dev-libs/libjcat-0.1.4[gpg,pkcs7] >=dev-libs/libxmlb-0.3.19:=[introspection?] python_single_target_python3_10? ( dev-python/pygobject:3[cairo,python_targets_python3_10(-)] ) python_single_target_python3_11? ( dev-python/pygobject:3[cairo,python_targets_python3_11(-)] ) python_single_target_python3_12? ( dev-python/pygobject:3[cairo,python_targets_python3_12(-)] ) python_single_target_python3_13? ( dev-python/pygobject:3[cairo,python_targets_python3_13(-)] ) >=net-misc/curl-7.62.0 archive? ( app-arch/libarchive:= ) cbor? ( >=dev-libs/libcbor-0.7.0:= ) elogind? ( >=sys-auth/elogind-211 ) flashrom? ( >=sys-apps/flashrom-1.2-r3 ) gnutls? ( >=net-libs/gnutls-3.6.0 ) virtual/libusb:1 logitech? ( dev-libs/protobuf-c:= ) lzma? ( app-arch/xz-utils ) modemmanager? ( net-misc/modemmanager[mbim,qmi] ) policykit? ( >=sys-auth/polkit-0.114 ) sqlite? ( dev-db/sqlite ) systemd? ( >=sys-apps/systemd-211 ) tpm? ( app-crypt/tpm2-tss:= ) uefi? ( sys-apps/fwupd-efi sys-boot/efibootmgr sys-fs/udisks sys-libs/efivar ) x11-libs/pango[introspection] amdgpu? ( sys-kernel/linux-headers x11-libs/libdrm[video_cards_amdgpu] ) +DESCRIPTION=Aims to make updating firmware on Linux automatic, safe and reliable +EAPI=8 +HOMEPAGE=https://fwupd.org +IDEPEND=dev-util/desktop-file-utils x11-misc/shared-mime-info +INHERIT=meson python-single-r1 vala udev xdg git-r3 +IUSE=amdgpu amt +archive bash-completion bluetooth cbor elogind fastboot flashrom gnutls gtk-doc introspection logitech lzma minimal modemmanager nvme policykit spi +sqlite synaptics systemd test tpm uefi python_single_target_python3_10 python_single_target_python3_11 python_single_target_python3_12 python_single_target_python3_13 +LICENSE=LGPL-2.1+ +PROPERTIES=live +RDEPEND=python_single_target_python3_10? ( dev-lang/python:3.10 ) python_single_target_python3_11? ( dev-lang/python:3.11 ) python_single_target_python3_12? ( dev-lang/python:3.12 ) python_single_target_python3_13? ( dev-lang/python:3.13 ) >=app-arch/gcab-1.0 app-arch/xz-utils >=dev-libs/glib-2.72:2 >=dev-libs/json-glib-1.6.0 >=dev-libs/libjcat-0.1.4[gpg,pkcs7] >=dev-libs/libxmlb-0.3.19:=[introspection?] python_single_target_python3_10? ( dev-python/pygobject:3[cairo,python_targets_python3_10(-)] ) python_single_target_python3_11? ( dev-python/pygobject:3[cairo,python_targets_python3_11(-)] ) python_single_target_python3_12? ( dev-python/pygobject:3[cairo,python_targets_python3_12(-)] ) python_single_target_python3_13? ( dev-python/pygobject:3[cairo,python_targets_python3_13(-)] ) >=net-misc/curl-7.62.0 archive? ( app-arch/libarchive:= ) cbor? ( >=dev-libs/libcbor-0.7.0:= ) elogind? ( >=sys-auth/elogind-211 ) flashrom? ( >=sys-apps/flashrom-1.2-r3 ) gnutls? ( >=net-libs/gnutls-3.6.0 ) virtual/libusb:1 logitech? ( dev-libs/protobuf-c:= ) lzma? ( app-arch/xz-utils ) modemmanager? ( net-misc/modemmanager[mbim,qmi] ) policykit? ( >=sys-auth/polkit-0.114 ) sqlite? ( dev-db/sqlite ) systemd? ( >=sys-apps/systemd-211 ) tpm? ( app-crypt/tpm2-tss:= ) uefi? ( sys-apps/fwupd-efi sys-boot/efibootmgr sys-fs/udisks sys-libs/efivar ) sys-apps/dbus +REQUIRED_USE=^^ ( python_single_target_python3_10 python_single_target_python3_11 python_single_target_python3_12 python_single_target_python3_13 ) ^^ ( elogind minimal systemd ) minimal? ( !introspection ) spi? ( lzma ) synaptics? ( gnutls ) test? ( archive ) uefi? ( gnutls ) +RESTRICT=!test? ( test ) +SLOT=0 +_eclasses_=toolchain-funcs d3d42b22a610ce81c267b644bcec9b87 multilib b2a329026f2e404e9e371097dda47f96 flag-o-matic f14aba975c94ccaa9f357a27e3b17ffe multiprocessing 1e32df7deee68372153dca65f4a7c21f ninja-utils 2df4e452cea39a9ec8fb543ce059f8d6 python-utils-r1 2fee95c11e5f883024588d4837db6802 meson 99466844dd8d4fcfb07578a76f5a9922 python-single-r1 47d8ac9be330c9366112b78fd4f8ce57 vala e477903dbe0105930c51f170a592dc16 udev f3d9a4376ebd22131726a68e1a0a058f xdg-utils 42869b3c8d86a70ef3cf75165a395e09 xdg 3ef49a87c52c8b77c476351195dfe575 git-r3 875eb471682d3e1f18da124be97dcc81 +_md5_=7eb2acf754cfad7dc16c2a6d3b7cd57a diff --git a/sys-apps/fwupd/files/fwupd-1.9.6-fragile_tests.patch b/sys-apps/fwupd/files/fwupd-1.9.6-fragile_tests.patch new file mode 100644 index 0000000..cc40dc7 --- /dev/null +++ b/sys-apps/fwupd/files/fwupd-1.9.6-fragile_tests.patch @@ -0,0 +1,28 @@ +umockdev-based tests appear not to play nicely with the sandbox, +often they work but on some systems they persistently fail. + +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -457,6 +457,11 @@ + value: true, + description: 'enable tests', + ) ++option('test-full', ++ type: 'boolean', ++ value: false, ++ description: 'enable tests known to be fragile when called from Gentoo ebuilds' ++) + option('curl', + type: 'feature', + description: 'libcurl support', +--- a/plugins/thunderbolt/meson.build ++++ b/plugins/thunderbolt/meson.build +@@ -19,7 +19,7 @@ + plugin_builtins += plugin_builtin_thunderbolt + + # we use functions from 2.52 in the tests +-if get_option('tests') and run_sanitize_unsafe_tests and umockdev.found() and gio.version().version_compare('>= 2.52') ++if get_option('tests') and get_option('test-full') and run_sanitize_unsafe_tests and umockdev.found() and gio.version().version_compare('>= 2.52') + env = environment() + env.set('G_TEST_SRCDIR', meson.current_source_dir()) + env.set('G_TEST_BUILDDIR', meson.current_build_dir()) diff --git a/sys-apps/fwupd/files/fwupd-r2 b/sys-apps/fwupd/files/fwupd-r2 new file mode 100644 index 0000000..d30bf1d --- /dev/null +++ b/sys-apps/fwupd/files/fwupd-r2 @@ -0,0 +1,13 @@ +#!/sbin/openrc-run +# Copyright 1999-2021 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +description="Firmware update daemon" +pidfile="/var/run/fwupd.pid" +command="/usr/libexec/fwupd/fwupd" +command_background="true" + +depend() { + need elogind dbus + before display-manager +} diff --git a/sys-apps/fwupd/fwupd-9999.ebuild b/sys-apps/fwupd/fwupd-9999.ebuild new file mode 100644 index 0000000..3eb6dc5 --- /dev/null +++ b/sys-apps/fwupd/fwupd-9999.ebuild @@ -0,0 +1,192 @@ +# Copyright 1999-2024 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{10..13} ) + +inherit meson python-single-r1 vala udev xdg + +DESCRIPTION="Aims to make updating firmware on Linux automatic, safe and reliable" +HOMEPAGE="https://fwupd.org" + +if [[ "${PV}" = *9999 ]]; then + inherit git-r3 + EGIT_REPO_URI="https://github.com/${PN}/${PN}.git" +else + SRC_URI="https://github.com/${PN}/${PN}/releases/download/${PV}/${P}.tar.xz" + KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86" +fi + +LICENSE="LGPL-2.1+" +SLOT="0" +IUSE="amdgpu amt +archive bash-completion bluetooth cbor elogind fastboot flashrom gnutls gtk-doc introspection logitech lzma minimal modemmanager nvme policykit spi +sqlite synaptics systemd test tpm uefi" +REQUIRED_USE="${PYTHON_REQUIRED_USE} + ^^ ( elogind minimal systemd ) + minimal? ( !introspection ) + spi? ( lzma ) + synaptics? ( gnutls ) + test? ( archive ) + uefi? ( gnutls ) +" +RESTRICT="!test? ( test )" + +BDEPEND="$(vala_depend) + $(python_gen_cond_dep ' + dev-python/jinja2[${PYTHON_USEDEP}] + ') + >=dev-build/meson-1.3.2 + virtual/pkgconfig + gtk-doc? ( + $(python_gen_cond_dep ' + >=dev-python/markdown-3.2[${PYTHON_USEDEP}] + ') + >=dev-util/gi-docgen-2021.1 + ) + bash-completion? ( >=app-shells/bash-completion-2.0 ) + introspection? ( dev-libs/gobject-introspection ) + test? ( + net-libs/gnutls[tools] + ) +" +COMMON_DEPEND="${PYTHON_DEPS} + >=app-arch/gcab-1.0 + app-arch/xz-utils + >=dev-libs/glib-2.72:2 + >=dev-libs/json-glib-1.6.0 + >=dev-libs/libjcat-0.1.4[gpg,pkcs7] + >=dev-libs/libxmlb-0.3.19:=[introspection?] + $(python_gen_cond_dep ' + dev-python/pygobject:3[cairo,${PYTHON_USEDEP}] + ') + >=net-misc/curl-7.62.0 + archive? ( app-arch/libarchive:= ) + cbor? ( >=dev-libs/libcbor-0.7.0:= ) + elogind? ( >=sys-auth/elogind-211 ) + flashrom? ( >=sys-apps/flashrom-1.2-r3 ) + gnutls? ( >=net-libs/gnutls-3.6.0 ) + virtual/libusb:1 + logitech? ( dev-libs/protobuf-c:= ) + lzma? ( app-arch/xz-utils ) + modemmanager? ( net-misc/modemmanager[mbim,qmi] ) + policykit? ( >=sys-auth/polkit-0.114 ) + sqlite? ( dev-db/sqlite ) + systemd? ( >=sys-apps/systemd-211 ) + tpm? ( app-crypt/tpm2-tss:= ) + uefi? ( + sys-apps/fwupd-efi + sys-boot/efibootmgr + sys-fs/udisks + sys-libs/efivar + ) +" +RDEPEND=" + ${COMMON_DEPEND} + sys-apps/dbus +" + +DEPEND=" + ${COMMON_DEPEND} + x11-libs/pango[introspection] + amdgpu? ( + sys-kernel/linux-headers + x11-libs/libdrm[video_cards_amdgpu] + ) +" + +src_prepare() { + default + + vala_setup + + sed -e "/install_dir.*'doc'/s/doc/gtk-doc/" \ + -i docs/meson.build || die + + python_fix_shebang "${S}"/contrib/*.py +} + +src_configure() { + local plugins=( + -Dplugin_gpio="enabled" + -Dplugin_uf2="enabled" + $(meson_feature amdgpu plugin_amdgpu) + $(meson_feature amt plugin_intel_me) + $(meson_feature fastboot plugin_fastboot) + $(meson_feature flashrom plugin_flashrom) + $(meson_feature logitech plugin_logitech_bulkcontroller) + $(meson_feature modemmanager plugin_modem_manager) + $(meson_feature nvme plugin_nvme) + $(meson_feature synaptics plugin_synaptics_mst) + $(meson_feature synaptics plugin_synaptics_rmi) + $(meson_feature tpm plugin_tpm) + $(meson_feature uefi plugin_uefi_capsule) + $(meson_use uefi plugin_uefi_capsule_splash) + $(meson_feature uefi plugin_uefi_pk) + ) + if use ppc64 || use riscv ; then + plugins+=( -Dplugin_msr="disabled" ) + fi + + local emesonargs=( + --localstatedir "${EPREFIX}"/var + -Dbuild="$(usex minimal standalone all)" + -Dconsolekit="disabled" + -Dcurl="enabled" + -Defi_binary="false" + -Dman="true" + -Dsupported_build="enabled" + -Dsystemd_unit_user="" + $(meson_feature archive libarchive) + $(meson_use bash-completion bash_completion) + $(meson_feature bluetooth bluez) + $(meson_feature cbor) + $(meson_feature elogind) + $(meson_feature gnutls) + $(meson_feature gtk-doc docs) + $(meson_feature lzma) + $(meson_feature introspection) + $(meson_feature policykit polkit) + $(meson_feature sqlite) + $(meson_feature systemd) + $(meson_use test tests) + + ${plugins[@]} + ) + use uefi && emesonargs+=( -Defi_os_dir="gentoo" ) + export CACHE_DIRECTORY="${T}" + meson_src_configure +} + +src_test() { + LC_ALL="C" meson_src_test +} + +src_install() { + meson_src_install + + if ! use minimal ; then + newinitd "${FILESDIR}"/${PN}-r2 ${PN} + fi + + if use test; then + # Preventing tests from being installed in the first place is a moving target, + # just axe them all afterwards. + rm -rf \ + "${ED}"/usr/libexec/installed-tests \ + "${ED}"/usr/share/fwupd/device-tests \ + "${ED}"/usr/share/fwupd/host-emulate.d/thinkpad-p1-iommu.json.gz \ + "${ED}"/usr/share/fwupd/remotes.d/fwupd-tests.conf \ + "${ED}"/usr/share/installed-tests \ + || die + fi +} + +pkg_postinst() { + xdg_pkg_postinst + use minimal || udev_reload +} + +pkg_postrm() { + xdg_pkg_postrm + use minimal || udev_reload +}