gnu: gtkmm: Use the for-test xorg variant for tests.
[jackhill/guix/guix.git] / gnu / packages / xorg.scm
index 57ba8a2..3ae9369 100644 (file)
 ;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
 ;;; Copyright © 2016, 2017 John Darrington <jmd@gnu.org>
-;;; Copyright © 2017 Marius Bakke <mbakke@fastmail.com>
-;;; Copyright © 2017 Rutger Helling <rhelling@mykolab.com>
+;;; Copyright © 2017, 2018 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2017, 2018 Rutger Helling <rhelling@mykolab.com>
+;;; Copyright © 2017 Arun Isaac <arunisaac@systemreboot.net>
+;;; Copyright © 2018 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;;
 ;;; This file is part of GNU Guix.
 ;;;
   #:use-module (guix build-system python)
   #:use-module (guix utils)
   #:use-module (gnu packages)
+  #:use-module (gnu packages anthy)
   #:use-module (gnu packages autotools)
   #:use-module (gnu packages bison)
   #:use-module (gnu packages check)
   #:use-module (gnu packages compression)
+  #:use-module (gnu packages emacs)
   #:use-module (gnu packages flex)
   #:use-module (gnu packages fontutils)
   #:use-module (gnu packages freedesktop)
   #:use-module (gnu packages gtk)
   #:use-module (gnu packages image)
   #:use-module (gnu packages libbsd)
+  #:use-module (gnu packages libedit)
   #:use-module (gnu packages linux)
   #:use-module (gnu packages llvm)
   #:use-module (gnu packages m4)
   #:use-module (gnu packages ncurses)
   #:use-module (gnu packages pciutils)
   #:use-module (gnu packages perl)
+  #:use-module (gnu packages perl-check)
   #:use-module (gnu packages pkg-config)
   #:use-module (gnu packages python)
+  #:use-module (gnu packages python-crypto)
+  #:use-module (gnu packages qt)
   #:use-module (gnu packages spice)
   #:use-module (gnu packages video)
   #:use-module (gnu packages xiph)
         ("xproto" ,xproto)))
     (arguments
      `(#:phases
-       (alist-cons-after
-        'install 'install-data
-        (lambda* (#:key inputs outputs #:allow-other-keys)
-          (let ((cf-files (assoc-ref inputs "xorg-cf-files"))
-                (out (assoc-ref outputs "out"))
-                (unpack (assoc-ref %standard-phases 'unpack))
-                (patch-source-shebangs
-                 (assoc-ref %standard-phases 'patch-source-shebangs)))
-            (mkdir "xorg-cf-files")
-            (with-directory-excursion "xorg-cf-files"
-              (apply unpack (list #:source cf-files))
-              (apply patch-source-shebangs (list #:source cf-files))
-              (substitute* '("mingw.cf" "Imake.tmpl" "nto.cf" "os2.cf"
-                             "linux.cf" "Amoeba.cf" "cygwin.cf")
-                (("/bin/sh") (which "bash")))
-              (and (zero? (system* "./configure"
-                                   (string-append "SHELL=" (which "bash"))
-                                   (string-append "--prefix=" out)))
-                   (zero? (system* "make" "install"))))))
-        %standard-phases)))
-    (home-page "http://www.x.org")
+       (modify-phases %standard-phases
+         (add-after 'install 'install-data
+           (lambda* (#:key inputs outputs #:allow-other-keys)
+             (let ((cf-files (assoc-ref inputs "xorg-cf-files"))
+                   (out (assoc-ref outputs "out"))
+                   (unpack (assoc-ref %standard-phases 'unpack))
+                   (patch-source-shebangs
+                    (assoc-ref %standard-phases 'patch-source-shebangs)))
+               (mkdir "xorg-cf-files")
+               (with-directory-excursion "xorg-cf-files"
+                 (apply unpack (list #:source cf-files))
+                 (apply patch-source-shebangs (list #:source cf-files))
+                 (substitute* '("mingw.cf" "Imake.tmpl" "nto.cf" "os2.cf"
+                                "linux.cf" "Amoeba.cf" "cygwin.cf")
+                   (("/bin/sh") (which "bash")))
+                 (and (zero? (system* "./configure"
+                                      (string-append "SHELL=" (which "bash"))
+                                      (string-append "--prefix=" out)))
+                      (zero? (system* "make" "install"))))))))))
+    (home-page "https://www.x.org/")
     (synopsis "Source code configuration and build system")
     (description
      "Imake is a deprecated source code configuration and build system which
@@ -163,7 +170,7 @@ autotools system.")
      `(("pkg-config" ,pkg-config)))
     (inputs
      `(("xproto" ,xproto)))
-    (home-page "http://www.x.org")
+    (home-page "https://www.x.org/")
     (synopsis "Symlink directory into tree")
     (description "Create a shadow directory of symbolic links to another
 directory tree.")
@@ -172,7 +179,7 @@ directory tree.")
 (define-public bdftopcf
   (package
     (name "bdftopcf")
-    (version "1.0.5")
+    (version "1.1")
     (source
       (origin
         (method url-fetch)
@@ -182,10 +189,10 @@ directory tree.")
                ".tar.bz2"))
         (sha256
           (base32
-            "09i03sk878cmx2i40lkpsysn7zqcvlczb30j7x3lryb11jz4gx1q"))))
+            "18hiscgljrz10zjcws25bis32nyrg3hzgmiq6scrh7izqmgz0kab"))))
     (build-system gnu-build-system)
     (inputs
-      `(("libxfont" ,libxfont)))
+      `(("libxfont" ,libxfont2)))
     (native-inputs
        `(("pkg-config" ,pkg-config)))
     (home-page "https://www.x.org/wiki/")
@@ -350,7 +357,7 @@ provided.")
 (define-public editres
   (package
     (name "editres")
-    (version "1.0.6")
+    (version "1.0.7")
     (source
       (origin
         (method url-fetch)
@@ -360,7 +367,7 @@ provided.")
                ".tar.bz2"))
         (sha256
          (base32
-          "1w2d5hb5pw9ii2jlf4yjlp899402zfwc8hdkpdr3i1fy1cjd2riv"))))
+          "04awfwmy3f9f0bchidc4ssbgrbicn5gzasg3jydpfnp5513d76h8"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags
@@ -911,7 +918,7 @@ rendering commands to the X server.")
 (define-public iceauth
   (package
     (name "iceauth")
-    (version "1.0.7")
+    (version "1.0.8")
     (source
       (origin
         (method url-fetch)
@@ -921,7 +928,7 @@ rendering commands to the X server.")
                ".tar.bz2"))
         (sha256
           (base32
-            "02izdyzhwpgiyjd8brzilwvwnfr72ncjb6mzz3y1icwrxqnsy5hj"))))
+            "1ik0mdidmyvy48hn8p2hwvf3535rf3m96hhf0mvcqrbj44x23vp6"))))
     (build-system gnu-build-system)
     (inputs
       `(("libice" ,libice)))
@@ -1033,7 +1040,7 @@ of new capabilities and controls for text keyboards.")
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (inputs `(("xproto" ,xproto)))
-    (home-page "http://xorg.freedesktop.org")
+    (home-page "https://www.x.org/")
     (synopsis "Xorg shared memory fences library")
     (description
      "This library provides an interface to shared-memory fences for
@@ -1102,7 +1109,7 @@ themselves.")
 (define-public libpciaccess
   (package
     (name "libpciaccess")
-    (version "0.13.5")
+    (version "0.14")
     (source
       (origin
         (method url-fetch)
@@ -1112,7 +1119,7 @@ themselves.")
                ".tar.bz2"))
         (sha256
           (base32
-            "16dr80rdw5bzdyhahvilfjrflj7scs2yl2mmghsb84f3nglm8b3m"))))
+            "197jbcpvp4z4x6j705mq2y4fsnnypy6f85y8xalgwhgx5bhl7x9x"))))
     (build-system gnu-build-system)
     (arguments
      '(;; Make sure libpciaccess can read compressed 'pci.ids' files as
@@ -1410,7 +1417,7 @@ treat it as part of their software base when porting.")
 (define-public libxres
   (package
     (name "libxres")
-    (version "1.0.7")
+    (version "1.2.0")
     (source
       (origin
         (method url-fetch)
@@ -1420,7 +1427,7 @@ treat it as part of their software base when porting.")
                ".tar.bz2"))
         (sha256
           (base32
-            "1rd0bzn67cpb2qkc946gch2183r4bdjfhs6cpqbipy47m9a91296"))))
+            "1m0jr0lbz9ixpp9ihk68349q0i7ry2379lnfzdy4mrl86ijc2xgz"))))
     (build-system gnu-build-system)
     (inputs
       `(("xproto" ,xproto)
@@ -2885,8 +2892,8 @@ X server.")
 
 
 (define-public xf86-video-intel
-  (let ((commit "c89905754b929f0421db7ea6d60b8942ccdbd8af")
-        (revision "8"))
+  (let ((commit "af6d8e9e8f546e5cba60e3a62765c2dbd0328e83")
+        (revision "9"))
     (package
       (name "xf86-video-intel")
       (version (string-append "2.99.917-" revision "-"
@@ -2900,7 +2907,7 @@ X server.")
                (commit commit)))
          (sha256
           (base32
-           "1xiyxhlq88vvgjavhxdkk933b5q7vm4jn6db144a6sqzifwaj672"))
+           "0f6sbkgykvvdggy8z6y7blf7yharg9vmiixxy190643bjxlnpp2s"))
          (file-name (string-append name "-" version))))
       (build-system gnu-build-system)
       (inputs `(("mesa" ,mesa)
@@ -3394,7 +3401,7 @@ X server.")
 (define-public xf86-video-vesa
   (package
     (name "xf86-video-vesa")
-    (version "2.3.4")
+    (version "2.4.0")
     (source
       (origin
         (method url-fetch)
@@ -3404,7 +3411,7 @@ X server.")
                ".tar.bz2"))
         (sha256
           (base32
-            "1haiw8r1z8ihk68d0jqph2wsld13w4qkl86biq46fvyxg7cg9pbv"))))
+            "1373vsxn6qh00na0s9c09kf09gj78rzi98zq93id8v5zsya3qi5z"))))
     (build-system gnu-build-system)
     (inputs `(("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
@@ -3814,7 +3821,7 @@ extension to the X11 protocol.  It includes:
 (define-public xkeyboard-config
   (package
     (name "xkeyboard-config")
-    (version "2.21")
+    (version "2.22")
     (source
       (origin
         (method url-fetch)
@@ -3824,7 +3831,7 @@ extension to the X11 protocol.  It includes:
               ".tar.bz2"))
         (sha256
           (base32
-            "1iffxpchy6dfgbby23nfsqqk17h9lfddlmjnhwagqag1z94p1h9h"))))
+            "1garmbyfjp0han04l2l90zzwlfbdgdxl6r1qnic36i5wkycckbny"))))
     (build-system gnu-build-system)
     (inputs
       `(("gettext" ,gettext-minimal)
@@ -4450,7 +4457,7 @@ formatted dump file, such as produced by xwd.")
      `(("xproto" ,xproto)))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
-    (home-page "http://www.x.org/wiki/")
+    (home-page "https://www.x.org/wiki/")
     (synopsis "X color name database")
     (description
      "This package provides the X color name database.")
@@ -4761,6 +4768,27 @@ but are depended upon by many other X Window System packages to provide
 common definitions and porting layer.")
     (license license:x11)))
 
+(define-public xorgproto
+  (package
+    (name "xorgproto")
+    (version "2018.4")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "mirror://xorg/individual/proto/"
+                                  name "-" version ".tar.bz2"))
+              (sha256
+               (base32
+                "180mqkp70i44rkmj430pmn9idssvffrgv4y5h19fm698a7h8bs7y"))))
+    (build-system gnu-build-system)
+    (propagated-inputs
+     ;; To get util-macros in (almost?) all package inputs.
+     `(("util-macros" ,util-macros)))
+    (home-page "https://cgit.freedesktop.org/xorg/proto/xorgproto")
+    (synopsis "Xorg protocol headers")
+    (description
+     "This package provides the headers and specification documents defining
+the core protocol and (many) extensions for the X Window System.")
+    (license license:x11)))
 
 
 ;; packages of height 2 in the propagated-inputs tree
@@ -4849,7 +4877,7 @@ an X Window System display.")
 (define-public libxfont
   (package
     (name "libxfont")
-    (version "1.5.2")
+    (version "1.5.4")
     (source
       (origin
         (method url-fetch)
@@ -4859,7 +4887,7 @@ an X Window System display.")
                ".tar.bz2"))
         (sha256
           (base32
-            "0w8d07bkmjiarkx09579bl8zsq903mn8javc7qpi0ix4ink5x502"))))
+            "0hiji1bvpl78aj3a3141hkk353aich71wv8l5l2z51scfy878zqs"))))
     (build-system gnu-build-system)
     (propagated-inputs
       `(("fontsproto" ,fontsproto)
@@ -4885,14 +4913,14 @@ new API's in libXft, or the legacy API's in libX11.")
 (define-public libxfont2
   (package
     (inherit libxfont)
-    (version "2.0.1")
+    (version "2.0.3")
     (source (origin
               (method url-fetch)
               (uri (string-append "mirror://xorg/individual/lib/libXfont2-"
                                   version ".tar.bz2"))
               (sha256
                (base32
-                "0znvwk36nhmyqpmhbm9mzisgixp1mp5qkfald8x1n5yxbm3vpyz9"))))))
+                "0klwmimmhm3axpj8pwn5l41lbggh47r5aazhw63zxkbwfgyvg2hf"))))))
 
 (define-public libxi
   (package
@@ -5062,7 +5090,7 @@ over Xlib, including:
 (define-public xorg-server
   (package
     (name "xorg-server")
-    (version "1.19.3")
+    (version "1.19.6")
     (source
       (origin
         (method url-fetch)
@@ -5071,9 +5099,9 @@ over Xlib, including:
               name "-" version ".tar.bz2"))
         (sha256
          (base32
-          "162s1v901djr57gxmmk4airk8hiwcz79dqyz72972x1lw1k82yk7"))
+          "15y13ihgkggmly5s07vzvpn35gzx1w0hrkbnlcvcy05h3lpm0cm7"))
         (patches
-         (cons
+         (list
           ;; See:
           ;;   https://lists.fedoraproject.org/archives/list/devel@lists.
           ;;      fedoraproject.org/message/JU655YB7AM4OOEQ4MOMCRHJTYJ76VFOK/
@@ -5085,9 +5113,7 @@ over Xlib, including:
             (sha256
              (base32
               "0mm70y058r8s9y9jiv7q2myv0ycnaw3iqzm7d274410s0ik38w7q"))
-            (file-name "xorg-server-use-intel-only-on-pre-gen4.diff"))
-          (search-patches "xorg-server-CVE-2017-10971.patch"
-                          "xorg-server-CVE-2017-10972.patch")))))
+            (file-name "xorg-server-use-intel-only-on-pre-gen4.diff"))))))
     (build-system gnu-build-system)
     (propagated-inputs
       `(("dri2proto" ,dri2proto)
@@ -5164,6 +5190,12 @@ over Xlib, including:
              ;; It's not used anyway, so set it to empty.
              "--with-default-font-path="
 
+             ;; The default is to use "uname -srm", which captures the kernel
+             ;; version and makes builds non-reproducible.
+             "--with-os-name=GNU"
+
+             "--with-os-vendor=GuixSD"    ;not strictly needed, but looks nice
+
 
              ;; For the log file, etc.
              "--localstatedir=/var"
@@ -5173,17 +5205,25 @@ over Xlib, including:
 
        #:phases
        (modify-phases %standard-phases
-         (add-before
-          'configure 'pre-configure
-          (lambda _
-            (substitute* (find-files "." "\\.c$")
-              (("/bin/sh") (which "sh")))
-
-            ;; Don't try to 'mkdir /var'.
-            (substitute* "hw/xfree86/Makefile.in"
-              (("\\$\\(MKDIR_P\\).*logdir.*")
-               "true\n"))
-            #t)))))
+         (add-before 'configure 'pre-configure
+           (lambda _
+             (substitute* (find-files "." "\\.c$")
+               (("/bin/sh") (which "sh")))
+
+             ;; Don't try to 'mkdir /var'.
+             (substitute* "hw/xfree86/Makefile.in"
+               (("\\$\\(MKDIR_P\\).*logdir.*")
+                "true\n"))
+
+             ;; Strip timestamps that would otherwise end up in the 'Xorg'
+             ;; binary.
+             (substitute* "configure"
+               (("^BUILD_DATE=.*$")
+                "BUILD_DATE=19700101\n")
+               (("^BUILD_TIME=.*$")
+                "BUILD_TIME=000001\n"))
+
+             #t)))))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg implementation of the X Window System")
     (description
@@ -5278,7 +5318,7 @@ draggable titlebars and borders.")
 (define-public libxcursor
   (package
     (name "libxcursor")
-    (version "1.1.14")
+    (version "1.1.15")
     (source
       (origin
         (method url-fetch)
@@ -5288,7 +5328,7 @@ draggable titlebars and borders.")
                ".tar.bz2"))
         (sha256
           (base32
-            "1prkdicl5y5yx32h1azh6gjfbijvjp415javv8dsakd13jrarilv"))))
+            "0syzlfvh29037p0vnlc8f3jxz8nl55k65blswsakklkwsc6nfki9"))))
     (build-system gnu-build-system)
     (propagated-inputs
       `(("libx11" ,libx11)
@@ -5297,12 +5337,20 @@ draggable titlebars and borders.")
         ("xproto" ,xproto)))
     (native-inputs
       `(("pkg-config" ,pkg-config)))
+;; TODO: add XCURSOR_PATH=.../share/icons to profile search paths, so
+;; libXcursor finds cursors installed into a profile.  If we solve bugs
+;; <http://bugs.gnu.org/20255> and <http://bugs.gnu.org/22138>, we can fix
+;; this with a search-path as follows:
+;;
+;;    (native-search-paths
+;;     (list (search-path-specification
+;;            (variable "XCURSOR_PATH")
+;;            (files '("share/icons")))))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Xorg Cursor management library")
     (description "Xorg Cursor management library.")
     (license license:x11)))
 
-
 (define-public libxt
   (package
     (name "libxt")
@@ -5618,7 +5666,7 @@ The XCB util-wm module provides the following libraries:
      `(("pkg-config" ,pkg-config)))
     (propagated-inputs
      `(("xauth" ,xauth)))
-    (home-page "http://x.org")
+    (home-page "https://www.x.org/")
     (synopsis "Commands to start the X Window server")
     (description
      "The xinit program is used to start the X Window System server and a
@@ -5722,20 +5770,22 @@ to answer a question.  Xmessage can also exit after a specified time.")
 (define-public xterm
   (package
     (name "xterm")
-    (version "330")
+    (version "331")
     (source (origin
               (method url-fetch)
-              (uri (string-append "ftp://ftp.invisible-island.net/xterm/"
-                                  "xterm-" version ".tgz"))
+              (uri (list
+                    (string-append "http://invisible-mirror.net/archives/xterm/"
+                                   name "-" version ".tgz")
+                    (string-append "ftp://ftp.invisible-island.net/xterm/"
+                                   name "-" version ".tgz")))
               (sha256
                (base32
-                "1psnfmqd23v9gxj8a98nzrgvymrk0p1whwqi92gy15bbkzrgkvks"))))
+                "047gk58hvj64974sg259ss5gixj7pac6halmjfz4cc6r1yimds4s"))))
     (build-system gnu-build-system)
     (arguments
-     '(#:configure-flags '("--enable-wide-chars" "--enable-256-color"
-                           "--enable-load-vt-fonts" "--enable-i18n"
-                           "--enable-doublechars" "--enable-luit"
-                           "--enable-mini-luit")
+     '(#:configure-flags '("--enable-wide-chars" "--enable-load-vt-fonts"
+                           "--enable-i18n" "--enable-doublechars"
+                           "--enable-luit" "--enable-mini-luit")
        #:tests? #f))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
@@ -5752,7 +5802,7 @@ to answer a question.  Xmessage can also exit after a specified time.")
        ("libXt" ,libxt)
        ("xproto" ,xproto)
        ("libXaw" ,libxaw)))
-    (home-page "http://invisible-island.net/xterm")
+    (home-page "https://invisible-island.net/xterm/")
     (synopsis "Terminal emulator for the X Window System")
     (description
      "The xterm program is a terminal emulator for the X Window System.  It
@@ -5763,7 +5813,7 @@ programs that cannot use the window system directly.")
 (define-public perl-x11-xcb
   (package
     (name "perl-x11-xcb")
-    (version "0.16")
+    (version "0.17")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -5771,7 +5821,7 @@ programs that cannot use the window system directly.")
                     "X11-XCB-" version ".tar.gz"))
               (sha256
                (base32
-                "14mnvr1001py2z1n43l18yaw0plwvjg5pcsyc7k81sa0amw8ahzw"))))
+                "12qyf98s5hbybmh0mblpz50c00i68srq73w5rw31m2dhclj8n96q"))))
     (build-system perl-build-system)
     (arguments
      '(;; Disable parallel build to prevent a race condition.
@@ -5894,7 +5944,7 @@ basic eye-candy effects.")
 (define-public xpra
   (package
     (name "xpra")
-    (version "2.1.1")
+    (version "2.2.5")
     (source
      (origin
        (method url-fetch)
@@ -5902,40 +5952,44 @@ basic eye-candy effects.")
                            version ".tar.xz"))
        (sha256
         (base32
-         "0fgdddhafxnpjlw5nhfyfyimxp43hdn4yhp1vbsjrz3ypfsfhxq7"))))
+         "1q2l00nc3bgwlhjzkbk4a8x2l8z9w1799yn31icsx5hrgh98a1js"))))
     (build-system python-build-system)
-    (inputs `(("ffmpeg"ffmpeg)
-              ("flac"flac)
+    (inputs `(("ffmpeg" ,ffmpeg)
+              ("flac" ,flac)
               ("gtk+-2" ,gtk+-2) ;; no full GTK3 support yet
-              ("libjpeg", libjpeg)
-              ("libpng", libpng)
-              ("libvpx", libvpx)
-              ("libx264", libx264)
-              ("libxcomposite", libxcomposite)
-              ("libxdamage", libxdamage)
-              ("libxkbfile", libxkbfile)
-              ("libxrandr", libxrandr)
-              ("libxtst", libxtst)
-              ("lzo", lzo)
-              ("python2-cryptography", python2-cryptography)
-              ("python2-dbus", python2-dbus)
-              ("python2-lz4", python2-lz4)
-              ("python2-lzo", python2-lzo)
-              ("python2-numpy", python2-numpy)
+              ("libjpeg" ,libjpeg)
+              ("libpng" ,libpng)
+              ("libvpx" ,libvpx)
+              ("libx264" ,libx264)
+              ("libxcomposite" ,libxcomposite)
+              ("libxdamage" ,libxdamage)
+              ("libxkbfile" ,libxkbfile)
+              ("libxrandr" ,libxrandr)
+              ("libxtst" ,libxtst)
+              ("lzo" ,lzo)
+              ("python2-cryptography" ,python2-cryptography)
+              ("python2-dbus" ,python2-dbus)
+              ("python2-lz4" ,python2-lz4)
+              ("python2-lzo" ,python2-lzo)
+              ("python2-netifaces" ,python2-netifaces)
+              ("python2-numpy" ,python2-numpy)
               ("python2-pillow" ,python2-pillow)
-              ("python2-pycairo", python2-pycairo)
-              ("python2-pycrypto", python2-pycrypto)
-              ("python2-pygobject", python2-pygobject)
-              ("python2-pyopengl", python2-pyopengl)
-              ("python2-pygtk", python2-pygtk)
-              ("python2-rencode", python2-rencode)
-              ("xorg-server", xorg-server)))
+              ("python2-pycairo" ,python2-pycairo)
+              ("python2-pycrypto" ,python2-pycrypto)
+              ("python2-pygobject" ,python2-pygobject)
+              ("python2-pyopengl" ,python2-pyopengl)
+              ("python2-pyopengl-accelerate" ,python2-pyopengl-accelerate)
+              ("python2-pygtk" ,python2-pygtk)
+              ("python2-rencode" ,python2-rencode)
+              ("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)
                      ("python2-cython", python2-cython)))
     (arguments
      `(#:python ,python-2 ;; no full Python 3 support yet
        #:configure-flags '("--with-tests"
                            "--with-bundle_tests"
+                           "--without-Xdummy" ;; We use Xvfb instead.
+                           "--without-Xdummy_wrapper"
                            "--without-strict")
        #:modules ((guix build python-build-system)
                   (guix build utils))
@@ -5964,13 +6018,17 @@ basic eye-candy effects.")
              (substitute* "setup.py"
                (("/usr/lib/")
                 (string-append (assoc-ref outputs "out") "/lib/")))
-             (substitute* "./etc/xpra/conf.d/55_server_x11.conf.in"
-               (("xvfb = %.*")
-                (string-append "xvfb = "
-                               (assoc-ref inputs "xorg-server")
-                               "/bin/Xvfb +extension Composite -nolisten tcp"
-                               " -noreset -auth $XAUTHORITY"
-                               " -screen 0 5760x2560x24+32")))
+             ;; Use Xvfb with '-nolisten local' to disable abstract X11 sockets.
+             (substitute* "./xpra/scripts/config.py"
+               ((":.*join.*xvfb.*")
+                (string-append ": \"" (assoc-ref inputs "xorg-server")
+                               "/bin/Xvfb +extension Composite"
+                               " -screen 0 5760x2560x24+32 -dpi 96 -nolisten"
+                               " tcp -nolisten local -noreset -auth"
+                               " $XAUTHORITY\",\n")))
+             (substitute* "./xpra/scripts/config.py"
+               (("socket-dir.*: \"\",")
+                "socket-dir\"        : \"~/.xpra\","))
              #t)))))
     (home-page "https://www.xpra.org/")
     (synopsis "Remote access to individual applications or full desktops")
@@ -5983,3 +6041,96 @@ disconnect from these programs and reconnect from the same or another machine,
 without losing any state.  It can also be used to forward full desktops from
 X11 servers, Windows, or macOS.")
     (license license:gpl2+)))
+
+(define-public uim
+  (package
+    (name "uim")
+    (version "1.8.6")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "https://github.com/uim/uim/releases/download/uim-"
+                           version "/uim-" version ".tar.bz2"))
+       (sha256
+        (base32
+         "0pr3rfqpxha8p6cxzdjsxbbmmr76riklzw36f68phd1zqw1sh7kv"))))
+    (build-system gnu-build-system)
+    (inputs
+     `(("anthy" ,anthy)
+       ("libedit" ,libedit)
+       ("libxft" ,libxft)
+       ("m17n-lib" ,m17n-lib)))
+    (native-inputs
+     `(("emacs" ,emacs-minimal)
+       ("intltool" ,intltool)
+       ("pkg-config" ,pkg-config)))
+    (arguments
+     `(#:modules ((guix build gnu-build-system)
+                  (guix build utils)
+                  (guix build emacs-utils))
+       #:imported-modules (,@%gnu-build-system-modules
+                           (guix build emacs-utils))
+       #:configure-flags
+       (list "--with-anthy-utf8"
+             (string-append "--with-lispdir=" %output
+                            "/share/emacs/site-lisp/guix.d")
+             ;; Set proper runpath
+             (string-append "LDFLAGS=-Wl,-rpath=" %output "/lib"))
+       #:phases
+       (modify-phases %standard-phases
+         ;; Set path of uim-el-agent and uim-el-helper-agent executables
+         (add-after 'configure 'configure-uim-el
+           (lambda* (#:key outputs #:allow-other-keys)
+             (substitute* "emacs/uim-var.el"
+               (("\"(uim-el-agent|uim-el-helper-agent)\"" _ executable)
+                (string-append "\"" (assoc-ref outputs "out")
+                               "/bin/" executable "\"")))
+             #t))
+         ;; Generate emacs autoloads for uim.el
+         (add-after 'install 'make-autoloads
+           (lambda* (#:key outputs #:allow-other-keys)
+             (emacs-generate-autoloads
+              ,name (string-append (assoc-ref outputs "out")
+                                   "/share/emacs/site-lisp"))
+             #t)))))
+    (home-page "https://github.com/uim/uim")
+    (synopsis "Multilingual input method framework")
+    (description "Uim is a multilingual input method library and environment.
+It provides a simple, easily extensible and high code-quality input method
+development platform, and useful input method environment for users of desktop
+and embedded platforms.")
+    (license (list license:lgpl2.1+ ; scm/py.scm, pixmaps/*.{svg,png} (see pixmaps/README)
+                   license:gpl2+ ; scm/pinyin-big5.scm
+                   license:gpl3+ ; scm/elatin-rules.cm
+                   license:public-domain ; scm/input-parse.scm, scm/match.scm
+                   ;; gtk2/toolbar/eggtrayicon.{ch},
+                   ;; qt3/chardict/kseparator.{cpp,h},
+                   ;; qt3/pref/kseparator.{cpp,h}
+                   license:lgpl2.0+
+                   ;; pixmaps/*.{svg,png} (see pixmaps/README),
+                   ;; all other files
+                   license:bsd-3))))
+
+(define-public uim-gtk
+  (package
+    (inherit uim)
+    (name "uim-gtk")
+    (inputs
+     `(("gtk" ,gtk+)
+       ("gtk" ,gtk+-2)
+       ,@(package-inputs uim)))
+    (synopsis "Multilingual input method framework (GTK+ support)")))
+
+(define-public uim-qt
+  (package
+    (inherit uim)
+    (name "uim-qt")
+    (inputs
+     `(("qt" ,qt-4)
+       ,@(package-inputs uim)))
+    (arguments
+     (substitute-keyword-arguments (package-arguments uim)
+       ((#:configure-flags configure-flags)
+        (append configure-flags (list "--with-qt4-immodule"
+                                      "--with-qt4")))))
+    (synopsis "Multilingual input method framework (Qt support)")))