gnu: lightdm-gtk-greeter: Wrap binary.
authorL p R n d n <guix@lprndn.info>
Tue, 16 Apr 2019 12:17:18 +0000 (14:17 +0200)
committerRicardo Wurmus <rekado@elephly.net>
Wed, 6 May 2020 22:08:11 +0000 (00:08 +0200)
* gnu/package/display-managers.scm (lightdm-gtk-greeter)[inputs]: Add
shared-mime-info.
[arguments]: Add "wrap-program" phase.

Signed-off-by: Ricardo Wurmus <rekado@elephly.net>
gnu/packages/display-managers.scm

index cda7598..23a9aab 100644 (file)
@@ -219,13 +219,29 @@ display manager which supports different greeters.")
                              out "/share/xgreeters/lightdm-gtk-greeter.desktop")
                  (("Exec=lightdm-gtk-greeter")
                   (string-append "Exec=" out "/sbin/lightdm-gtk-greeter")))
-               #t))))))
+               #t)))
+         (add-after 'fix-.desktop-file 'wrap-program
+           ;; Mimic glib-or-gtk build system
+           ;; which doesn't wrap files in /sbin
+           (lambda* (#:key outputs inputs #:allow-other-keys)
+             (let ((gtk (assoc-ref inputs "gtk+")))
+               (wrap-program (string-append (assoc-ref outputs "out")
+                                            "/sbin/lightdm-gtk-greeter")
+                 `("XDG_DATA_DIRS" ":" prefix
+                   ,(cons "/run/current-system/profile/share"
+                          (map (lambda (pkg)
+                                 (string-append (assoc-ref inputs pkg) "/share"))
+                               '("gtk+" "shared-mime-info" "glib"))))
+                 `("GTK_PATH" ":" prefix (,gtk))
+                 `("GIO_EXTRA_MODULES" ":" prefix (,gtk))))
+             #t)))))
     (native-inputs
      `(("exo" ,exo)
        ("intltool" ,intltool)
        ("pkg-config" ,pkg-config)))
     (inputs
      `(("lightdm" ,lightdm)
+       ("shared-mime-info" ,shared-mime-info)
        ("at-spi2-core" ,at-spi2-core)
        ("gtk+" ,gtk+)))
     (synopsis "GTK+ greeter for LightDM")