Subject: [PATCH 2/2] gnu: gajim: Update to 1.0.1.

From: Clément Lassieur <[email-masked]>
Date: Sun, 15 Apr 2018 00:35:54 +0200

* gnu/packages/messaging.scm (python2-nbxmpp): Remove variable.
(gajim): Update to 1.0.1.
[build-system]: Change to PYTHON-BUILD-SYSTEM.
[arguments]: Remove the PYTHONPATH wrapper.  Don't override "APP".  Add a
GI_TYPELIB_PATH wrapper.  Add 'remove-test-resolver, 'start-xserver and
'install-icons phases.
[native-inputs]: Add XORG-SERVER.
[inputs]: Remove PYTHON2-AXOLOTL, PYTHON2-NBXMPP, PYTHON2-PYOPENSSL,
PYTHON2-GNUPG, PYTHON2-PYGTK, PYTHON-2.  Add ADWAITA-ICON-THEME,
GNOME-KEYRING, GTK+, GTKSPELL3, HICOLOR-ICON-THEME, LIBSECRET, PYTHON-DBUS,
PYTHON-DOCUTILS, PYTHON-GNUPG, PYTHON-NBXMPP, PYTHON-PILLOW, PYTHON-PYASN1,
PYTHON-PYCAIRO, PYTHON-PYGOBJECT, PYTHON-PYOPENSSL.
---
 gnu/packages/messaging.scm | 85 ++++++++++++++++++++++++++------------
 1 file changed, 59 insertions(+), 26 deletions(-)

diff --git a/gnu/packages/messaging.scm b/gnu/packages/messaging.scm
index 8635cbf44..fe45fb7fc 100644
--- a/gnu/packages/messaging.scm
+++ b/gnu/packages/messaging.scm
@@ -504,13 +504,10 @@ applications to use Jabber/XMPP networks in a non-blocking way.  This library
 was initially a fork of xmpppy, but uses non-blocking sockets.")
     (license license:gpl3+)))
 
-(define-public python2-nbxmpp
-  (package-with-python2 python-nbxmpp))
-
 (define-public gajim
   (package
     (name "gajim")
-    (version "0.16.9")
+    (version "1.0.1")
     (source (origin
               (method url-fetch)
               (uri (string-append "https://gajim.org/downloads/"
@@ -518,36 +515,72 @@ was initially a fork of xmpppy, but uses non-blocking sockets.")
                                   "/gajim-" version ".tar.bz2"))
               (sha256
                (base32
-                "0v08zdvpqaig0wxpxn1l8rsj3wr3fqvnagn8cnvch17vfqv9gcr1"))))
-    (build-system gnu-build-system)
+                "16ynws10vhx6rhjjjmzw6iyb3hc19823xhx4gsb14hrc7l8vzd1c"))))
+    (build-system python-build-system)
     (arguments
      `(#:phases
        (modify-phases %standard-phases
          (add-after 'install 'wrap-program
            (lambda* (#:key outputs #:allow-other-keys)
-             ;; Make sure all Python scripts run with the correct PYTHONPATH.
-             (let ((out (assoc-ref outputs "out"))
-                   (path (getenv "PYTHONPATH")))
-               (for-each (lambda (name)
-                           (let ((file (string-append out "/bin/" name)))
-                             ;; Wrapping destroys identification of intended
-                             ;; application, so we need to override "APP".
-                             (substitute* file
-                               (("APP=`basename \\$0`")
-                                (string-append "APP=" name)))
-                             (wrap-program file
-                               `("PYTHONPATH" ":" prefix (,path)))))
-                         '("gajim" "gajim-remote" "gajim-history-manager")))
+             (let ((out (assoc-ref outputs "out")))
+               (for-each
+                (lambda (name)
+                  (let ((file (string-append out "/bin/" name))
+                        (gi-typelib-path (getenv "GI_TYPELIB_PATH")))
+                    (wrap-program file
+                      `("GI_TYPELIB_PATH" ":" prefix (,gi-typelib-path)))))
+                '("gajim" "gajim-remote" "gajim-history-manager")))
+             #t))
+         (add-before 'check 'remove-test-resolver
+           ;; This test requires network access.
+           (lambda _
+             (substitute* "test/runtests.py"
+               (("'integration.test_resolver',") ""))
+             #t))
+         (add-before 'check 'start-xserver
+           ;; Tests require a running X server.
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let ((xorg-server (assoc-ref inputs "xorg-server"))
+                   (display ":1"))
+               (setenv "DISPLAY" display)
+               (zero? (system (string-append xorg-server "/bin/Xvfb "
+                                             display " &"))))))
+         (add-after 'install 'install-icons
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (adwaita (string-append
+                              (assoc-ref inputs "adwaita-icon-theme")
+                              "/share/icons/Adwaita"))
+                    (hicolor (string-append
+                              (assoc-ref inputs "hicolor-icon-theme")
+                              "/share/icons/hicolor"))
+                    (icons (string-append
+                            out "/lib/python"
+                            ,(version-major+minor (package-version python))
+                            "/site-packages/gajim/data/icons")))
+               (with-directory-excursion icons
+                 (symlink adwaita "Adwaita")
+                 (copy-recursively hicolor "hicolor")))
              #t)))))
     (native-inputs
-     `(("intltool" ,intltool)))
+     `(("intltool" ,intltool)
+       ("xorg-server" ,xorg-server)))
     (inputs
-     `(("python2-axolotl" ,python2-axolotl)
-       ("python2-nbxmpp" ,python2-nbxmpp)
-       ("python2-pyopenssl" ,python2-pyopenssl)
-       ("python2-gnupg" ,python2-gnupg)
-       ("python2-pygtk" ,python2-pygtk)
-       ("python" ,python-2)))
+     `(("adwaita-icon-theme" ,adwaita-icon-theme)
+       ("gnome-keyring" ,gnome-keyring)
+       ("gtk+" ,gtk+)
+       ("gtkspell3" ,gtkspell3)
+       ("hicolor-icon-theme" ,hicolor-icon-theme)
+       ("libsecret" ,libsecret)
+       ("python-dbus" ,python-dbus)
+       ("python-docutils" ,python-docutils)
+       ("python-gnupg" ,python-gnupg)
+       ("python-nbxmpp" ,python-nbxmpp)
+       ("python-pillow" ,python-pillow)
+       ("python-pyasn1" ,python-pyasn1)
+       ("python-pycairo" ,python-pycairo)
+       ("python-pygobject" ,python-pygobject)
+       ("python-pyopenssl" ,python-pyopenssl)))
     (home-page "https://gajim.org/")
     (synopsis "Jabber (XMPP) client")
     (description "Gajim is a feature-rich and easy to use Jabber/XMPP client.
-- 
2.17.0