diff options
Diffstat (limited to 'sys-apps/fwupd')
-rw-r--r-- | sys-apps/fwupd/files/fwupd-1.2.4-elogind.patch | 105 | ||||
-rw-r--r-- | sys-apps/fwupd/fwupd-1.2.4-r2.ebuild | 132 | ||||
-rw-r--r-- | sys-apps/fwupd/metadata.xml | 3 |
3 files changed, 239 insertions, 1 deletions
diff --git a/sys-apps/fwupd/files/fwupd-1.2.4-elogind.patch b/sys-apps/fwupd/files/fwupd-1.2.4-elogind.patch new file mode 100644 index 000000000000..1a8b7760001d --- /dev/null +++ b/sys-apps/fwupd/files/fwupd-1.2.4-elogind.patch @@ -0,0 +1,105 @@ +From de2b70bc7d0ca092659a0b5a4719e41444660b14 Mon Sep 17 00:00:00 2001 +From: Marcin Sucharski <marcin.sucharski@protonmail.com> +Date: Sun, 24 Feb 2019 00:28:10 +0100 +Subject: [PATCH] Add elogind support + +--- + data/meson.build | 27 ++++++++++++++++----------- + meson.build | 6 ++++++ + meson_options.txt | 1 + + src/fu-util-common.c | 4 ++-- + 4 files changed, 25 insertions(+), 13 deletions(-) + +diff --git a/data/meson.build b/data/meson.build +index 2d7fb632a..f9377c803 100644 +--- a/data/meson.build ++++ b/data/meson.build +@@ -63,17 +63,6 @@ if get_option('systemd') + endif + con2.set('dynamic_options', '\n'.join(dynamic_options)) + +- # replace @libexecdir@ +- configure_file( +- input : 'org.freedesktop.fwupd.service.in', +- output : 'org.freedesktop.fwupd.service', +- configuration : con2, +- install: true, +- install_dir: join_paths(datadir, +- 'dbus-1', +- 'system-services'), +- ) +- + # replace @bindir@ + configure_file( + input : 'fwupd-offline-update.service.in', +@@ -92,3 +81,19 @@ if get_option('systemd') + install_dir: systemdunitdir, + ) + endif ++ ++if get_option('systemd') or get_option('elogind') ++ con2 = configuration_data() ++ con2.set('libexecdir', libexecdir) ++ ++ # replace @libexecdir@ ++ configure_file( ++ input : 'org.freedesktop.fwupd.service.in', ++ output : 'org.freedesktop.fwupd.service', ++ configuration : con2, ++ install: true, ++ install_dir: join_paths(datadir, ++ 'dbus-1', ++ 'system-services'), ++ ) ++endif +diff --git a/meson.build b/meson.build +index f4f0af192..d645db2ae 100644 +--- a/meson.build ++++ b/meson.build +@@ -270,6 +270,12 @@ endif + if get_option('systemd') + systemd = dependency('systemd', version : '>= 211') + conf.set('HAVE_SYSTEMD' , '1') ++ conf.set('HAVE_LOGIND' , '1') ++endif ++ ++if get_option('elogind') ++ elogind = dependency('libelogind', version : '>= 211') ++ conf.set('HAVE_LOGIND' , '1') + endif + + if get_option('consolekit') +diff --git a/meson_options.txt b/meson_options.txt +index c9b7ba675..6b0902225 100644 +--- a/meson_options.txt ++++ b/meson_options.txt +@@ -18,6 +18,7 @@ option('plugin_uefi', type : 'boolean', value : true, description : 'enable UEFI + option('plugin_nvme', type : 'boolean', value : true, description : 'enable NVMe support') + option('systemd', type : 'boolean', value : true, description : 'enable systemd support') + option('systemdunitdir', type: 'string', value: '', description: 'Directory for systemd units') ++option('elogind', type : 'boolean', value : false, description : 'enable elogind support') + option('tests', type : 'boolean', value : true, description : 'enable tests') + option('udevdir', type: 'string', value: '', description: 'Directory for udev rules') + option('efi-cc', type : 'string', value : 'gcc', description : 'the compiler to use for EFI modules') +diff --git a/src/fu-util-common.c b/src/fu-util-common.c +index cdeb2ff6b..667c142fb 100644 +--- a/src/fu-util-common.c ++++ b/src/fu-util-common.c +@@ -184,7 +184,7 @@ fu_util_update_shutdown (GError **error) + if (connection == NULL) + return FALSE; + +-#ifdef HAVE_SYSTEMD ++#ifdef HAVE_LOGIND + /* shutdown using logind */ + val = g_dbus_connection_call_sync (connection, + "org.freedesktop.login1", +@@ -229,7 +229,7 @@ fu_util_update_reboot (GError **error) + if (connection == NULL) + return FALSE; + +-#ifdef HAVE_SYSTEMD ++#ifdef HAVE_LOGIND + /* reboot using logind */ + val = g_dbus_connection_call_sync (connection, + "org.freedesktop.login1", diff --git a/sys-apps/fwupd/fwupd-1.2.4-r2.ebuild b/sys-apps/fwupd/fwupd-1.2.4-r2.ebuild new file mode 100644 index 000000000000..43db76e1c25a --- /dev/null +++ b/sys-apps/fwupd/fwupd-1.2.4-r2.ebuild @@ -0,0 +1,132 @@ +# Copyright 1999-2019 Gentoo Authors +# Distributed under the terms of the GNU General Public License v2 + +EAPI=7 + +PYTHON_COMPAT=( python3_{4,5,6,7} ) + +inherit meson python-single-r1 vala xdg-utils + +DESCRIPTION="Aims to make updating firmware on Linux automatic, safe and reliable" +HOMEPAGE="https://fwupd.org" +SRC_URI="https://github.com/hughsie/${PN}/archive/${PV}.tar.gz -> ${P}.tar.gz" + +LICENSE="LGPL-2.1+" +SLOT="0" +KEYWORDS="~amd64 ~x86" +IUSE="colorhug dell doc elogind +gpg +man nvme pkcs7 redfish systemd test thunderbolt uefi" + +REQUIRED_USE="${PYTHON_REQUIRED_USE} + ?? ( elogind systemd ) + dell? ( uefi ) +" + +RDEPEND="${PYTHON_DEPS} + app-arch/gcab + app-arch/libarchive:= + dev-db/sqlite + >=dev-libs/glib-2.45.8:2 + dev-libs/json-glib + dev-libs/libgpg-error + dev-libs/libgudev:= + >=dev-libs/libgusb-0.2.9[introspection] + >=dev-libs/libxmlb-0.1.5 + dev-python/pillow[${PYTHON_USEDEP}] + dev-python/pycairo[${PYTHON_USEDEP}] + dev-python/pygobject:3[cairo,${PYTHON_USEDEP}] + >=net-libs/libsoup-2.51.92:2.4[introspection] + >=sys-auth/polkit-0.103 + virtual/libelf:0= + colorhug? ( >=x11-misc/colord-1.2.12:0= ) + dell? ( + sys-libs/efivar + >=sys-libs/libsmbios-2.4.0 + ) + gpg? ( + app-crypt/gpgme + dev-libs/libgpg-error + ) + nvme? ( sys-libs/efivar ) + pkcs7? ( >=net-libs/gnutls-3.4.4.1:= ) + redfish? ( sys-libs/efivar ) + !systemd? ( + !elogind? ( >=sys-auth/consolekit-1.0.0 ) + elogind? ( sys-auth/elogind ) + ) + systemd? ( >=sys-apps/systemd-211 ) + thunderbolt? ( sys-apps/thunderbolt-software-user-space ) + uefi? ( + media-libs/fontconfig + media-libs/freetype + sys-boot/gnu-efi + >=sys-libs/efivar-33 + x11-libs/cairo + ) +" +DEPEND="${RDEPEND} + $(vala_depend) + x11-libs/pango[introspection] + nvme? ( >=sys-kernel/linux-headers-4.4 ) + test? ( net-libs/gnutls[tools] ) +" +BDEPEND=" + >=dev-util/meson-0.47.0 + virtual/pkgconfig + doc? ( dev-util/gtk-doc ) + man? ( app-text/docbook-sgml-utils ) +" + +# required for fwupd daemon to run. +# NOT a build time dependency. The build system does not check for dbus. +PDEPEND="sys-apps/dbus" + +PATCHES=( "${FILESDIR}/${P}-elogind.patch" ) # bug 668522 + +src_prepare() { + default + sed -e "s/'--create'/'--absolute-name', '--create'/" \ + -i data/tests/builder/meson.build || die + sed -e "/'-Werror',/d" \ + -i plugins/uefi/efi/meson.build || die + vala_src_prepare +} + +src_configure() { + xdg_environment_reset + local emesonargs=( + --localstatedir "${EPREFIX}"/var + -Dgtkdoc="$(usex doc true false)" + -Delogind="$(usex elogind true false)" + -Dgpg="$(usex gpg true false)" + -Dman="$(usex man true false)" + -Dpkcs7="$(usex pkcs7 true false)" + -Dplugin_dell="$(usex dell true false)" + -Dplugin_nvme="$(usex nvme true false)" + -Dplugin_redfish="$(usex redfish true false)" + -Dplugin_synaptics="$(usex dell true false)" + -Dplugin_thunderbolt="$(usex thunderbolt true false)" + -Dplugin_uefi="$(usex uefi true false)" + -Dsystemd="$(usex systemd true false)" + -Dtests="$(usex test true false)" + ) + use elogind || use systemd || emesonargs+=( -Dconsolekit=true ) + meson_src_configure +} + +src_install() { + meson_src_install + doinitd "${FILESDIR}"/${PN} + + if ! use systemd && ! use elogind ; then + # Don't timeout when fwupd is running (#673140) + sed '/^IdleTimeout=/s@=[[:digit:]]\+@=0@' \ + -i "${ED}"/etc/${PN}/daemon.conf || die + fi +} + +pkg_postinst() { + elog "In case you are using openrc as init system" + elog "and you're upgrading from <fwupd-1.1.0, you" + elog "need to start the fwupd daemon via the openrc" + elog "init script that comes with this package." +} diff --git a/sys-apps/fwupd/metadata.xml b/sys-apps/fwupd/metadata.xml index 702c657eeb25..d6ab1d6e8c68 100644 --- a/sys-apps/fwupd/metadata.xml +++ b/sys-apps/fwupd/metadata.xml @@ -9,10 +9,11 @@ <flag name="colorhug">Enable ColorHug support through <pkg>x11-misc/colord</pkg> package.</flag> <flag name="dell">Enable Dell-specific support.</flag> + <flag name="elogind">Use <pkg>sys-auth/elogind</pkg> instead of <pkg>sys-auth/consolekit</pkg> for session tracking</flag> <flag name="gpg">Enable GPG support.</flag> <flag name="man">Build and install man pages</flag> <flag name="nvme">Build and install nvme plugin</flag> - <flag name="pkcs7">Enable PKCS7 verification support via <pkg>net-libs/gnutls</pkg>.</flag> + <flag name="pkcs7">Enable PKCS7 verification support via <pkg>net-libs/gnutls</pkg></flag> <flag name="redfish">Install redfish plugin</flag> <flag name="thunderbolt">Install thunderbolt plugin</flag> <flag name="uefi">Enable UEFI support</flag> |