Package Details: labwc-git 0.7.2.r0.gb41af54a-1

Git Clone URL: (read-only, click to copy)
Package Base: labwc-git
Description: stacking wayland compositor with look and feel from openbox (git version)
Upstream URL:
Licenses: GPL-2.0-only
Conflicts: labwc
Provides: labwc
Submitter: TrialnError
Maintainer: TrialnError
Last Packager: TrialnError
Votes: 6
Popularity: 0.87
First Submitted: 2020-07-23 16:04 (UTC)
Last Updated: 2024-05-11 08:17 (UTC)

Latest Comments

TrialnError commented on 2022-12-28 23:32 (UTC)

In the git history of this PKGBUILD is a commit which makes it possible to compile labwc without any wlroots package. You just need to change the locally cloned repo to this revision.
Not a general solution, as it adds wlroots specific files to the package. (To be formally right the changes should also include conflicting with wlroots). But everyone that has wlroots installed only because of labwc can use this temporary solution.

TrialnError commented on 2022-12-17 16:50 (UTC) (edited on 2022-12-28 23:04 (UTC) by TrialnError)

Yeah. ~Nothing can be done~. This will resolve either due to 0.16.x hitting the repos or upstream updating the source in regards to changes from the wlroots 0.17 dev-cyclus.
Or updating either wlroots or wlroots-git and build a compatible version. But that depends on the respective local setups.

Edit: Yeah, scratch that. I totally forgot about building labwc with statically linked wlroots... >.>
So there are three possible solutions.
1. Wait for wlroots in the repos (currently in staging)
2. Build with a modified wlroots-git PKGBUILD a working wlroots
3. Adjust labwc-git PKGBUILD to build it with wlroots included. Needs the following: --force-fallback-for=wlroots

kode54 commented on 2022-12-14 05:48 (UTC)

This package is now broken because wlroots-git is at 0.17.

shoryuken commented on 2022-10-26 20:59 (UTC) (edited on 2022-10-26 21:00 (UTC) by shoryuken)

Build fails for me:

[4/232] Compiling C object subprojects/wlroots/libwlroots.a.p/render_vulkan_renderer.c.o
FAILED: subprojects/wlroots/libwlroots.a.p/render_vulkan_renderer.c.o 
cc -Isubprojects/wlroots/libwlroots.a.p -Isubprojects/wlroots -I../labwc/subprojects/wlroots -Isubprojects/wlroots/include -I../labwc/subprojects/wlroots/include -Isubprojects/wlroots/protocol -I../labwc/subprojects/wlroots/protocol -Isubprojects/wlroots/render/vulkan/shaders -I/usr/include/libdrm -I/usr/include/pixman-1 -flto=auto -fdiagnostics-color=always -D_FILE_OFFSET_BITS=64 -Wall -Winvalid-pch -Wextra -Werror -std=c11 -O0 -DWLR_USE_UNSTABLE -DWLR_LITTLE_ENDIAN=1 -DWLR_BIG_ENDIAN=0 -Wundef -Wlogical-op -Wmissing-include-dirs -Wold-style-definition -Wpointer-arith -Winit-self -Wstrict-prototypes -Wimplicit-fallthrough=2 -Wendif-labels -Wstrict-aliasing=2 -Woverflow -Wmissing-prototypes -Walloca -Wno-missing-braces -Wno-missing-field-initializers -Wno-unused-parameter -fmacro-prefix-map=../labwc/subprojects/wlroots/= -DHAS_GBM_BO_GET_FD_FOR_PLANE=1 -DLIBINPUT_HAS_HOLD_GESTURES=1 -DLIBINPUT_HAS_SCROLL_VALUE120=1 '-DICONDIR="/usr/local/share/icons"' -DHAS_XCB_XFIXES_SET_CLIENT_DISCONNECT_MODE=1 -DHAS_XCB_ERRORS=1 -DHAS_EGL=1 -march=x86-64 -mtune=generic -O2 -pipe -fno-plt -fexceptions -Wp,-D_FORTIFY_SOURCE=2 -Wformat -Werror=format-security -fstack-clash-protection -fcf-protection -fPIC -MD -MQ subprojects/wlroots/libwlroots.a.p/render_vulkan_renderer.c.o -MF subprojects/wlroots/libwlroots.a.p/render_vulkan_renderer.c.o.d -o subprojects/wlroots/libwlroots.a.p/render_vulkan_renderer.c.o -c ../labwc/subprojects/wlroots/render/vulkan/renderer.c
../labwc/subprojects/wlroots/render/vulkan/renderer.c: In function 'vulkan_read_pixels':
../labwc/subprojects/wlroots/render/vulkan/renderer.c:1152:78: error: dereferencing type-punned pointer might break strict-aliasing rules [-Werror=strict-aliasing]
 1152 |         res = vkMapMemory(dev, dst_img_memory, 0, VK_WHOLE_SIZE, 0, (void **)&d);
      |                                                                              ^~
cc1: all warnings being treated as errors

TrialnError commented on 2022-01-23 11:20 (UTC)

This is broken until wlroots 0.15.0 hits the repos.
See for some more information.
If you don't need wlroots-git for anything else, you could change the PKGBUILD to build from tag 0.15.x

d3Xt3r commented on 2022-01-23 10:35 (UTC)

@TrialnError I'm no longer able to build this, seems like it requires wlroots 0.15.0, but wlroots-git is currently on 0.16.0.

This is from a fresh Arch install inside a VM (using the archinstall script):

Program git found: YES (/usr/bin/git)
Automatic wrap-based subproject downloading is disabled
Subproject wlroots is buildable: NO (disabling)
Found pkg-config: /usr-bin-pkg-config (1.9.0)
Dependency wlroots found: NO found 0.16.0 but need: ’=0.15.0’
Found CMake: /usr/bin/cmake (3.22.1)
Run-time dependency wlroots found: NO (tried pkgconfig and cmake)
Looking for a fallback subproject for the dependency wlroots ERROR: Subproject "subprojects/wlroots" required but not found.
A full log can be found at [...]
==> ERROR: A failure occurred in build().
-> error making: labwc-git

cmsigler commented on 2022-01-04 00:21 (UTC)

@TrialnError --

No problem! Thank you :) I can see where not having to follow wlroots-git would be A Good Thing(TM)


TrialnError commented on 2022-01-03 20:02 (UTC)

thanks for your work. But I'm not sure if I should add those changes. Upstream changed their way in regards how to handle breaking changes from wlroots. So after wlroots 0.15 hits the stable repos, this PKGBUILD should change the dep from wlroots-git to wlroots.
Unless there is a fairly active branch, which keeps track of the breaking changes of wlroots.

cmsigler commented on 2022-01-03 16:31 (UTC) (edited on 2022-01-03 17:01 (UTC) by cmsigler)


I got labwc-git to build on 2022-01-03.

I patched PKGBUILD for wlroots-git to get it to build.

I needed to add two patches due to version upgrade of wlroots-git to 0.16.0 ->


--- labwc/subprojects/wlroots.wrap.orig 2022-01-03 10:30:46.912189312 -0500
+++ labwc/subprojects/wlroots.wrap  2022-01-03 10:37:13.781336410 -0500
@@ -1,3 +1,3 @@
 url =
-revision = 0.15.0
+revision = 0.16.0

--- labwc/  2022-01-03 11:00:14.665057860 -0500
+++ labwc/   2022-01-03 11:07:51.547293755 -0500
@@ -37,7 +37,7 @@
 add_project_arguments('-DLABWC_VERSION=@0@'.format(version), language: 'c')

-wlroots_version = ['=0.15.0']
+wlroots_version = ['=0.16.0']
 wlroots_proj = subproject(
   default_options: ['default_library=static', 'examples=false'],

Patch for PKGBUILD:

--- PKGBUILD.orig   2021-04-19 15:48:29.000000000 -0400
+++ PKGBUILD    2022-01-03 11:36:54.183264173 -0500
@@ -1,20 +1,40 @@
 # Maintainer: Lex Black <>
+# Contributor: Clemmitt Sigler <>

-pkgdesc='stacking wayland compositor with look and feel from openbox (git version)'
+pkgdesc='Stacking Wayland compositor with look and feel from Openbox (git version)'
-depends=('pango' 'seatd' 'wlroots-git' 'wayland' 'wayland-protocols' 'xorg-xwayland')
+depends=('pango' 'wlroots-git' 'wayland' 'wayland-protocols')
 makedepends=('git' 'meson' 'scdoc')
-optdepends=("bemenu: default launcher via Alt+F3")
+optdepends=("xorg-xwayland: XWayland support"
+            "xcb-util: Provide full XCB support"
+            "wayland-utils: Show compositor info"
+            "bemenu: Dynamic menu library and client program inspired by dmenu"
+            "fuzzel: Application launcher for wlroots-based Wayland compositors"
+            "wofi: Launcher for wlroots-based Wayland compositors"
+            "waybar: Highly customizable Wayland bar for Sway, wlroots-based compositors"
+            "yambar: Modular status panel for X11 and Wayland, inspired by Polybar"
+            "lavalauncher: A simple launcher panel for Wayland"
+            "swaylock: Screen locker for Wayland"
+            "kanshi: Dynamic output configuration for Wayland WMs"
+            "wlr-randr: Utility to manage outputs of a Wayland compositor"
+            "swaybg: Wallpaper tool for Wayland compositors"
+            "grim: Grab images from a Wayland compositor"
+            "wf-recorder: A video recorder for wlroots-based compositors like Sway or Wayfire"
+            "waypipe: Proxy for Wayland protocol applications; like ssh -X")
+        'wlroots-0-16-0.patch'
+        '')
+          '9bc2edadc6b692b6f12ba5a110ccfcb7906bb4a8'
+          '38d72c9643873023c882cd4bfb2efd6e80572100')

 pkgver() {
@@ -22,6 +42,12 @@
   git describe --long | sed 's/\([^-]*-g\)/r\1/;s/-/./g'

+prepare() {
+  cd "$_pkgname"
+  patch -Np1 -i "${srcdir}/wlroots-0-16-0.patch"
+  patch -Np1 -i "${srcdir}/"
 build() {
   cd "$_pkgname"
   arch-meson -Dman-pages=enabled ../build

I hope all this helps :)

Clemmitt Sigler