{ lib, stdenv, fetchurl, meson, ninja, pkg-config, wayland-scanner, python3 , wayland, libGL, mesa, libxkbcommon, cairo, libxcb , libXcursor, xlibsWrapper, udev, libdrm, mtdev, libjpeg, pam, dbus, libinput, libevdev , colord, lcms2, pipewire ? null , pango ? null, libunwind ? null, freerdp ? null, vaapi ? null, libva ? null , libwebp ? null, xwayland ? null, wayland-protocols # beware of null defaults, as the parameters *are* supplied by callPackage by default }: with lib; stdenv.mkDerivation rec { pname = "weston"; version = "10.0.0"; src = fetchurl { url = "https://wayland.freedesktop.org/releases/${pname}-${version}.tar.xz"; sha256 = "1bj7wnadr7ssn6xw7k8ki0wpj6np3kjd2pcysfz3h0mr290rc8sw"; }; nativeBuildInputs = [ meson ninja pkg-config wayland-scanner python3 ]; buildInputs = [ wayland libGL mesa libxkbcommon cairo libxcb libXcursor xlibsWrapper udev libdrm mtdev libjpeg pam dbus libinput libevdev pango libunwind freerdp vaapi libva libwebp wayland-protocols colord lcms2 pipewire ]; mesonFlags= [ "-Dbackend-drm-screencast-vaapi=${boolToString (vaapi != null)}" "-Dbackend-rdp=${boolToString (freerdp != null)}" "-Dxwayland=${boolToString (xwayland != null)}" # Default is true! "-Dremoting=false" # TODO "-Dpipewire=${boolToString (pipewire != null)}" "-Dimage-webp=${boolToString (libwebp != null)}" "-Ddemo-clients=false" "-Dsimple-clients=" "-Dtest-junit-xml=false" # TODO: #"--enable-clients" #"--disable-setuid-install" # prevent install target to chown root weston-launch, which fails ] ++ optionals (xwayland != null) [ "-Dxwayland-path=${xwayland.out}/bin/Xwayland" ]; passthru.providedSessions = [ "weston" ]; meta = { description = "A lightweight and functional Wayland compositor"; longDescription = '' Weston is the reference implementation of a Wayland compositor, as well as a useful environment in and of itself. Out of the box, Weston provides a very basic desktop, or a full-featured environment for non-desktop uses such as automotive, embedded, in-flight, industrial, kiosks, set-top boxes and TVs. It also provides a library allowing other projects to build their own full-featured environments on top of Weston's core. A small suite of example or demo clients are also provided. ''; homepage = "https://gitlab.freedesktop.org/wayland/weston"; license = licenses.mit; # Expat version platforms = platforms.linux; maintainers = with maintainers; [ primeos ]; }; }