about summary refs log tree commit diff
path: root/pkgs/development/tools/wlcs
diff options
context:
space:
mode:
authorOPNA2608 <christoph.neidahl@gmail.com>2022-12-31 14:59:50 +0100
committerOPNA2608 <christoph.neidahl@gmail.com>2022-12-31 14:59:50 +0100
commitd005961e237244d42b319f4b8ffd073f6c7919f2 (patch)
tree0cc95afd008d527be9a4d072e1d99eb629905cba /pkgs/development/tools/wlcs
parent3e32cdca5994248bd1185c7c6f89cd463fb447f5 (diff)
wlcs: init at 1.4.0
Diffstat (limited to 'pkgs/development/tools/wlcs')
-rw-r--r--pkgs/development/tools/wlcs/default.nix77
1 files changed, 77 insertions, 0 deletions
diff --git a/pkgs/development/tools/wlcs/default.nix b/pkgs/development/tools/wlcs/default.nix
new file mode 100644
index 0000000000000..f2075f683b1eb
--- /dev/null
+++ b/pkgs/development/tools/wlcs/default.nix
@@ -0,0 +1,77 @@
+{ stdenv
+, lib
+, gitUpdater
+, fetchFromGitHub
+, fetchpatch
+, cmake
+, pkg-config
+, boost
+, gtest
+, wayland
+}:
+
+stdenv.mkDerivation rec {
+  pname = "wlcs";
+  version = "1.4.0";
+
+  src = fetchFromGitHub {
+    owner = "MirServer";
+    repo = "wlcs";
+    rev = "v${version}";
+    hash = "sha256-ep5BHa9PgfB50gxJySaw0YAc1upBbncOiX9PCqHLbpE=";
+  };
+
+  patches = [
+    # Fixes pkg-config paths
+    # Remove when https://github.com/MirServer/wlcs/pull/258 merged & in a release
+    (fetchpatch {
+      name = "0001-wlcs-pkgsconfig-use-FULL-install-vars.patch";
+      url = "https://github.com/MirServer/wlcs/pull/258/commits/9002cb7323d94aba7fc1ce5927f445e9beb30d70.patch";
+      hash = "sha256-+uhFRKhG59w99oES4RA+L5hHyJ5pf4ij97pTokERPys=";
+    })
+    (fetchpatch {
+      name = "0002-wlcs-CMAKE_INSTALL_INCLUDEDIR-for-headers.patch";
+      url = "https://github.com/MirServer/wlcs/pull/258/commits/71263172c9ba57be9c05f1e07dd40d1f378ca6d0.patch";
+      hash = "sha256-nV/72W9DW3AvNGhUZ+tzmQZow3BkxEH3D6QFBZIGjj8=";
+    })
+  ];
+
+  nativeBuildInputs = [
+    cmake
+    pkg-config
+  ];
+
+  buildInputs = [
+    boost
+    gtest
+    wayland
+  ];
+
+  passthru.updateScript = gitUpdater {
+    rev-prefix = "v";
+  };
+
+  meta = with lib; {
+    description = "Wayland Conformance Test Suite";
+    longDescription = ''
+      wlcs aspires to be a protocol-conformance-verifying test suite usable by Wayland
+      compositor implementors.
+
+      It is growing out of porting the existing Weston test suite to be run in Mir's
+      test suite, but it is designed to be usable by any compositor.
+
+      wlcs relies on compositors providing an integration module, providing wlcs with
+      API hooks to start a compositor, connect a client, move a window, and so on.
+      This makes both writing and debugging tests easier - the tests are (generally)
+      in the same address space as the compositor, so there is a consistent global
+      clock available, it's easier to poke around in compositor internals, and
+      standard debugging tools can follow control flow from the test client to the
+      compositor and back again.
+    '';
+    homepage = "https://github.com/MirServer/wlcs";
+    changelog = "https://github.com/MirServer/wlcs/releases/tag/v${version}";
+    license = licenses.gpl3Only;
+    maintainers = with maintainers; [ OPNA2608 ];
+    inherit (wayland.meta) platforms;
+  };
+}