[-- Attachment #1: Type: text/plain, Size: 696 bytes --] The xorg-server-xwayland-21.1.0 package is broken on the core-updates-frozen branch. The build succeeds, but the file "bin/Xwayland" is missing in the result. Then the mutter package depending on xorg-server-xwayland fails to build because it can't find the Xwayland program. According to the configure phase, xorg-server 21.1.0 doesn't understand the "--enable-xwayland" option: --8<---------------cut here---------------start------------->8--- config.status: executing sdksyms commands configure: WARNING: unrecognized options: --enable-xwayland, --with-os-name, --with-os-vendor phase `configure' succeeded after 6.6 seconds --8<---------------cut here---------------end--------------->8--- [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 247 bytes --]
[-- Attachment #1.1: Type: text/plain, Size: 822 bytes --] According to [1], since 21.1 series of Xorg, XWayland is packaged separately. The attached patch replaces xorg-xserver-xwayland by the xwayland package. However it looks like it's not working so far, the tests fail with: --8<---------------cut here---------------start------------->8--- XKB: Failed to compile keymap Keyboard initialization failed. This could be a missing or incorrect setup of xkeyboard-config. (EE) Fatal server error: (EE) Failed to activate virtual core keyboard: 2(EE) --8<---------------cut here---------------end--------------->8--- I tried adding the same keyboard-related parameters as the ones in xorg-server (xbk_dir and xkb_bin_dir), but it doesn't seem to make a difference. Does someone have an idea? [1] https://lists.x.org/archives/xorg/2021-October/060799.html [-- Attachment #1.2: 0001-WIP-gnu-Replace-xorg-server-xwayland-by-xwayland.patch --] [-- Type: text/x-patch, Size: 8230 bytes --] From 457921b36c49c68e58ac067ede50637ce71a200c Mon Sep 17 00:00:00 2001 From: Guillaume Le Vaillant <glv@posteo.net> Date: Wed, 17 Nov 2021 15:20:34 +0100 Subject: [PATCH] WIP: gnu: Replace xorg-server-xwayland by xwayland. * gnu/packages/xorg.scm (xorg-server-xwayland): Remove varable. (xwayland): New variable. * gnu/packages/enlightenment.scm (enlightenment)[inputs]: Replace xorg-server-xwayland by xwayland. * gnu/packages/freedesktop.scm (weston)[inputs, arguments]: Idem. * gnu/packages/gnome.scm (mutter)[inputs, arguments]: Idem. * gnu/packages/wm.scm (wlroots)[inputs, arguments]: Idem. --- gnu/packages/enlightenment.scm | 2 +- gnu/packages/freedesktop.scm | 4 +-- gnu/packages/gnome.scm | 4 +-- gnu/packages/wm.scm | 5 ++- gnu/packages/xorg.scm | 63 +++++++++++++++++++++++++++------- 5 files changed, 57 insertions(+), 21 deletions(-) diff --git a/gnu/packages/enlightenment.scm b/gnu/packages/enlightenment.scm index 8c7da4a5b4..9b3fcfabaa 100644 --- a/gnu/packages/enlightenment.scm +++ b/gnu/packages/enlightenment.scm @@ -369,7 +369,7 @@ (define-public enlightenment ("setxkbmap" ,setxkbmap) ("xcb-util-keysyms" ,xcb-util-keysyms) ("xkeyboard-config" ,xkeyboard-config) - ("xorg-server-xwayland" ,xorg-server-xwayland))) + ("xwayland" ,xwayland))) (propagated-inputs `(("efl" ,efl) ("libxkbcommon" ,libxkbcommon) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 003da5c7a5..7511b2014c 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -1147,7 +1147,7 @@ (define-public weston ("pango" ,pango) ("pipewire" ,pipewire) ("wayland-protocols" ,wayland-protocols) - ("xorg-server-xwayland" ,xorg-server-xwayland))) + ("xwayland" ,xwayland))) (propagated-inputs `(("libxkbcommon" ,libxkbcommon) ("pixman" ,pixman) @@ -1164,7 +1164,7 @@ (define-public weston "-Dbackend-default=auto" "-Dsystemd=false" (string-append "-Dxwayland-path=" - (assoc-ref %build-inputs "xorg-server-xwayland") + (assoc-ref %build-inputs "xwayland") "/bin/Xwayland")) #:parallel-tests? #f ; Parallel tests cause failures. #:phases diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index 39ab43c90c..73af9eddd9 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -7507,7 +7507,7 @@ (define-public mutter ;; The following flags are needed for the bundled clutter (string-append "-Dxwayland_path=" - (assoc-ref %build-inputs "xorg-server-xwayland") + (assoc-ref %build-inputs "xwayland") "/bin/Xwayland") ;; the remaining flags are needed for the bundled cogl @@ -7572,7 +7572,7 @@ (define-public mutter ("startup-notification" ,startup-notification) ("upower-glib" ,upower) ("xkeyboard-config" ,xkeyboard-config) - ("xorg-server-xwayland" ,xorg-server-xwayland) + ("xwayland" ,xwayland) ("zenity" ,zenity))) (synopsis "Window and compositing manager") (home-page "https://www.gnome.org") diff --git a/gnu/packages/wm.scm b/gnu/packages/wm.scm index e19a08da47..b746d68485 100644 --- a/gnu/packages/wm.scm +++ b/gnu/packages/wm.scm @@ -1486,8 +1486,7 @@ (define-public wlroots (add-before 'configure 'hardcode-paths (lambda* (#:key inputs #:allow-other-keys) (substitute* "xwayland/server.c" - (("Xwayland") (string-append (assoc-ref inputs - "xorg-server-xwayland") + (("Xwayland") (string-append (assoc-ref inputs "xwayland") "/bin/Xwayland"))) #t))))) (propagated-inputs @@ -1503,7 +1502,7 @@ (define-public wlroots ("wayland-protocols" ,wayland-protocols) ("xcb-util-errors" ,xcb-util-errors) ("xcb-util-wm" ,xcb-util-wm) - ("xorg-server-xwayland" ,xorg-server-xwayland))) + ("xwayland" ,xwayland))) (native-inputs `(("pkg-config" ,pkg-config))) (home-page "https://github.com/swaywm/wlroots") diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 574562f065..e387474990 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -32,6 +32,7 @@ ;;; Copyright © 2021 Matthew James Kraai <kraai@ftbfs.org> ;;; Copyright © 2021 Maxime Devos <maximedevos@telenet.be> ;;; Copyright © 2021 qblade <qblade@protonmail.com> +;;; Copyright © 2021 Guillaume Le Vaillant <glv@posteo.net> ;;; ;;; This file is part of GNU Guix. ;;; @@ -75,6 +76,7 @@ (define-module (gnu packages xorg) #:use-module (gnu packages glib) #:use-module (gnu packages gnupg) #:use-module (gnu packages gperf) + #:use-module (gnu packages graphics) #:use-module (gnu packages gtk) #:use-module (gnu packages haskell-xyz) #:use-module (gnu packages inkscape) @@ -86,6 +88,7 @@ (define-module (gnu packages xorg) #: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) @@ -5518,22 +5521,56 @@ (define-public xorg-server-for-tests (package (inherit xorg-server)))) -(define-public xorg-server-xwayland - (package/inherit xorg-server - (name "xorg-server-xwayland") +(define-public xwayland + (package + (name "xwayland") + (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")))) + (build-system meson-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) (inputs - `(("wayland" ,wayland) + `(("egl-wayland" ,egl-wayland) + ("font-util" ,font-util) + ("libbsd" ,libbsd) + ("libdrm" ,libdrm) + ("libepoxy" ,libepoxy) + ("libgcrypt" ,libgcrypt) + ("libtirpc" ,libtirpc) + ("libx11" ,libx11) + ("libxfont2" ,libxfont2) + ("libxkbfile" ,libxkbfile) + ("libxshmfence" ,libxshmfence) + ("pixman" ,pixman) + ("wayland" ,wayland) ("wayland-protocols" ,wayland-protocols) - ,@(package-inputs xorg-server))) + ("xkbcomp" ,xkbcomp) + ("xkeyboard-config" ,xkeyboard-config) + ("xorgproto" ,xorgproto) + ("xtrans" ,xtrans))) (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"))) + `(#:tests? #f ; FIXME + #:configure-flags + (list (string-append "-Dxkb_dir=" + (assoc-ref %build-inputs "xkeyboard-config") + "/share/X11/xkb") + "-Dxkb_output_dir=/tmp" + (string-append "-Dxkb_bin_dir=" + (assoc-ref %build-inputs "xkbcomp") + "/bin") + "-Ddefault_font_path="))) + (home-page "https://wayland.freedesktop.org/xserver.html") + (synopsis "X server with Wayland backend") + (description + "XWayland is an X server running on Wayland to provide backwards +compatibility for legacy X11 applications.") + (license license:x11))) ;; packages of height 4 in the propagated-inputs tree -- 2.33.1 [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 247 bytes --]
Hi Guillaume,
Guillaume Le Vaillant <glv@posteo.net> writes:
> According to [1], since 21.1 series of Xorg, XWayland is packaged
> separately. The attached patch replaces xorg-xserver-xwayland by the
> xwayland package.
>
> However it looks like it's not working so far, the tests fail with:
>
> XKB: Failed to compile keymap
> Keyboard initialization failed. This could be a missing or incorrect setup of xkeyboard-config.
> (EE)
> Fatal server error:
> (EE) Failed to activate virtual core keyboard: 2(EE)
>
> I tried adding the same keyboard-related parameters as the ones in
> xorg-server (xbk_dir and xkb_bin_dir), but it doesn't seem to
> make a difference.
>
> Does someone have an idea?
>
>
> [1] https://lists.x.org/archives/xorg/2021-October/060799.html
Perhaps it was libinput? I'm carrying this patch set locally, I guess I
should have shared it earlier, I was attempting to fix the Mutter test
suite on top of it. Could you try it? It rebuilds lots of stuff though
I'm afraid.
Thanks,
(the patch series will come shortly via git-send)
* gnu/packages/freedesktop.scm (libinput): Update to 1.19.2. --- gnu/packages/freedesktop.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/freedesktop.scm b/gnu/packages/freedesktop.scm index 003da5c7a5..60f42259f3 100644 --- a/gnu/packages/freedesktop.scm +++ b/gnu/packages/freedesktop.scm @@ -494,14 +494,14 @@ (define-public libinput ;; Updating this will rebuild over 700 packages through libinput-minimal. (package (name "libinput") - (version "1.16.4") + (version "1.19.2") (source (origin (method url-fetch) (uri (string-append "https://freedesktop.org/software/libinput/" "libinput-" version ".tar.xz")) (sha256 (base32 - "0acywdjppj5i591l879bnqa9cs4vgdwnhilwk550x5x8sl33m4k5")))) + "10xqk05mkvsyxfxpn3vwkwb7j22d38wlbg1l1k37f6pfyc59zhqg")))) (build-system meson-build-system) (arguments `(#:configure-flags '("-Ddocumentation=false") -- 2.33.1
* gnu/packages/xorg.scm (libxkbfile): Fix indentation. [inputs]{libx11}: Move to... [propagated-inputs]: ... here. Add kbproto. --- gnu/packages/xorg.scm | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 1e8aba9704..829bb13cca 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -1399,22 +1399,24 @@ (define-public libxkbfile (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.") -- 2.33.1
* gnu/packages/gl.scm (mesa): Update to 21.2.5. [phases]{fix-tests}: Remove phase. --- gnu/packages/gl.scm | 9 ++------- 1 file changed, 2 insertions(+), 7 deletions(-) diff --git a/gnu/packages/gl.scm b/gnu/packages/gl.scm index 19b53acd41..f5a72d9048 100644 --- a/gnu/packages/gl.scm +++ b/gnu/packages/gl.scm @@ -238,7 +238,7 @@ (define libva-without-mesa (define-public mesa (package (name "mesa") - (version "21.2.4") + (version "21.2.5") (source (origin (method url-fetch) @@ -250,7 +250,7 @@ (define-public mesa version "/mesa-" version ".tar.xz"))) (sha256 (base32 - "0i2vz3ppcgqm076546imzl11jr3rlch1iv62lffk60mcs61dwvpy")) + "1fxcdf4qs4vmyjcns7jv62w4jy3gr383ar5b7mr77nb0nxgmhjcf")) (patches (search-patches "mesa-skip-tests.patch")))) (build-system meson-build-system) @@ -396,11 +396,6 @@ (define-public mesa (("disasm\\.c'") "delay.c',\n link_args: ld_args_build_id")))) (_ '((display "No tests to disable on this architecture.\n")))))) - (add-after 'unpack 'fix-tests - (lambda _ - ;; See <https://gitlab.freedesktop.org/mesa/mesa/-/issues/3181>. - (substitute* "src/compiler/glsl/glcpp/tests/084-unbalanced-parentheses.c.expected" - (("unexpected \\$end") "unexpected end of file")))) (add-before 'configure 'fix-dlopen-libnames (lambda* (#:key inputs outputs #:allow-other-keys) (let ((out (assoc-ref outputs "out"))) -- 2.33.1
* gnu/packages/xorg.scm (xorg-server): Update to 21.1.1. [parallel-tests?]: Tentatively remove argument; added in 2015 without a comment. --- gnu/packages/xorg.scm | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 829bb13cca..a3fa41e5dd 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -5390,7 +5390,7 @@ (define-public libxcvt (define-public xorg-server (package (name "xorg-server") - (version "21.1.0") + (version "21.1.1") (source (origin (method url-fetch) @@ -5399,7 +5399,7 @@ (define-public xorg-server "/xserver/xorg-server-" version ".tar.xz")) (sha256 (base32 - "0hpyq51sf7f5yqq87zgcdiidfmb8r93am1djvxhcnwj4izfidhsh")) + "0md7dqsc5qb30gym06c4zc2cjsdc5ps8nywk1bkcpix05kppybkq")) (patches (list ;; See: @@ -5453,8 +5453,7 @@ (define-public xorg-server `(("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") -- 2.33.1
Fixes <https://issues.guix.gnu.org/23317>. * gnu/packages/xorg.scm (xorg-server) [configure-flags]: Add --enable-xcsecurity. --- gnu/packages/xorg.scm | 3 +++ 1 file changed, 3 insertions(+) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index a3fa41e5dd..187ba56cb1 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -5468,6 +5468,9 @@ (define-public xorg-server ;; 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" -- 2.33.1
This is to avoid a module cycle between (gnu packages xorg) and (gnu packages graphics). * gnu/packages/graphics.scm (eglexternalplatform, egl-wayland): Move to... * gnu/packages/xorg.scm: ... this file. Remove trailing #t. --- gnu/packages/graphics.scm | 79 --------------------------------------- gnu/packages/xorg.scm | 78 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 78 insertions(+), 79 deletions(-) diff --git a/gnu/packages/graphics.scm b/gnu/packages/graphics.scm index 4b4385d3ff..4014af153a 100644 --- a/gnu/packages/graphics.scm +++ b/gnu/packages/graphics.scm @@ -119,85 +119,6 @@ (define-module (gnu packages graphics) #:use-module (guix packages) #:use-module (guix utils)) -(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"))) - #t)) - (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")))) - #t))))) - (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.7") - (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 "0xcx1132zwyp4qps074m72ngjlfmysi1jc2d0lp1ml1r9bllkam6")))) - (build-system meson-build-system) - (native-inputs - `(("pkg-config" ,pkg-config))) - (inputs - `(("mesa" ,mesa) - ("wayland" ,wayland))) - (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 mmm (package (name "mmm") diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 187ba56cb1..0ef0cb4f4a 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -53,6 +53,7 @@ (define-module (gnu packages xorg) #: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) @@ -5522,6 +5523,83 @@ (define-public xorg-server-for-tests (package (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.7") + (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 "0xcx1132zwyp4qps074m72ngjlfmysi1jc2d0lp1ml1r9bllkam6")))) + (build-system meson-build-system) + (native-inputs + `(("pkg-config" ,pkg-config))) + (inputs + `(("mesa" ,mesa) + ("wayland" ,wayland))) + (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 (name "xorg-server-xwayland") -- 2.33.1
* gnu/packages/xorg.scm (egl-wayland): Update to 1.1.9. [native-inputs]: Add libglvnd and mesa-headers. [inputs]: Add wayland-protocols. --- gnu/packages/xorg.scm | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index 0ef0cb4f4a..cb391f8549 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -5575,7 +5575,7 @@ (define-public eglexternalplatform (define-public egl-wayland (package (name "egl-wayland") - (version "1.1.7") + (version "1.1.9") (source (origin (method git-fetch) @@ -5584,13 +5584,16 @@ (define-public egl-wayland (commit version))) (file-name (git-file-name name version)) (sha256 - (base32 "0xcx1132zwyp4qps074m72ngjlfmysi1jc2d0lp1ml1r9bllkam6")))) + (base32 "1iz86cpc4v7izckrcslllnw0vvvgsxg1sr65yb8s9d0f8xa8djdd")))) (build-system meson-build-system) (native-inputs - `(("pkg-config" ,pkg-config))) + `(("libglvnd" ,libglvnd) ;needed for headers + ("mesa-headers" ,mesa-headers) + ("pkg-config" ,pkg-config))) (inputs `(("mesa" ,mesa) - ("wayland" ,wayland))) + ("wayland" ,wayland) + ("wayland-protocols" ,wayland-protocols))) (propagated-inputs `(("eglexternalplatform" ,eglexternalplatform))) (synopsis "EGLStream-based Wayland external platform") -- 2.33.1
Xwayland is no longer part of the main X server distribution and now requires Meson to build. This change also turn on EGL support, which was previously disabled. * gnu/packages/xorg.scm (xorg-server-xwayland): Do not inherit from xorg-server. Update to 21.1.3. [native-inputs]: New field. [build-system]: Likewise. [inputs]: Fully specify inputs, which are a subset of those of xorg-server. [configure-flags]: Adjust for Meson. [phases]{patch-/bin/sh}: New phase. [description, home-page, license]: New fields. --- gnu/packages/xorg.scm | 74 +++++++++++++++++++++++++++++++++++-------- 1 file changed, 61 insertions(+), 13 deletions(-) diff --git a/gnu/packages/xorg.scm b/gnu/packages/xorg.scm index cb391f8549..6fa5f2fae7 100644 --- a/gnu/packages/xorg.scm +++ b/gnu/packages/xorg.scm @@ -69,6 +69,7 @@ (define-module (gnu packages xorg) #: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) @@ -87,6 +88,7 @@ (define-module (gnu packages xorg) #: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) @@ -5604,21 +5606,67 @@ (define-public 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 -- 2.33.1
* gnu/packages/python-xyz.scm (python-dbusmock): Update to 0.24.1. --- gnu/packages/python-xyz.scm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index f61837323c..d02b89bc35 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -23634,14 +23634,14 @@ (define-public python-pykwalify (define-public python-dbusmock (package (name "python-dbusmock") - (version "0.24.0") + (version "0.24.1") (source (origin (method url-fetch) (uri (pypi-uri "python-dbusmock" version)) (sha256 (base32 - "0wn2adqzwvwc0cc7kszidlq0i4xzfyip946dn85hbvjap8fxbq0b")))) + "0kvjwn5sdp3rqcbclvxljkmk988l12dvppzfn3ldy3jxbyyn1mjn")))) (build-system python-build-system) (arguments '(#:phases -- 2.33.1
* gnu/packages/python-xyz.scm (python-dbusmock) [phases]{patch-shell-path}: Rename to... {patch-paths}: ... this, and also patch the dbus-daemon reference. --- gnu/packages/python-xyz.scm | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/gnu/packages/python-xyz.scm b/gnu/packages/python-xyz.scm index d02b89bc35..b0e28e48ca 100644 --- a/gnu/packages/python-xyz.scm +++ b/gnu/packages/python-xyz.scm @@ -23646,15 +23646,21 @@ (define-public python-dbusmock (arguments '(#:phases (modify-phases %standard-phases - (add-after 'unpack 'patch-shell-path - (lambda _ + (add-after 'unpack 'patch-paths + (lambda* (#:key inputs #:allow-other-keys) (substitute* "tests/test_code.py" - (("/bin/bash") (which "bash")))))))) + (("/bin/bash") (which "bash"))) + (substitute* "dbusmock/testcase.py" + (("'dbus-daemon'") + (string-append "'" (assoc-ref inputs "dbus") + "/bin/dbus-daemon'")))))))) (native-inputs `(;; For tests. ("dbus" ,dbus) ; for dbus-daemon ("python-nose" ,python-nose) ("which" ,which))) + (inputs + `(("dbus" ,dbus))) (propagated-inputs `(("python-dbus" ,python-dbus) ("python-pygobject" ,python-pygobject))) -- 2.33.1
* gnu/packages/gnome.scm (mutter): Update to 41.0. TODO --- gnu/packages/gnome.scm | 95 +++++++++++++++++++++++++++++++++++------- 1 file changed, 79 insertions(+), 16 deletions(-) diff --git a/gnu/packages/gnome.scm b/gnu/packages/gnome.scm index f07ff28701..c01da54da6 100644 --- a/gnu/packages/gnome.scm +++ b/gnu/packages/gnome.scm @@ -7478,7 +7478,7 @@ (define-public zenity (define-public mutter (package (name "mutter") - (version "40.5") + (version "41.0") (source (origin (method url-fetch) (uri (string-append "mirror://gnome/sources/" name "/" @@ -7486,54 +7486,114 @@ (define-public mutter name "-" version ".tar.xz")) (sha256 (base32 - "0bmd6p9qcwx0hv0y2bp33xjfaw4lyfkl55r0qn2cm04465riddny")))) + "17pqrm48kddqrc3fl96n5knhaxyn0crg0zv7zpmqhk848jks307s")))) ;; NOTE: Since version 3.21.x, mutter now bundles and exports forked ;; versions of cogl and clutter. As a result, many of the inputs, ;; propagated-inputs, and configure flags used in cogl and clutter are ;; needed here as well. (build-system meson-build-system) (arguments - '(;; XXX: All mutter tests fail with the following error: - ;; Settings schema 'org.gnome.mutter' is not installed - #:tests? #f - #:glib-or-gtk? #t + '(#:glib-or-gtk? #t #:configure-flags ;; TODO: Enable profiler when Sysprof is packaged. (list "-Dprofiler=false" ;; Otherwise, the RUNPATH will lack the final path component. (string-append "-Dc_link_args=-Wl,-rpath=" (assoc-ref %outputs "out") "/lib:" - (assoc-ref %outputs "out") "/lib/mutter-8") - + (assoc-ref %outputs "out") "/lib/mutter-9") + ;; Disable systemd support. + "-Dsystemd=false" ;; The following flags are needed for the bundled clutter (string-append "-Dxwayland_path=" (assoc-ref %build-inputs "xorg-server-xwayland") "/bin/Xwayland") - ;; the remaining flags are needed for the bundled cogl (string-append "-Dopengl_libname=" (assoc-ref %build-inputs "mesa") - "/lib/libGL.so")) + "/lib/libGL.so") + (string-append "-Dgles2_libname=" + (assoc-ref %build-inputs "mesa") + "/lib/libGLESv2.so") + "-Degl_device=true" ;false by default + "-Dwayland_eglstream=true") ;false by default + #:test-options + (list "--verbose" + ;; FIXME: There are three (3) test suites: 'clutter', 'cogl' and + ;; 'core', of which only 'core' is currently failing with errors + ;; like: + + ;; FIXME: The test suites takes way more time (from ~1m30 to 15m) + ;; in the build environment, due to python-dbusmock struggling to + ;; kill the dbus process with errors like "ERROR: timed out + ;; waiting for bus process to terminate" for unknown reasons + ;; (see: + ;; https://github.com/martinpitt/python-dbusmock/issues/47#issuecomment-972547988). + "--suite=clutter" + "--suite=cogl") #:phases (modify-phases %standard-phases + (add-after 'unpack 'patch-dlopen-calls + (lambda* (#:key inputs #:allow-other-keys) + (substitute* "src/wayland/meta-wayland-egl-stream.c" + (("libnvidia-egl-wayland.so.1") + (string-append (assoc-ref inputs "egl-wayland") + "/lib/libnvidia-egl-wayland.so.1"))))) (add-before 'configure 'set-udev-dir (lambda* (#:key inputs outputs #:allow-other-keys) (setenv "PKG_CONFIG_UDEV_UDEVDIR" (string-append (assoc-ref outputs "out") - "/lib/udev"))))))) + "/lib/udev")))) + (replace 'check + (lambda* (#:key inputs tests? test-options parallel-tests? + #:allow-other-keys) + (when tests? + ;; Setup (see the 'test-mutter' CI target at + ;; https://gitlab.gnome.org/GNOME/mutter/-/raw/main/.gitlab-ci.yml). + (setenv "XDG_RUNTIME_DIR" "runtime-dir") + (setenv "GSETTINGS_SCHEMA_DIR" "data") + (setenv "MUTTER_DEBUG_DUMMY_MODE_SPECS" "800x600@10.0") + (setenv "PIPEWIRE_DEBUG" "2") + (setenv "PIPEWIRE_LOG" "meson-logs/pipewire.log") + (setenv "XVFB_SERVER_ARGS" "+iglx -noreset") + (setenv "G_SLICE" "always-malloc") + (setenv "MALLOC_CHECK" "3") + (setenv "NO_AT_BRIDGE" "1") + ;; This is needed, otherwise the "mutter:core+mutter/unit / + ;; anonymous-file" test would fail (see: + ;; https://gitlab.gnome.org/GNOME/mutter/-/issues/2017). + (setenv "CI_JOB_ID" "1") + + (invoke "glib-compile-schemas" (getenv "GSETTINGS_SCHEMA_DIR")) + (mkdir-p (getenv "XDG_RUNTIME_DIR")) + (chmod (getenv "XDG_RUNTIME_DIR") #o755) + (invoke "pipewire" "--version") ;check for pipewire + (system "pipewire &") ;always returns 0 due to forking + + (setenv "MESON_TESTTHREADS" + (if parallel-tests? + (number->string (parallel-job-count)) + "1")) + (apply invoke "dbus-run-session" "--" + "xvfb-run" "-a" "-s" (getenv "XVFB_SERVER_ARGS") + "meson" "test" "-t" "10" "--print-errorlogs" + test-options))))))) (native-inputs `(("desktop-file-utils" ,desktop-file-utils) ; for update-desktop-database - ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. + ("glib:bin" ,glib "bin") ; for glib-compile-schemas, etc. ("gobject-introspection" ,gobject-introspection) ("intltool" ,intltool) ("pkg-config" ,pkg-config) - ("xorg-server" ,xorg-server-for-tests) + ("xvfb-run" ,xvfb-run) ;; For git build ("autoconf" ,autoconf) ("automake" ,automake) - ("libtool" ,libtool))) + ("libtool" ,libtool) + ;; For tests. + ("pipewire" ,pipewire-0.3) + ("python-dbus" ,python-dbus) + ("python-dbusmock" ,python-dbusmock))) (propagated-inputs - `(;; libmutter.pc refers to these: + `( ;; libmutter.pc refers to these: ("gsettings-desktop-schemas" ,gsettings-desktop-schemas) ("gtk+" ,gtk+) ;; mutter-clutter-1.0.pc and mutter-cogl-1.0.pc refer to these: @@ -7545,6 +7605,7 @@ (define-public mutter ("libinput" ,libinput) ("libx11" ,libx11) ("libxcomposite" ,libxcomposite) + ("libxcvt" ,libxcvt) ("libxdamage" ,libxdamage) ("libxext" ,libxext) ("libxfixes" ,libxfixes) @@ -7556,7 +7617,8 @@ (define-public mutter ("udev" ,eudev) ("xinput" ,xinput))) (inputs - `(("elogind" ,elogind) + `(("egl-wayland" ,egl-wayland) ;for wayland-eglstream-protocols + ("elogind" ,elogind) ("gnome-desktop" ,gnome-desktop) ("gnome-settings-daemon" ,gnome-settings-daemon) ("graphene" ,graphene) @@ -7570,6 +7632,7 @@ (define-public mutter ("libxtst" ,libxtst) ("pipewire" ,pipewire-0.3) ("startup-notification" ,startup-notification) + ("sysprof" ,sysprof) ("upower-glib" ,upower) ("xkeyboard-config" ,xkeyboard-config) ("xorg-server-xwayland" ,xorg-server-xwayland) -- 2.33.1
[-- Attachment #1: Type: text/plain, Size: 1362 bytes --] Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis: > Hi Guillaume, > > Guillaume Le Vaillant <glv@posteo.net> writes: > >> According to [1], since 21.1 series of Xorg, XWayland is packaged >> separately. The attached patch replaces xorg-xserver-xwayland by the >> xwayland package. >> >> However it looks like it's not working so far, the tests fail with: >> >> XKB: Failed to compile keymap >> Keyboard initialization failed. This could be a missing or incorrect setup of xkeyboard-config. >> (EE) >> Fatal server error: >> (EE) Failed to activate virtual core keyboard: 2(EE) >> >> I tried adding the same keyboard-related parameters as the ones in >> xorg-server (xbk_dir and xkb_bin_dir), but it doesn't seem to >> make a difference. >> >> Does someone have an idea? >> >> >> [1] https://lists.x.org/archives/xorg/2021-October/060799.html > > Perhaps it was libinput? I'm carrying this patch set locally, I guess I > should have shared it earlier, I was attempting to fix the Mutter test > suite on top of it. Could you try it? It rebuilds lots of stuff though > I'm afraid. > > Thanks, > > (the patch series will come shortly via git-send) It looks like your patches are working. I was able to build xorg-server-xwayland (maybe it could be renamed xwayland), and also weston (which has a test using xwayland). [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 247 bytes --]
Hi Guillaume!
Guillaume Le Vaillant <glv@posteo.net> writes:
> Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:
>
>> Hi Guillaume,
>>
>> Guillaume Le Vaillant <glv@posteo.net> writes:
>>
>>> According to [1], since 21.1 series of Xorg, XWayland is packaged
>>> separately. The attached patch replaces xorg-xserver-xwayland by the
>>> xwayland package.
>>>
>>> However it looks like it's not working so far, the tests fail with:
>>>
>>> XKB: Failed to compile keymap
>>> Keyboard initialization failed. This could be a missing or incorrect setup of xkeyboard-config.
>>> (EE)
>>> Fatal server error:
>>> (EE) Failed to activate virtual core keyboard: 2(EE)
>>>
>>> I tried adding the same keyboard-related parameters as the ones in
>>> xorg-server (xbk_dir and xkb_bin_dir), but it doesn't seem to
>>> make a difference.
>>>
>>> Does someone have an idea?
>>>
>>>
>>> [1] https://lists.x.org/archives/xorg/2021-October/060799.html
>>
>> Perhaps it was libinput? I'm carrying this patch set locally, I guess I
>> should have shared it earlier, I was attempting to fix the Mutter test
>> suite on top of it. Could you try it? It rebuilds lots of stuff though
>> I'm afraid.
>>
>> Thanks,
>>
>> (the patch series will come shortly via git-send)
>
> It looks like your patches are working. I was able to build
> xorg-server-xwayland (maybe it could be renamed xwayland), and also
> weston (which has a test using xwayland).
I thought so about xwayland, but since it provides a xorg-server
variant, I think we may just leave it at xorg-server-xwayland (like it
is on Fedora).
Thank you, I've pushed all but my WIP mutter (which should work if we
disable the test suite as it was).
Thanks,
Maxim