From 203aa6daede832cf6a56ef56950e04284df38035 Mon Sep 17 00:00:00 2001 From: stuebinm Date: Thu, 5 Dec 2024 01:07:52 +0100 Subject: NixOS 24.11 --- pkgs/hikari.nix | 3 +- pkgs/overlay.nix | 9 +--- pkgs/wlroots_0_15.nix | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 117 insertions(+), 9 deletions(-) create mode 100644 pkgs/wlroots_0_15.nix (limited to 'pkgs') 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 ]; + }; + } -- cgit v1.2.3