{ egl-wayland , libepoxy , fetchurl , fontutil , lib , libei , libGL , libGLU , libX11 , libXau , libXaw , libXdmcp , libXext , libXfixes , libXfont2 , libXmu , libXpm , libXrender , libXres , libXt , libdrm , libtirpc , withLibunwind ? true, libunwind , libxcb , libxkbfile , libxshmfence , libxcvt , mesa , meson , ninja , openssl , pkg-config , pixman , stdenv , wayland , wayland-protocols , wayland-scanner , xkbcomp , xkeyboard_config , xorgproto , xtrans , zlib , defaultFontPath ? "" , gitUpdater }: stdenv.mkDerivation rec { pname = "xwayland"; version = "23.2.6"; src = fetchurl { url = "mirror://xorg/individual/xserver/${pname}-${version}.tar.xz"; hash = "sha256-HJo2a058ytug+b0xPFnq4S0jvXJUOyKibq+LIINc/G0="; }; depsBuildBuild = [ pkg-config ]; nativeBuildInputs = [ pkg-config meson ninja wayland-scanner ]; buildInputs = [ egl-wayland libepoxy libei fontutil libGL libGLU libX11 libXau libXaw libXdmcp libXext libXfixes libXfont2 libXmu libXpm libXrender libXres libXt libdrm libtirpc libxcb libxkbfile libxshmfence libxcvt mesa openssl pixman wayland wayland-protocols xkbcomp xorgproto xtrans zlib ] ++ lib.optionals withLibunwind [ libunwind ]; mesonFlags = [ (lib.mesonBool "xwayland_eglstream" true) (lib.mesonBool "xcsecurity" true) (lib.mesonOption "default_font_path" defaultFontPath) (lib.mesonOption "xkb_bin_dir" "${xkbcomp}/bin") (lib.mesonOption "xkb_dir" "${xkeyboard_config}/etc/X11/xkb") (lib.mesonOption "xkb_output_dir" "${placeholder "out"}/share/X11/xkb/compiled") (lib.mesonBool "libunwind" withLibunwind) ]; passthru.updateScript = gitUpdater { # No nicer place to find latest release. url = "https://gitlab.freedesktop.org/xorg/xserver.git"; rev-prefix = "xwayland-"; }; meta = with lib; { description = "An X server for interfacing X11 apps with the Wayland protocol"; homepage = "https://wayland.freedesktop.org/xserver.html"; license = licenses.mit; mainProgram = "Xwayland"; maintainers = with maintainers; [ emantor ]; platforms = platforms.linux; }; }