Message ID | 4jVXzFcbk7yONwfqid6qqilCgTRGy444TSoquZ-JyjNWsQ7wBLNZmrr221In95YehmkIVQGRFWaJSPIOHUx8jpr1V3JeXDuOQZ3WeRI-B6o=@protonmail.com |
---|---|
State | New |
Headers | show |
Series | [bug#60699,1/2] gnu: Add fwupd service. | expand |
Hello Petr, phodina via Guix-patches via <guix-patches@gnu.org> writes: > Hello, > > this patch adds the service for the fwupd package (commit 23152ff70f0ed4966d8207846f54c793d7cb4f86). > > Also the Gnome Shell provides nice GUI integration as shown in the attached screenshot. > > The package in the service configuration is there so users can choose the fwupd they want to use as the > one in Guix upstream does not support non-libre firmware. > > ---- > Petr > From 9eba8a2400ad296ed3ee8bc581528cabff969cd5 Mon Sep 17 00:00:00 2001 > From: Petr Hodina <phodina@protonmail.com> > Date: Wed, 7 Sep 2022 07:48:41 +0200 > Subject: [PATCH 1/2] gnu: Add fwupd service. > > * gnu/services/firmware.scm (fwupd): New variable. > > diff --git a/gnu/services/firmware.scm b/gnu/services/firmware.scm > new file mode 100644 > index 0000000000..7539c56202 > --- /dev/null > +++ b/gnu/services/firmware.scm > @@ -0,0 +1,70 @@ > +;;; GNU Guix --- Functional package management for GNU > +;;; Copyright ?? 2022 Petr Hodina <phodina@protonmail.com> ^ Something seems to have gone wrong with the encoding here. Could you try resending it? > +;;; > +;;; This file is part of GNU Guix. > +;;; > +;;; GNU Guix is free software; you can redistribute it and/or modify it > +;;; under the terms of the GNU General Public License as published by > +;;; the Free Software Foundation; either version 3 of the License, or (at > +;;; your option) any later version. > +;;; > +;;; GNU Guix is distributed in the hope that it will be useful, but > +;;; WITHOUT ANY WARRANTY; without even the implied warranty of > +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the > +;;; GNU General Public License for more details. > +;;; > +;;; You should have received a copy of the GNU General Public License > +;;; along with GNU Guix. If not, see <http://www.gnu.org/licenses/>. > + > +(define-module (gnu services firmware) > + #:use-module (guix diagnostics) > + #:use-module (guix gexp) > + #:use-module (guix records) > + #:use-module (guix modules) > + #:use-module (guix i18n) > + #:use-module (guix ui) > + #:use-module (gnu services) > + #:use-module (gnu services base) > + #:use-module (gnu services shepherd) > + #:use-module (gnu packages firmware) > + #:use-module (srfi srfi-1) > + #:use-module (srfi srfi-26) > + #:use-module (srfi srfi-34) > + #:use-module (srfi srfi-35) > + #:use-module (ice-9 match) > + #:export (fwupd-configuration fwupd-service-type)) > + > + > +;;; > +;;; Fwupd daemon. > +;;; > + > +(define-record-type* <fwupd-configuration> fwupd-configuration > + make-fwupd-configuration fwupd-configuration? > + (fwupd fwupd-configuration-fwupd > + (default fwupd))) > + > +(define fwupd-activation-service > + #~(begin > + (use-modules (guix build utils)) > + (mkdir-p "/var/lib/fwupd"))) > + > +(define (fwupd-shepherd-service config) > + (shepherd-service (documentation "Run the fwupd daemon.") > + (provision '(fwupd)) > + (requirement '(dbus-system udev)) > + (start #~(make-forkexec-constructor (list (string-append #$fwupd > + "/libexec/fwupd/fwupd")))) > + (stop #~(make-kill-destructor)))) > + > +(define fwupd-service-type > + (service-type (name 'fwupd) > + (default-value (fwupd-configuration)) > + (extensions (list (service-extension activation-service-type > + (const > + fwupd-activation-service)) > + (service-extension > + shepherd-root-service-type > + (compose list fwupd-shepherd-service)))) > + (description > + "Run @command{fwupd}, the Firmware update daemon."))) Looks great! Does this actually work in practice though? I ran into some issues trying to run fwupd myself w.r.t. polkit (see https://issues.guix.gnu.org/60065). Never mind if it actually works for you though, IWBN if no further tweaks are required to get this to work. > base-commit: 437718442ca758a3857702cecfe5c80aa5df272b > -- > 2.38.1 > > From 108b4e57aa1682359195205e8b5679eae81445dd Mon Sep 17 00:00:00 2001 > From: Petr Hodina <phodina@protonmail.com> > Date: Tue, 6 Sep 2022 06:06:26 +0200 > Subject: [PATCH 2/2] gnu: Add gnome-firmware. > > * gnu/packages/gnome.scm (gnome-firmware): New variable. > > diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm > index 78e65d7400..f9c627b56a 100644 > --- a/gnu/packages/gnome.scm > +++ b/gnu/packages/gnome.scm > @@ -123,6 +123,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) > @@ -2330,6 +2331,41 @@ (define-public gnome-disk-utility > (description "Disk management utility for GNOME.") > (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 > + #:configure-flags #~(list "-Dsystemd=false" "-Delogind=true"))) > + (native-inputs (list desktop-file-utils > + gettext-minimal > + `(,glib "bin") > + `(,gtk "bin") > + help2man > + pkg-config)) > + (inputs (list gtk fwupd libadwaita libxmlb elogind)) > + (synopsis "Manage firmware on devices") 'Manage' is a word that does not really with low signal-to-noise ratio. Would there be a way to rephrase this? > + (description > + "This package provides integration of firmware manager: > + @itemize > +@item Upgrade, Downgrade, & Reinstall firmware on devices supported by fwupd. > +@item Unlock locked fwupd devices > +@item Verify firmware on supported devices > +@item Display all releases for a fwupd device Releases of what? What's a fwupd device? Thanks for the patches! - Jelle
From 108b4e57aa1682359195205e8b5679eae81445dd Mon Sep 17 00:00:00 2001 From: Petr Hodina <phodina@protonmail.com> Date: Tue, 6 Sep 2022 06:06:26 +0200 Subject: [PATCH 2/2] gnu: Add gnome-firmware. * gnu/packages/gnome.scm (gnome-firmware): New variable. diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 78e65d7400..f9c627b56a 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -123,6 +123,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) @@ -2330,6 +2331,41 @@ (define-public gnome-disk-utility (description "Disk management utility for GNOME.") (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 + #:configure-flags #~(list "-Dsystemd=false" "-Delogind=true"))) + (native-inputs (list desktop-file-utils + gettext-minimal + `(,glib "bin") + `(,gtk "bin") + help2man + pkg-config)) + (inputs (list gtk fwupd libadwaita libxmlb elogind)) + (synopsis "Manage firmware on devices") + (description + "This package provides integration of firmware manager: + @itemize +@item Upgrade, Downgrade, & Reinstall firmware on devices supported by fwupd. +@item Unlock locked fwupd devices +@item Verify firmware on supported devices +@item Display all releases for a fwupd device +@end itemize") + (home-page "https://gitlab.gnome.org/World/gnome-firmware") + (license license:gpl2+))) + (define-public gnome-font-viewer (package (name "gnome-font-viewer") -- 2.38.1