summaryrefslogtreecommitdiff
path: root/pkgs
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--pkgs/hikari.nix3
-rw-r--r--pkgs/overlay.nix9
-rw-r--r--pkgs/wlroots_0_15.nix114
3 files changed, 117 insertions, 9 deletions
diff --git a/pkgs/hikari.nix b/pkgs/hikari.nix
index 2adebe9..6506590 100644
--- a/pkgs/hikari.nix
+++ b/pkgs/hikari.nix
@@ -1,7 +1,7 @@
{ lib, stdenv, fetchzip
, pkg-config, bmake
, cairo, glib, libevdev, libinput, libxkbcommon, linux-pam, pango, pixman
-, libucl, wayland, wayland-protocols, wlroots, mesa
+, libucl, wayland, wayland-protocols, wayland-scanner, wlroots, mesa
, features ? {
gammacontrol = true;
layershell = true;
@@ -34,6 +34,7 @@ stdenv.mkDerivation rec {
mesa # for libEGL
wayland
wayland-protocols
+ wayland-scanner
wlroots
];
diff --git a/pkgs/overlay.nix b/pkgs/overlay.nix
index 3f6c6a7..f500431 100644
--- a/pkgs/overlay.nix
+++ b/pkgs/overlay.nix
@@ -245,14 +245,7 @@ in
hikari = self.callPackage ./hikari.nix { wlroots = self.wlroots_0_15; };
- wlroots_0_15 = (self.wlroots_0_16.overrideAttrs rec {
- version = "0.15.1";
- src = self.fetchFromGitLab {
- domain = "gitlab.freedesktop.org";
- owner = "wlroots";
- repo = "wlroots";
- rev = version;
- hash = "sha256-MFR38UuB/wW7J9ODDUOfgTzKLse0SSMIRYTpEaEdRwM=";
+ wlroots_0_15 = self.callPackage ./wlroots_0_15.nix {};
};
});
diff --git a/pkgs/wlroots_0_15.nix b/pkgs/wlroots_0_15.nix
new file mode 100644
index 0000000..93095f8
--- /dev/null
+++ b/pkgs/wlroots_0_15.nix
@@ -0,0 +1,114 @@
+{ lib
+, stdenv
+, fetchFromGitLab
+, meson
+, ninja
+, pkg-config
+, wayland-scanner
+, libGL
+, wayland
+, wayland-protocols
+, libinput
+, libxkbcommon
+, pixman
+, libcap
+, mesa
+, xorg
+, libpng
+, ffmpeg_4
+, ffmpeg
+, hwdata
+, seatd
+, vulkan-loader
+, glslang
+, libliftoff
+, libdisplay-info
+, nixosTests
+
+, enableXWayland ? true
+, xwayland ? null
+}:
+
+let
+ version = "0.15.2";
+in
+stdenv.mkDerivation {
+
+ pname = "wlroots";
+ inherit version;
+
+ inherit enableXWayland;
+
+ src = fetchFromGitLab {
+ domain = "gitlab.freedesktop.org";
+ owner = "wlroots";
+ repo = "wlroots";
+ rev = version;
+ hash = "sha256-MFR38UuB/wW7J9ODDUOfgTzKLse0SSMIRYTpEaEdRwM=";
+ };
+
+ postPatch = ''
+ substituteInPlace backend/drm/meson.build \
+ --replace /usr/share/hwdata/ ${hwdata}/share/hwdata/
+ '';
+
+ # $out for the library and $examples for the example programs (in examples):
+ outputs = [ "out" "examples" ];
+
+ strictDeps = true;
+ depsBuildBuild = [ pkg-config ];
+
+ nativeBuildInputs = [ meson ninja pkg-config wayland-scanner glslang ];
+
+ buildInputs = [
+ libGL
+ libcap
+ libinput
+ libpng
+ libxkbcommon
+ mesa
+ pixman
+ seatd
+ vulkan-loader
+ wayland
+ wayland-protocols
+ xorg.libX11
+ xorg.xcbutilerrors
+ xorg.xcbutilimage
+ xorg.xcbutilrenderutil
+ xorg.xcbutilwm
+ ffmpeg_4
+ ]
+ ++ 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 = {
+ 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.
+ '';
+ changelog = "https://gitlab.freedesktop.org/wlroots/wlroots/-/tags/${version}";
+ license = lib.licenses.mit;
+ platforms = lib.platforms.linux;
+ maintainers = with lib.maintainers; [ primeos synthetica rewine ];
+ };
+ }