[PATCH 2/2] gnu: Add fwupd.

OpenSubmitted by Léo Le Bouter.
Details
2 participants
  • Léo Le Bouter
  • phodina
Owner
unassigned
Severity
normal
Merged with
L
L
Léo Le Bouter wrote on 4 Feb 2021 00:14
(address . guix-patches@gnu.org)(name . Léo Le Bouter)(address . lle-bout@zaclys.net)
20210203231419.26724-3-lle-bout@zaclys.net
* gnu/packages/firmware.scm (fwupd): New variable.
* gnu/packages/patches/fwupd-add-option-for-installation-sysconfdir.patch,
gnu/packages/patches/fwupd-do-not-write-to-var.patch,
gnu/packages/patches/fwupd-installed-tests-path.patch,
gnu/packages/patches/fwupd-remove-nonfree-lvfs-repo.patch: New patches.
* gnu/local.mk (dist_patch_DATA): Register them.
---
gnu/local.mk | 5 +
gnu/packages/firmware.scm | 120 ++++++++++++-
...d-option-for-installation-sysconfdir.patch | 161 ++++++++++++++++++
.../patches/fwupd-do-not-write-to-var.patch | 8 +
.../patches/fwupd-installed-tests-path.patch | 48 ++++++
.../fwupd-remove-nonfree-lvfs-repo.patch | 147 ++++++++++++++++
6 files changed, 488 insertions(+), 1 deletion(-)
create mode 100644 gnu/packages/patches/fwupd-add-option-for-installation-sysconfdir.patch
create mode 100644 gnu/packages/patches/fwupd-do-not-write-to-var.patch
create mode 100644 gnu/packages/patches/fwupd-installed-tests-path.patch
create mode 100644 gnu/packages/patches/fwupd-remove-nonfree-lvfs-repo.patch

Toggle diff (558 lines)
diff --git a/gnu/local.mk b/gnu/local.mk
index 5ef82650c7..3c0e313d2a 100644
--- a/gnu/local.mk
+++ b/gnu/local.mk
@@ -1002,6 +1002,10 @@ dist_patch_DATA =						\
   %D%/packages/patches/freedink-engine-fix-sdl-hints.patch	\
   %D%/packages/patches/freeimage-unbundle.patch		\
   %D%/packages/patches/fuse-overlapping-headers.patch				\
+  %D%/packages/patches/fwupd-add-option-for-installation-sysconfdir.patch	\
+  %D%/packages/patches/fwupd-do-not-write-to-var.patch	\
+  %D%/packages/patches/fwupd-installed-tests-path.patch	\
+  %D%/packages/patches/fwupd-remove-nonfree-lvfs-repo.patch	\
   %D%/packages/patches/gajim-honour-GAJIM_PLUGIN_PATH.patch	\
   %D%/packages/patches/ganeti-deterministic-manual.patch	\
   %D%/packages/patches/ganeti-disable-version-symlinks.patch	\
@@ -1760,5 +1764,6 @@ dist_patch_DATA =						\
   %D%/packages/patches/yggdrasil-extra-config.patch	\
   %D%/packages/patches/zziplib-CVE-2018-16548.patch
 
+
 MISC_DISTRO_FILES =				\
   %D%/packages/ld-wrapper.in
diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index fcdb5a801e..30afda1796 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -30,18 +30,46 @@
   #:use-module (guix utils)
   #:use-module (guix git-download)
   #:use-module (guix build-system gnu)
+  #:use-module (guix build-system meson)
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
   #:use-module (gnu packages assembly)
+  #:use-module (gnu packages autotools)
+  #:use-module (gnu packages backup)
   #:use-module (gnu packages base)
   #:use-module (gnu packages bison)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages cmake)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages cross-base)
+  #:use-module (gnu packages curl)
+  #:use-module (gnu packages efi)
+  #:use-module (gnu packages elf)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages gcc)
+  #:use-module (gnu packages gettext)
+  #:use-module (gnu packages glib)
+  #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages hardware)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages linux)
+  #:use-module (gnu packages man)
+  #:use-module (gnu packages mingw)
+  #:use-module (gnu packages package-management)
+  #:use-module (gnu packages perl)
   #:use-module (gnu packages perl)
-  #:use-module (gnu packages python))
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages polkit)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages python)
+  #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages sqlite)
+  #:use-module (gnu packages tls)
+  #:use-module (gnu packages version-control)
+  #:use-module (gnu packages web)
+  #:use-module (gnu packages xml))
 
 (define-public ath9k-htc-firmware
   (package
@@ -621,3 +649,93 @@ switching support).\n")
              #t)))))
     (native-inputs `(("cross-gcc" ,(cross-gcc "arm-none-eabi" #:xgcc gcc-7))
                      ("cross-binutils" ,(cross-binutils "arm-none-eabi"))))))
+
+(define-public fwupd
+  (package
+    (name "fwupd")
+    (version "1.5.5")
+    (source
+     (origin
+       (method git-fetch)
+       (uri
+        (git-reference
+         (url "https://github.com/fwupd/fwupd")
+         (commit version)))
+       (file-name (git-file-name name version))
+       (sha256
+        (base32 "0hrxp3hl1sm0gb1200qwyb330pknxicf5p0x5vgdv8ha4jf9zygc"))
+       (patches (search-patches
+                 "fwupd-do-not-write-to-var.patch"
+                 "fwupd-add-option-for-installation-sysconfdir.patch"
+                 "fwupd-installed-tests-path.patch"
+                 "fwupd-remove-nonfree-lvfs-repo.patch"))))
+    (build-system meson-build-system)
+    (outputs (list "out" "installed-tests"))
+    (arguments
+     `(#:configure-flags
+       (list "--wrap-mode=nofallback"
+             "-Dsystemd=false"
+             (string-append
+              "-Defi-libdir=" (assoc-ref %build-inputs "gnu-efi") "/lib")
+             (string-append
+              "-Defi-ldsdir=" (assoc-ref %build-inputs "gnu-efi") "/lib")
+             (string-append
+              "-Defi-includedir=" (assoc-ref %build-inputs "gnu-efi")
+              "/include/efi")
+             (string-append
+              "-Dudevdir=" (assoc-ref %outputs "out") "/lib/udev")
+             "--localstatedir=/var"
+             "--sysconfdir=/etc"
+             (string-append
+              "-Dsysconfdir_install=" (assoc-ref %outputs "out") "/etc")
+             (string-append
+              "--libexecdir=" (assoc-ref %outputs "out") "/libexec")
+             "-Dsupported_build=true"
+             (string-append
+              "-Dinstalled_test_prefix="
+              (assoc-ref %outputs "installed-tests")))
+       #:phases
+       (modify-phases %standard-phases
+         (add-before 'install 'no-polkit-magic
+           ;; Meson ‘magically’ invokes pkexec, which fails (not setuid).
+           (lambda _
+             (setenv "PKEXEC_UID" "something")
+             #t)))))
+    (native-inputs
+     `(("gobject-introspection" ,gobject-introspection)
+       ("python-pygobject" ,python-pygobject)
+       ("python-pillow" ,python-pillow)
+       ("python-pycairo" ,python-pycairo)
+       ("pkg-config" ,pkg-config)
+       ("vala" ,vala)
+       ("umockdev" ,umockdev)
+       ("glib:bin" ,glib "bin")
+       ("help2man" ,help2man)
+       ("gettext" ,gettext-minimal)))
+    (inputs
+     `(("glib" ,glib)
+       ("libgudev" ,libgudev)
+       ("libxmlb" ,libxmlb)
+       ("gusb" ,gusb)
+       ("sqlite" ,sqlite)
+       ("libarchive" ,libarchive)
+       ("libjcat" ,libjcat)
+       ("json-glib" ,json-glib)
+       ("curl" ,curl)
+       ("polkit" ,polkit)
+       ("eudev" ,eudev)
+       ("gcab" ,gcab)
+       ("gnutls" ,gnutls)
+       ("libelf" ,libelf)
+       ("tpm2-tss" ,tpm2-tss)
+       ("cairo" ,cairo)
+       ("efivar" ,efivar)
+       ("pango" ,pango)
+       ("mingw-w64-tools", mingw-w64-tools)
+       ("libsmbios" ,libsmbios)
+       ("gnu-efi" ,gnu-efi)))
+    (home-page "https://fwupd.org/")
+    (synopsis "A simple daemon to allow session software to update firmware")
+    (description "This package aims to make updating firmware on Linux
+automatic, safe and reliable.")
+    (license license:lgpl2.1+)))
diff --git a/gnu/packages/patches/fwupd-add-option-for-installation-sysconfdir.patch b/gnu/packages/patches/fwupd-add-option-for-installation-sysconfdir.patch
new file mode 100644
index 0000000000..0cb397ca47
--- /dev/null
+++ b/gnu/packages/patches/fwupd-add-option-for-installation-sysconfdir.patch
@@ -0,0 +1,161 @@
+diff --git a/data/meson.build b/data/meson.build
+index 50154569..f8058a8e 100644
+--- a/data/meson.build
++++ b/data/meson.build
+@@ -17,7 +17,7 @@ endif
+ 
+ if build_standalone
+   install_data(['daemon.conf'],
+-    install_dir : join_paths(sysconfdir, 'fwupd')
++    install_dir : join_paths(sysconfdir_install, 'fwupd')
+   )
+ endif
+ 
+diff --git a/data/pki/meson.build b/data/pki/meson.build
+index 94bb0b6f..1ea6a9ac 100644
+--- a/data/pki/meson.build
++++ b/data/pki/meson.build
+@@ -3,24 +3,23 @@ install_data([
+     'GPG-KEY-Linux-Foundation-Firmware',
+     'GPG-KEY-Linux-Vendor-Firmware-Service',
+   ],
+-  install_dir : join_paths(sysconfdir, 'pki', 'fwupd')
++  install_dir : join_paths(sysconfdir_install, 'pki', 'fwupd')
+ )
+ 
+ install_data([
+     'GPG-KEY-Linux-Foundation-Metadata',
+     'GPG-KEY-Linux-Vendor-Firmware-Service',
+   ],
+-  install_dir : join_paths(sysconfdir, 'pki', 'fwupd-metadata')
++  install_dir : join_paths(sysconfdir_install, 'pki', 'fwupd-metadata')
+ )
+ 
+ install_data([
+     'LVFS-CA.pem',
+   ],
+-  install_dir : join_paths(sysconfdir, 'pki', 'fwupd')
++  install_dir : join_paths(sysconfdir_install, 'pki', 'fwupd')
+ )
+ install_data([
+     'LVFS-CA.pem',
+   ],
+-  install_dir : join_paths(sysconfdir, 'pki', 'fwupd-metadata')
++  install_dir : join_paths(sysconfdir_install, 'pki', 'fwupd-metadata')
+ )
+-
+diff --git a/data/remotes.d/meson.build b/data/remotes.d/meson.build
+index 826a3c1d..b78db663 100644
+--- a/data/remotes.d/meson.build
++++ b/data/remotes.d/meson.build
+@@ -3,7 +3,7 @@ if build_daemon and get_option('lvfs')
+       'lvfs.conf',
+       'lvfs-testing.conf',
+     ],
+-    install_dir : join_paths(sysconfdir, 'fwupd', 'remotes.d')
++    install_dir : join_paths(sysconfdir_install, 'fwupd', 'remotes.d')
+   )
+   i18n.merge_file(
+     input: 'lvfs.metainfo.xml',
+@@ -37,12 +37,12 @@ configure_file(
+   output : 'vendor.conf',
+   configuration : con2,
+   install: true,
+-  install_dir: join_paths(sysconfdir, 'fwupd', 'remotes.d'),
++  install_dir: join_paths(sysconfdir_install, 'fwupd', 'remotes.d'),
+ )
+ configure_file(
+   input : 'vendor-directory.conf',
+   output : 'vendor-directory.conf',
+   configuration : con2,
+   install: true,
+-  install_dir: join_paths(sysconfdir, 'fwupd', 'remotes.d'),
++  install_dir: join_paths(sysconfdir_install, 'fwupd', 'remotes.d'),
+ )
+diff --git a/meson.build b/meson.build
+index 1ab6519b..0f2fcea6 100644
+--- a/meson.build
++++ b/meson.build
+@@ -196,6 +196,12 @@ endif
+ mandir = join_paths(prefix, get_option('mandir'))
+ localedir = join_paths(prefix, get_option('localedir'))
+ 
++if get_option('sysconfdir_install') != ''
++  sysconfdir_install = join_paths(prefix, get_option('sysconfdir_install'))
++else
++  sysconfdir_install = sysconfdir
++endif
++
+ diffcmd = find_program('diff')
+ gio = dependency('gio-2.0', version : '>= 2.45.8')
+ giounix = dependency('gio-unix-2.0', version : '>= 2.45.8', required: false)
+diff --git a/meson_options.txt b/meson_options.txt
+index 87e76870..16cb876c 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -1,3 +1,4 @@
++option('sysconfdir_install', type: 'string', value: '', description: 'sysconfdir to use during installation')
+ option('build', type : 'combo', choices : ['all', 'standalone', 'library'], value : 'all', description : 'build type')
+ option('agent', type : 'boolean', value : true, description : 'enable the fwupd agent')
+ option('consolekit', type : 'boolean', value : true, description : 'enable ConsoleKit support')
+diff --git a/plugins/dell-esrt/meson.build b/plugins/dell-esrt/meson.build
+index ed4eee70..76dbdb1d 100644
+--- a/plugins/dell-esrt/meson.build
++++ b/plugins/dell-esrt/meson.build
+@@ -37,5 +37,5 @@ configure_file(
+   output : 'dell-esrt.conf',
+   configuration : con2,
+   install: true,
+-  install_dir: join_paths(sysconfdir, 'fwupd', 'remotes.d'),
++  install_dir: join_paths(sysconfdir_install, 'fwupd', 'remotes.d'),
+ )
+diff --git a/plugins/redfish/meson.build b/plugins/redfish/meson.build
+index 205d1394..3223f404 100644
+--- a/plugins/redfish/meson.build
++++ b/plugins/redfish/meson.build
+@@ -27,7 +27,7 @@ shared_module('fu_plugin_redfish',
+ )
+ 
+ install_data(['redfish.conf'],
+-  install_dir:  join_paths(sysconfdir, 'fwupd')
++  install_dir:  join_paths(sysconfdir_install, 'fwupd')
+ )
+ 
+ if get_option('tests')
+diff --git a/plugins/thunderbolt/meson.build b/plugins/thunderbolt/meson.build
+index 6b2368fb..2bd06fed 100644
+--- a/plugins/thunderbolt/meson.build
++++ b/plugins/thunderbolt/meson.build
+@@ -31,7 +31,7 @@ fu_plugin_thunderbolt = shared_module('fu_plugin_thunderbolt',
+ )
+ 
+ install_data(['thunderbolt.conf'],
+-  install_dir:  join_paths(sysconfdir, 'fwupd')
++  install_dir:  join_paths(sysconfdir_install, 'fwupd')
+ )
+ # we use functions from 2.52 in the tests
+ if get_option('tests') and umockdev.found() and gio.version().version_compare('>= 2.52')
+diff --git a/plugins/uefi-capsule/meson.build b/plugins/uefi-capsule/meson.build
+index 675de181..a02c7754 100644
+--- a/plugins/uefi-capsule/meson.build
++++ b/plugins/uefi-capsule/meson.build
+@@ -94,7 +94,7 @@ if get_option('man')
+ endif
+ 
+ install_data(['uefi_capsule.conf'],
+-  install_dir:  join_paths(sysconfdir, 'fwupd')
++  install_dir:  join_paths(sysconfdir_install, 'fwupd')
+ )
+ 
+ # add all the .po files as inputs to watch
+diff --git a/plugins/upower/meson.build b/plugins/upower/meson.build
+index 290a3eb6..9ab2f452 100644
+--- a/plugins/upower/meson.build
++++ b/plugins/upower/meson.build
+@@ -23,5 +23,5 @@ shared_module('fu_plugin_upower',
+ )
+ 
+ install_data(['upower.conf'],
+-  install_dir:  join_paths(sysconfdir, 'fwupd')
++  install_dir:  join_paths(sysconfdir_install, 'fwupd')
+ )
diff --git a/gnu/packages/patches/fwupd-do-not-write-to-var.patch b/gnu/packages/patches/fwupd-do-not-write-to-var.patch
new file mode 100644
index 0000000000..474b250097
--- /dev/null
+++ b/gnu/packages/patches/fwupd-do-not-write-to-var.patch
@@ -0,0 +1,8 @@
+diff --git a/data/builder/meson.build b/data/builder/meson.build
+index c7a430c0..e69de29b 100644
+--- a/data/builder/meson.build
++++ b/data/builder/meson.build
+@@ -1,3 +0,0 @@
+-install_data('README.md',
+-  install_dir : join_paths(localstatedir, 'lib', 'fwupd', 'builder')
+-)
diff --git a/gnu/packages/patches/fwupd-installed-tests-path.patch b/gnu/packages/patches/fwupd-installed-tests-path.patch
new file mode 100644
index 0000000000..d8f1a533b8
--- /dev/null
+++ b/gnu/packages/patches/fwupd-installed-tests-path.patch
@@ -0,0 +1,48 @@
+diff --git a/data/device-tests/hardware.py b/data/device-tests/hardware.py
+index 7f1e1907..10fee1b8 100755
+--- a/data/device-tests/hardware.py
++++ b/data/device-tests/hardware.py
+@@ -1,4 +1,4 @@
+-#!/usr/bin/python3
++#!@installedTestsPython@/bin/python3
+ # pylint: disable=wrong-import-position,too-many-locals,unused-argument,wrong-import-order
+ #
+ # Copyright (C) 2017 Richard Hughes <richard@hughsie.com>
+diff --git a/data/installed-tests/meson.build b/data/installed-tests/meson.build
+index adadbcdd..1b51bb9c 100644
+--- a/data/installed-tests/meson.build
++++ b/data/installed-tests/meson.build
+@@ -65,5 +65,5 @@ configure_file(
+   output : 'fwupd-tests.conf',
+   configuration : con2,
+   install: true,
+-  install_dir: join_paths(sysconfdir, 'fwupd', 'remotes.d'),
++  install_dir: join_paths(get_option('installed_test_prefix'), 'etc', 'fwupd', 'remotes.d'),
+ )
+diff --git a/meson.build b/meson.build
+index 772b7bbe..f59302cd 100644
+--- a/meson.build
++++ b/meson.build
+@@ -177,8 +177,8 @@ else
+   datadir = join_paths(prefix, get_option('datadir'))
+   sysconfdir = join_paths(prefix, get_option('sysconfdir'))
+   localstatedir = join_paths(prefix, get_option('localstatedir'))
+-  installed_test_bindir = join_paths(libexecdir, 'installed-tests', meson.project_name())
+-  installed_test_datadir = join_paths(datadir, 'installed-tests', meson.project_name())
++  installed_test_bindir = join_paths(get_option('installed_test_prefix'), 'libexec', 'installed-tests', meson.project_name())
++  installed_test_datadir = join_paths(get_option('installed_test_prefix'), 'share', 'installed-tests', meson.project_name())
+ endif
+ mandir = join_paths(prefix, get_option('mandir'))
+ localedir = join_paths(prefix, get_option('localedir'))
+diff --git a/meson_options.txt b/meson_options.txt
+index 0a0e2853..5f68d78b 100644
+--- a/meson_options.txt
++++ b/meson_options.txt
+@@ -25,6 +26,7 @@ option('plugin_coreboot', type : 'boolean', value : true, description : 'enable
+ option('systemd', type : 'boolean', value : true, description : 'enable systemd support')
+ option('systemd_root_prefix', type: 'string', value: '', description: 'Directory to base systemd’s installation directories on')
+ option('elogind', type : 'boolean', value : false, description : 'enable elogind support')
++option('installed_test_prefix', type: 'string', description: 'Prefix for installed tests')
+ option('tests', type : 'boolean', value : true, description : 'enable tests')
+ option('tpm', type : 'boolean', value : true, description : 'enable TPM support')
+ option('udevdir', type: 'string', value: '', description: 'Directory for udev rules')
diff --git a/gnu/packages/patches/fwupd-remove-nonfree-lvfs-repo.patch b/gnu/packages/patches/fwupd-remove-nonfree-lvfs-repo.patch
new file mode 100644
index 0000000000..3efe523703
--- /dev/null
+++ b/gnu/packages/patches/fwupd-remove-nonfree-lvfs-repo.patch
@@ -0,0 +1,147 @@
+diff --git a/data/remotes.d/lvfs-testing.conf b/data/remotes.d/lvfs-testing.conf
+deleted file mode 100644
+index 740a793e..00000000
+--- a/data/remotes.d/lvfs-testing.conf
++++ /dev/null
+@@ -1,12 +0,0 @@
+-[fwupd Remote]
+-
+-# this remote provides metadata and firmware marked as 'testing' from the LVFS
+-Enabled=false
+-Title=Linux Vendor Firmware Service (testing)
+-MetadataURI=https://cdn.fwupd.org/downloads/firmware-testing.xml.gz
+-ReportURI=https://fwupd.org/lvfs/firmware/report
+-Username=
+-Password=
+-OrderBefore=lvfs,fwupd
+-AutomaticReports=false
+-ApprovalRequired=false
+diff --git a/data/remotes.d/lvfs-testing.metainfo.xml b/data/remotes.d/lvfs-testing.metainfo.xml
+deleted file mode 100644
+index 3e36aab7..00000000
+--- a/data/remotes.d/lvfs-testing.metainfo.xml
++++ /dev/null
+@@ -1,35 +0,0 @@
+-<?xml version="1.0" encoding="UTF-8"?>
+-<!-- Copyright 2018 Richard Hughes <richard@hughsie.com> -->
+-
+-<component type="source">
+-  <id>org.freedesktop.fwupd.remotes.lvfs-testing</id>
+-  <name>Linux Vendor Firmware Service (testing firmware)</name>
+-  <metadata_license>CC0-1.0</metadata_license>
+-  <agreement version_id="1.0">
+-    <agreement_section>
+-      <description>
+-        <!-- TRANSLATORS: do not translate the variables marked using $ -->
+-        <p>
+-          The LVFS is a free service that operates as an independent legal
+-          entity and has no connection with $OS_RELEASE:NAME$.
+-          Your distributor may not have verified any of the firmware updates for
+-          compatibility with your system or connected devices.
+-          All firmware is provided only by the original equipment manufacturer.
+-        </p>
+-        <p>
+-          This remote contains firmware which is not embargoed, but is still being
+-          tested by the hardware vendor.
+-          You should ensure you have a way to manually downgrade the firmware if
+-          the firmware update fails.
+-        </p>
+-        <p>
+-          Enabling this functionality is done at your own risk, which means you
+-          have to contact your original equipment manufacturer regarding any
+-          problems caused by these updates.
+-          Only problems with the update process itself should be filed at
+-          $OS_RELEASE:BUG_REPORT_URL$.
+-        </p>
+-      </description>
+-    </agreement_section>
+-  </agreement>
+-</component>
+diff --git a/data/remotes.d/lvfs.conf b/data/remotes.d/lvfs.conf
+deleted file mode 100644
+index f956bc97..00000000
+--- a/data/remotes.d/lvfs.conf
++++ /dev/null
+@@ -1,12 +0,0 @@
+-[fwupd Remote]
+-
+-# this remote provides metadata and firmware marked as 'stable' from the LVFS
+-Enabled=true
+-Title=Linux Vendor Firmware Service
+-MetadataURI=https://cdn.fwupd.org/downloads/firmware.xml.gz
+-ReportURI=https://fwupd.org/lvfs/firmware/report
+-SecurityReportURI=https://fwupd.org/lvfs/hsireports/upload
+-OrderBefore=fwupd
+-AutomaticReports=false
+-AutomaticSecurityReports=false
+-ApprovalRequired=false
+diff --git a/data/remotes.d/lvfs.metainfo.xml b/data/remotes.d/lvfs.metainfo.xml
+deleted file mode 100644
+index d9565ddd..00000000
+--- a/data/remotes.d/lvfs.metainfo.xml
++++ /dev/null
+@@ -1,29 +0,0 @@
+-<?xml version="1.0" encoding="UTF-8"?>
+-<!-- Copyright 2018 Richard Hughes <richard@hughsie.com> -->
+-
+-<component type="source">
+-  <id>org.freedesktop.fwupd.remotes.lvfs</id>
+-  <name>Linux Vendor Firmware Service (stable firmware)</name>
+-  <metadata_license>CC0-1.0</metadata_license>
+-  <agreement version_id="1.0">
+-    <agreement_section>
+-      <description>
+-        <!-- TRANSLATORS: do not translate the variables marked using $ -->
+-        <p>
+-          The LVFS is a free service that operates as an independent legal
+-          entity and has no connection with $OS_RELEASE:NAME$.
+-          Your distributor may not have verified any of the firmware updates for
+-          compatibility with your system or connected devices.
+-          All firmware is provided only by the original equipment manufacturer.
+-        </p>
+-        <p>
+-          Enabling this functionality is done at your own risk, which means you
+-          have to contact your original equipment manufacturer regarding any
+-          problems caused by these updates.
+-          Only problems with the update process itself should be filed at
+-          $OS_RELEASE:BUG_REPORT_URL$.
+-        </p>
+-      </description>
+-    </agreement_section>
+-  </agreement>
+-</component>
+diff --git a/data/remotes.d/meson.build b/data/remotes.d/meson.build
+index 826a3c1d..1f585c09 100644
+--- a/data/remotes.d/meson.build
++++ b/data/remotes.d/meson.build
+@@ -1,30 +1,3 @@
+-if build_daemon and get_option('lvfs')
+-  install_data([
+-      'lvfs.conf',
+-      'lvfs-testing.conf',
+-    ],
+-    install_dir : join_paths(sysconfdir, 'fwupd', 'remotes.d')
+-  )
+-  i18n.merge_file(
+-    input: 'lvfs.metainfo.xml',
+-    output: 'org.freedesktop.fwupd.remotes.lvfs.metainfo.xml',
+-    type: 'xml',
+-    po_dir: join_paths(meson.source_root(), 'po'),
+-    data_dirs: join_paths(meson.source_root(), 'po'),
+-    install: true,
+-    install_dir: join_paths(get_option('datadir'), 'fwupd', 'metainfo')
+-  )
+-  i18n.merge_file(
+-    input: 'lvfs-testing.metainfo.xml',
+-    output: 'org.freedesktop.fwupd.remotes.lvfs-testing.metainfo.xml',
+-    type: 'xml',
+-    po_dir: join_paths(meson.source_root(), 'po'),
+-    data_dirs: join_paths(meson.source_root(), 'po'),
+-    install: true,
+-    install_dir: join_paths(get_option('datadir'), 'fwupd', 'metainfo')
+-  )
+-endif
+-
+ install_data('README.md',
+   install_dir : join_paths(datadir, 'fwupd', 'remotes.d', 'vendor', 'firmware')
+ )
-- 
2.30.0
L
L
Leo Le Bouter wrote on 4 Feb 2021 00:21
(address . control@debbugs.gnu.org)
58f9924ff6efb883e3b4efa5b9f51269af13ca62.camel@zaclys.net
merge 46277 46278 46279
-----BEGIN PGP SIGNATURE-----

iQIzBAABCgAdFiEEFIvLi9gL+xax3g6RRaix6GvNEKYFAmAbL/8ACgkQRaix6GvN
EKb+5RAAoLg7JFQ5yabD4sb8a5Amz1AgcQ9aNfLs1aH95sgTASTRyB1DoWWylNvM
qV1TD69WBzCjyiJc+YCiSOHavx6obZ/gMIyKzINutH0Wpxe++8ledtqCUPtLL6dk
LLxkSRDqctclaF3IGl4isBcqLyIGwqrYUo+5Bpt8GZkHLzEyXjnakGxSeARs2Z/S
I5TQatsEomlQPG/o3sWx9Vo6KAvg+ck9uuE/7qBThG39JhjX8Y0isdWQ1ZjMzdyl
o6nrwDYWcHF9HweiSoIDs+5CFz66u8wBxSlB19lHzgDagtERTnMsdKz/6NsSv5/F
BPFt5dUwv4TgwKALWwSCSTyG2B/iS7OQv7vSYa8kF0Foa350SJ/S8IPT1zOS/rdN
NWrjxzW9StY4z/cWOXGLYX2mK+74s6t8k2RMW5XjBW3iTOCGa0exc3o5shErpWim
1wTweDr+EoNBbxqmdMviEWfHErA47KWRY9H9TpW2TNMO7GiHm58rAGh1DJVm1TdO
ViOIXoQWWiuynV2iJuer0xwG18xCNyrBy+EO7AG7LEfLPrpvmE/2cL3PpA0e71df
Ya03+JtN+tTe+9kz2bFjFcIeqEHf4ykGRdkWok2mPVNBVnb+VWV3C2u4aRxh9ltj
oyYoadaK8XXV5F+vOJS681/Yt91Tk7JsJbsw76TLL9/rRRVJJA8=
=Msaz
-----END PGP SIGNATURE-----


P
P
phodina wrote 3 days ago
(name . 46278@debbugs.gnu.org)(address . 46278@debbugs.gnu.org)(name . Ludovic Courtès)(address . ludo@gnu.org)
rhXPCJBRiIXCySJqk3GOgM4btnX0jJBp0cJ1vL7X6Zc0Oqc9Y9jq7MB32nglDz5Z8vTqVk3-YsU-wItE-A0H-24KnNoSRz6qtfAJiz_eLvc=@protonmail.com
Hi,

here's updated patch for fwupd.

I attempted to add also Gnome GUI but for some reason the pkgconfig in meson is not detecting the fwupd even though that when ran manually it finds it.

Here's the error:

Found pkg-config: /gnu/store/2b3blhwbag1ial0dhxw7wh4zjxl0cqpk-pkg-config-0.29.2/bin/pkg-config (0.29.2)
Run-time dependency gtk4 found: YES 4.6.6
Run-time dependency gio-2.0 found: YES 2.70.2
Did not find CMake 'cmake'
Found CMake: NO
Run-time dependency fwupd found: NO (tried pkgconfig and cmake)
Looking for a fallback subproject for the dependency fwupd

../source/meson.build:81:0: ERROR: Git program not found, cannot download fwupd.wrap via git.

A full log can be found at /tmp/guix-build-gnome-firmware-42.2.drv-0/build/meson-logs/meson-log.txterror: in phase 'configure': uncaught exception:

And here's the search result (I sourced the environment first):

/tmp/guix-build-gnome-firmware-42.2.drv-0/source$ pkg-config --list-all | grep fwupd
fwupdplugin fwupdplugin - library for plugins to use to interact with fwupd daemonfwupd fwupd - fwupd is a system daemon for installing device firmware

FIY Same error happens when I attempt to build the libaccounts-qt for KDE updates.[1][2]

Attachment: file
From 8dfbeb7c730211680d05a3e02e960e96172cb38a Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Sun, 14 Aug 2022 22:31:46 +0200
Subject: [PATCH v2 2/2] gnu: Add gnome-firmware.

* gnu/packages/gnome.scm (gnome-firmware): New variable.

Toggle diff (55 lines)
diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
index 291bd8c3ac..200800a534 100644
--- a/gnu/packages/gnome.scm
+++ b/gnu/packages/gnome.scm
@@ -72,6 +72,7 @@
 ;;; Copyright © 2022 Leo Nikkilä <hello@lnikki.la>
 ;;; Copyright © 2022 Rene Saavedra <nanuui@protonmail.com>
 ;;; Copyright © 2022 Alexandros Theodotou <alex@zrythm.org>
+;;; Copyright © 2022 Petr Hodina <phodina@protonmail.com>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
@@ -123,6 +124,7 @@ (define-module (gnu packages gnome)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fonts)
   #:use-module (gnu packages file-systems)
+  #:use-module (gnu packages firmware)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages game-development)
@@ -1266,6 +1268,32 @@ (define-public gnome-color-manager
    (home-page "https://gitlab.gnome.org/GNOME/gnome-color-manager")
    (license license:gpl2+)))
 
+(define-public gnome-firmware
+  (package
+   (name "gnome-firmware")
+   (version "42.2")
+   (source (origin
+            (method git-fetch)
+            (uri (git-reference
+			(url "https://gitlab.gnome.org/World/gnome-firmware")
+			(commit version)))
+            (sha256
+             (base32
+              "0p9fyqy3d5x6ap2ixw0wabmpdpzh7sdspaxl4f6qxx1sfnapci1g"))))
+   (build-system meson-build-system)
+   (arguments
+    (list #:glib-or-gtk? #t))
+   (native-inputs
+    (list `(,glib "bin")
+      `(,gtk "bin")
+      pkg-config))
+   (inputs
+    (list fwupd gtk))
+   (synopsis "Manage firmware on devices")
+   (description "")
+   (home-page "https://gitlab.gnome.org/World/gnome-firmware")
+   (license license:gpl2+)))
+
 (define-public gnome-online-miners
   (package
     (name "gnome-online-miners")
-- 
2.37.0
From d5bb4d798b40d91119d54077514d70234f6f3818 Mon Sep 17 00:00:00 2001
From: Petr Hodina <phodina@protonmail.com>
Date: Tue, 4 Jan 2022 06:58:51 +0100
Subject: [PATCH v2 1/2] gnu: Add fwupd.

* gnu/packages/firmware.scm (fwupd): New variable.

Toggle diff (142 lines)
diff --git a/gnu/packages/firmware.scm b/gnu/packages/firmware.scm
index a258af30bf..a29f3d2b6a 100644
--- a/gnu/packages/firmware.scm
+++ b/gnu/packages/firmware.scm
@@ -36,21 +36,43 @@ (define-module (gnu packages firmware)
   #:use-module (guix build-system meson)
   #:use-module (gnu packages)
   #:use-module (gnu packages admin)
+  #:use-module (gnu packages autotools)
   #:use-module (gnu packages assembly)
+  #:use-module (gnu packages backup)
   #:use-module (gnu packages base)
+  #:use-module (gnu packages bash)
   #:use-module (gnu packages bison)
+  #:use-module (gnu packages check)
   #:use-module (gnu packages cmake)
-  #:use-module (gnu packages curl)
+  #:use-module (gnu packages compression)
   #:use-module (gnu packages cross-base)
+  #:use-module (gnu packages curl)
+  #:use-module (gnu packages efi)
+  #:use-module (gnu packages elf)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages gcc)
+  #:use-module (gnu packages gettext)
   #:use-module (gnu packages glib)
   #:use-module (gnu packages gnome)
+  #:use-module (gnu packages gnupg)
+  #:use-module (gnu packages gtk)
+  #:use-module (gnu packages hardware)
   #:use-module (gnu packages libusb)
   #:use-module (gnu packages linux)
+  #:use-module (gnu packages man)
+  #:use-module (gnu packages mingw)
+  #:use-module (gnu packages package-management)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages pkg-config)
+  #:use-module (gnu packages polkit)
+  #:use-module (gnu packages protobuf)
   #:use-module (gnu packages python)
-  #:use-module (gnu packages pkg-config))
+  #:use-module (gnu packages python-xyz)
+  #:use-module (gnu packages sqlite)
+  #:use-module (gnu packages tls)
+  #:use-module (gnu packages version-control)
+  #:use-module (gnu packages web)
+  #:use-module (gnu packages xml))
 
 (define-public ath9k-htc-firmware
   (package
@@ -168,6 +190,89 @@ (define-public b43-tools
 driver.")
       (license license:gpl2))))
 
+(define-public fwupd
+  (package
+    (name "fwupd")
+    (version "1.8.3")
+    (source (origin
+              (method git-fetch)
+              (uri (git-reference
+                    (url "https://github.com/fwupd/fwupd")
+                    (commit version)))
+              (file-name (git-file-name name version))
+              (sha256
+               (base32
+                "02jf052qj1nl47ppqrgz3s9qapq4pajgkf6lbj5rxr5sshlrw44n"))))
+    (build-system meson-build-system)
+    (arguments
+     (list #:configure-flags #~(list "--wrap-mode=nofallback"
+                                     "-Dsystemd=false"
+                                     (string-append "-Defi_os_dir="
+                                                    #$gnu-efi "/lib")
+                                     "-Defi_binary=false"
+                                     (string-append "-Dudevdir="
+                                                    #$output "/lib/udev")
+                                     "--localstatedir=/var"
+                                     (string-append "--libexecdir="
+                                                    #$output "/libexec")
+                                     "-Dsupported_build=true")
+           #:glib-or-gtk? #t ;To wrap binaries and/or compile schemas
+           #:phases #~(modify-phases %standard-phases
+                        (add-after 'unpack 'make-source-writable
+                          (lambda _
+                            (for-each make-file-writable
+                                      (find-files "."))
+                            (substitute* "src/fu-self-test.c"
+                              (("/bin/sh")
+                               (which "sh")))))
+                        (add-before 'build 'setup-home
+                          (lambda _
+                            (setenv "HOME" "/tmp")))
+                        (add-before 'install 'no-polkit-magic
+                          (lambda _
+                            (setenv "PKEXEC_UID" "something"))))))
+    (native-inputs (list gobject-introspection
+                         python-pygobject
+                         python-pillow
+                         python-pycairo
+                         python
+                         pkg-config
+                         vala
+                         gtk-doc
+                         which
+                         umockdev
+                         `(,glib "bin")
+                         help2man
+                         gettext-minimal))
+    (inputs (list bash-completion
+                  glib
+                  libgudev
+                  libxmlb
+                  gusb
+                  sqlite
+                  libarchive
+                  libjcat
+                  json-glib
+                  curl
+                  polkit
+                  eudev
+                  gcab
+                  gnutls
+                  libelf
+                  tpm2-tss
+                  cairo
+                  efivar
+                  pango
+                  protobuf-c
+                  mingw-w64-tools
+                  libsmbios
+                  gnu-efi))
+    (home-page "https://fwupd.org/")
+    (synopsis "A simple daemon to allow session software to update firmware")
+    (description "This package aims to make updating firmware on Linux
+automatic, safe and reliable.")
+    (license license:lgpl2.1+)))
+
 (define-public openfwwf-firmware
   (package
     (name "openfwwf-firmware")
-- 
2.37.0
?