unofficial mirror of guix-patches@gnu.org 
 help / color / mirror / code / Atom feed
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





  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).