Compare commits

..

39 commits

Author SHA1 Message Date
Fedora Release Engineering
e479909c1d Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild 2026-07-17 08:52:15 +00:00
b7b643804e
Update to 0.20.2 (#2497891) 2026-07-07 20:03:34 -07:00
9e3cf5a0cf
Update to 0.20.1 (#2480014) 2026-05-19 22:46:13 -07:00
460ac43350
Update to 0.20.0 (#2435845) 2026-03-26 19:27:15 -07:00
07351d6b73
Update to 0.20.0~rc5 2026-03-19 19:10:08 -07:00
75918f6d7d
Update to 0.20.0-rc2 2026-02-16 01:02:35 -08:00
5035af13d4
Apply upstream patch for libinput 1.31 compatibility 2026-02-12 19:15:32 -08:00
2ea14ebe8e
Rebuild for libdisplay-info 0.3.0 2026-01-24 16:45:59 -08:00
Fedora Release Engineering
6d290402fb Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild 2026-01-17 20:18:14 +00:00
Yaakov Selkowitz
4b409cc451 Fix discarded const qualifier warnings with GCC 15
https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/5203
2025-12-22 23:45:46 -05:00
69922850bd
Update to 0.19.2 (#2405567) 2025-10-21 23:14:08 -07:00
a034b0be85
Apply upstream patch for crash on disabling outputs 2025-09-28 14:39:43 -07:00
00b7c19be8
Update to 0.19.1 (#2397203) 2025-09-21 14:52:42 -07:00
Fedora Release Engineering
b11c779550 Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild 2025-07-25 20:29:00 +00:00
6442a76f36
Update to 0.19.0 (#2359256) 2025-05-16 18:32:23 -07:00
Sam Day
6eb9ee5920 Add MR!4985 backport patch needed by phoc 0.45
This patch has already merged into mainline and the 0.18 branch
upstream, but has not yet been released. It can be dropped in 0.18.3

Signed-off-by: Sam Day <me@samcday.com>
2025-02-15 16:17:03 +01:00
f55f4ba70e Rebuild for libdisplay-info 0.2.0
Rebuild for libdisplay-info 0.2.0
2025-02-10 09:59:49 -05:00
Fedora Release Engineering
373ca6b1b1 Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild 2025-01-19 15:08:37 +00:00
8826828a2a
Update to 0.18.2 (#2331871) 2024-12-11 16:55:49 -08:00
ebd7df88f6
Update to 0.18.1 (#2313753) 2024-09-20 07:37:51 -07:00
a00f488860
Update to 0.18.0 (#2297921) 2024-08-08 21:06:11 -07:00
Fedora Release Engineering
135263e28d Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild 2024-07-20 09:26:58 +00:00
17b823e3fa
Update to 0.17.4 (#2294793) 2024-06-30 20:56:17 -07:00
06e8851845
Update to 0.17.3 2024-04-26 12:07:13 -07:00
82fa7cf455
Update to 0.17.2 (#2269046) 2024-03-11 18:25:01 -07:00
Fedora Release Engineering
5167a5eda8 Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild 2024-01-27 08:58:43 +00:00
bf56e9526c
Apply patch for GCC 14 -Werror=calloc-transposed-args 2024-01-18 00:20:43 -08:00
99aa7067f0
Update to 0.17.1 (#2255547) 2023-12-21 17:04:14 -08:00
bb0224f81e
Apply patches from 0.17.x bugfix branch 2023-12-07 21:06:32 -08:00
000c5dbb93
Update to 0.17.0 (#2250885) 2023-12-02 22:24:52 -08:00
0a1c111cc7
Use xcb-errors util library 2023-12-02 22:24:26 -08:00
Fedora Release Engineering
23ecf089bf Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-07-22 18:17:22 +00:00
1a73f49d48
Apply upstream patch to remove hardcoded Vulkan validation layers 2023-04-16 17:30:02 -07:00
592cea998f
Update to 0.16.2 (#2168992) 2023-02-10 18:04:40 -08:00
Fedora Release Engineering
6bef925b32 Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
Signed-off-by: Fedora Release Engineering <releng@fedoraproject.org>
2023-01-21 06:54:22 +00:00
b32c37f87e
Update to 0.16.1 2022-12-25 08:14:54 -08:00
4a23fc87a5
Sync examples.meson.build with upstream
Include all available examples
2022-12-02 22:27:24 -08:00
83a52a2862
Add patch for compatibility with older libdrm 2022-12-02 22:06:59 -08:00
3993c57fb9
Update to 0.16.0 (#2142159) 2022-12-02 22:06:32 -08:00
7 changed files with 278 additions and 294 deletions

View file

@ -1,45 +1,33 @@
From d5599fca9bdc4580929f904e21b6bc89e3ce8120 Mon Sep 17 00:00:00 2001
From e021326f7de0505fcae85f5732885848b21edf9c Mon Sep 17 00:00:00 2001
From: Aleksei Bavshin <alebastr89@gmail.com>
Date: Sat, 25 Jun 2022 21:22:08 -0700
Subject: [PATCH 1/3] Revert "layer-shell: error on 0 dimension without
anchors"
Subject: [PATCH] Revert "layer-shell: error on 0 dimension without anchors"
This reverts commit 8dec751a6d84335fb04288b8efab6dd5c90288d3.
---
types/wlr_layer_shell_v1.c | 20 --------------------
1 file changed, 20 deletions(-)
types/wlr_layer_shell_v1.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/types/wlr_layer_shell_v1.c b/types/wlr_layer_shell_v1.c
index 456dbc0e..55a6cfb8 100644
index 2d838498..c3c50d78 100644
--- a/types/wlr_layer_shell_v1.c
+++ b/types/wlr_layer_shell_v1.c
@@ -328,26 +328,6 @@ static void layer_surface_role_commit(struct wlr_surface *wlr_surface) {
@@ -358,6 +358,7 @@ static void layer_surface_role_client_commit(struct wlr_surface *wlr_surface) {
uint32_t anchor = surface->pending.anchor;
+#if 0
const uint32_t horiz = ZWLR_LAYER_SURFACE_V1_ANCHOR_LEFT |
ZWLR_LAYER_SURFACE_V1_ANCHOR_RIGHT;
if (surface->pending.desired_width == 0 && (anchor & horiz) != horiz) {
@@ -375,6 +376,7 @@ static void layer_surface_role_client_commit(struct wlr_surface *wlr_surface) {
"height 0 requested without setting top and bottom anchors");
return;
}
+#endif
- const uint32_t horiz = ZWLR_LAYER_SURFACE_V1_ANCHOR_LEFT |
- ZWLR_LAYER_SURFACE_V1_ANCHOR_RIGHT;
- if (surface->pending.desired_width == 0 &&
- (surface->pending.anchor & horiz) != horiz) {
- wl_resource_post_error(surface->resource,
- ZWLR_LAYER_SURFACE_V1_ERROR_INVALID_SIZE,
- "width 0 requested without setting left and right anchors");
- return;
- }
-
- const uint32_t vert = ZWLR_LAYER_SURFACE_V1_ANCHOR_TOP |
- ZWLR_LAYER_SURFACE_V1_ANCHOR_BOTTOM;
- if (surface->pending.desired_height == 0 &&
- (surface->pending.anchor & vert) != vert) {
- wl_resource_post_error(surface->resource,
- ZWLR_LAYER_SURFACE_V1_ERROR_INVALID_SIZE,
- "height 0 requested without setting top and bottom anchors");
- return;
- }
-
surface->current = surface->pending;
surface->pending.committed = 0;
if ((anchor & surface->pending.exclusive_edge) != surface->pending.exclusive_edge) {
wlr_surface_reject_pending(wlr_surface, surface->resource,
--
2.36.0
2.49.0

View file

@ -1,82 +1,139 @@
# Client examples are now available from a separate repository,
# https://gitlab.freedesktop.org/wlroots/wlr-clients
project(
'wlroots-examples',
'c',
meson_version: '>=0.51.2',
default_options: [
'c_std=c11',
'warning_level=2',
'werror=false',
],
'wlroots-examples',
'c',
meson_version: '>=0.58.0',
default_options: [
'c_std=c11',
'warning_level=2',
'werror=false',
],
)
cc = meson.get_compiler('c')
add_global_arguments('-DWLR_USE_UNSTABLE', language : 'c')
add_project_arguments([
'-D_POSIX_C_SOURCE=200809L',
'-DWLR_USE_UNSTABLE',
], language: 'c')
wlroots = dependency('wlroots')
wayland_client = dependency('wayland-client')
wayland_server = dependency('wayland-server')
cc = meson.get_compiler('c')
add_project_arguments(cc.get_supported_arguments([
'-Wno-missing-braces',
'-Wno-missing-field-initializers',
'-Wno-unused-parameter'
]), language: 'c')
cairo = dependency('cairo')
drm = dependency('libdrm')
egl = dependency('egl')
glesv2 = dependency('glesv2')
# Only needed for drm_fourcc.h
libdrm = dependency('libdrm').partial_dependency(compile_args: true, includes: true)
wayland_client = dependency('wayland-client')
wayland_egl = dependency('wayland-egl')
wayland_protos = dependency('wayland-protocols', version: '>=1.27')
wayland_scanner_dep = dependency('wayland-scanner', native: true)
wayland_scanner = find_program(
wayland_scanner_dep.get_variable('wayland_scanner'),
native: true,
)
wayland_server = dependency('wayland-server')
wlroots = dependency('wlroots-0.20')
xkbcommon = dependency('xkbcommon')
wlr_protos = dependency('wlroots')
rt = cc.find_library('rt')
wl_protocol_dir = wayland_protos.get_variable('pkgdatadir')
# epoll is a separate library in FreeBSD
if host_machine.system() == 'freebsd'
libepoll = [dependency('epoll-shim')]
else
libepoll = []
endif
protocols = {
# Stable upstream protocols
'xdg-shell': wl_protocol_dir / 'stable/xdg-shell/xdg-shell.xml',
}
libpng = dependency('libpng', required: false, disabler: true)
protocols_code = {}
protocols_server_header = {}
protocols_client_header = {}
examples = {
foreach name, path : protocols
code = custom_target(
name.underscorify() + '_c',
input: path,
output: '@BASENAME@-protocol.c',
command: [wayland_scanner, 'private-code', '@INPUT@', '@OUTPUT@'],
)
server_header = custom_target(
name.underscorify() + '_server_h',
input: path,
output: '@BASENAME@-protocol.h',
command: [wayland_scanner, 'server-header', '@INPUT@', '@OUTPUT@'],
)
client_header = custom_target(
name.underscorify() + '_client_h',
input: path,
output: '@BASENAME@-client-protocol.h',
command: [wayland_scanner, 'client-header', '@INPUT@', '@OUTPUT@'],
build_by_default: false,
)
protocols_code += { name: code }
protocols_server_header += { name: server_header }
protocols_client_header += { name: client_header }
endforeach
compositors = {
'simple': {
'src': 'simple.c',
'dep': [wlroots, wayland_server, glesv2, xkbcommon],
},
'pointer': {
'src': 'pointer.c',
'dep': [wlroots, wayland_server, xkbcommon],
},
'touch': {
'src': ['touch.c', 'cat.c'],
'dep': [wlroots, wayland_server, xkbcommon],
},
'tablet': {
'src': 'tablet.c',
'dep': [wlroots, wayland_server, xkbcommon],
},
'rotation': {
'src': ['rotation.c', 'cat.c'],
'dep': [wlroots, wayland_server, xkbcommon],
},
'multi-pointer': {
'src': 'multi-pointer.c',
'dep': [wlroots, wayland_server, glesv2, xkbcommon],
},
'output-layout': {
'src': ['output-layout.c', 'cat.c'],
'dep': [wlroots, wayland_server, xkbcommon],
},
'screencopy': {
'src': 'screencopy.c',
'dep': [libpng, wayland_client, wlr_protos, rt],
'scene-graph': {
'src': 'scene-graph.c',
'proto': ['xdg-shell'],
},
'output-layers': {
'src': 'output-layers.c',
'proto': [
'xdg-shell',
],
},
'cairo-buffer': {
'src': 'cairo-buffer.c',
'dep': cairo,
},
'embedded': {
'src': [
'embedded.c',
protocols_code['xdg-shell'],
protocols_client_header['xdg-shell'],
],
'dep': [wayland_client, wayland_egl, egl, glesv2],
},
}
foreach name, info : examples
all_dep_found = true
foreach d : info.get('dep')
all_dep_found = all_dep_found and d.found()
foreach name, info : compositors
extra_src = []
foreach p : info.get('proto', [])
extra_src += protocols_server_header[p]
endforeach
if all_dep_found
executable(
name,
info.get('src'),
dependencies: info.get('dep'),
)
else
warning('Dependencies not satisfied for ' + name)
endif
executable(
name,
[info.get('src'), extra_src],
dependencies: [libdrm, wlroots, wayland_server, xkbcommon, info.get('dep', [])],
)
endforeach

View file

@ -1,2 +1,2 @@
SHA512 (wlroots-0.15.1.tar.gz) = 6228160f2f350a406c612f1048d7075cf2f78206cc84bc16f889d5d0acd614f9e98845fffed03d7067cfdbd7558b77fcc5d8cedc3868d866e476523126a63677
SHA512 (wlroots-0.15.1.tar.gz.sig) = c264274b132307276395648e7bfc2cd7d9061cd0f1bd4f5cb3a9acf859aeca536b1c57611adfaa9bf7334095e34df4e42253ba37fa30ae76a0df0a9e7091dfa3
SHA512 (wlroots-0.20.2.tar.gz) = 634345e23d0b6c28cb501c0dd0ef9c50d529a92ae5c8455e99e876f3f37ee244ac19dd097f76416b2ae4fd7c3f02e39a92a9322cf5a0caf8da21c31cd900e508
SHA512 (wlroots-0.20.2.tar.gz.sig) = e74dc0abfabed7f40ba4f0e5edfc30ef92b95ebcf4a6aca3b2a605b04b5f2345a6a842cdf56819ce1f050c6181b646eae19dbef835354df7b09562cebbdaa474

View file

@ -1,30 +0,0 @@
From 55c4ffae659ccd15ba40ec9355fcdc2bb68c32b7 Mon Sep 17 00:00:00 2001
From: Alexander Orzechowski <orzechowski.alexander@gmail.com>
Date: Sat, 4 Jun 2022 18:18:02 -0400
Subject: [PATCH] wlr_output_commit_state: Make sure to clear the back buffer
Fixes: #3445
---
types/output/output.c | 2 ++
1 file changed, 2 insertions(+)
diff --git a/types/output/output.c b/types/output/output.c
index 85590ab6..4cf0fa8f 100644
--- a/types/output/output.c
+++ b/types/output/output.c
@@ -654,10 +654,12 @@ bool wlr_output_test(struct wlr_output *output) {
bool wlr_output_commit(struct wlr_output *output) {
if (!output_basic_test(output)) {
wlr_log(WLR_ERROR, "Basic output test failed for %s", output->name);
+ output_clear_back_buffer(output);
return false;
}
if (!output_ensure_buffer(output)) {
+ output_clear_back_buffer(output);
return false;
}
--
2.37.3

View file

@ -1,32 +0,0 @@
From 637f12cefc0cd114d86402e793776526fdd66c2e Mon Sep 17 00:00:00 2001
From: Sebastian Krzyszkowiak <dos@dosowisko.net>
Date: Sat, 5 Mar 2022 08:00:39 +0100
Subject: [PATCH 2/3] wlr_output_layout_contains_point: handle outputs that
aren't in the layout
Instead of crashing, return `false` when the specified output isn't part
of the layout, as we can be sure that it doesn't contain the specified
point.
(cherry picked from commit 13fcdba75cf5f21cfd49c1a05f4fa62f77619b40)
---
types/wlr_output_layout.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/types/wlr_output_layout.c b/types/wlr_output_layout.c
index eb672f06..f0f546da 100644
--- a/types/wlr_output_layout.c
+++ b/types/wlr_output_layout.c
@@ -242,6 +242,9 @@ bool wlr_output_layout_contains_point(struct wlr_output_layout *layout,
if (reference) {
struct wlr_output_layout_output *l_output =
wlr_output_layout_get(layout, reference);
+ if (!l_output) {
+ return false;
+ }
struct wlr_box *box = output_layout_output_get_box(l_output);
return wlr_box_contains_point(box, lx, ly);
} else {
--
2.36.0

View file

@ -1,108 +0,0 @@
From eed77e4735557eb829aebb82bb8cea9fa0631d6f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Guido=20G=C3=BCnther?= <agx@sigxcpu.org>
Date: Fri, 25 Mar 2022 18:48:58 +0100
Subject: [PATCH 3/3] xdg-activation: Deduplicate token creation code
There were three places initializing a token:
- wlr_xdg_activation_v1_add_token
- wlr_xdg_activation_token_v1_create
- activation_handle_get_activation_token
The initialization of the token.destroy was missing in the first one. To
prevent these functions from getting out of sync move the token creation
into a common function.
Fixes 4c59f7d4 ("xdg-activation: Allow to submit tokens")
(cherry picked from commit dd03d839ab56c3e5d7c607a8d76e58e0b75edb85)
---
types/wlr_xdg_activation_v1.c | 42 +++++++++++++++++------------------
1 file changed, 20 insertions(+), 22 deletions(-)
diff --git a/types/wlr_xdg_activation_v1.c b/types/wlr_xdg_activation_v1.c
index 208ada28..b610fe17 100644
--- a/types/wlr_xdg_activation_v1.c
+++ b/types/wlr_xdg_activation_v1.c
@@ -248,15 +248,11 @@ static void activation_handle_destroy(struct wl_client *client,
wl_resource_destroy(activation_resource);
}
-static void activation_handle_get_activation_token(struct wl_client *client,
- struct wl_resource *activation_resource, uint32_t id) {
- struct wlr_xdg_activation_v1 *activation =
- activation_from_resource(activation_resource);
-
+static struct wlr_xdg_activation_token_v1 *activation_token_create(
+ struct wlr_xdg_activation_v1 *activation) {
struct wlr_xdg_activation_token_v1 *token = calloc(1, sizeof(*token));
if (token == NULL) {
- wl_client_post_no_memory(client);
- return;
+ return NULL;
}
wl_list_init(&token->link);
wl_list_init(&token->seat_destroy.link);
@@ -265,6 +261,20 @@ static void activation_handle_get_activation_token(struct wl_client *client,
token->activation = activation;
+ return token;
+}
+
+static void activation_handle_get_activation_token(struct wl_client *client,
+ struct wl_resource *activation_resource, uint32_t id) {
+ struct wlr_xdg_activation_v1 *activation =
+ activation_from_resource(activation_resource);
+
+ struct wlr_xdg_activation_token_v1 *token = activation_token_create(activation);
+ if (token == NULL) {
+ wl_client_post_no_memory(client);
+ return;
+ }
+
uint32_t version = wl_resource_get_version(activation_resource);
token->resource = wl_resource_create(client,
&xdg_activation_token_v1_interface, version, id);
@@ -371,19 +381,12 @@ struct wlr_xdg_activation_v1 *wlr_xdg_activation_v1_create(
struct wlr_xdg_activation_token_v1 *wlr_xdg_activation_token_v1_create(
struct wlr_xdg_activation_v1 *activation) {
- struct wlr_xdg_activation_token_v1 *token = calloc(1, sizeof(*token));
+ struct wlr_xdg_activation_token_v1 *token = activation_token_create(activation);
+
if (token == NULL) {
return NULL;
}
- wl_list_init(&token->link);
- // Currently no way to set seat/surface
- wl_list_init(&token->seat_destroy.link);
- wl_list_init(&token->surface_destroy.link);
- wl_signal_init(&token->events.destroy);
-
- token->activation = activation;
-
if (!token_init(token)) {
wlr_xdg_activation_token_v1_destroy(token);
return NULL;
@@ -412,15 +415,10 @@ struct wlr_xdg_activation_token_v1 *wlr_xdg_activation_v1_add_token(
struct wlr_xdg_activation_v1 *activation, const char *token_str) {
assert(token_str);
- struct wlr_xdg_activation_token_v1 *token = calloc(1, sizeof(*token));
+ struct wlr_xdg_activation_token_v1 *token = activation_token_create(activation);
if (token == NULL) {
return NULL;
}
- wl_list_init(&token->link);
- wl_list_init(&token->seat_destroy.link);
- wl_list_init(&token->surface_destroy.link);
-
- token->activation = activation;
token->token = strdup(token_str);
wl_list_insert(&activation->tokens, &token->link);
--
2.36.0

View file

@ -1,11 +1,15 @@
# Version of the .so library
%global abi_ver 10
%global abi_ver 0.20
# libliftoff does not bump soname on API changes
%global liftoff_ver 0.5.0
Name: wlroots
Version: 0.15.1
Release: 5%{?dist}
Version: 0.20.2
Release: 2%{?dist}
Summary: A modular Wayland compositor library
%global tag %{gsub %{version} ~ -}
# Source files/overall project licensed as MIT, but
# - HPND-sell-variant
# * protocol/drm.xml
@ -16,7 +20,6 @@ Summary: A modular Wayland compositor library
# * protocol/wlr-layer-shell-unstable-v1.xml
# * protocol/wlr-output-management-unstable-v1.xml
# - LGPL-2.1-or-later
# * protocol/idle.xml
# * protocol/server-decoration.xml
# Those files are processed to C-compilable files by the
# `wayland-scanner` binary during build and don't alter
@ -24,8 +27,8 @@ Summary: A modular Wayland compositor library
# the underlying licenses.
License: MIT
URL: https://gitlab.freedesktop.org/wlroots/wlroots
Source0: %{url}/-/releases/%{version}/downloads/%{name}-%{version}.tar.gz
Source1: %{url}/-/releases/%{version}/downloads/%{name}-%{version}.tar.gz.sig
Source0: %{url}/-/releases/%{tag}/downloads/%{name}-%{tag}.tar.gz
Source1: %{url}/-/releases/%{tag}/downloads/%{name}-%{tag}.tar.gz.sig
# 0FDE7BE0E88F5E48: emersion <contact@emersion.fr>
Source2: https://emersion.fr/.well-known/openpgpkey/hu/dj3498u4hyyarh35rkjfnghbjxug6b19#/gpgkey-0FDE7BE0E88F5E48.gpg
@ -34,42 +37,52 @@ Source2: https://emersion.fr/.well-known/openpgpkey/hu/dj3498u4hyyarh35rk
# - only has targets for examples known to compile well (cf. "examples) global)
Source3: examples.meson.build
# Following 3 patches are required for phoc.
Patch0: Revert-layer-shell-error-on-0-dimension-without-anch.patch
Patch1: wlroots-0.15.1-wlr_output_layout_contains_point-handle-outputs-that.patch
Patch2: wlroots-0.15.1-xdg-activation-Deduplicate-token-creation-code.patch
# wlroots/wlroots!3601
Patch3: wlroots-0.15.1-wlr_output_commit_state-Make-sure-to-clear-the-back-.patch
# Upstream patches
# Fedora patches
# Following patch is required for phoc.
Patch: Revert-layer-shell-error-on-0-dimension-without-anch.patch
BuildRequires: gcc
BuildRequires: glslang
BuildRequires: gnupg2
BuildRequires: meson >= 0.58.1
BuildRequires: meson >= 1.3
BuildRequires: (pkgconfig(libliftoff) >= %{liftoff_ver} with pkgconfig(libliftoff) < 0.6)
BuildRequires: pkgconfig(egl)
BuildRequires: pkgconfig(gbm) >= 17.1.0
BuildRequires: pkgconfig(gbm) >= 21.1
BuildRequires: pkgconfig(glesv2)
BuildRequires: pkgconfig(libdrm) >= 2.4.109
BuildRequires: pkgconfig(libinput) >= 1.14.0
BuildRequires: pkgconfig(hwdata)
BuildRequires: pkgconfig(lcms2)
BuildRequires: pkgconfig(libdisplay-info) >= 0.2.0
BuildRequires: pkgconfig(libdrm) >= 2.4.129
BuildRequires: pkgconfig(libinput) >= 1.21.0
BuildRequires: pkgconfig(libseat)
BuildRequires: pkgconfig(libsystemd) >= 237
BuildRequires: pkgconfig(libudev)
BuildRequires: pkgconfig(pixman-1)
BuildRequires: pkgconfig(vulkan)
BuildRequires: pkgconfig(pixman-1) >= 0.46.0
BuildRequires: pkgconfig(vulkan) >= 1.2.182
BuildRequires: pkgconfig(wayland-client)
BuildRequires: pkgconfig(wayland-egl)
BuildRequires: pkgconfig(wayland-protocols) >= 1.24
BuildRequires: pkgconfig(wayland-protocols) >= 1.47
BuildRequires: pkgconfig(wayland-scanner)
BuildRequires: pkgconfig(wayland-server) >= 1.19
BuildRequires: pkgconfig(wayland-server) >= 1.24.0
BuildRequires: pkgconfig(x11-xcb)
BuildRequires: pkgconfig(xcb)
BuildRequires: pkgconfig(xcb-composite)
BuildRequires: pkgconfig(xcb-dri3)
BuildRequires: pkgconfig(xcb-errors)
BuildRequires: pkgconfig(xcb-ewmh)
BuildRequires: pkgconfig(xcb-icccm)
BuildRequires: pkgconfig(xcb-present)
BuildRequires: pkgconfig(xcb-render)
BuildRequires: pkgconfig(xcb-renderutil)
BuildRequires: pkgconfig(xkbcommon)
BuildRequires: pkgconfig(xcb-res)
BuildRequires: pkgconfig(xcb-shm)
BuildRequires: pkgconfig(xcb-xfixes) >= 1.15
BuildRequires: pkgconfig(xcb-xinput)
BuildRequires: pkgconfig(xkbcommon) >= 1.8.0
BuildRequires: pkgconfig(xwayland)
# only select examples are supported for being readily compilable (see SOURCE3)
%global examples \
cat multi-pointer output-layout pointer rotation screencopy simple tablet touch
# libliftoff does not bump soname on API changes
Requires: libliftoff%{?_isa} >= %{liftoff_ver}
%description
%{summary}.
@ -82,8 +95,8 @@ Requires: %{name}%{?_isa} == %{version}-%{release}
Recommends: pkgconfig(xcb-icccm)
# for examples
Suggests: gcc
Suggests: meson >= 0.51.2
Suggests: pkgconfig(libpng)
Suggests: meson >= 0.58.0
Suggests: pkgconfig(wayland-egl)
%description devel
Development files for %{name}.
@ -91,18 +104,16 @@ Development files for %{name}.
%prep
%{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}'
%autosetup -p1
%autosetup -N -n %{name}-%{tag}
# apply unconditional patches (0..99)
%autopatch -p1 -M99
# apply conditional patches (100..)
%build
MESON_OPTIONS=(
# Disable options requiring extra/unpackaged dependencies
-Dexamples=false
-Dxcb-errors=disabled
%ifarch s390x
# Disable -Werror on s390x: https://github.com/swaywm/wlroots/issues/2018
-Dwerror=false
%endif
)
%{meson} "${MESON_OPTIONS[@]}"
@ -111,11 +122,7 @@ MESON_OPTIONS=(
%install
%{meson_install}
EXAMPLES=( %{examples} ) # Normalize whitespace by creating an array
for example in "${EXAMPLES[@]}"; do
install -pm0644 -Dt '%{buildroot}/%{_pkgdocdir}/examples' examples/"${example}".[ch]
done
install -pm0644 -Dt '%{buildroot}/%{_pkgdocdir}/examples' examples/*.[ch]
install -pm0644 -D '%{SOURCE3}' '%{buildroot}/%{_pkgdocdir}/examples/meson.build'
@ -126,17 +133,119 @@ install -pm0644 -D '%{SOURCE3}' '%{buildroot}/%{_pkgdocdir}/examples/meson.build
%files
%license LICENSE
%doc README.md
%{_libdir}/lib%{name}.so.%{abi_ver}*
%{_libdir}/libwlroots-%{abi_ver}.so
%files devel
%doc %{_pkgdocdir}/examples
%{_includedir}/wlr
%{_libdir}/lib%{name}.so
%{_libdir}/pkgconfig/%{name}.pc
%{_includedir}/wlroots-%{abi_ver}/wlr
%{_libdir}/pkgconfig/wlroots-%{abi_ver}.pc
%changelog
* Fri Jul 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 0.20.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild
* Tue Jul 07 2026 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.20.2-1
- Update to 0.20.2 (#2497891)
* Tue May 19 2026 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.20.1-1
- Update to 0.20.1 (#2480014)
* Thu Mar 26 2026 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.20.0-1
- Update to 0.20.0 (#2435845)
* Thu Mar 19 2026 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.20.0~rc5-1
- Update to 0.20.0-rc5
* Sat Feb 14 2026 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.20.0~rc2-1
- Update to 0.20.0-rc2
* Thu Feb 12 2026 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.19.2-4
- Apply upstream patch for libinput 1.31 compatibility
* Sat Jan 24 2026 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.19.2-3
- Rebuild for libdisplay-info 0.3.0
* Sat Jan 17 2026 Fedora Release Engineering <releng@fedoraproject.org> - 0.19.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild
* Tue Oct 21 2025 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.19.2-1
- Update to 0.19.2 (#2405567)
* Sun Sep 28 2025 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.19.1-2
- Apply upstream patch for crash on disabling outputs
* Sun Sep 21 2025 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.19.1-1
- Update to 0.19.1 (#2397203)
* Fri Jul 25 2025 Fedora Release Engineering <releng@fedoraproject.org> - 0.19.0-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild
* Fri May 16 2025 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.19.0-1
- Update to 0.19.0 (#2359256)
* Sat Feb 15 2025 Sam Day <me@samcday.com> - 0.18.2-4
- Add wlroots!4985 patch needed by phoc 0.45.0
* Mon Feb 10 2025 Neal Gompa <ngompa@fedoraproject.org> - 0.18.2-3
- Rebuild for libdisplay-info 0.2.0
* Sun Jan 19 2025 Fedora Release Engineering <releng@fedoraproject.org> - 0.18.2-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_42_Mass_Rebuild
* Wed Dec 11 2024 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.18.2-1
- Update to 0.18.2 (#2331871)
* Fri Sep 20 2024 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.18.1-1
- Update to 0.18.1 (#2313753)
* Thu Aug 08 2024 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.18.0-1
- Update to 0.18.0 (#2297921)
* Sat Jul 20 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.17.4-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_41_Mass_Rebuild
* Sat Jun 29 2024 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.17.4-1
- Update to 0.17.4 (#2294793)
* Fri Apr 26 2024 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.17.3-1
- Update to 0.17.3
* Mon Mar 11 2024 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.17.2-1
- Update to 0.17.2 (#2269046)
* Sat Jan 27 2024 Fedora Release Engineering <releng@fedoraproject.org> - 0.17.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_40_Mass_Rebuild
* Thu Dec 21 2023 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.17.1-1
- Update to 0.17.1 (#2255547)
* Tue Nov 21 2023 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.17.0-1
- Update to 0.17.0 (#2250885)
- Use xcb-errors util library
- Apply patches from 0.17.x bugfix branch
* Sat Jul 22 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.16.2-3
- Rebuilt for https://fedoraproject.org/wiki/Fedora_39_Mass_Rebuild
* Sun Apr 16 2023 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.16.2-2
- Apply upstream patch to remove hardcoded Vulkan validation layers
* Fri Feb 10 2023 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.16.2-1
- Update to 0.16.2 (#2168992)
* Sat Jan 21 2023 Fedora Release Engineering <releng@fedoraproject.org> - 0.16.1-2
- Rebuilt for https://fedoraproject.org/wiki/Fedora_38_Mass_Rebuild
* Sun Dec 25 2022 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.16.1-1
- Update to 0.16.1
* Fri Dec 02 2022 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.16.0-1
- Update to 0.16.0 (#2142159)
- Add patch for compatibility with older libdrm
- Sync examples.meson.build with upstream, include all available examples
* Mon Nov 14 2022 Aleksei Bavshin <alebastr@fedoraproject.org> - 0.15.1-5
- Backport upstream crash fix (#2142447)
- Convert license to SPDX