wlroots: 0.13.0 -> 0.14.0

The new release comes with breaking changes so we temporarily introduce
wlroots_0_13 for packages that don't yet support wlroots 0.14.
For the rest of the packages the required upstream patches for this new
wlroots release are fetched (if feasible).
This commit is contained in:
Michael Weiss 2021-06-23 14:41:18 +02:00
parent 72dac3d449
commit 203c8edcda
No known key found for this signature in database
GPG key ID: 5BE487C4D4771D83
7 changed files with 132 additions and 10 deletions

View file

@ -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 = [

View file

@ -0,0 +1,36 @@
From 9a4523d47efeafd674d419169fe161e5a3b31cb3 Mon Sep 17 00:00:00 2001
From: Jan Beich <jbeich@FreeBSD.org>
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);
}

View file

@ -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

View file

@ -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

View file

@ -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 ];
};
}

View file

@ -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

View file

@ -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;