Subject: Re: [bug#30765] [PATCH] gnu: qtox: Propagate qtsvg and fix misplaced comma (unquote).

From: Diego Nicola Barbato <[email-masked]>
Date: Thu, 15 Mar 2018 02:51:34 +0100

Marius Bakke <[email-masked]> writes:

> Ludovic Courtès <[email-masked]> writes:
>
>> Hello Diego,
>>
>> Diego Nicola Barbato <[email-masked]> skribis:
>>
>>> This patch fixes an issue where qTox failed to display some icons by
>>> moving qtsvg to propagated-inputs.
>>> I also took the liberty of fixing a misplaced comma (unquote).
>>
>> The patch LGTM, but can you explain why propagating qtsvg allows icons
>> to be displayed?
>
> There is some discussion about this in <https://bugs.gnu.org/29905>.
>
> In short, the problem is that Qt icons hide under the search path
> QT_PLUGIN_PATH, which is not automatically set up for dependent programs
> (see <https://bugs.gnu.org/22138>).
>
> Diego: can you try to wrap qTox as in commit
> 990e93fce16a83e1603b9ec28123ec3edc7ea787 instead of propagating?

Thanks for the feedback.  I have rewritten the patch according to your
suggestion:

>From 17c78d051b723b3fb9cabec724a32d151b00be68 Mon Sep 17 00:00:00 2001
From: Diego Nicola Barbato <[email-masked]>
Date: Thu, 15 Mar 2018 02:19:51 +0100
Subject: [PATCH] gnu: qtox: Wrap executable and fix misplaced comma (unquote).

* gnu/packages/messaging.scm (qtox)[arguments]: Add phase
"wrap-executable".
[inputs]: Fix misplaced comma (unquote).
---
 gnu/packages/messaging.scm | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index b6323c39b..ae489e158 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -874,10 +874,18 @@ instant messenger with audio and video chat capabilities.")
                (("__DATE__") "\"\"")
                (("__TIME__") "\"\"")
                (("TIMESTAMP") "\"\""))
-             #t)))))
+             #t))
+         ;; Ensure that icons are found at runtime.
+         (add-after 'install 'wrap-executable
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (wrap-program (string-append out "/bin/qtox")
+                 `("QT_PLUGIN_PATH" prefix
+                   ,(list (string-append (assoc-ref inputs "qtsvg")
+                                         "/lib/qt5/plugins/"))))))))))
     (inputs
      `(("ffmpeg" ,ffmpeg)
-       ("filteraudio", filteraudio)
+       ("filteraudio" ,filteraudio)
        ("glib" ,glib)
        ("gtk+" ,gtk+-2)
        ("libsodium" ,libsodium)
-- 
2.16.2