diff options
Diffstat (limited to 'gnu/packages/xorg.scm')
-rw-r--r-- | gnu/packages/xorg.scm | 743 |
1 files changed, 446 insertions, 297 deletions
diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index a63e3392f8..21f4cae58e 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -2,11 +2,11 @@ ;;; Copyright © 2013, 2014 Andreas Enge <andreas@enge.fr> ;;; 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, 2020 Ludovic Courtès <ludo@gnu.org> +;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 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, 2020 Efraim Flashner <efraim@flashner.co.il> +;;; Copyright © 2016, 2017, 2019, 2020, 2021 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> @@ -24,11 +24,12 @@ ;;; Copyright © 2020 Liliana Marie Prikler <liliana.prikler@gmail.com> ;;; Copyright © 2020 Florian Pelz <pelzflorian@pelzflorian.de> ;;; Copyright © 2020, 2021 Michael Rohleder <mike@rohleder.de> -;;; Copyright © 2020 Maxim Cournoyer <maxim.cournoyer@gmail.com> +;;; Copyright © 2020, 2021 Maxim Cournoyer <maxim.cournoyer@gmail.com> ;;; Copyright © 2020 Jean-Baptiste Note <jean-baptiste.note@m4x.org> ;;; Copyright © 2021 Nicolò Balzarotti <nicolo@nixo.xyz> ;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org> ;;; Copyright © 2021 Brice Waegeneire <brice@waegenei.re> +;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org> ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> ;;; Copyright © 2021 qblade <qblade@protonmail.com> ;;; @@ -52,7 +53,9 @@ #:use-module (guix packages) #:use-module (guix download) #:use-module (guix git-download) + #:use-module (guix build-system copy) #:use-module (guix build-system gnu) + #:use-module (guix build-system meson) #:use-module (guix build-system perl) #:use-module (guix build-system python) #:use-module (guix utils) @@ -66,6 +69,7 @@ #:use-module (gnu packages compression) #:use-module (gnu packages emacs) #:use-module (gnu packages flex) + #:use-module (gnu packages fonts) #:use-module (gnu packages fontutils) #:use-module (gnu packages freedesktop) #:use-module (gnu packages gettext) @@ -84,6 +88,7 @@ #:use-module (gnu packages llvm) #:use-module (gnu packages m4) #:use-module (gnu packages ncurses) + #:use-module (gnu packages onc-rpc) #:use-module (gnu packages pciutils) #:use-module (gnu packages perl) #:use-module (gnu packages perl-check) @@ -101,6 +106,16 @@ +;; When cross-compiling certain packages, "--disable-malloc0returnsnull" +;; needs to be passed. Otherwise, the configure script will try to run a +;; binary for the host on the build machine. +(define (malloc0-flags) + (if (%current-target-system) + ;; At least on glibc-based systems, malloc(0) evaluates to a non-NULL + ;; pointer (except in out-of-memory situations). On other systems, + ;; --enable-malloc0returnsnull might be required instead. + '("--disable-malloc0returnsnull") + '())) ;; packages without propagated input ;; (rationale for this separation: The packages in PROPAGATED_INPUTS need to @@ -227,14 +242,14 @@ which can be read by any architecture.") (define-public xorgproto (package (name "xorgproto") - (version "2019.2") + (version "2021.5") (source (origin (method url-fetch) - (uri (string-append "mirror://xorg/individual/proto/" + (uri (string-append "ftp://ftp.freedesktop.org/pub/xorg//individual/proto/" "xorgproto-" version ".tar.bz2")) (sha256 (base32 - "13kvir8dz9dvzhvyfndpff1z7k8h14s7kkl7mbl427andhax1v26")))) + "05d0kib351qmnlfimaznaw0220fr0ym7fx2gn9h2jqxxilxncbxa")))) (build-system gnu-build-system) (propagated-inputs ;; To get util-macros in (almost?) all package inputs. @@ -1387,22 +1402,24 @@ configuration files.") (name "libxkbfile") (version "1.1.0") (source - (origin - (method url-fetch) - (uri (string-append - "mirror://xorg/individual/lib/libxkbfile-" - version - ".tar.bz2")) - (sha256 - (base32 - "1irq9crvscd3yb8sr802dhvvfr35jdy1n2yz094xplmd42mbv3bm")))) + (origin + (method url-fetch) + (uri (string-append + "mirror://xorg/individual/lib/libxkbfile-" + version + ".tar.bz2")) + (sha256 + (base32 + "1irq9crvscd3yb8sr802dhvvfr35jdy1n2yz094xplmd42mbv3bm")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--disable-static"))) - (inputs - `(("libx11" ,libx11))) + (propagated-inputs + ;; Required in xkbfile.pc. + `(("libx11" ,libx11) + ("kbproto" ,kbproto))) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("pkg-config" ,pkg-config))) (home-page "https://www.x.org/wiki/") (synopsis "Xorg XKB file handling library") (description "Xorg XKB file handling library.") @@ -1476,7 +1493,7 @@ treat it as part of their software base when porting.") (define-public libxres (package (name "libxres") - (version "1.2.0") + (version "1.2.1") (source (origin (method url-fetch) @@ -1486,7 +1503,7 @@ treat it as part of their software base when porting.") ".tar.bz2")) (sha256 (base32 - "1m0jr0lbz9ixpp9ihk68349q0i7ry2379lnfzdy4mrl86ijc2xgz")))) + "049b7dk6hx47161hg47ryjrm6pwsp27r5pby05b0wqb1pcggprmn")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--disable-static"))) @@ -1907,7 +1924,7 @@ management to participate in an X11R6 session.") (define-public util-macros (package (name "util-macros") - (version "1.19.2") + (version "1.19.3") (source (origin (method url-fetch) @@ -1917,7 +1934,7 @@ management to participate in an X11R6 session.") ".tar.bz2")) (sha256 (base32 - "04p7ydqxgq37jklnfj18b70zsifiz4h50wvrk94i2112mmv37r6p")))) + "0w8ryfqylprz37zj9grl4jzdsqq67ibfwq5raj7vm1i7kmp2x08g")))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config))) (arguments @@ -2150,8 +2167,15 @@ emulate a TI-30 or an HP-10C.") "https://xcb.freedesktop.org/dist/xcb-proto-" version ".tar.xz")) (sha256 - (base32 - "01d62r286yfc3rpz714nqdgkl0wk9j0wqkd4ylas1d7r4vmkqshq")))) + (base32 + "01d62r286yfc3rpz714nqdgkl0wk9j0wqkd4ylas1d7r4vmkqshq")) + (modules '((guix build utils))) + (snippet + '(begin + ;; fractions.gcd has been deprecated since python-3.5. + (substitute* "xcbgen/align.py" + (("from fractions import gcd") "from math import gcd")) + #t)))) (build-system gnu-build-system) (native-inputs `(("pkg-config" ,pkg-config) ("python" ,python-minimal-wrapper))) @@ -2255,65 +2279,58 @@ X11 Inter-Client Communication Conventions Manual (ICCCM).") X server: @code{handhelds}, @code{redglass} and @code{whiteglass}.") (license license:x11))) - (define-public hackneyed-x11-cursors - ;; The current release 0.8 suffers from non-deterministic build problems. - (let ((revision "1") - (commit "9423cef2e2e5ff6b1d65d61f7108c97bc7f5fdfb")) - (package - (name "hackneyed-x11-cursors") - (version (git-version "0.8.1" revision commit)) - (source - (origin - (method git-fetch) - (uri (git-reference - (url "https://gitlab.com/Enthymeme/hackneyed-x11-cursors.git") - (commit commit))) - (file-name (git-file-name name version)) - (sha256 - (base32 - "0f637i76sdwz3nm1g1iynamq6j0i6k3c70fpl0fmd0dlynm8ga96")))) - (build-system gnu-build-system) - (arguments - `(#:tests? #f ;no test suite - #:make-flags (list (string-append "PREFIX=" %output)) - #:phases - (modify-phases %standard-phases - (delete 'configure) - (add-before 'build 'set-inkscape-environment-variable - (lambda* (#:key inputs #:allow-other-keys) - (let ((inkscape (string-append (assoc-ref inputs "inkscape") - "/bin/inkscape"))) - (setenv "INKSCAPE" inkscape) - #t))) - (add-before 'build 'placate-inkscape-warnings - (lambda _ - (setenv "HOME" (getcwd)) - #t)) - (add-after 'build 'generate-black-cursors - (lambda* (#:key make-flags parallel-build #:allow-other-keys) - (let ((build (assoc-ref %standard-phases 'build)) - (make-flags/extended - `(,@make-flags - "THEME_NAME=Hackneyed-Dark" - "COMMON_SOURCE=theme/common-dark.svg" - "RSVG_SOURCE=theme/right-handed-dark.svg" - "LSVG_SOURCE=theme/left-handed-dark.svg"))) - (build #:make-flags make-flags/extended - #:parallel-build parallel-build)))) - (add-after 'install 'install-black-cursors - (lambda* (#:key make-flags #:allow-other-keys) - (apply invoke `("make" "install" ,@make-flags - "THEME_NAME=Hackneyed-Dark"))))))) - (native-inputs `(("imagemagick" ,imagemagick) - ("inkscape" ,inkscape) - ("xcursorgen" ,xcursorgen))) - (home-page "https://gitlab.com/Enthymeme/hackneyed-x11-cursors") - (synopsis "Classic cursor theme for X11") - (description "Hackneyed is a scalable cursor theme mildly resembling old + (package + (name "hackneyed-x11-cursors") + (version "0.8.2") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.com/Enthymeme/hackneyed-x11-cursors.git") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 + "1mjwbny4rid9dzz6xfb8l5rkwki41sfhdp970cf3w2pi9kyg1njs")))) + (build-system gnu-build-system) + (arguments + `(#:tests? #f ;no test suite + #:make-flags (list (string-append "PREFIX=" %output)) + #:phases + (modify-phases %standard-phases + (delete 'configure) + (add-before 'build 'set-inkscape-environment-variable + (lambda* (#:key inputs #:allow-other-keys) + (let ((inkscape (search-input-file inputs "/bin/inkscape"))) + (setenv "INKSCAPE" inkscape)))) + (add-before 'build 'placate-inkscape-warnings + (lambda _ + (setenv "HOME" (getcwd)))) + (add-after 'build 'generate-black-cursors + (lambda* (#:key make-flags parallel-build #:allow-other-keys) + (let ((build (assoc-ref %standard-phases 'build)) + (make-flags/extended + `(,@make-flags + "THEME_NAME=Hackneyed-Dark" + "COMMON_SOURCE=theme/common-dark.svg" + "RSVG_SOURCE=theme/right-handed-dark.svg" + "LSVG_SOURCE=theme/left-handed-dark.svg"))) + (build #:make-flags make-flags/extended + #:parallel-build parallel-build)))) + (add-after 'install 'install-black-cursors + (lambda* (#:key make-flags #:allow-other-keys) + (apply invoke `("make" "install" ,@make-flags + "THEME_NAME=Hackneyed-Dark"))))))) + (native-inputs `(("imagemagick" ,imagemagick) + ("inkscape" ,inkscape) + ("xcursorgen" ,xcursorgen))) + (home-page "https://gitlab.com/Enthymeme/hackneyed-x11-cursors") + (synopsis "Classic cursor theme for X11") + (description "Hackneyed is a scalable cursor theme mildly resembling old Windows 3.x cursors. The cursors are available in white and black colors. A left-handed version of the cursors is also included.") - (license license:x11)))) + (license license:x11))) (define-public xcursorgen (package @@ -2424,6 +2441,7 @@ DRI (Direct Rendering Infrastructure) drivers.") (base32 "1ql592pdhddhkipkrsxn929y9l2nn02a5fh2z3dx47kmzs5y006p")))) (build-system gnu-build-system) + (arguments `(#:configure-flags ',(malloc0-flags))) (inputs `(("libxrender" ,libxrender) ("libxrandr" ,libxrandr) @@ -2473,7 +2491,7 @@ XC-APPGROUP, XTEST.") (define-public libevdev (package (name "libevdev") - (version "1.9.1") + (version "1.11.0") (source (origin (method url-fetch) @@ -2481,7 +2499,7 @@ XC-APPGROUP, XTEST.") name "-" version ".tar.xz")) (sha256 (base32 - "1jvsphdrs1i54ccjcn6ll26jy42am7h28lbsvwa6pmxgqm43qq7m")))) + "1l628xblk36vh7aqia1fw6hh62af7va0pd70h28112l5i4afmx33")))) (build-system gnu-build-system) (arguments `(#:configure-flags '("--disable-static"))) @@ -2535,7 +2553,7 @@ including most mice, keyboards, tablets and touchscreens.") (define-public xf86-input-libinput (package (name "xf86-input-libinput") - (version "1.0.1") + (version "1.1.0") (source (origin (method url-fetch) (uri (string-append @@ -2543,7 +2561,7 @@ including most mice, keyboards, tablets and touchscreens.") name "-" version ".tar.bz2")) (sha256 (base32 - "0nr4r9x8c7y1l0ipivjch5zps093mxmg2nqmfn2934am26fc9ppx")))) + "05ldqr10f2rrnshyk3lc773rz0gp3ccdzwa8n7lsc94i850jl7g1")))) (build-system gnu-build-system) (arguments '(#:configure-flags @@ -2711,14 +2729,14 @@ as USB mice.") (define-public xf86-video-amdgpu (package (name "xf86-video-amdgpu") - (version "19.1.0") + (version "21.0.0") (source (origin (method url-fetch) (uri (string-append "mirror://xorg/individual/driver/" "xf86-video-amdgpu-" version ".tar.bz2")) (sha256 - (base32 "0pgy4ihnja0vm8504qw7qxh3pdpa3p9k6967nz15m6b1mvha83jg")))) + (base32 "125dq85n46yqmnmr2hknxwcqicwlvz2b2phf0m963fpg9l1j6y30")))) (build-system gnu-build-system) (inputs `(("xorg-server" ,xorg-server))) (native-inputs `(("pkg-config" ,pkg-config))) @@ -2776,27 +2794,36 @@ X server.") (license license:x11))) (define-public xf86-video-ati - (package - (name "xf86-video-ati") - (version "19.1.0") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://xorg/individual/driver/" - "xf86-video-ati-" version ".tar.bz2")) - (sha256 - (base32 "0j9w4axsqlycv4v14g53xyhkm9h7d27b2fcv9lrzb9gf54b5m7v5")))) - (build-system gnu-build-system) - (inputs `(("mesa" ,mesa) - ("xorgproto" ,xorgproto) - ("xorg-server" ,xorg-server))) - (native-inputs `(("pkg-config" ,pkg-config))) - (home-page "https://www.x.org/wiki/") - (synopsis "ATI Radeon video driver for X server") - (description - "xf86-video-ati is an ATI Radeon video driver for the Xorg + ;; The current release is too old to build with our inputs. + (let ((commit "5eba006e4129e8015b822f9e1d2f1e613e252cda") + (revision "1")) + (package + (name "xf86-video-ati") + (version (git-version "19.1.0" revision commit)) + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://gitlab.freedesktop.org/xorg/driver/xf86-video-ati.git") + (commit commit))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1n49wx0v13jh8vv17sxgrmmpi1mk3n2wph07jfmxmzqahpcn4lkn")))) + (build-system gnu-build-system) + (inputs `(("mesa" ,mesa) + ("xorgproto" ,xorgproto) + ("xorg-server" ,xorg-server))) + (native-inputs + `(("pkg-config" ,pkg-config) + ("autoconf" ,autoconf) + ("automake" ,automake) + ("libtool" ,libtool))) + (home-page "https://www.x.org/wiki/") + (synopsis "ATI Radeon video driver for X server") + (description + "xf86-video-ati is an ATI Radeon video driver for the Xorg X server.") - (license license:x11))) + (license license:x11)))) (define-public xf86-video-cirrus @@ -2904,7 +2931,13 @@ framebuffer device.") `(#:configure-flags (list (string-append "--with-xorg-conf-dir=" (assoc-ref %outputs "out") - "/share/X11/xorg.conf.d")))) + "/share/X11/xorg.conf.d")) + #:phases + (modify-phases %standard-phases + (replace 'bootstrap + (lambda _ + ;; autogen.sh calls configure unconditionally. + (invoke "autoreconf" "-vfi")))))) (home-page "https://www.x.org/wiki/") (synopsis "Adreno video driver for X server") (description @@ -3076,7 +3109,8 @@ It supports a variety of Intel graphics chipsets.") (sha256 (base32 "171wg8r6py1l138s58rlapin3rlpwsg9spmvhc7l68mm3g3hf1vs")) - (patches (search-patches "xf86-video-mach64-glibc-2.20.patch")))) + (patches (search-patches "xf86-video-mach64-glibc-2.20.patch" + "xf86-video-mach64-bool-to-boolean.patch")))) (build-system gnu-build-system) (inputs `(("mesa" ,mesa) ("xorgproto" ,xorgproto) @@ -3208,7 +3242,8 @@ supported, and the RENDER extension is not accelerated by this driver.") (uri (string-append "mirror://xorg/individual/driver/xf86-video-nouveau-" version ".tar.bz2")) (sha256 - (base32 "0sqm1jwjg15sp8v7039y2hsbhph8gpjd2bdzcqqiij2mgbi254s9")))) + (base32 "0sqm1jwjg15sp8v7039y2hsbhph8gpjd2bdzcqqiij2mgbi254s9")) + (patches (search-patches "xf86-video-nouveau-fixup-ABI.patch")))) (build-system gnu-build-system) (inputs `(("xorg-server" ,xorg-server))) (native-inputs `(("pkg-config" ,pkg-config))) @@ -3586,8 +3621,7 @@ X server.") (format #t "decompressing x86emu source code~%") (with-directory-excursion "libs" (let ((srcs (assoc-ref inputs "xorg-server-sources")) - (tar-binary (string-append (assoc-ref inputs "tar") - "/bin/tar"))) + (tar-binary (search-input-file inputs "/bin/tar"))) (invoke tar-binary "xvf" srcs "--strip-components=3" "--wildcards" "*/hw/xfree86/x86emu/") ;; extract license: @@ -3910,10 +3944,10 @@ alternative implementations like XRandR or TwinView.") (license license:x11))) -(define xkbcomp-intermediate ;used as input for xkeyboard-config +(define-public xkbcomp-intermediate ;used as input for xkeyboard-config (package (name "xkbcomp-intermediate") - (version "1.4.4") + (version "1.4.5") (source (origin (method url-fetch) @@ -3921,7 +3955,7 @@ alternative implementations like XRandR or TwinView.") version ".tar.bz2")) (sha256 (base32 - "0zpjkbap9160pdd6jpgb5f0yg5281w0rkkx1l0i7g887lq1ydk2r")))) + "0pmhshqinwqh5rip670l3szjpywky67hv232ql6gvdj489n0hlb8")))) (build-system gnu-build-system) (inputs `(("xorgproto" ,xorgproto) @@ -3943,11 +3977,16 @@ explicitly specify most aspects of keyboard behaviour on per-key basis and to more closely track the logical and physical state of the keyboard. It also includes a number of keyboard controls designed to make keyboards more accessible to people with physical impairments.") - (license license:x11))) + (license license:x11) + + ;; The only reason this package is public is to make sure it's built and + ;; published by the continuous integration tool. + (properties '((hidden? . #t))))) (define-public xkbcomp ; using xkeyboard-config as input (package (inherit xkbcomp-intermediate) (name "xkbcomp") + (properties '()) (inputs `(,@(package-inputs xkbcomp-intermediate) ("xkeyboard-config" ,xkeyboard-config))) @@ -4050,17 +4089,17 @@ extension to the X11 protocol. It includes: (define-public xkeyboard-config (package (name "xkeyboard-config") - (version "2.31") + (version "2.34") (source (origin (method url-fetch) (uri (string-append - "mirror://xorg/individual/data/xkeyboard-config/xkeyboard-config-" + "ftp://ftp.freedesktop.org/pub/xorg//individual/data/xkeyboard-config/xkeyboard-config-" version ".tar.bz2")) (sha256 (base32 - "18xddaxh83zm698syh50w983jg6b7b8zgv0dfaf7ha485hgihi6s")))) + "1kmq2ykwmh10sd6155gml4jhdxmvsll6xdg7zw86czpfhrvd48dk")))) (build-system gnu-build-system) (inputs `(("libx11" ,libx11) @@ -4758,13 +4797,14 @@ cannot be adequately worked around on the client side of the wire.") (base32 "0azqxllcsfxc3ilhz6kwc6x7m8wc477p59ir9p0yrsldx766zbar")))) (build-system gnu-build-system) + (outputs '("out" "doc")) ;man pages represent 40% of the total (arguments `(#:configure-flags (list "--disable-static" - ;; Disable zero malloc check that fails when cross-compiling. - ,@(if (%current-target-system) - '("--disable-malloc0returnsnull") - '())))) + (string-append "--mandir=" + (assoc-ref %outputs "doc") + "/share/man") + ,@(malloc0-flags)))) (propagated-inputs `(("xorgproto" ,xorgproto))) (inputs @@ -4795,7 +4835,7 @@ cannot be adequately worked around on the client side of the wire.") "086p0axqj57nvkaqa6r00dnr9kyrn1m8blgf0zjy25zpxkbxn200")))) (build-system gnu-build-system) (arguments - '(#:configure-flags '("--disable-static"))) + `(#:configure-flags '("--disable-static" ,@(malloc0-flags)))) (propagated-inputs `(("xorgproto" ,xorgproto))) (inputs @@ -4854,11 +4894,7 @@ cannot be adequately worked around on the client side of the wire.") (build-system gnu-build-system) (arguments `(#:configure-flags - (list "--disable-static" - ;; Disable zero malloc check that fails when cross-compiling. - ,@(if (%current-target-system) - '("--disable-malloc0returnsnull") - '())))) + (list "--disable-static" ,@(malloc0-flags)))) (propagated-inputs `(("xorgproto" ,xorgproto))) (inputs @@ -4925,7 +4961,7 @@ protocol and arbitrary X extension protocol.") "125hn06bd3d8y97hm2pbf5j55gg4r2hpd3ifad651i4sr7m16v6j")))) (build-system gnu-build-system) (arguments - '(#:configure-flags '("--disable-static"))) + `(#:configure-flags '(,@(malloc0-flags) "--disable-static"))) (propagated-inputs `(("xorgproto" ,xorgproto))) (inputs @@ -4974,9 +5010,8 @@ protocol and arbitrary X extension protocol.") (wrap-program (string-append (assoc-ref outputs "out") "/bin/mkfontdir") `("PATH" ":" prefix - (,(string-append (assoc-ref inputs "mkfontscale") - "/bin")))) - #t))))) + (,(dirname + (search-input-file inputs "/bin/mkfontscale")))))))))) (inputs `(("mkfontscale" ,mkfontscale))) (native-inputs @@ -5084,7 +5119,7 @@ an X Window System display.") (define-public libxfixes (package (name "libxfixes") - (version "5.0.3") + (version "6.0.0") (source (origin (method url-fetch) @@ -5094,7 +5129,7 @@ an X Window System display.") ".tar.bz2")) (sha256 (base32 - "1miana3y4hwdqdparsccmygqr3ic3hs5jrqfzp70hvi2zwxd676y")))) + "0k2v4i4r24y3kdr5ici1qqhp69djnja919xfqp54c2rylm6s5hd7")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--disable-static"))) @@ -5173,8 +5208,13 @@ new API's in libXft, or the legacy API's in libX11.") (base32 "0q8hz3slga3w3ch8wp0k7ay9ilhz315qnab0w1y2x9w3cf7hv8rn")))) (build-system gnu-build-system) + (outputs '("out" "doc")) ;man pages represent 28% of the total (arguments - '(#:configure-flags '("--disable-static"))) + `(#:configure-flags (list "--disable-static" + (string-append "--mandir=" + (assoc-ref %outputs "doc") + "/share/man") + ,@(malloc0-flags)))) (propagated-inputs `(("xorgproto" ,xorgproto) ("libx11" ,libx11) @@ -5203,7 +5243,7 @@ new API's in libXft, or the legacy API's in libX11.") "08z0mqywrm7ij8bxlfrx0d2wy6kladdmkva1nw5k6qix82z0xsla")))) (build-system gnu-build-system) (arguments - '(#:configure-flags '("--disable-static"))) + `(#:configure-flags '("--disable-static" ,@(malloc0-flags)))) (propagated-inputs ;; In accordance with xrandr.pc. `(("libx11" ,libx11) @@ -5234,7 +5274,7 @@ new API's in libXft, or the legacy API's in libX11.") "1kbdjsvkm5l7axv7g477qj18sab2wnqhliy6197syzizgfbsfgbb")))) (build-system gnu-build-system) (arguments - '(#:configure-flags '("--disable-static"))) + `(#:configure-flags '(,@(malloc0-flags) "--disable-static"))) (propagated-inputs `(("libxv" ,libxv))) (inputs @@ -5264,7 +5304,7 @@ new API's in libXft, or the legacy API's in libX11.") "0mydhlyn72i7brjwypsqrpkls3nm6vxw0li8b2nw0caz7kwjgvmg")))) (build-system gnu-build-system) (arguments - '(#:configure-flags '("--disable-static"))) + `(#:configure-flags '("--disable-static" ,@(malloc0-flags)))) (propagated-inputs `(("libxext" ,libxext) ("xorgproto" ,xorgproto))) @@ -5295,6 +5335,7 @@ protocol.") (base32 "0d2chjgyn5lr9sfhacfvqgnj9l9faz11vn322a06jd6lk3dxcpm5")))) (build-system gnu-build-system) + (outputs '("out" "doc")) ;5.5 MiB of man pages (propagated-inputs `(("libpthread-stubs" ,libpthread-stubs) ("libxau" ,libxau) @@ -5306,8 +5347,11 @@ protocol.") `(("pkg-config" ,pkg-config) ("python" ,python-minimal-wrapper))) (arguments - `(#:configure-flags '("--enable-xkb" - "--disable-static"))) + `(#:configure-flags (list "--enable-xkb" + "--disable-static" + (string-append "--mandir=" + (assoc-ref %outputs "doc") + "/share/man")))) (home-page "https://xcb.freedesktop.org/") (synopsis "The X C Binding (XCB) library") (description @@ -5326,78 +5370,101 @@ over Xlib, including: - easy extension implementation: interfaces auto-generated from XML-XCB.") (license license:x11))) +(define-public libxcvt + (package + (name "libxcvt") + (version "0.1.1") + (source (origin + (method url-fetch) + (uri (string-append "https://www.x.org/releases/individual" + "/lib/libxcvt-" version ".tar.xz")) + (sha256 + (base32 + "0acc7vrj5kfb19zvyl7f29rnsvx383dvwc19k70r8prm1lccxsr7")))) + (build-system meson-build-system) + (home-page "https://gitlab.freedesktop.org/xorg/lib/libxcvt") + (synopsis "VESA Coordinated Video Timings (CVT) library") + (description "@code{libxcvt} is a library providing a standalone version +of the X server implementation of the VESA Coordinated Video Timings (CVT) +standard timing modelines generator. @code{libxcvt} also provides a +standalone version of the command line tool @command{cvt} copied from the Xorg +implementation and is meant to be a direct replacement to the version provided +by the Xorg server.") + (license license:x11))) (define-public xorg-server (package (name "xorg-server") - (version "1.20.11") + (version "21.1.1") (source - (origin - (method url-fetch) - (uri (string-append "mirror://xorg/individual/xserver/" - "xorg-server-" version ".tar.bz2")) - (sha256 - (base32 - "0jacqgin8kcyy8fyv0lhgb4if8g9hp60rm3ih3s1mgps7xp7jk4i")) - (patches - (list - ;; See: - ;; https://lists.fedoraproject.org/archives/list/devel@lists. - ;; fedoraproject.org/message/JU655YB7AM4OOEQ4MOMCRHJTYJ76VFOK/ - (origin - (method url-fetch) - (uri (string-append - "http://pkgs.fedoraproject.org/cgit/rpms/xorg-x11-server.git" - "/plain/06_use-intel-only-on-pre-gen4.diff")) - (sha256 - (base32 - "0mm70y058r8s9y9jiv7q2myv0ycnaw3iqzm7d274410s0ik38w7q")) - (file-name "xorg-server-use-intel-only-on-pre-gen4.diff")))))) + (origin + (method url-fetch) + + (uri (string-append "https://xorg.freedesktop.org/archive/individual" + "/xserver/xorg-server-" version ".tar.xz")) + (sha256 + (base32 + "0md7dqsc5qb30gym06c4zc2cjsdc5ps8nywk1bkcpix05kppybkq")) + (patches + (list + ;; See: + ;; https://lists.fedoraproject.org/archives/list/devel@lists. + ;; fedoraproject.org/message/JU655YB7AM4OOEQ4MOMCRHJTYJ76VFOK/ + (origin + (method url-fetch) + (uri (string-append + "http://pkgs.fedoraproject.org/cgit/rpms/xorg-x11-server.git" + "/plain/06_use-intel-only-on-pre-gen4.diff")) + (sha256 + (base32 + "0mm70y058r8s9y9jiv7q2myv0ycnaw3iqzm7d274410s0ik38w7q")) + (file-name "xorg-server-use-intel-only-on-pre-gen4.diff")))))) (build-system gnu-build-system) (propagated-inputs - `(("libpciaccess" ,libpciaccess) - ("mesa" ,mesa) - ("pixman" ,pixman) - ("xorgproto" ,xorgproto))) + ;; The following libraries are required by xorg-server.pc. + `(("libpciaccess" ,libpciaccess) + ("libxcvt" ,libxcvt) + ("mesa" ,mesa) + ("pixman" ,pixman) + ("xorgproto" ,xorgproto))) (inputs - `(("udev" ,eudev) - ("dbus" ,dbus) - ("libdmx" ,libdmx) - ("libepoxy" ,libepoxy) - ("libgcrypt" ,libgcrypt) - ("libxau" ,libxau) - ("libxaw" ,libxaw) - ("libxdmcp" ,libxdmcp) - ("libxfixes" ,libxfixes) - ("libxfont2" ,libxfont2) - ("libxkbfile" ,libxkbfile) - ("libxrender" ,libxrender) - ("libxres" ,libxres) - ("libxshmfence" ,libxshmfence) - ("libxt" ,libxt) - ("libxv" ,libxv) - ("xkbcomp" ,xkbcomp) - ("xkeyboard-config" ,xkeyboard-config) - ("xtrans" ,xtrans) - ("zlib" ,zlib) - ;; Inputs for Xephyr - ("xcb-util" ,xcb-util) - ("xcb-util-image" ,xcb-util-image) - ("xcb-util-keysyms" ,xcb-util-keysyms) - ("xcb-util-renderutil" ,xcb-util-renderutil) - ("xcb-util-wm" ,xcb-util-wm))) + `(("udev" ,eudev) + ("dbus" ,dbus) + ("libdmx" ,libdmx) + ("libepoxy" ,libepoxy) + ("libgcrypt" ,libgcrypt) + ("libxau" ,libxau) + ("libxaw" ,libxaw) + ("libxdmcp" ,libxdmcp) + ("libxfixes" ,libxfixes) + ("libxfont2" ,libxfont2) + ("libxkbfile" ,libxkbfile) + ("libxrender" ,libxrender) + ("libxres" ,libxres) + ("libxshmfence" ,libxshmfence) + ("libxt" ,libxt) + ("libxv" ,libxv) + ("xkbcomp" ,xkbcomp) + ("xkeyboard-config" ,xkeyboard-config) + ("xtrans" ,xtrans) + ("zlib" ,zlib) + ;; Inputs for Xephyr + ("xcb-util" ,xcb-util) + ("xcb-util-image" ,xcb-util-image) + ("xcb-util-keysyms" ,xcb-util-keysyms) + ("xcb-util-renderutil" ,xcb-util-renderutil) + ("xcb-util-wm" ,xcb-util-wm))) (native-inputs `(("python" ,python-wrapper) ("pkg-config" ,pkg-config))) (arguments - `(#:parallel-tests? #f - #:configure-flags + `(#:configure-flags (list (string-append "--with-xkb-path=" (assoc-ref %build-inputs "xkeyboard-config") "/share/X11/xkb") (string-append "--with-xkb-output=" "/tmp") ; FIXME: This is a bit doubtful; where should - ; the compiled keyboard maps go? + ; the compiled keyboard maps go? (string-append "--with-xkb-bin-directory=" (assoc-ref %build-inputs "xkbcomp") "/bin") @@ -5406,19 +5473,19 @@ over Xlib, including: ;; It's not used anyway, so set it to empty. "--with-default-font-path=" + ;; Enable the X security extensions (ssh -X). + "--enable-xcsecurity" + ;; 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 - + "--with-os-vendor=Guix" ; not strictly needed, but looks nice ;; For the log file, etc. "--localstatedir=/var" - ;; For sddm + ;; For sddm. "--enable-kdrive" "--enable-xephyr") - #:phases (modify-phases %standard-phases (add-before 'configure 'pre-configure @@ -5437,9 +5504,7 @@ over Xlib, including: (("^BUILD_DATE=.*$") "BUILD_DATE=19700101\n") (("^BUILD_TIME=.*$") - "BUILD_TIME=000001\n")) - - #t))))) + "BUILD_TIME=000001\n"))))))) (home-page "https://www.x.org/wiki/") (synopsis "Xorg implementation of the X Window System") (description @@ -5460,47 +5525,150 @@ draggable titlebars and borders.") (define-public xorg-server-for-tests (hidden-package (package - (inherit xorg-server) - (version "1.20.10") - (source - (origin - (method url-fetch) - (uri (string-append "mirror://xorg/individual/xserver/" - "xorg-server-" version ".tar.bz2")) - (sha256 - (base32 - "16bwrf0ag41l7jbrllbix8z6avc5yimga7ihvq4ch3a5hb020x4p")) - (patches - (list - ;; See: - ;; https://lists.fedoraproject.org/archives/list/devel@lists. - ;; fedoraproject.org/message/JU655YB7AM4OOEQ4MOMCRHJTYJ76VFOK/ - (origin - (method url-fetch) - (uri (string-append - "http://pkgs.fedoraproject.org/cgit/rpms/xorg-x11-server.git" - "/plain/06_use-intel-only-on-pre-gen4.diff")) - (sha256 - (base32 - "0mm70y058r8s9y9jiv7q2myv0ycnaw3iqzm7d274410s0ik38w7q")) - (file-name "xorg-server-use-intel-only-on-pre-gen4.diff"))))))))) + (inherit xorg-server)))) + +(define-public eglexternalplatform + (package + (name "eglexternalplatform") + (version "1.1") + (source + (origin + (method git-fetch) + (uri + (git-reference + (url "https://github.com/NVIDIA/eglexternalplatform") + (commit version))) + (file-name + (git-file-name name version)) + (sha256 + (base32 "0lr5s2xa1zn220ghmbsiwgmx77l156wk54c7hybia0xpr9yr2nhb")))) + (build-system copy-build-system) + (arguments + `(#:phases + (modify-phases %standard-phases + (add-after 'unpack 'patch-pkgconfig + (lambda* (#:key outputs #:allow-other-keys) + (substitute* "eglexternalplatform.pc" + (("/usr") + (assoc-ref outputs "out"))))) + (add-after 'install 'revise + (lambda* (#:key outputs #:allow-other-keys) + (let* ((out (assoc-ref outputs "out"))) + (mkdir-p (string-append out "/include/EGL")) + (rename-file + (string-append out "/interface") + (string-append out "/include/EGL")) + (mkdir-p (string-append out "/share/pkgconfig")) + (rename-file + (string-append out "/eglexternalplatform.pc") + (string-append out "/share/pkgconfig/eglexternalplatform.pc")) + (for-each delete-file-recursively + (list + (string-append out "/samples") + (string-append out "/COPYING") + (string-append out "/README.md"))))))))) + (synopsis "EGL External Platform interface") + (description "EGLExternalPlatform is an specification of the EGL External +Platform interface for writing EGL platforms and their interactions with modern +window systems on top of existing low-level EGL platform implementations. This +keeps window system implementation specifics out of EGL drivers by using +application-facing EGL functions.") + (home-page "https://github.com/NVIDIA/eglexternalplatform") + (license license:expat))) + +(define-public egl-wayland + (package + (name "egl-wayland") + (version "1.1.9") + (source + (origin + (method git-fetch) + (uri (git-reference + (url "https://github.com/NVIDIA/egl-wayland") + (commit version))) + (file-name (git-file-name name version)) + (sha256 + (base32 "1iz86cpc4v7izckrcslllnw0vvvgsxg1sr65yb8s9d0f8xa8djdd")))) + (build-system meson-build-system) + (native-inputs + `(("libglvnd" ,libglvnd) ;needed for headers + ("mesa-headers" ,mesa-headers) + ("pkg-config" ,pkg-config))) + (inputs + `(("mesa" ,mesa) + ("wayland" ,wayland) + ("wayland-protocols" ,wayland-protocols))) + (propagated-inputs + `(("eglexternalplatform" ,eglexternalplatform))) + (synopsis "EGLStream-based Wayland external platform") + (description "EGL-Wayland is an implementation of a EGL External Platform +library to add client-side Wayland support to EGL on top of EGLDevice and +EGLStream families of extensions.") + (home-page "https://github.com/NVIDIA/egl-wayland") + (license license:expat))) (define-public xorg-server-xwayland - (package/inherit xorg-server + (package (name "xorg-server-xwayland") - (inputs - `(("wayland" ,wayland) - ("wayland-protocols" ,wayland-protocols) - ,@(package-inputs xorg-server))) + (version "21.1.3") + (source + (origin + (method url-fetch) + (uri (string-append "https://xorg.freedesktop.org/archive/individual" + "/xserver/xwayland-" version ".tar.xz")) + (sha256 + (base32 + "18pqvg76grbsyxa3mm3j06i1l8cwb28nbn2gcnqpsk7x75zpbhpb")))) + (inputs (list font-dejavu + dbus + egl-wayland + eudev + libfontenc + libdrm + libepoxy + libgcrypt + libtirpc + libxfont2 + libxkbfile + pixman + wayland + wayland-protocols + xkbcomp + xkeyboard-config + xorgproto + xtrans)) + (native-inputs (list pkg-config)) + (build-system meson-build-system) (arguments - (substitute-keyword-arguments (package-arguments xorg-server) - ((#:configure-flags flags) - `(cons* "--enable-xwayland" "--disable-xorg" - "--disable-docs" "--disable-devel-docs" - "--disable-xvfb" "--disable-xnest" - "--disable-xquartz" "--disable-xwin" - ,flags)))) - (synopsis "Xorg server with wayland backend"))) + `(#:configure-flags + (list "-Dxwayland_eglstream=true" + (string-append "-Dxkb_dir=" + (assoc-ref %build-inputs "xkeyboard-config") + "/share/X11/xkb") + (string-append "-Dxkb_bin_dir=" + (assoc-ref %build-inputs "xkbcomp") "/bin") + ;; The build system insist on providing a default font path; give + ;; that of dejavu, the same used for our fontconfig package. + (string-append "-Ddefault_font_path=" + (assoc-ref %build-inputs "font-dejavu") + "/share/fonts") + "-Dxkb_output_dir=/tmp" + (format #f "-Dbuilder_string=\"Build ID: ~a ~a\"" ,name ,version) + "-Dxcsecurity=true" + "-Ddri3=true" + "-Dglamor=true" + ;; For the log file, etc. + "--localstatedir=/var") + #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-/bin/sh + (lambda _ + (substitute* (find-files "." "\\.c$") + (("/bin/sh") (which "sh")))))))) + (synopsis "Xorg server with Wayland backend") + (description "Xwayland is an X server for running X clients under +Wayland.") + (home-page "https://www.x.org/wiki/") + (license license:x11))) ;; packages of height 4 in the propagated-inputs tree @@ -5508,18 +5676,15 @@ draggable titlebars and borders.") (define-public libx11 (package (name "libx11") - (version "1.6.10") + (version "1.7.2") (source (origin (method url-fetch) - (uri (string-append - "mirror://xorg/individual/lib/libX11-" - version - ".tar.bz2")) + (uri (string-append "mirror://xorg/individual/lib/libX11-" + version ".tar.bz2")) (sha256 (base32 - "09k2pqmqbn2m1bpgl7jfxyqxaaxsnzbnp2bp8ycmqldqi5ln4j5g")))) - (replacement libx11/fixed) + "0v7aj8q3rlchdyfwdna7n7vgpyzyir391dlv5rwy9fxagbikbyhw")))) (build-system gnu-build-system) (outputs '("out" "doc")) ;8 MiB of man pages + XML @@ -5529,11 +5694,7 @@ draggable titlebars and borders.") (assoc-ref %outputs "doc") "/share/man") "--disable-static" - - ;; Disable zero malloc check that fails when cross-compiling. - ,@(if (%current-target-system) - '("--disable-malloc0returnsnull") - '())))) + ,@(malloc0-flags)))) (propagated-inputs `(("xorgproto" ,xorgproto) ("libxcb" ,libxcb))) @@ -5547,18 +5708,6 @@ draggable titlebars and borders.") (description "Xorg Core X11 protocol client library.") (license license:x11))) -(define-public libx11/fixed - (package - (inherit libx11) - (version "1.7.1A") - (source - (origin - (method url-fetch) - (uri "mirror://xorg/individual/lib/libX11-1.7.1.tar.bz2") - (sha256 - (base32 - "0isxad59hvdwggbxqqjjjg3zmih9xiq4d9mdsnqbyb2nmbg46kp6")))))) - ;; packages of height 5 in the propagated-inputs tree (define-public libxcursor @@ -5566,34 +5715,31 @@ draggable titlebars and borders.") (name "libxcursor") (version "1.2.0") (source - (origin - (method url-fetch) - (uri (string-append - "mirror://xorg/individual/lib/libXcursor-" - version - ".tar.bz2")) - (sha256 - (base32 - "10l7c9fm0jmpkm9ab9dz8r6m1pr87vvgqjnbx1psz50h4pwfklrs")))) + (origin + (method url-fetch) + (uri (string-append + "mirror://xorg/individual/lib/libXcursor-" + version + ".tar.bz2")) + (sha256 + (base32 + "10l7c9fm0jmpkm9ab9dz8r6m1pr87vvgqjnbx1psz50h4pwfklrs")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--disable-static"))) (propagated-inputs - `(("libx11" ,libx11) - ("libxrender" ,libxrender) - ("libxfixes" ,libxfixes) - ("xorgproto" ,xorgproto))) + `(("libx11" ,libx11) + ("libxrender" ,libxrender) + ("libxfixes" ,libxfixes) + ("xorgproto" ,xorgproto))) (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"))))) + `(("pkg-config" ,pkg-config))) + ;; FIXME: The search path below won't be very effective until the bugs + ;; <http://bugs.gnu.org/20255> and <http://bugs.gnu.org/22138> are solved. + (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.") @@ -5602,7 +5748,7 @@ draggable titlebars and borders.") (define-public libxt (package (name "libxt") - (version "1.2.0") + (version "1.2.1") (source (origin (method url-fetch) @@ -5612,7 +5758,7 @@ draggable titlebars and borders.") ".tar.bz2")) (sha256 (base32 - "0cbqlyssr8aia88c8i7z59z9d0kp3p2hp6683xhz9ndyv8qza7dk")) + "0q1x7842r8rcn2m0q4q9f69h4qa097fyizs8brzx5ns62s7w1737")) (patches (search-patches "libxt-guix-search-paths.patch")))) (build-system gnu-build-system) (outputs '("out" @@ -5623,10 +5769,7 @@ draggable titlebars and borders.") (assoc-ref %outputs "doc") "/share/man") "--disable-static" - ;; Disable zero malloc check that fails when cross-compiling. - ,@(if (%current-target-system) - '("--disable-malloc0returnsnull") - '())))) + ,@(malloc0-flags)))) (propagated-inputs `(("libx11" ,libx11) ("libice" ,libice) @@ -5644,7 +5787,7 @@ draggable titlebars and borders.") (define-public libxaw (package (name "libxaw") - (version "1.0.13") + (version "1.0.14") (source (origin (method url-fetch) @@ -5654,7 +5797,7 @@ draggable titlebars and borders.") ".tar.bz2")) (sha256 (base32 - "1kdhxplwrn43d9jp3v54llp05kwx210lrsdvqb6944jp29rhdy4f")))) + "13kg59r3086383g1dyhnwxanhp2frssh9062mrgn34nzlf7gkbkn")))) (build-system gnu-build-system) (arguments '(#:configure-flags '("--disable-static"))) @@ -6422,7 +6565,8 @@ basic eye-candy effects.") ;; The trailing -- is intentional, so we only replace it inside ;; a command line. (("dbus-launch --") - (string-append (assoc-ref inputs "dbus") "/bin/dbus-launch --"))) + (string-append (search-input-file inputs "/bin/dbus-launch") + " --"))) ;; /run/user does not exist on guix system (substitute* "./xpra/scripts/config.py" (("socket-dir.*: \"\",") @@ -6535,6 +6679,10 @@ and embedded platforms.") `(("gtk" ,gtk+) ("gtk" ,gtk+-2) ,@(package-inputs uim))) + (arguments + (substitute-keyword-arguments (package-arguments uim) + ((#:configure-flags configure-flags) + (append configure-flags (list "CFLAGS=-O2 -g -fcommon"))))) (synopsis "Multilingual input method framework (GTK+ support)"))) (define-public uim-qt @@ -6548,7 +6696,8 @@ and embedded platforms.") (substitute-keyword-arguments (package-arguments uim) ((#:configure-flags configure-flags) (append configure-flags (list "--with-qt5-immodule" - "--with-qt5"))))) + "--with-qt5" + "CPPFLAGS=-fcommon"))))) (synopsis "Multilingual input method framework (Qt support)"))) (define-public keynav |