gnu: emacs-consult: Fix grammar.
[jackhill/guix/guix.git] / gnu / packages / xorg.scm
index 077735c..97ff8ab 100644 (file)
@@ -1,29 +1,29 @@
 ;;; GNU Guix --- Functional package management for GNU
 ;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr>
-;;; Copyright © 2014, 2015, 2017, 2018 Mark H Weaver <mhw@netris.org>
+;;; Copyright © 2014, 2015, 2017, 2018, 2020 Mark H Weaver <mhw@netris.org>
 ;;; Copyright © 2014, 2015 Eric Bavier <bavier@member.fsf.org>
-;;; Copyright © 2015, 2016, 2017, 2018, 2019 Ludovic Courtès <ludo@gnu.org>
+;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
 ;;; Copyright © 2015 Eric Dvorsak <eric@dvorsak.fr>
 ;;; Copyright © 2016 Mathieu Lirzin <mthl@gnu.org>
 ;;; Copyright © 2015 Cyrill Schenkel <cyrill.schenkel@gmail.com>
-;;; Copyright © 2016, 2017, 2019 Efraim Flashner <efraim@flashner.co.il>
+;;; Copyright © 2016, 2017, 2019, 2020 Efraim Flashner <efraim@flashner.co.il>
 ;;; Copyright © 2016 Nikita <nikita@n0.is>
 ;;; Copyright © 2016 Alex Kost <alezost@gmail.com>
 ;;; Copyright © 2016 David Craven <david@craven.ch>
 ;;; Copyright © 2016, 2017 John Darrington <jmd@gnu.org>
-;;; Copyright © 2017, 2018, 2019 Marius Bakke <mbakke@fastmail.com>
+;;; Copyright © 2017, 2018, 2019, 2020 Marius Bakke <mbakke@fastmail.com>
 ;;; Copyright © 2017, 2018, 2019 Rutger Helling <rhelling@mykolab.com>
 ;;; Copyright © 2017, 2020 Arun Isaac <arunisaac@systemreboot.net>
-;;; Copyright © 2018, 2019, 2020 Tobias Geerinckx-Rice <me@tobias.gr>
+;;; Copyright © 2018–2021 Tobias Geerinckx-Rice <me@tobias.gr>
 ;;; Copyright © 2018 Kei Kebreau <kkebreau@posteo.net>
-;;; Copyright © 2018 Oleg Pykhalov <go.wigust@gmail.com>
+;;; Copyright © 2018, 2020 Oleg Pykhalov <go.wigust@gmail.com>
 ;;; Copyright © 2018 Benjamin Slade <slade@jnanam.net>
 ;;; Copyright © 2019 nee <nee@cock.li>
 ;;; Copyright © 2019 Yoshinori Arai <kumagusu08@gmail.com>
 ;;; Copyright © 2019 Mathieu Othacehe <m.othacehe@gmail.com>
 ;;; Copyright © 2020 Leo Prikler <leo.prikler@student.tugraz.at>
 ;;; Copyright © 2020 Florian Pelz <pelzflorian@pelzflorian.de>
-;;; Copyright © 2020 Michael Rohleder <mike@rohleder.de>
+;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de>
 ;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com>
 ;;; Copyright © 2020 Jean-Baptiste Note <jean-baptiste.note@m4x.org>
 ;;;
@@ -528,10 +528,10 @@ Resources file.")
 (define-public font-alias
   (package
     (name "font-alias")
-    (version "1.0.3")
+    (version "1.0.4")
     (source (xorg-font-origin
              name version
-             "16ic8wfwwr3jicaml7b5a0sk6plcgc1kg84w02881yhwmqm3nicb"))
+             "0xjjjindczv3g7m1597l0x19zz75xy70wh5garghz61fpzl1l4gk"))
     (build-system gnu-build-system)
     (native-inputs `(("pkg-config" ,pkg-config)))
     (arguments
@@ -701,10 +701,10 @@ For example: @code{6x10}, @code{9x15bold}, etc.")
 (define-public font-misc-ethiopic
   (package
     (name "font-misc-ethiopic")
-    (version "1.0.3")
+    (version "1.0.4")
     (source (xorg-font-origin
              name version
-             "19cq7iq0pfad0nc2v28n681fdq3fcw1l1hzaq0wpkgpx7bc1zjsk"))
+             "1q2azkdwc4x3kh53xclwpf9q654k70lhiyns1cjq594wvxnhz339"))
     (build-system gnu-build-system)
     (inputs
       `(("mkfontdir" ,mkfontdir)
@@ -2405,7 +2405,7 @@ DRI (Direct Rendering Infrastructure) drivers.")
 (define-public xev
   (package
     (name "xev")
-    (version "1.2.3")
+    (version "1.2.4")
     (source
       (origin
         (method url-fetch)
@@ -2415,7 +2415,7 @@ DRI (Direct Rendering Infrastructure) drivers.")
                ".tar.bz2"))
         (sha256
           (base32
-            "02ddsdx138g7szhwklpbzi0cxr34871iay3k28kdcihrz8f4zg36"))))
+            "1ql592pdhddhkipkrsxn929y9l2nn02a5fh2z3dx47kmzs5y006p"))))
     (build-system gnu-build-system)
     (inputs
       `(("libxrender" ,libxrender)
@@ -2466,7 +2466,7 @@ XC-APPGROUP, XTEST.")
 (define-public libevdev
   (package
     (name "libevdev")
-    (version "1.8.0")
+    (version "1.9.1")
     (source
      (origin
        (method url-fetch)
@@ -2474,7 +2474,7 @@ XC-APPGROUP, XTEST.")
                            name "-" version ".tar.xz"))
        (sha256
         (base32
-         "04a2klvii0in9ln8r85mk2cm73jq8ry2m3yzmf2z8xyjxzjcmlr0"))))
+         "1jvsphdrs1i54ccjcn6ll26jy42am7h28lbsvwa6pmxgqm43qq7m"))))
     (build-system gnu-build-system)
     (arguments
      `(#:configure-flags '("--disable-static")))
@@ -2528,7 +2528,7 @@ including most mice, keyboards, tablets and touchscreens.")
 (define-public xf86-input-libinput
   (package
     (name "xf86-input-libinput")
-    (version "0.28.2")
+    (version "0.30.0")
     (source (origin
               (method url-fetch)
               (uri (string-append
@@ -2536,7 +2536,7 @@ including most mice, keyboards, tablets and touchscreens.")
                     name "-" version ".tar.bz2"))
               (sha256
                (base32
-                "0818vr0yhk9j1y1wcbxzcd458vrvp06rrhi8k43bhqkb5jb4dcxq"))))
+                "1h4np66p87jf0c85ig524w8f5rbhl5gx8fww1qg0c55f87yzkizr"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags
@@ -2703,14 +2703,14 @@ as USB mice.")
 (define-public xf86-video-amdgpu
   (package
     (name "xf86-video-amdgpu")
-    (version "19.0.1")
+    (version "19.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://xorg/individual/driver/"
                            "xf86-video-amdgpu-" version ".tar.bz2"))
        (sha256
-        (base32 "1mf6s7i423b2xyl469kwnakrpp5fr41sm8hh7vli5jxdd8crg8da"))))
+        (base32 "0pgy4ihnja0vm8504qw7qxh3pdpa3p9k6967nz15m6b1mvha83jg"))))
     (build-system gnu-build-system)
     (inputs `(("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
@@ -2770,20 +2770,19 @@ X server.")
 (define-public xf86-video-ati
   (package
     (name "xf86-video-ati")
-    (version "19.0.1")
+    (version "19.1.0")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "mirror://xorg/individual/driver/"
                            "xf86-video-ati-" version ".tar.bz2"))
        (sha256
-        (base32 "1c31g5q5p3nk9nscwikh1vvfnhdwsxiw7j8v678nlm34hrfh3djw"))))
+        (base32 "0j9w4axsqlycv4v14g53xyhkm9h7d27b2fcv9lrzb9gf54b5m7v5"))))
     (build-system gnu-build-system)
     (inputs `(("mesa" ,mesa)
               ("xorgproto" ,xorgproto)
               ("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
-    (arguments `(#:configure-flags `("--disable-glamor"))) ; TODO: Enable glamor
     (home-page "https://www.x.org/wiki/")
     (synopsis "ATI Radeon video driver for X server")
     (description
@@ -2816,10 +2815,26 @@ X server.")
 X server.")
     (license license:x11)))
 
-
-;; non-free license
-;; (define-public xf86-video-dummy
-
+(define-public xf86-video-dummy
+  (package
+    (name "xf86-video-dummy")
+    (version "0.3.8")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://xorg/individual/driver/"
+                           "xf86-video-dummy-" version ".tar.bz2"))
+       (sha256
+        (base32 "1fcm9vwgv8wnffbvkzddk4yxrh3kc0np6w65wj8k88q7jf3bn4ip"))))
+    (build-system gnu-build-system)
+    (inputs `(("xorg-server" ,xorg-server)))
+    (native-inputs `(("pkg-config" ,pkg-config)))
+    (home-page "https://www.x.org/wiki/")
+    (synopsis "Dummy video driver for X server")
+    (description
+     "Virtual/offscreen frame buffer driver for the Xorg X server.")
+    ;; per https://lists.freedesktop.org/archives/xorg/2020-June/060316.html
+    (license license:x11)))
 
 (define-public xf86-video-fbdev
   (package
@@ -2893,18 +2908,14 @@ It supports a variety of Adreno graphics chipsets.")
 (define-public xf86-video-geode
   (package
     (name "xf86-video-geode")
-    (version "2.11.19")
+    (version "2.11.20")
     (source
-      (origin
-        (method url-fetch)
-        (uri (string-append
-               "mirror://xorg/individual/driver/xf86-video-geode-"
-               version
-               ".tar.bz2"))
-        (sha256
-          (base32
-           "0zn9gb49grds5mcs1dlrx241k2w1sgqmx4i5x7v6159xxqhlqsf6"))
-        (patches (search-patches "xf86-video-geode-glibc-2.20.patch"))))
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://xorg/individual/driver/xf86-video-geode-"
+                           version ".tar.bz2"))
+       (sha256
+        (base32 "0r2dz0agg0k5wrqdbicji6mh6svzyl0xgqk76hpcfdlzn2zx15zl"))))
     (build-system gnu-build-system)
     (inputs `(("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
@@ -3001,8 +3012,8 @@ X server.")
 
 
 (define-public xf86-video-intel
-  (let ((commit "5ca3ac1a90af177eb111a965e9b4dd8a27cc58fc")
-        (revision "16"))
+  (let ((commit "ad5540f6ecaec287c70259f0181e613561b716f6")
+        (revision "17"))
     (package
       (name "xf86-video-intel")
       (version (git-version "2.99.917" revision commit))
@@ -3015,7 +3026,7 @@ X server.")
                (commit commit)))
          (sha256
           (base32
-           "1y1v6cp3r3isq3bc7mypkvypwjygi205k06slmidx2q3sz4h4mjc"))
+           "09jdg5wrq708wc83027337qvdjb96827h7sjwjfl5ffiynfpwl95"))
          (file-name (git-file-name name version))))
       (build-system gnu-build-system)
       (inputs `(("mesa" ,mesa)
@@ -3182,17 +3193,14 @@ supported, and the RENDER extension is not accelerated by this driver.")
 (define-public xf86-video-nouveau
   (package
     (name "xf86-video-nouveau")
-    (version "1.0.16")
+    (version "1.0.17")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append
-             "mirror://xorg/individual/driver/xf86-video-nouveau-"
-             version
-             ".tar.bz2"))
+       (uri (string-append "mirror://xorg/individual/driver/xf86-video-nouveau-"
+                           version ".tar.bz2"))
        (sha256
-        (base32
-         "01mz8gnq7j6bvrqb2ljm3d1wpjhi9p2z2w8zbkdrqmqmcj060h1h"))))
+        (base32 "0sqm1jwjg15sp8v7039y2hsbhph8gpjd2bdzcqqiij2mgbi254s9"))))
     (build-system gnu-build-system)
     (inputs `(("xorg-server" ,xorg-server)))
     (native-inputs `(("pkg-config" ,pkg-config)))
@@ -3341,7 +3349,7 @@ Xorg X server.")
 (define-public xf86-video-sis
   (package
     (name "xf86-video-sis")
-    (version "0.10.9")
+    (version "0.12.0")
     (source
       (origin
         (method url-fetch)
@@ -3349,16 +3357,15 @@ Xorg X server.")
                "mirror://xorg/individual/driver/xf86-video-sis-"
                version
                ".tar.bz2"))
-        (patches (search-patches "xf86-video-sis-xorg-compat.patch"))
         (sha256
-          (base32
-           "03f1abjjf68y8y1iz768rn95va9d33wmbwfbsqrgl6k0gi0bf9jj"))))
+         (base32
+          "0nrs6cjldlhakx5987fiiggjrlzilsbdc7l9pz22x1iwslbkz78i"))))
     (build-system gnu-build-system)
     (inputs `(("mesa" ,mesa)
               ("xorgproto" ,xorgproto)
               ("xorg-server" ,xorg-server)))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Sis video driver for X server")
     (description
@@ -3529,7 +3536,7 @@ X server.")
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/mjanusz/v86d.git")
+             (url "https://github.com/mjanusz/v86d")
              (commit (string-append name "-" version))))
        (file-name (git-file-name name version))
        (sha256
@@ -3895,27 +3902,25 @@ alternative implementations like XRandR or TwinView.")
     (license license:x11)))
 
 
-(define xkbcomp-intermediate used as input for xkeyboard-config
+(define xkbcomp-intermediate            ;used as input for xkeyboard-config
   (package
     (name "xkbcomp-intermediate")
-    (version "1.4.3")
+    (version "1.4.4")
     (source
-      (origin
-        (method url-fetch)
-        (uri (string-append
-               "mirror://xorg/individual/app/xkbcomp-"
-               version
-               ".tar.bz2"))
-        (sha256
-         (base32
-          "0dflr250nlj6rrnv658f6dm8qx37sj0xfimc3ihay761kwb2q906"))))
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://xorg/individual/app/xkbcomp-"
+                           version ".tar.bz2"))
+       (sha256
+        (base32
+         "0zpjkbap9160pdd6jpgb5f0yg5281w0rkkx1l0i7g887lq1ydk2r"))))
     (build-system gnu-build-system)
     (inputs
-      `(("xorgproto" ,xorgproto)
-        ("libxkbfile" ,libxkbfile)
-        ("libx11" ,libx11)))
+     `(("xorgproto" ,xorgproto)
+       ("libxkbfile" ,libxkbfile)
+       ("libx11" ,libx11)))
     (native-inputs
-        `(("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Compile XKB keyboard description")
     (description
@@ -4011,7 +4016,7 @@ extension to the X11 protocol.  It includes:
 (define-public xkeyboard-config
   (package
     (name "xkeyboard-config")
-    (version "2.29")
+    (version "2.31")
     (source
       (origin
         (method url-fetch)
@@ -4021,7 +4026,7 @@ extension to the X11 protocol.  It includes:
               ".tar.bz2"))
         (sha256
           (base32
-            "00hqc8nykvy8c09b8vab64dcd0ij3n5klxjn6rl00q7hickpah8x"))))
+            "18xddaxh83zm698syh50w983jg6b7b8zgv0dfaf7ha485hgihi6s"))))
     (build-system gnu-build-system)
     (inputs
       `(("libx11" ,libx11)
@@ -4314,23 +4319,21 @@ it for output on various types of printers.")
 (define-public xprop
   (package
     (name "xprop")
-    (version "1.2.4")
+    (version "1.2.5")
     (source
-      (origin
-        (method url-fetch)
-        (uri (string-append
-               "mirror://xorg/individual/app/xprop-"
-               version
-               ".tar.bz2"))
-        (sha256
-          (base32
-            "0lzp7kyhpwd5hm83j2zm6j3w3z1z5i4ykgg2nwr01ij6dq4znxwc"))))
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://xorg/individual/app/xprop-"
+                           version ".tar.bz2"))
+       (sha256
+        (base32
+         "18ckr8g1z50zkc01hprkpm1npwbq32yqib4b3l98c95z2q1yv4lv"))))
     (build-system gnu-build-system)
     (inputs
-      `(("xorgproto" ,xorgproto)
-        ("libx11" ,libx11)))
+     `(("libx11" ,libx11)
+       ("xorgproto" ,xorgproto)))
     (native-inputs
-      `(("pkg-config" ,pkg-config)))
+     `(("pkg-config" ,pkg-config)))
     (home-page "https://www.x.org/wiki/")
     (synopsis "Display X server properties")
     (description
@@ -5299,16 +5302,15 @@ over Xlib, including:
 (define-public xorg-server
   (package
     (name "xorg-server")
-    (version "1.20.7")
+    (version "1.20.10")
     (source
       (origin
         (method url-fetch)
-        (uri (string-append
-              "mirror://xorg/individual/xserver/"
-              "xorg-server-" version ".tar.bz2"))
+        (uri (string-append "mirror://xorg/individual/xserver/"
+                            "xorg-server-" version ".tar.bz2"))
         (sha256
          (base32
-          "18bfl04ihw1jr3h0fs522nnxxq5ixjay77y9dcymnkzk23q8cndx"))
+          "16bwrf0ag41l7jbrllbix8z6avc5yimga7ihvq4ch3a5hb020x4p"))
         (patches
          (list
           ;; See:
@@ -5433,8 +5435,7 @@ draggable titlebars and borders.")
      (inherit xorg-server))))
 
 (define-public xorg-server-xwayland
-  (package
-    (inherit xorg-server)
+  (package/inherit xorg-server
     (name "xorg-server-xwayland")
     (inputs
      `(("wayland" ,wayland)
@@ -5456,7 +5457,7 @@ draggable titlebars and borders.")
 (define-public libx11
   (package
     (name "libx11")
-    (version "1.6.9")
+    (version "1.6.10")
     (source
       (origin
         (method url-fetch)
@@ -5466,7 +5467,8 @@ draggable titlebars and borders.")
                ".tar.bz2"))
         (sha256
           (base32
-            "1ldyn9c6pyx54sxzaw120n3q42rqi7b503aqmyjky6fn038fiiww"))))
+            "09k2pqmqbn2m1bpgl7jfxyqxaaxsnzbnp2bp8ycmqldqi5ln4j5g"))))
+    (replacement libx11/fixed)
     (build-system gnu-build-system)
     (outputs '("out"
                "doc"))                            ;8 MiB of man pages + XML
@@ -5494,6 +5496,21 @@ draggable titlebars and borders.")
     (description "Xorg Core X11 protocol client library.")
     (license license:x11)))
 
+(define-public libx11/fixed
+  (package
+    (inherit libx11)
+    (version "1.6.12")
+    (source
+      (origin
+        (method url-fetch)
+        (uri (string-append
+               "mirror://xorg/individual/lib/libX11-"
+               version
+               ".tar.bz2"))
+        (sha256
+          (base32
+            "1ivfzl1qwk8zh7gc0m5vb58gdxz11jwg7w3d356w16j1d5s2427i"))))))
+
 ;; packages of height 5 in the propagated-inputs tree
 
 (define-public libxcursor
@@ -5612,17 +5629,15 @@ Intrinsics (Xt) Library.")
 (define-public twm
   (package
     (name "twm")
-    (version "1.0.10")
+    (version "1.0.11")
     (source
      (origin
        (method url-fetch)
-       (uri (string-append
-             "mirror://xorg/individual/app/" name "-"
-             version
-             ".tar.bz2"))
+       (uri (string-append "mirror://xorg/individual/app/twm-"
+                           version ".tar.xz"))
        (sha256
         (base32
-         "1ms5cj1w3g26zg6bxdv1j9hl0pxr4300qnv003cz1q3cl7ffljb4"))))
+         "1iv8kdb18n9vk3is5fyh6l40ipq9mkgx8ppj86byf464vr1ais7l"))))
     (build-system gnu-build-system)
     (inputs
      `(("libxt" ,libxt)
@@ -5736,7 +5751,7 @@ The XCB util module provides the following libraries:
       `(("autoconf" ,autoconf)
         ("automake" ,automake)
         ("libtool" ,libtool)
-        ("python-2" ,python-2)
+        ("python" ,python-wrapper)
         ("pkg-config" ,pkg-config)))
      (arguments
       `(#:phases
@@ -6056,23 +6071,35 @@ to answer a question.  Xmessage can also exit after a specified time.")
 (define-public xterm
   (package
     (name "xterm")
-    (version "353")
-    (source (origin
-              (method url-fetch)
-              (uri (list
-                    (string-append "http://invisible-mirror.net/archives/xterm/"
-                                   "xterm-" version ".tgz")
-                    (string-append "ftp://ftp.invisible-island.net/xterm/"
-                                   "xterm-" version ".tgz")))
-              (sha256
-               (base32
-                "0s5pkfn4r8iy09s1q1y78zhnr9f3sm6wgbqir7azaqggkppd68g5"))))
+    (version "366")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (list
+             (string-append "https://invisible-mirror.net/archives/xterm/"
+                            "xterm-" version ".tgz")
+             (string-append "ftp://ftp.invisible-island.net/xterm/"
+                            "xterm-" version ".tgz")))
+       (sha256
+        (base32 "0vmzffy3hzgcgwx305h07ars5sxsq6nnl1ir4xqpxs9zjs2ji2w5"))))
     (build-system gnu-build-system)
     (arguments
      '(#:configure-flags '("--enable-wide-chars" "--enable-load-vt-fonts"
                            "--enable-i18n" "--enable-doublechars"
                            "--enable-luit" "--enable-mini-luit")
-       #:tests? #f))
+       #:tests? #f                      ; no test suite
+       #:phases
+       (modify-phases %standard-phases
+         (add-after 'build 'patch-file-names
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((out (assoc-ref outputs "out")))
+               (substitute* "uxterm"
+                 (("([ `\\|])(sh|sed|awk|xmessage) " _ prefix command)
+                  (string-append prefix (which command) " "))
+                 (("(`|\"|LANG=C )(locale) " _ prefix command)
+                  (string-append prefix (which command) " "))
+                 (("=xterm")
+                  (string-append "=" out "/bin/xterm")))))))))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs
@@ -6084,6 +6111,7 @@ to answer a question.  Xmessage can also exit after a specified time.")
        ("libICE" ,libice)
        ("libSM" ,libsm)
        ("libX11" ,libx11)
+       ("libXcursor" ,libxcursor)
        ("libXext" ,libxext)
        ("libXt" ,libxt)
        ("xorgproto" ,xorgproto)
@@ -6249,93 +6277,118 @@ basic eye-candy effects.")
 (define-public xpra
   (package
     (name "xpra")
-    (version "2.5.3")
+    (version "4.0.6")
     (source
      (origin
        (method url-fetch)
        (uri (string-append "https://www.xpra.org/src/xpra-"
                            version ".tar.xz"))
        (sha256
-        (base32
-         "1ys35lj28903alccks9p055psy1fsk1nxi8ncchvw8bfxkkkvbys"))))
+        (base32 "1s49y2s75a8a70vj0micnmpic5zv1n32yjxy8fkxsqa6j5njyrww"))
+       (patches (search-patches "xpra-4.0.1-systemd-run.patch"))))
     (build-system python-build-system)
-    (inputs `(("ffmpeg" ,ffmpeg)
-              ("flac" ,flac)
-              ("gtk+-2" ,gtk+-2) ;; no full GTK3 support yet
+    ;; see also http://xpra.org/trac/wiki/Dependencies
+    (inputs `(
+              ;; Essential dependencies.
               ("libjpeg" ,libjpeg-turbo)
-              ("libpng" ,libpng)
-              ("libvpx" ,libvpx)
-              ("libx264" ,libx264)
-              ("libxcomposite" ,libxcomposite)
-              ("libxdamage" ,libxdamage)
-              ("libxi" ,libxi)
-              ("libxkbfile" ,libxkbfile)
+              ("libwebp" ,libwebp)
+              ("ffmpeg" ,ffmpeg)
+              ("libx11" ,libx11)
               ("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-pyopengl-accelerate" ,python2-pyopengl-accelerate)
-              ("python2-pygtk" ,python2-pygtk)
-              ("python2-rencode" ,python2-rencode)
-              ("xorg-server" ,xorg-server)))
+              ("libxfixes" ,libxfixes)
+              ("libxkbfile" ,libxkbfile)
+              ("libxcomposite" ,libxcomposite)
+              ("libxdamage" ,libxdamage)
+              ("libxext" ,libxext)
+              ("gtk+" ,gtk+)
+              ("python-pycairo" ,python-pycairo)
+              ("python-pygobject" ,python-pygobject)
+              ("xauth" ,xauth)
+              ("xorg-server" ,xorg-server)
+              ("xf86-video-dummy" ,xf86-video-dummy)
+              ("xf86-input-mouse" ,xf86-input-mouse)
+              ("xf86-input-keyboard" ,xf86-input-keyboard)
+              ("python-pillow" ,python-pillow)
+              ;; Optional dependencies.
+              ("libx264" ,libx264)
+              ("x265" ,x265)
+              ("libvpx" ,libvpx)
+              ("python-rencode" ,python-rencode) ; For speed.
+              ("python-numpy" ,python-numpy)
+              ("python-pyopengl" ,python-pyopengl) ; Drawing acceleration.
+              ("python-pyopengl-accelerate" ,python-pyopengl-accelerate) ; Same.
+              ("python-paramiko" ,python-paramiko) ; Tunneling over SSH.
+              ("python-dbus" ,python-dbus) ; For desktop notifications.
+              ("dbus" ,dbus)               ; For dbus-launch command.
+              ("python-lz4" ,python-lz4) ; Faster compression than zlib.
+              ("python-netifaces" ,python-netifaces)))
     (native-inputs `(("pkg-config" ,pkg-config)
-                     ("python2-cython" ,python2-cython)))
+                     ("python-cython" ,python-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")
+     `(#:configure-flags '("--without-Xdummy"
+                                                  "--without-Xdummy_wrapper"
+                           "--with-opengl"
+                           "--without-debug"
+                           "--without-strict") ; Ignore compiler warnings.
        #:modules ((guix build python-build-system)
                   (guix build utils))
-
+       #:tests? #f ; Do not run test-cases. This would rebuild all modules and
+                                        ; they seem to require python2.
        #:phases
        (modify-phases %standard-phases
+         ;; built by 'install phase
          (delete 'build)
-         (delete 'check) ;; There's no test suite at the moment.
-
-         ;; Remove BUILD_CPU, BUILD_DATE, BUILD_TIME from build info to
-         ;; prevent deterministic issues.  Also correct some directories and
-         ;; use the xvfb binary instead of xorg-server (which doesn't seem to
-         ;; work).
-         (add-before 'install 'remove-timestamps&set-file-names
+         (add-before 'install 'fix-paths
            (lambda* (#:key inputs outputs #:allow-other-keys)
-             (substitute* "add_build_info.py"
-               ((".*\"BUILD_CPU\", get_cpuinfo.*") ""))
-             (substitute* "add_build_info.py"
-               ((".*\"BUILD_DATE\", datetime.*") ""))
-             (substitute* "add_build_info.py"
-               ((".*\"BUILD_TIME\", datetime.*") ""))
-             (substitute* "setup.py"
-               (("/etc/init.d/")
-                (string-append (assoc-ref outputs "out")
-                               "/etc/init.d/")))
-             (substitute* "setup.py"
-               (("/usr/lib/")
-                (string-append (assoc-ref outputs "out") "/lib/")))
-             ;; 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")))
+             ;; Fix binary paths.
+             (substitute* '("xpra/scripts/config.py" "xpra/x11/vfb_util.py")
+               (("\"Xvfb\"")
+                (string-append "\"" (assoc-ref inputs "xorg-server") "/bin/Xvfb\""))
+               (("\"Xorg\"")
+                (string-append "\"" (assoc-ref inputs "xorg-server") "/bin/Xorg\""))
+               (("\"xauth\"")
+                (string-append "\"" (assoc-ref inputs "xauth") "/bin/xauth\"")))
+             ;; Fix directory of config files.
+             (substitute* '("xpra/scripts/config.py" "xpra/platform/xposix/paths.py")
+               (("\"/etc/xpra/?\"")
+                (string-append "\"" (assoc-ref outputs "out") "/etc/xpra/\"")))
+             ;; XXX: Stolen from (gnu packages linux)
+             (define (append-to-file name body)
+               (let ((file (open-file name "a")))
+                 (display body file)
+                 (close-port file)))
+             ;; Add Xorg module paths.
+             (append-to-file
+              "etc/xpra/xorg.conf"
+              (string-append "\nSection \"Files\"\nModulePath \""
+                             (assoc-ref inputs "xf86-video-dummy") "/lib/xorg/modules,"
+                             (assoc-ref inputs "xf86-input-mouse") "/lib/xorg/modules,"
+                             (assoc-ref inputs "xf86-input-keyboard") "/lib/xorg/modules,"
+                             (assoc-ref inputs "xorg-server") "/lib/xorg/modules\"\n"
+                             "EndSection\n\n"))
+             (substitute* '("xpra/scripts/config.py"
+                            "etc/xpra/conf.d/60_server.conf.in"
+                            "unittests/unit/server/mixins/notification_test.py")
+               ;; The trailing -- is intentional, so we only replace it inside
+               ;; a command line.
+               (("dbus-launch --")
+                (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch --")))
+             ;; /run/user does not exist on guix system
              (substitute* "./xpra/scripts/config.py"
                (("socket-dir.*: \"\",")
                 "socket-dir\"        : \"~/.xpra\","))
-             #t)))))
+             #t))
+         ;; GTK3 will not be found, if GI can’t find its typelibs.
+         (add-after
+             'install 'wrap-program
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let ((prog (string-append (assoc-ref outputs "out")
+                                        "/bin/xpra")))
+               ;; XXX: only export typelibs in inputs
+               (wrap-program prog
+                 `("GI_TYPELIB_PATH" = (,(getenv "GI_TYPELIB_PATH"))))
+               #t))))))
     (home-page "https://www.xpra.org/")
     (synopsis "Remote access to individual applications or full desktops")
     (description "Xpra is a persistent remote display server and client for
@@ -6426,8 +6479,7 @@ and embedded platforms.")
                    license:bsd-3))))
 
 (define-public uim-gtk
-  (package
-    (inherit uim)
+  (package/inherit uim
     (name "uim-gtk")
     (inputs
      `(("gtk" ,gtk+)
@@ -6436,8 +6488,7 @@ and embedded platforms.")
     (synopsis "Multilingual input method framework (GTK+ support)")))
 
 (define-public uim-qt
-  (package
-    (inherit uim)
+  (package/inherit uim
     (name "uim-qt")
     (inputs
      `(("qt" ,qtbase)
@@ -6514,47 +6565,33 @@ cursor to any point on the screen with a few key strokes.  It also simulates
 mouse click.  You can do everything mouse can do with a keyboard.")
     (license license:bsd-3)))
 
-(define-public transset-df
+(define-public transset
   (package
-    (name "transset-df")
-    (version "6")
+    (name "transset")
+    (version "1.0.2")
     (source (origin
               (method url-fetch)
-              (uri (string-append "http://forchheimer.se/" name "/" name "-" version
-                                  ".tar.gz"))
+              (uri (string-append "https://www.x.org/releases/individual/app/"
+                                  name "-" version ".tar.gz"))
               (sha256
                (base32
-                "1vnykwwrv75miigbhmcwxniw8xnhsdyzhqydip2m9crxi2lwhqs5"))))
+                "0rya202y87dwl35jnmq8hs3arzdrv5z4vf1xmi0py4rnmhdpszaw"))))
     (build-system gnu-build-system)
-    (arguments
-     '(#:phases
-       (modify-phases %standard-phases
-         (add-after 'unpack 'setenv
-           (lambda _
-             (setenv "CC" (which "gcc"))
-             #t))
-         (delete 'configure)
-         (delete 'check)
-         (replace 'install
-           (lambda* (#:key outputs #:allow-other-keys)
-             (let* ((out (assoc-ref outputs "out"))
-                    (bin (string-append out "/bin")))
-               (install-file "transset-df" bin)
-               #t))))))
     (native-inputs
      `(("pkg-config" ,pkg-config)))
     (inputs `(("libxcomposite" ,libxcomposite)
-              ("libxdamager" ,libxdamage)
+              ("libxdamage" ,libxdamage)
               ("libxrender" ,libxrender)))
     (synopsis "Set the transparency of X11 windows")
-    (description "The @command{transset-df} command allows you to set the
-opacity of X11 windows.  This patched version of X.Org's @command{transset}
-adds functionality, including: selecting window by clicking (as transset),
-selecting windows by pointing select actual focused X11 window, selecting by
-window name or id, forcing toggle, increase or decrease opacity.")
-    (home-page "https://forchheimer.se/transset-df/")
+    (description "@command{transset} is a simple program for X servers
+supporting the XFIXES, DAMAGE, and COMPOSITE extensions.  It lets the
+user set the transparency on a window.")
+    (home-page "https://gitlab.freedesktop.org/xorg/app/transset")
     (license license:x11)))
 
+(define-public transset-df
+  (deprecated-package "transset-df" transset))
+
 (define-public bdfresize
   (package
     (name "bdfresize")
@@ -6604,15 +6641,15 @@ output.")
 (define-public console-setup
   (package
     (name "console-setup")
-    (version "1.195")
+    (version "1.201")
     (source
      (origin
        (method git-fetch)
        (uri (git-reference
              (url "https://salsa.debian.org/installer-team/console-setup.git")
-             (commit "38512eb9a97f57ead1f87f6aee6df455f721c645"))) ; no tag
+             (commit version)))
        (sha256
-        (base32 "0d0xagigs5k3appzz5lzxdjncvnkgz4amz6ks7imiq8kkjixvmfy"))
+        (base32 "0xkynb8d1813wph3p0sdvbpimx7zqkzh4c3mmqymp3pibcg7af5a"))
        (file-name (git-file-name name version))))
     (build-system gnu-build-system)
     (arguments
@@ -6661,7 +6698,7 @@ output.")
     (synopsis "Set up the Linux console font and keyboard")
     (description
      "console-setup provides the console with the same keyboard
-configuration scheme that X Window System has.  In particular, the
+configuration scheme that the X Window System has.  In particular, the
 @command{ckbcomp} program compiles an XKB keyboard description to a keymap
 suitable for @command{loadkeys} or @command{kbdcontrol}.  As a result, there
 is no need to duplicate or change the console keyboard files just to make
@@ -6687,7 +6724,7 @@ Thai).")
      (origin
        (method git-fetch)
        (uri (git-reference
-             (url "https://github.com/eworm-de/xcur2png.git")
+             (url "https://github.com/eworm-de/xcur2png")
              (commit version)))
        (file-name (git-file-name name version))
        (sha256
@@ -6725,3 +6762,108 @@ that Make knows which object files must be recompiled when a dependency has
 changed.")
     (home-page "https://gitlab.freedesktop.org/xorg/util/gccmakedep")
     (license license:x11)))
+
+(define-public xdialog
+  (package
+    (name "xdialog")
+    (version "2.3.1")
+    (source (origin
+              (method url-fetch)
+              (uri (string-append "http://xdialog.free.fr/Xdialog-"
+                                  version ".tar.bz2"))
+              (sha256
+               (base32
+                "16jqparb33lfq4cvd9l3jgd7fq86fk9gv2ixc8vgqibid6cnhi0x"))))
+    (native-inputs
+     `(("pkg-config" ,pkg-config)))
+    (inputs
+     `(("glib" ,glib)
+       ("gettext" ,gettext-minimal)
+       ("gtk" ,gtk+-2)))
+    (arguments
+     `(#:configure-flags '("--with-gtk2")))
+    (build-system gnu-build-system)
+    (home-page "http://xdialog.free.fr/")
+    (synopsis "Convert a terminal program into a program with an X interface")
+    (description "X11 replacement for the text util dialog Xdialog is designed
+to be a drop-in replacement for the dialog and cdialog programs.  It converts
+any terminal-based program into a program with an X interface.  The dialogs
+are easier to see and use, and Xdialog adds more functionality such as a help
+button and box, a treeview, an editbox, file and directory selectors, a range
+box, and a calendar.  It uses GTK+, and will match your desktop theme.")
+    (license license:gpl2+)))
+
+(define-public xvfb-run
+  (package
+    (name "xvfb-run")
+    (version "1.20.10-3")
+    (source
+     (origin
+       (method url-fetch)
+       (uri (string-append "mirror://debian/pool/main/x/xorg-server/"
+                           "xorg-server_" version ".diff.gz"))
+       (sha256
+        (base32 "08gs9ni8ss8rw4n9cql1s8q05mj517vk1vm1varj1dsx75k4j25v"))))
+    (build-system gnu-build-system)
+    (arguments
+     `(#:phases
+       (modify-phases %standard-phases
+         (replace 'unpack
+           ;; Apply the source patch to an empty directory.
+           (lambda* (#:key inputs #:allow-other-keys)
+             (let* ((source (assoc-ref inputs "source"))
+                    (diff.gz (basename source))
+                    (diff (substring diff.gz 0 (string-rindex diff.gz #\.))))
+               (mkdir "source")
+               (chdir "source")
+               (copy-file source diff.gz)
+               (invoke "gunzip" diff.gz)
+               (invoke "patch" "-Np1" "-i" diff)
+               (chdir "debian/local"))))
+         (delete 'configure)            ; nothing to configure
+         (replace 'build
+           (lambda _
+             (chmod "xvfb-run" #o755)
+             (substitute* "xvfb-run"
+               (("(\\(| )(fmt|stty|awk|kill|getopt|mktemp|touch|rm|mcookie)"
+                 _ prefix command)
+                (string-append prefix (which command)))
+               ;; These also feature in UI messages, so be more strict.
+               (("(AUTHFILE |command -v |exec )(Xvfb|xauth)"
+                 _ prefix command)
+                (string-append prefix (which command))))))
+         (replace 'check
+           ;; There are no tests included.  Here we test whether we can run
+           ;; a simple client without xvfb-run itself relying on $PATH.
+           (lambda* (#:key tests? #:allow-other-keys)
+             (when tests?
+               (let ((old-PATH (getenv "PATH"))
+                     (xterm (which "xterm")))
+                 (unsetenv "PATH")
+                 (invoke "./xvfb-run" xterm "-e" "true")
+                 (setenv "PATH" old-PATH)))))
+         (replace 'install
+           (lambda* (#:key outputs #:allow-other-keys)
+             (let* ((out (assoc-ref outputs "out"))
+                    (bin (string-append out "/bin"))
+                    (man (string-append out "/share/man/man1")))
+               (install-file "xvfb-run" bin)
+               (install-file "xvfb-run.1" man)))))))
+    (inputs
+     `(("util-linux" ,util-linux)       ; for getopt
+       ("xauth" ,xauth)
+       ("xorg-server" ,xorg-server)))
+    (native-inputs
+     `(("xterm" ,xterm)))               ; for the test
+    ;; This script is not part of the upstream xorg-server.  It is provided only
+    ;; as a patch added to Debian's package.
+    (home-page "https://packages.debian.org/sid/xorg-server-source")
+    (synopsis "Run X11 client or command in a virtual X server environment")
+    (description
+     "The @command{xvfb-run} wrapper simplifies running commands and scripts
+within a virtual X server environment.  It sets up an X authority file or uses
+an existing user-specified one, writes a cookie to it, and then starts the
+@command{Xvfb} X server as a background process.  It also takes care of killing
+the server and cleaning up before returning the exit status of the command.")
+    (license (list license:x11                    ; the script
+                   license:gpl2+))))              ; the man page