diff --git a/pkgs/applications/window-managers/cage/default.nix b/pkgs/applications/window-managers/cage/default.nix index 1632ae027c0..d9623f474f7 100644 --- a/pkgs/applications/window-managers/cage/default.nix +++ b/pkgs/applications/window-managers/cage/default.nix @@ -17,6 +17,11 @@ stdenv.mkDerivation rec { sha256 = "0ixl45g0m8b75gvbjm3gf5qg0yplspgs0xpm2619wn5sygc47sb1"; }; + patches = [ + # To fix the build with wlroots 0.14.0: + ./wlroots-0_14.patch + ]; + nativeBuildInputs = [ meson ninja pkg-config wayland scdoc makeWrapper ]; buildInputs = [ diff --git a/pkgs/applications/window-managers/cage/wlroots-0_14.patch b/pkgs/applications/window-managers/cage/wlroots-0_14.patch new file mode 100644 index 00000000000..2e56835f4fc --- /dev/null +++ b/pkgs/applications/window-managers/cage/wlroots-0_14.patch @@ -0,0 +1,36 @@ +From 9a4523d47efeafd674d419169fe161e5a3b31cb3 Mon Sep 17 00:00:00 2001 +From: Jan Beich +Date: Thu, 3 Jun 2021 17:53:11 +0000 +Subject: [PATCH 1/3] view: chase swaywm/wlroots@9e58301df7f0 + +view.c:238:52: error: no member named 'subsurfaces' in 'struct wlr_surface' + wl_list_for_each (subsurface, &view->wlr_surface->subsurfaces, parent_link) { + ~~~~~~~~~~~~~~~~~ ^ +/usr/include/wayland-util.h:443:30: note: expanded from macro 'wl_list_for_each' + for (pos = wl_container_of((head)->next, pos, member); \ + ^~~~ +/usr/include/wayland-util.h:409:32: note: expanded from macro 'wl_container_of' + (__typeof__(sample))((char *)(ptr) - \ + ^~~ + +Based on https://github.com/swaywm/sway/commit/3162766eef14 +--- + view.c | 5 ++++- + 1 file changed, 4 insertions(+), 1 deletion(-) + +diff --git a/view.c b/view.c +index b9ba9c2..3f3b0ed 100644 +--- a/view.c ++++ b/view.c +@@ -235,7 +235,10 @@ view_map(struct cg_view *view, struct wlr_surface *surface) + view->wlr_surface = surface; + + struct wlr_subsurface *subsurface; +- wl_list_for_each (subsurface, &view->wlr_surface->subsurfaces, parent_link) { ++ wl_list_for_each (subsurface, &view->wlr_surface->subsurfaces_below, parent_link) { ++ subsurface_create(view, subsurface); ++ } ++ wl_list_for_each (subsurface, &view->wlr_surface->subsurfaces_above, parent_link) { + subsurface_create(view, subsurface); + } + diff --git a/pkgs/applications/window-managers/cagebreak/default.nix b/pkgs/applications/window-managers/cagebreak/default.nix index d88bc0cdbdf..d3da358b639 100644 --- a/pkgs/applications/window-managers/cagebreak/default.nix +++ b/pkgs/applications/window-managers/cagebreak/default.nix @@ -1,6 +1,7 @@ { lib , stdenv , fetchFromGitHub +, fetchpatch , cairo , fontconfig , libxkbcommon @@ -31,6 +32,15 @@ stdenv.mkDerivation rec { hash = "sha256-1IztedN5/I/4TDKHLJ26fSrDsvJ5QAr+cbzS2PQITDE="; }; + patches = [ + # To fix the build with wlroots 0.14.0: + (fetchpatch { + # Add fixes for wlroots 0.14.0 + url = "https://github.com/project-repo/cagebreak/commit/d57869d43add58331386fc8e89c14bb2b74afe17.patch"; + sha256 = "0g6sl8y4kk0bm5x6pxqbxw2j0gyg3ybr2v9m70q2pxp70kms4lqg"; + }) + ]; + nativeBuildInputs = [ makeWrapper meson diff --git a/pkgs/applications/window-managers/labwc/default.nix b/pkgs/applications/window-managers/labwc/default.nix index c82eb76f6bf..a80c36124c8 100644 --- a/pkgs/applications/window-managers/labwc/default.nix +++ b/pkgs/applications/window-managers/labwc/default.nix @@ -1,6 +1,7 @@ { lib , stdenv , fetchFromGitHub +, fetchpatch , pkg-config , meson , ninja @@ -30,6 +31,15 @@ stdenv.mkDerivation rec { sha256 = "0rhniv5j4bypqxxj0nbpa3hclmn8znal9rldv0mrgbizn3wsbs54"; }; + patches = [ + # To fix the build with wlroots 0.14: + (fetchpatch { + # output: access texture width/height directly + url = "https://github.com/johanmalm/labwc/commit/892e93dd84c514b4e6f34a0fab01c727edd2d8de.patch"; + sha256 = "1p1pg1kd98727wlcspa2sffl7ijhvsfad6bj2rxsw322q0bz3yrh"; + }) + ]; + nativeBuildInputs = [ pkg-config meson ninja scdoc ]; buildInputs = [ cairo diff --git a/pkgs/development/libraries/wlroots/0.13.nix b/pkgs/development/libraries/wlroots/0.13.nix new file mode 100644 index 00000000000..f2343e73c58 --- /dev/null +++ b/pkgs/development/libraries/wlroots/0.13.nix @@ -0,0 +1,55 @@ +{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, wayland-scanner +, libGL, wayland, wayland-protocols, libinput, libxkbcommon, pixman +, xcbutilwm, libX11, libcap, xcbutilimage, xcbutilerrors, mesa +, libpng, ffmpeg, libuuid, xcbutilrenderutil, xwayland +}: + +stdenv.mkDerivation rec { + pname = "wlroots"; + version = "0.13.0"; + + src = fetchFromGitHub { + owner = "swaywm"; + repo = "wlroots"; + rev = version; + sha256 = "01plhbnsp5yg18arz0v8fr0pr9l4w4pdzwkg9px486qdvb3s1vgy"; + }; + + # $out for the library and $examples for the example programs (in examples): + outputs = [ "out" "examples" ]; + + nativeBuildInputs = [ meson ninja pkg-config wayland-scanner ]; + + buildInputs = [ + libGL wayland wayland-protocols libinput libxkbcommon pixman + xcbutilwm libX11 libcap xcbutilimage xcbutilerrors mesa + libpng ffmpeg libuuid xcbutilrenderutil xwayland + ]; + + mesonFlags = [ "-Dlogind-provider=systemd" "-Dlibseat=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 + ''; + + 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://github.com/swaywm/wlroots/releases/tag/${version}"; + license = licenses.mit; + platforms = platforms.linux; + maintainers = with maintainers; [ primeos synthetica ]; + }; +} diff --git a/pkgs/development/libraries/wlroots/default.nix b/pkgs/development/libraries/wlroots/default.nix index f2343e73c58..d0596de4439 100644 --- a/pkgs/development/libraries/wlroots/default.nix +++ b/pkgs/development/libraries/wlroots/default.nix @@ -1,18 +1,18 @@ { lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, wayland-scanner , libGL, wayland, wayland-protocols, libinput, libxkbcommon, pixman , xcbutilwm, libX11, libcap, xcbutilimage, xcbutilerrors, mesa -, libpng, ffmpeg, libuuid, xcbutilrenderutil, xwayland +, libpng, ffmpeg, xcbutilrenderutil, xwayland, libseat }: stdenv.mkDerivation rec { pname = "wlroots"; - version = "0.13.0"; + version = "0.14.0"; src = fetchFromGitHub { owner = "swaywm"; repo = "wlroots"; rev = version; - sha256 = "01plhbnsp5yg18arz0v8fr0pr9l4w4pdzwkg9px486qdvb3s1vgy"; + sha256 = "103sf9bsyqw18kmaih11mlxwqi9ddymm95w1lfxz06pf69xwhd39"; }; # $out for the library and $examples for the example programs (in examples): @@ -23,11 +23,9 @@ stdenv.mkDerivation rec { buildInputs = [ libGL wayland wayland-protocols libinput libxkbcommon pixman xcbutilwm libX11 libcap xcbutilimage xcbutilerrors mesa - libpng ffmpeg libuuid xcbutilrenderutil xwayland + libpng ffmpeg xcbutilrenderutil xwayland libseat ]; - mesonFlags = [ "-Dlogind-provider=systemd" "-Dlibseat=disabled" ]; - postFixup = '' # Install ALL example programs to $examples: # screencopy dmabuf-capture input-inhibitor layer-shell idle-inhibit idle diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 9c9f89777db..ac5dc382762 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -24541,8 +24541,11 @@ in }; wlroots_0_12 = callPackage ../development/libraries/wlroots/0.12.nix {}; + wlroots_0_13 = callPackage ../development/libraries/wlroots/0.13.nix {}; - sway-unwrapped = callPackage ../applications/window-managers/sway { }; + sway-unwrapped = callPackage ../applications/window-managers/sway { + wlroots = wlroots_0_13; + }; sway = callPackage ../applications/window-managers/sway/wrapper.nix { }; swaybg = callPackage ../applications/window-managers/sway/bg.nix { }; swayidle = callPackage ../applications/window-managers/sway/idle.nix { }; @@ -24562,7 +24565,9 @@ in wbg = callPackage ../applications/misc/wbg { }; - hikari = callPackage ../applications/window-managers/hikari { }; + hikari = callPackage ../applications/window-managers/hikari { + wlroots = wlroots_0_13; + }; i3 = callPackage ../applications/window-managers/i3 { xcb-util-cursor = if stdenv.isDarwin then xcb-util-cursor-HEAD else xcb-util-cursor; @@ -27564,7 +27569,8 @@ in wayfireApplications = wayfireApplications-unwrapped.withPlugins (plugins: [ plugins.wf-shell ]); inherit (wayfireApplications) wayfire wcm; wayfireApplications-unwrapped = recurseIntoAttrs ( - callPackage ../applications/window-managers/wayfire/applications.nix { } + (callPackage ../applications/window-managers/wayfire/applications.nix { }). + extend (_: _: { wlroots = wlroots_0_13; }) ); wayfirePlugins = recurseIntoAttrs ( callPackage ../applications/window-managers/wayfire/plugins.nix { @@ -27614,7 +27620,9 @@ in weston = callPackage ../applications/window-managers/weston { pipewire = pipewire_0_2; }; - wio = callPackage ../applications/window-managers/wio { }; + wio = callPackage ../applications/window-managers/wio { + wlroots = wlroots_0_13; + }; whitebox-tools = callPackage ../applications/gis/whitebox-tools { inherit (darwin.apple_sdk.frameworks) Security;