1 # Copyright 1999-2020 Gentoo Authors
2 # Distributed under the terms of the GNU General Public License v2
6 PYTHON_COMPAT=( python3_{6,7,8} )
8 inherit linux-info meson python-single-r1 vala xdg toolchain-funcs
10 DESCRIPTION="Aims to make updating firmware on Linux automatic, safe and reliable"
11 HOMEPAGE="https://fwupd.org"
12 SRC_URI="https://github.com/hughsie/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz"
16 KEYWORDS="~amd64 ~arm ~x86"
17 IUSE="agent amt consolekit dell gtk-doc elogind minimal +gpg introspection +man nvme pkcs7 redfish synaptics systemd test thunderbolt uefi"
18 REQUIRED_USE="${PYTHON_REQUIRED_USE}
19 ^^ ( consolekit elogind minimal systemd )
21 minimal? ( !introspection )
23 RESTRICT="!test? ( test )"
25 BDEPEND="$(vala_depend)
27 gtk-doc? ( dev-util/gtk-doc )
28 introspection? ( dev-libs/gobject-introspection )
30 app-text/docbook-sgml-utils
34 thunderbolt? ( dev-util/umockdev )
35 net-libs/gnutls[tools]
38 DEPEND="${PYTHON_DEPS}
42 >=dev-libs/glib-2.45.8:2
46 >=dev-libs/libgusb-0.2.9[introspection?]
47 >=dev-libs/libxmlb-0.1.13
48 dev-python/pillow[${PYTHON_USEDEP}]
49 dev-python/pycairo[${PYTHON_USEDEP}]
50 dev-python/pygobject:3[cairo,${PYTHON_USEDEP}]
51 >=net-libs/libsoup-2.51.92:2.4[introspection?]
54 consolekit? ( >=sys-auth/consolekit-1.0.0 )
57 >=sys-libs/libsmbios-2.4.0
59 elogind? ( sys-auth/elogind )
65 >=sys-auth/polkit-0.103
67 nvme? ( sys-libs/efivar )
68 pkcs7? ( >=net-libs/gnutls-3.4.4.1:= )
69 redfish? ( sys-libs/efivar )
70 systemd? ( >=sys-apps/systemd-211 )
72 sys-apps/thunderbolt-software-user-space
90 tc-ld-disable-gold # bug https://github.com/fwupd/fwupd/issues/1530
92 python-single-r1_pkg_setup
94 kernel_is -ge 4 4 || die "NVMe support requires kernel >= 4.4"
100 # c.f. https://github.com/fwupd/fwupd/issues/1414
101 sed -e "/test('thunderbolt-self-test', e, env: test_env, timeout : 120)/d" \
102 -i plugins/thunderbolt/meson.build || die
108 --localstatedir "${EPREFIX}"/var
109 -Dbuild="$(usex minimal standalone all)"
111 $(meson_use amt plugin_amt)
112 $(meson_use consolekit)
113 $(meson_use dell plugin_dell)
116 $(meson_use gtk-doc gtkdoc)
118 $(meson_use nvme plugin_nvme)
120 $(meson_use redfish plugin_redfish)
121 $(meson_use synaptics plugin_synaptics)
123 $(meson_use test tests)
124 $(meson_use thunderbolt plugin_thunderbolt)
125 $(meson_use uefi plugin_uefi)
126 # Requires libflashrom which our sys-apps/flashrom
127 # package does not provide
128 -Dplugin_flashrom="false"
129 # Dependencies are not available (yet?)
130 -Dplugin_modem_manager="false"
132 export CACHE_DIRECTORY="${T}"
139 if ! use minimal ; then
140 sed "s@%SEAT_MANAGER%@$(usex elogind elogind consolekit)@" \
141 "${FILESDIR}"/${PN}-r1 \
142 > "${T}"/${PN} || die
145 if ! use systemd ; then
146 # Don't timeout when fwupd is running (#673140)
147 sed '/^IdleTimeout=/s@=[[:digit:]]\+@=0@' \
148 -i "${ED}"/etc/${PN}/daemon.conf || die
155 elog "In case you are using openrc as init system"
156 elog "and you're upgrading from <fwupd-1.1.0, you"
157 elog "need to start the fwupd daemon via the openrc"
158 elog "init script that comes with this package."