3
0
Fork 0
forked from mirrors/nixpkgs
nixpkgs/pkgs/development/libraries/wlroots/0.15.nix
Michael Weiss e9efbc0bbb
nixos/tests/tinywl: init
This adds a very minimalistic (in terms of functionality and
dependencies) test for wlroots, Wayland, and related packages.

The Sway test covers more functionality and packages (e.g. XWayland) but
this test has tree advantages:
- Less dependencies: Much fewer rebuilds are required when testing core
  changes that need to go through staging.
- Testing wlroots updates: The Sway package isn't immediately updated
  after a new wlroots version is released and a lot of other packages
  depend on wlroots as well.
- Determining whether a bug only affects Sway or wlroots/TinyWL as well.
2022-01-06 17:31:57 +01:00

69 lines
2.2 KiB
Nix

{ lib, stdenv, fetchFromGitLab, meson_0_60, ninja, pkg-config, wayland-scanner
, libGL, wayland, wayland-protocols, libinput, libxkbcommon, pixman
, xcbutilwm, libX11, libcap, xcbutilimage, xcbutilerrors, mesa
, libpng, ffmpeg, xcbutilrenderutil, seatd, vulkan-loader, glslang
, nixosTests
, enableXWayland ? true, xwayland ? null
}:
stdenv.mkDerivation rec {
pname = "wlroots";
version = "0.15.0";
src = fetchFromGitLab {
domain = "gitlab.freedesktop.org";
owner = "wlroots";
repo = "wlroots";
rev = version;
sha256 = "0wdzs0wpv61pxgy3mx3xjsndyfmbj30v47d3w9ymmnd4r479n41n";
};
# $out for the library and $examples for the example programs (in examples):
outputs = [ "out" "examples" ];
depsBuildBuild = [ pkg-config ];
nativeBuildInputs = [ meson_0_60 ninja pkg-config wayland-scanner ];
buildInputs = [
libGL wayland wayland-protocols libinput libxkbcommon pixman
xcbutilwm libX11 libcap xcbutilimage xcbutilerrors mesa
libpng ffmpeg xcbutilrenderutil seatd vulkan-loader glslang
]
++ lib.optional enableXWayland xwayland
;
mesonFlags =
lib.optional (!enableXWayland) "-Dxwayland=disabled"
;
postFixup = ''
# Install ALL example programs to $examples:
# screencopy dmabuf-capture input-inhibitor layer-shell idle-inhibit idle
# screenshot output-layout multi-pointer rotation tablet touch pointer
# simple
mkdir -p $examples/bin
cd ./examples
for binary in $(find . -executable -type f -printf '%P\n' | grep -vE '\.so'); do
cp "$binary" "$examples/bin/wlroots-$binary"
done
'';
# Test via TinyWL (the "minimum viable product" Wayland compositor based on wlroots):
passthru.tests.tinywl = nixosTests.tinywl;
meta = with lib; {
description = "A modular Wayland compositor library";
longDescription = ''
Pluggable, composable, unopinionated modules for building a Wayland
compositor; or about 50,000 lines of code you were going to write anyway.
'';
inherit (src.meta) homepage;
changelog = "https://gitlab.freedesktop.org/wlroots/wlroots/-/tags/${version}";
license = licenses.mit;
platforms = platforms.linux;
maintainers = with maintainers; [ primeos synthetica ];
};
}