[core-updates-frozen] xorg-server-xwayland broken

  • Done
  • quality assurance status badge
Details
2 participants
  • Guillaume Le Vaillant
  • Maxim Cournoyer
Owner
unassigned
Submitted by
Guillaume Le Vaillant
Severity
normal
G
G
Guillaume Le Vaillant wrote on 16 Nov 2021 22:47
(address . bug-guix@gnu.org)
87sfvvdatg.fsf@kitej
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:

Toggle snippet (4 lines)
config.status: executing sdksyms commands
configure: WARNING: unrecognized options: --enable-xwayland, --with-os-name, --with-os-vendor
phase `configure' succeeded after 6.6 seconds
-----BEGIN PGP SIGNATURE-----

iIUEAREKAC0WIQTLxZxm7Ce5cXlAaz5r6CCK3yH+PwUCYZQo+w8cZ2x2QHBvc3Rl
by5uZXQACgkQa+ggit8h/j8sDgEAmRK4Hmhol/arm2NpV5MWii6+EiN0+0bzXBZk
Gw0xIkoA/0b1wgK46+65+m+fwhN/wNL/hgpGhuVHiwSwX7Iat5qn
=O5Ew
-----END PGP SIGNATURE-----

G
G
Guillaume Le Vaillant wrote on 17 Nov 2021 15:36
(address . 51900@debbugs.gnu.org)
87ilwqvnvw.fsf@kitej
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:
Toggle snippet (7 lines)
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?


-----BEGIN PGP SIGNATURE-----

iIUEAREKAC0WIQTLxZxm7Ce5cXlAaz5r6CCK3yH+PwUCYZUWUw8cZ2x2QHBvc3Rl
by5uZXQACgkQa+ggit8h/j98kAEAhb93jupsg/1k/NDOQTJApg94dtJKOvc8ee7W
STH1MMUBAIageVK/SQysjIFH8YxPQmh+l3fTZ2ClgI71L9PMmMas
=BpO0
-----END PGP SIGNATURE-----

M
M
Maxim Cournoyer wrote on 18 Nov 2021 14:40
Re: bug#51900: [core-updates-frozen] xorg-server-xwayland broken
(name . Guillaume Le Vaillant)(address . glv@posteo.net)(address . 51900@debbugs.gnu.org)
871r3dh993.fsf@gmail.com
Hi Guillaume,

Guillaume Le Vaillant <glv@posteo.net> writes:

Toggle quote (21 lines)
> 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)
M
M
Maxim Cournoyer wrote on 18 Nov 2021 15:16
[PATCH 01/11] gnu: libinput: Update to 1.19.2.
(address . 51900@debbugs.gnu.org)
20211118141616.4252-1-maxim.cournoyer@gmail.com
* gnu/packages/freedesktop.scm (libinput): Update to 1.19.2.
---
gnu/packages/freedesktop.scm | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

Toggle diff (23 lines)
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
M
M
Maxim Cournoyer wrote on 18 Nov 2021 15:16
[PATCH 02/11] gnu: libxkbfile: Propagate libx11 and kbproto.
(address . 51900@debbugs.gnu.org)
20211118141616.4252-2-maxim.cournoyer@gmail.com
* 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(-)

Toggle diff (43 lines)
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
M
M
Maxim Cournoyer wrote on 18 Nov 2021 15:16
[PATCH 03/11] gnu: mesa: Update to 21.2.5.
(address . 51900@debbugs.gnu.org)
20211118141616.4252-3-maxim.cournoyer@gmail.com
* 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(-)

Toggle diff (36 lines)
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
M
M
Maxim Cournoyer wrote on 18 Nov 2021 15:16
[PATCH 05/11] gnu: xorg-server: Enable X security extensions (xcsecurity).
(address . 51900@debbugs.gnu.org)
20211118141616.4252-5-maxim.cournoyer@gmail.com

* gnu/packages/xorg.scm (xorg-server)
[configure-flags]: Add --enable-xcsecurity.
---
gnu/packages/xorg.scm | 3 +++
1 file changed, 3 insertions(+)

Toggle diff (16 lines)
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
M
M
Maxim Cournoyer wrote on 18 Nov 2021 15:16
[PATCH 04/11] gnu: xorg-server: Update to 21.1.1 and reinstate parallel tests.
(address . 51900@debbugs.gnu.org)
20211118141616.4252-4-maxim.cournoyer@gmail.com
* 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(-)

Toggle diff (34 lines)
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
M
M
Maxim Cournoyer wrote on 18 Nov 2021 15:16
[PATCH 06/11] gnu: Move eglexternalplatform and egl-wayland to (gnu packages xorg).
(address . 51900@debbugs.gnu.org)
20211118141616.4252-6-maxim.cournoyer@gmail.com
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(-)

Toggle diff (188 lines)
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
M
M
Maxim Cournoyer wrote on 18 Nov 2021 15:16
[PATCH 07/11] gnu: egl-wayland: Update to 1.1.9.
(address . 51900@debbugs.gnu.org)
20211118141616.4252-7-maxim.cournoyer@gmail.com
* 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(-)

Toggle diff (35 lines)
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
M
M
Maxim Cournoyer wrote on 18 Nov 2021 15:16
[PATCH 09/11] gnu: python-dbusmock: Update to 0.24.1.
(address . 51900@debbugs.gnu.org)
20211118141616.4252-9-maxim.cournoyer@gmail.com
* 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(-)

Toggle diff (23 lines)
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
M
M
Maxim Cournoyer wrote on 18 Nov 2021 15:16
[PATCH 08/11] gnu: xorg-server-xwayland: Update to 21.1.3 and adjust package.
(address . 51900@debbugs.gnu.org)
20211118141616.4252-8-maxim.cournoyer@gmail.com
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(-)

Toggle diff (103 lines)
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
M
M
Maxim Cournoyer wrote on 18 Nov 2021 15:16
[PATCH 11/11] gnu: mutter: Update to 41.0 and fix test (WIP).
(address . 51900@debbugs.gnu.org)
20211118141616.4252-11-maxim.cournoyer@gmail.com
* gnu/packages/gnome.scm (mutter): Update to 41.0.
TODO
---
gnu/packages/gnome.scm | 95 +++++++++++++++++++++++++++++++++++-------
1 file changed, 79 insertions(+), 16 deletions(-)

Toggle diff (170 lines)
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
M
M
Maxim Cournoyer wrote on 18 Nov 2021 15:16
[PATCH 10/11] gnu: python-dbusmock: Patch reference to dbus-daemon.
(address . 51900@debbugs.gnu.org)
20211118141616.4252-10-maxim.cournoyer@gmail.com
* 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(-)

Toggle diff (31 lines)
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
G
G
Guillaume Le Vaillant wrote on 18 Nov 2021 16:25
Re: bug#51900: [core-updates-frozen] xorg-server-xwayland broken
(name . Maxim Cournoyer)(address . maxim.cournoyer@gmail.com)(address . 51900@debbugs.gnu.org)
87lf1lpjnw.fsf@kitej
Maxim Cournoyer <maxim.cournoyer@gmail.com> skribis:

Toggle quote (34 lines)
> 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).
-----BEGIN PGP SIGNATURE-----

iIUEAREKAC0WIQTLxZxm7Ce5cXlAaz5r6CCK3yH+PwUCYZZxMw8cZ2x2QHBvc3Rl
by5uZXQACgkQa+ggit8h/j/IwwEAoJgUqzhdhIJsoS45KjhX9RDd4+TbofSPQgPF
NL5I2y8BAIX7SqQGOsjx2z/G1m0HDDhfjX7aPuujf3pwcShCEJ0d
=CxOA
-----END PGP SIGNATURE-----

M
M
Maxim Cournoyer wrote on 18 Nov 2021 17:51
(name . Guillaume Le Vaillant)(address . glv@posteo.net)(address . 51900@debbugs.gnu.org)
87lf1lflvq.fsf@gmail.com
Hi Guillaume!

Guillaume Le Vaillant <glv@posteo.net> writes:

Toggle quote (40 lines)
> 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
G
G
Guillaume Le Vaillant wrote on 20 Nov 2021 15:10
(address . 51900-done@debbugs.gnu.org)
87y25i7w7o.fsf@kitej
Closing.
-----BEGIN PGP SIGNATURE-----

iIUEAREKAC0WIQTLxZxm7Ce5cXlAaz5r6CCK3yH+PwUCYZkCKw8cZ2x2QHBvc3Rl
by5uZXQACgkQa+ggit8h/j+P/gD+Pxg/6ATuMkpRK0UDoV5PiCIh6BvOcJ18lbyu
x4LqNlwBAIRaVzrxjdX6WJ5FO9byRpfJtWRZGAs9t+Vc3x9x6jTt
=sacP
-----END PGP SIGNATURE-----

Closed
?