Subject: [bug#68228] [PATCH v3] gnu: Add gnome-software.

From: Noé Lopez <[email-masked]>
Date: Mon, 17 Mar 2025 11:15:14 +0100

Liliana Marie Prikler <[email-masked]> writes:

> Am Sonntag, dem 16.03.2025 um 23:10 +0100 schrieb Noé Lopez:
>> From: terramorpha <[email-masked]>
>> 
>> * gnu/packages/gnome.scm (gnome-software): New variable.
>> 
>> Change-Id: I5838a581d8612eed0697c801fff0e241256ce558
>> ---
>>  gnu/packages/gnome.scm | 69
>> ++++++++++++++++++++++++++++++++++++++++++
>>  1 file changed, 69 insertions(+)
>> 
>> diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm
>> index 7705ba0513..26ca4a721c 100644
>> --- a/gnu/packages/gnome.scm
>> +++ b/gnu/packages/gnome.scm
>> @@ -79,6 +79,8 @@
>>  ;;; Copyright © 2023 Zhu Zihao <[email-masked]>
>>  ;;; Copyright © 2024 Dariqq <[email-masked]>
>>  ;;; Copyright © 2024 James Smith <[email-masked]>
>> +;;; Copyright © 2024 Justin Veilleux <[email-masked]>
>> +;;; Copyright © 2025 Noé Lopez <[email-masked]>
>>  ;;;
>>  ;;; This file is part of GNU Guix.
>>  ;;;
>> @@ -135,6 +137,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)
>> @@ -14594,3 +14597,69 @@ (define-public lock
>>      (description "This package provides a graphical frontend for
>>  GNU Privacy Guard built with libadwaita.")
>>      (license license:expat)))
>> +
>> +(define-public gnome-software
>> +  (package
>> +    (name "gnome-software")
>> +    (version "46.5")
>> +    (source
>> +     (origin
>> +       (method url-fetch)
>> +       (uri
>> +        (string-append "mirror://gnome/sources/"
>> +                       name "/"
>> +                       (version-major version) "/"
>> +                       name "-" version ".tar.xz"))
>> +       (sha256 (base32
>> "0b5y9z64582aarw3v92wjm63yib2q85ylny1k7k4d2y48jivirb9"))))
>> +    (build-system meson-build-system)
>> +    (arguments
>> +     (list
>> +      #:tests? #f                       ;needs a complete system
>> (/etc/machine-id, dbus)
> Can we silence fatal dbus warnings?  Other GNOME packages are tested
> e.g. using dbus-run-session.

Surely? The real blocker for me is /etc/machine-id, it seems to need to
exist for most tests to run, and I suspect also the tests that fail with
dbus would fail with it too.

But creating /etc/machine-id leads to a permission error.

>> +      #:glib-or-gtk? #t
>> +      #:configure-flags
>> +      #~(list "-Dsoup2=true"
>> +              "-Dman=false"             ;tries to access the
>> internet
>> +              "-Dhardcoded_proprietary_webapps=false")
>> +      #:phases
>> +      #~(modify-phases %standard-phases
>> +          (add-after 'unpack 'patch-iso-codes
>> +            (lambda* (#:key native-inputs inputs #:allow-other-keys)
>> +              (with-directory-excursion
>> +                  "src"
>> +                (substitute* "./gs-language.c"
>> +                  (("DATADIR")
>> +                   (format #f "\"~a/share\"" #$iso-codes)))
>> +                (invoke "cat" "gs-language.c"))))
>> +          (add-before 'install 'disable-gtk-update-icon-cache
>> +            (lambda _
>> +              (setenv "DESTDIR" "/")
>> +              ;; Needed for complete RUNPATHs, but not actually
>> needed at runtime.
>> +              (copy-file
>> +               "../build/lib/libgnomesoftware.so.20"
>> +               (string-append #$output
>> "/lib/libgnomesoftware.so.20")))))))
>> +    (native-inputs (list `(,glib "bin")
>> +                         gettext-minimal
>> +                         gtk-doc
>> +                         pkg-config))
>> +    (inputs (list appstream
>> +                  flatpak
>> +                  fwupd
>> +                  gdk-pixbuf
>> +                  gtk
>> +                  json-glib
>> +                  libadwaita
>> +                  libglib-testing
>> +                  libgudev
>> +                  libostree
>> +                  libsoup-minimal-2
>> +                  libxmlb
>> +                  malcontent
>> +                  packagekit
>> +                  polkit
>> +                  sysprof
>> +                  valgrind))
>> +    (synopsis "Graphical software manager for gnome")
>> +    (description "Software allows you to find and install new apps
>> and system
>> +extensions and remove existing installed apps.")
>> +    (license license:gpl2+)
>> +    (home-page "https://apps.gnome.org/en/Software/")))
>> 
>> base-commit: 8a565a8ff1c2150b778b5fdf8aa3a5f59a3fce9d
>
> Otherwise LGTM (albeit untested as of now).

Great!