Subject: [bug#44958] [PATCH 2/2] gnu: nicotine: Update to 2.1.2.

From: Leo Famulari <[email-masked]>
Date: Mon, 30 Nov 2020 12:21:34 -0500

On Mon, Nov 30, 2020 at 04:50:47AM -0600, Martin Becze wrote:
> * gnu/packages/nicotine.scm (nicotine+): Update to 2.1.2.

Awesome, thanks for keeping up with this package!

I noticed that on my Debian system, Nicotine would crash when I tried to
open the "settings" window, with this message:

------
(.nicotine-real:20767): GLib-GIO-ERROR **: 12:12:44.338: Settings schema 'org.gtk.Settings.FileChooser' is not installed
------

I guessed it needed some of the special wrappers from the GLib / GTK+
build systems, so I used them by applying this diff to your patch:

------
diff --git a/gnu/packages/nicotine.scm b/gnu/packages/nicotine.scm
index 5dc39334eb..7d937c11e5 100644
--- a/gnu/packages/nicotine.scm
+++ b/gnu/packages/nicotine.scm
@@ -40,7 +40,13 @@
               (sha256 (base32 "18rra8yqjr10z23chzcp53ncbd5fhm0iqgqxpbxfq7a10za02v6l"))))
     (build-system python-build-system)
     (arguments
-     '(#:phases
+     `(#:imported-modules ((guix build glib-or-gtk-build-system)
+                           ,@%python-build-system-modules)
+       #:modules
+       ((guix build utils)
+        (guix build python-build-system)
+        ((guix build glib-or-gtk-build-system) #:prefix glib-or-gtk:))
+       #:phases
        (modify-phases %standard-phases
          (add-after 'install 'wrap-program
            (lambda* (#:key outputs #:allow-other-keys)
@@ -50,14 +56,19 @@
                    (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
                (wrap-program prog
                  `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))
-               #t))))))
+               #t)))
+         (add-after 'wrap-program 'glib-or-gtk-wrap
+           (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-wrap))
+         (add-after 'glib-or-gtk-wrap 'glib-or-gtk-compile-schemas
+           (assoc-ref glib-or-gtk:%standard-phases 'glib-or-gtk-compile-schemas))
+         )))
     (inputs
-     `(("python-pygobject" ,python-pygobject)
+     `(("gtk+" ,gtk+)
+       ("python-pygobject" ,python-pygobject)
        ("python-pytaglib" ,python-pytaglib)))
     (native-inputs
      `(("python-pytest" ,python-pytest)
-       ("gettext" ,gnu-gettext)
-       ("gtk+" ,gtk+)))
+       ("gettext" ,gnu-gettext)))
     (home-page "https://nicotine-plus.github.io/nicotine-plus/")
     (synopsis "Graphical client for Soulseek")
     (description
------

I also moved the GTK+ input from native-inputs to inputs, since it is
referred to by the built Nicotine+ package. Native-inputs are for
packages that are only used while building, but we can expect GTK+ to be
used at run-time for this package.

And I swapped out gnu-gettext for gettext-minimal, to avoid depending on
Emacs.