Subject: bug#26593: [PATCH] gnu: icecat: Fix GTK 3 file chooser crash.

From: Clément Lassieur <[email-masked]>
Date: Fri, 21 Apr 2017 20:18:31 +0200

Clément Lassieur <[email-masked]> writes:

> * gnu/packages/gnuzilla.scm (icecat)[arguments]: Add a 'wrap-xdgdatadirs'
> phase to set XDG_DATA_DIRS.
> ---
>  gnu/packages/gnuzilla.scm | 11 ++++++++++-
>  1 file changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/gnu/packages/gnuzilla.scm b/gnu/packages/gnuzilla.scm
> index 91bb0a6a7..3b8c80d2c 100644
> --- a/gnu/packages/gnuzilla.scm
> +++ b/gnu/packages/gnuzilla.scm
> @@ -750,7 +750,16 @@ standards.")
>                        (copy-file file (string-append icons "/icecat.png"))))
>                    '("default16.png" "default22.png" "default24.png"
>                      "default32.png" "default48.png" "content/icon64.png"
> -                    "mozicon128.png" "default256.png")))))))))
> +                    "mozicon128.png" "default256.png"))))))
> +         ;; This fixes the file chooser crash that happens with GTK 3.
> +         (add-after 'install 'wrap-xdgdatadirs
                                     ^
I guess I should rename it to 'wrap-program, and update changelog
accordingly.

> +           (lambda* (#:key inputs outputs #:allow-other-keys)
> +             (let* ((out (assoc-ref outputs "out"))
> +                    (lib (string-append out "/lib"))
> +                    (gtk (assoc-ref inputs "gtk+"))
> +                    (gtk-share (string-append gtk "/share")))
> +               (wrap-program (car (find-files lib "^icecat$"))
> +                 `("XDG_DATA_DIRS" ":" prefix (,gtk-share)))))))))
>      (home-page "https://www.gnu.org/software/gnuzilla/")
>      (synopsis "Entirely free browser derived from Mozilla Firefox")
>      (description