From: Jelle Licht <jlicht@fsfe.org>
To: phodina <phodina@protonmail.com>, 60699@debbugs.gnu.org
Cc: "Ludovic Courtès" <ludo@gnu.org>
Subject: [bug#60699] [PATCH 1/2] gnu: Add fwupd service.
Date: Tue, 10 Jan 2023 11:21:49 +0100 [thread overview]
Message-ID: <87a62qbsg2.fsf@fsfe.org> (raw)
In-Reply-To: <4jVXzFcbk7yONwfqid6qqilCgTRGy444TSoquZ-JyjNWsQ7wBLNZmrr221In95YehmkIVQGRFWaJSPIOHUx8jpr1V3JeXDuOQZ3WeRI-B6o=@protonmail.com>
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))
> +
> +\f
> +;;;
> +;;; 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
next prev parent reply other threads:[~2023-01-10 10:41 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-10 1:19 [bug#60699] [PATCH 1/2] gnu: Add fwupd service phodina via Guix-patches via
2023-01-10 10:21 ` Jelle Licht [this message]
2023-01-10 12:06 ` phodina via Guix-patches via
2023-01-11 14:31 ` Jelle Licht
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: https://guix.gnu.org/
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87a62qbsg2.fsf@fsfe.org \
--to=jlicht@fsfe.org \
--cc=60699@debbugs.gnu.org \
--cc=ludo@gnu.org \
--cc=phodina@protonmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.savannah.gnu.org/cgit/guix.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).