about summary refs log tree commit diff
path: root/nixpkgs/pkgs/applications/window-managers/weston/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/pkgs/applications/window-managers/weston/default.nix')
-rw-r--r--nixpkgs/pkgs/applications/window-managers/weston/default.nix94
1 files changed, 94 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/applications/window-managers/weston/default.nix b/nixpkgs/pkgs/applications/window-managers/weston/default.nix
new file mode 100644
index 000000000000..3d2c720e137c
--- /dev/null
+++ b/nixpkgs/pkgs/applications/window-managers/weston/default.nix
@@ -0,0 +1,94 @@
+{ lib, stdenv, fetchurl, fetchpatch2
+, meson, ninja, pkg-config, python3, wayland-scanner
+, cairo, libGL, libdrm, libevdev, libinput, libxkbcommon, mesa, seatd, wayland
+, wayland-protocols, xcbutilcursor
+
+, demoSupport ? true
+, hdrSupport ? true, libdisplay-info
+, jpegSupport ? true, libjpeg
+, lcmsSupport ? true, lcms2
+, pangoSupport ? true, pango
+, pipewireSupport ? true, pipewire
+, rdpSupport ? true, freerdp
+, remotingSupport ? true, gst_all_1
+, vaapiSupport ? true, libva
+, vncSupport ? true, aml, neatvnc, pam
+, webpSupport ? true, libwebp
+, xwaylandSupport ? true, libXcursor, xwayland
+}:
+
+stdenv.mkDerivation rec {
+  pname = "weston";
+  version = "12.0.2";
+
+  src = fetchurl {
+    url = "https://gitlab.freedesktop.org/wayland/weston/-/releases/${version}/downloads/weston-${version}.tar.xz";
+    hash = "sha256-62hqfPAJkqI7F/GS/KmohzE+ksNG7jXYV1GWmD1la0o=";
+  };
+
+  patches = [
+    # ci, backend-vnc: update to Neat VNC 0.7.0
+    # part of https://gitlab.freedesktop.org/wayland/weston/-/merge_requests/1051
+    (fetchpatch2 {
+      url = "https://gitlab.freedesktop.org/wayland/weston/-/commit/8895b15f3dfc555a869e310ff6e16ff5dced1336.patch";
+      hash = "sha256-PGAmQhzG8gZcYRaZwhKPlgzfbILIXGAHLSd9dCHAP1A=";
+      excludes = [ ".gitlab-ci.yml" ];
+    })
+  ];
+
+  depsBuildBuild = [ pkg-config ];
+  nativeBuildInputs = [ meson ninja pkg-config python3 wayland-scanner ];
+  buildInputs = [
+    cairo libGL libdrm libevdev libinput libxkbcommon mesa seatd wayland
+    wayland-protocols
+  ] ++ lib.optional hdrSupport libdisplay-info
+    ++ lib.optional jpegSupport libjpeg
+    ++ lib.optional lcmsSupport lcms2
+    ++ lib.optional pangoSupport pango
+    ++ lib.optional pipewireSupport pipewire
+    ++ lib.optional rdpSupport freerdp
+    ++ lib.optionals remotingSupport [ gst_all_1.gstreamer gst_all_1.gst-plugins-base ]
+    ++ lib.optional vaapiSupport libva
+    ++ lib.optionals vncSupport [ aml neatvnc pam ]
+    ++ lib.optional webpSupport libwebp
+    ++ lib.optionals xwaylandSupport [ libXcursor xcbutilcursor xwayland ];
+
+  mesonFlags= [
+    (lib.mesonBool "backend-drm-screencast-vaapi" vaapiSupport)
+    (lib.mesonBool "backend-pipewire" pipewireSupport)
+    (lib.mesonBool "backend-rdp" rdpSupport)
+    (lib.mesonBool "backend-vnc" vncSupport)
+    (lib.mesonBool "color-management-lcms" lcmsSupport)
+    (lib.mesonBool "demo-clients" demoSupport)
+    (lib.mesonBool "image-jpeg" jpegSupport)
+    (lib.mesonBool "image-webp" webpSupport)
+    (lib.mesonBool "pipewire" pipewireSupport)
+    (lib.mesonBool "remoting" remotingSupport)
+    (lib.mesonOption "simple-clients" "")
+    (lib.mesonBool "test-junit-xml" false)
+    (lib.mesonBool "xwayland" xwaylandSupport)
+  ] ++ lib.optionals xwaylandSupport [
+    (lib.mesonOption "xwayland-path" (lib.getExe xwayland))
+  ];
+
+  passthru.providedSessions = [ "weston" ];
+
+  meta = with lib; {
+    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;
+    mainProgram = "weston";
+    maintainers = with maintainers; [ primeos qyliss ];
+  };
+}