From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from lists.gentoo.org (pigeon.gentoo.org [208.92.234.80]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by finch.gentoo.org (Postfix) with ESMTPS id 3CD7F15802F for ; Mon, 6 Mar 2023 22:06:22 +0000 (UTC) Received: from pigeon.gentoo.org (localhost [127.0.0.1]) by pigeon.gentoo.org (Postfix) with SMTP id C4ABBE086D; Mon, 6 Mar 2023 22:06:20 +0000 (UTC) Received: from smtp.gentoo.org (mail.gentoo.org [IPv6:2001:470:ea4a:1:5054:ff:fec7:86e4]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by pigeon.gentoo.org (Postfix) with ESMTPS id 33E80E086F for ; Mon, 6 Mar 2023 22:06:20 +0000 (UTC) Received: from oystercatcher.gentoo.org (oystercatcher.gentoo.org [148.251.78.52]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by smtp.gentoo.org (Postfix) with ESMTPS id 4BC0E34127D for ; Mon, 6 Mar 2023 22:06:19 +0000 (UTC) Received: from localhost.localdomain (localhost [IPv6:::1]) by oystercatcher.gentoo.org (Postfix) with ESMTP id 8176E8D1 for ; Mon, 6 Mar 2023 22:06:17 +0000 (UTC) From: "Marek Szuba" To: gentoo-commits@lists.gentoo.org Content-Transfer-Encoding: 8bit Content-type: text/plain; charset=UTF-8 Reply-To: gentoo-dev@lists.gentoo.org, "Marek Szuba" Message-ID: <1678140365.3d5d8540cfb53f55d192ff0867ba4d96b14062a5.marecki@gentoo> Subject: [gentoo-commits] repo/gentoo:master commit in: sys-apps/fwupd/files/, sys-apps/fwupd/ X-VCS-Repository: repo/gentoo X-VCS-Files: sys-apps/fwupd/files/fwupd-1.8.11-empty_kernel_cmdline.patch sys-apps/fwupd/fwupd-1.8.11-r1.ebuild X-VCS-Directories: sys-apps/fwupd/ sys-apps/fwupd/files/ X-VCS-Committer: marecki X-VCS-Committer-Name: Marek Szuba X-VCS-Revision: 3d5d8540cfb53f55d192ff0867ba4d96b14062a5 X-VCS-Branch: master Date: Mon, 6 Mar 2023 22:06:17 +0000 (UTC) Precedence: bulk List-Post: List-Help: List-Unsubscribe: List-Subscribe: List-Id: Gentoo Linux mail X-BeenThere: gentoo-commits@lists.gentoo.org X-Auto-Response-Suppress: DR, RN, NRN, OOF, AutoReply X-Archives-Salt: e58e9cab-2794-472f-be20-f6949824e46d X-Archives-Hash: 9a4e3bb1ed6e2623b699b641fa5ccc03 commit: 3d5d8540cfb53f55d192ff0867ba4d96b14062a5 Author: Marek Szuba gentoo org> AuthorDate: Mon Mar 6 21:57:43 2023 +0000 Commit: Marek Szuba gentoo org> CommitDate: Mon Mar 6 22:06:05 2023 +0000 URL: https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=3d5d8540 sys-apps/fwupd: backport the 2nd part of fwupdtool get-devices segfault fix Closes: https://bugs.gentoo.org/895716 Signed-off-by: Marek Szuba gentoo.org> .../files/fwupd-1.8.11-empty_kernel_cmdline.patch | 19 ++ sys-apps/fwupd/fwupd-1.8.11-r1.ebuild | 194 +++++++++++++++++++++ 2 files changed, 213 insertions(+) diff --git a/sys-apps/fwupd/files/fwupd-1.8.11-empty_kernel_cmdline.patch b/sys-apps/fwupd/files/fwupd-1.8.11-empty_kernel_cmdline.patch new file mode 100644 index 000000000000..42d5915397b8 --- /dev/null +++ b/sys-apps/fwupd/files/fwupd-1.8.11-empty_kernel_cmdline.patch @@ -0,0 +1,19 @@ +From 7e502cf7d3da00a978201455f3a3799ae4aded75 Mon Sep 17 00:00:00 2001 +From: Richard Hughes +Date: Mon, 6 Mar 2023 16:56:05 +0000 +Subject: [PATCH] Fix a critical warning when parsing an empty kernel cmdline + +Fix the bounds check so we never pass a bufsz of zero to fu_strsplit(). + +Resolves: https://github.com/fwupd/fwupd/issues/5575 +--- a/libfwupdplugin/fu-kernel.c ++++ b/libfwupdplugin/fu-kernel.c +@@ -253,7 +253,7 @@ fu_kernel_get_cmdline(GError **error) + if (!g_file_get_contents("/proc/cmdline", &buf, &bufsz, error)) + return NULL; + hash = g_hash_table_new_full(g_str_hash, g_str_equal, g_free, g_free); +- if (bufsz > 0) { ++ if (bufsz > 1) { + g_auto(GStrv) tokens = fu_strsplit(buf, bufsz - 1, " ", -1); + for (guint i = 0; tokens[i] != NULL; i++) { + g_auto(GStrv) kv = NULL; diff --git a/sys-apps/fwupd/fwupd-1.8.11-r1.ebuild b/sys-apps/fwupd/fwupd-1.8.11-r1.ebuild new file mode 100644 index 000000000000..fa2a0075952f --- /dev/null +++ b/sys-apps/fwupd/fwupd-1.8.11-r1.ebuild @@ -0,0 +1,194 @@ +# Copyright 1999-2023 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=8 + +PYTHON_COMPAT=( python3_{9..11} ) + +inherit meson python-single-r1 vala udev xdg + +DESCRIPTION="Aims to make updating firmware on Linux automatic, safe and reliable" +HOMEPAGE="https://fwupd.org" +SRC_URI="https://github.com/${PN}/${PN}/releases/download/${PV}/${P}.tar.xz" + +LICENSE="LGPL-2.1+" +SLOT="0" +KEYWORDS="~amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv ~x86" +IUSE="amt +archive bash-completion bluetooth cbor dell elogind fastboot flashrom gnutls gtk-doc +gusb introspection logitech lzma minimal modemmanager nvme policykit spi +sqlite synaptics systemd test tpm uefi" +REQUIRED_USE="${PYTHON_REQUIRED_USE} + ^^ ( elogind minimal systemd ) + dell? ( uefi ) + fastboot? ( gusb ) + logitech? ( gusb ) + minimal? ( !introspection ) + modemmanager? ( gusb ) + spi? ( lzma ) + synaptics? ( gnutls ) + test? ( archive gusb ) + uefi? ( gnutls ) +" +RESTRICT="!test? ( test )" + +BDEPEND="$(vala_depend) + >=dev-util/meson-0.60.0 + 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? ( + dev-util/umockdev + net-libs/gnutls[tools] + ) +" +COMMON_DEPEND="${PYTHON_DEPS} + >=app-arch/gcab-1.0 + app-arch/xz-utils + >=dev-libs/glib-2.58:2 + dev-libs/json-glib + dev-libs/libgudev:= + >=dev-libs/libjcat-0.1.4[gpg,pkcs7] + >=dev-libs/libxmlb-0.1.13:=[introspection?] + $(python_gen_cond_dep ' + dev-python/pygobject:3[cairo,${PYTHON_USEDEP}] + ') + net-misc/curl + archive? ( app-arch/libarchive:= ) + cbor? ( dev-libs/libcbor:= ) + dell? ( + >=app-crypt/tpm2-tss-2.0 + >=sys-libs/libsmbios-2.4.0 + ) + elogind? ( >=sys-auth/elogind-211 ) + flashrom? ( >=sys-apps/flashrom-1.2-r3 ) + gnutls? ( net-libs/gnutls ) + gusb? ( >=dev-libs/libgusb-0.3.5[introspection?] ) + logitech? ( dev-libs/protobuf-c:= ) + lzma? ( app-arch/xz-utils ) + modemmanager? ( net-misc/modemmanager[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] +" + +PATCHES=( + "${FILESDIR}"/${PN}-1.8.11-installed_tests.patch + "${FILESDIR}"/${PN}-1.8.11-empty_kernel_cmdline.patch +) + +src_prepare() { + default + + vala_setup + + # c.f. https://github.com/fwupd/fwupd/issues/1414 + sed -e "/test('thunderbolt-self-test', e, env: test_env, timeout : 120)/d" \ + -i plugins/thunderbolt/meson.build || die + + 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" + $(meson_feature amt plugin_intel_me) + $(meson_feature dell plugin_dell) + $(meson_feature fastboot plugin_fastboot) + $(meson_feature flashrom plugin_flashrom) + $(meson_feature gusb plugin_uf2) + $(meson_feature logitech plugin_logitech_bulkcontroller) + $(meson_feature modemmanager plugin_modem_manager) + $(meson_feature nvme plugin_nvme) + $(meson_use spi plugin_intel_spi) + $(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" + -Dudevdir="${EPREFIX}$(get_udevdir)" + $(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 gusb) + $(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} + + if ! use systemd ; then + # Don't timeout when fwupd is running (#673140) + sed '/^IdleTimeout=/s@=[[:digit:]]\+@=0@' \ + -i "${ED}"/etc/${PN}/daemon.conf || die + fi + fi +} + +pkg_postinst() { + xdg_pkg_postinst + use minimal || udev_reload +} + +pkg_postrm() { + xdg_pkg_postrm + use minimal || udev_reload +}