core/pkgs/by-name/xo/xorg/xwayland.nix
2024-06-30 09:16:52 +01:00

125 lines
2.2 KiB
Nix

{
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;
};
}