diff --git a/4985.patch b/4985.patch new file mode 100644 index 0000000..96e4955 --- /dev/null +++ b/4985.patch @@ -0,0 +1,38 @@ +From d9818603142c42eea7d10fb656aaca857a179cf0 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Guido=20G=C3=BCnther?= +Date: Mon, 27 Jan 2025 17:48:39 +0100 +Subject: [PATCH] seat: Don't forget to destroy touch points on touch up +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +Otherwise the number of touch points goes up constantly and d'n'd via +touch can't work as validation always fails. + +Fixes 75ecba44 ("seat: add serials to touch up events") + +Signed-off-by: Guido Günther +(cherry picked from commit fef4f3637a5dfb7022887dfb36ccdd69932d2753) +--- + types/seat/wlr_seat_touch.c | 3 ++- + 1 file changed, 2 insertions(+), 1 deletion(-) + +diff --git a/types/seat/wlr_seat_touch.c b/types/seat/wlr_seat_touch.c +index 09f33d667..cc5b7c826 100644 +--- a/types/seat/wlr_seat_touch.c ++++ b/types/seat/wlr_seat_touch.c +@@ -214,9 +214,10 @@ uint32_t wlr_seat_touch_notify_up(struct wlr_seat *seat, uint32_t time, + return 0; + } + +- return grab->interface->up(grab, time, point); ++ uint32_t serial = grab->interface->up(grab, time, point); + + touch_point_destroy(point); ++ return serial; + } + + void wlr_seat_touch_notify_motion(struct wlr_seat *seat, uint32_t time, +-- +GitLab + diff --git a/Revert-layer-shell-error-on-0-dimension-without-anch.patch b/Revert-layer-shell-error-on-0-dimension-without-anch.patch index a9112d9..4df421b 100644 --- a/Revert-layer-shell-error-on-0-dimension-without-anch.patch +++ b/Revert-layer-shell-error-on-0-dimension-without-anch.patch @@ -1,33 +1,44 @@ -From e021326f7de0505fcae85f5732885848b21edf9c Mon Sep 17 00:00:00 2001 +From ed19a7f8b2fb32e1919d7910041dac5f07fca75e Mon Sep 17 00:00:00 2001 From: Aleksei Bavshin Date: Sat, 25 Jun 2022 21:22:08 -0700 Subject: [PATCH] Revert "layer-shell: error on 0 dimension without anchors" This reverts commit 8dec751a6d84335fb04288b8efab6dd5c90288d3. --- - types/wlr_layer_shell_v1.c | 2 ++ - 1 file changed, 2 insertions(+) + types/wlr_layer_shell_v1.c | 20 -------------------- + 1 file changed, 20 deletions(-) diff --git a/types/wlr_layer_shell_v1.c b/types/wlr_layer_shell_v1.c -index 2d838498..c3c50d78 100644 +index a59f1104..75a19314 100644 --- a/types/wlr_layer_shell_v1.c +++ b/types/wlr_layer_shell_v1.c -@@ -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"); +@@ -335,26 +335,6 @@ static void layer_surface_role_client_commit(struct wlr_surface *wlr_surface) { + "layer_surface has never been configured"); 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) { +- wlr_surface_reject_pending(wlr_surface, 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) { +- wlr_surface_reject_pending(wlr_surface, surface->resource, +- ZWLR_LAYER_SURFACE_V1_ERROR_INVALID_SIZE, +- "height 0 requested without setting top and bottom anchors"); +- return; +- } + } - if ((anchor & surface->pending.exclusive_edge) != surface->pending.exclusive_edge) { - wlr_surface_reject_pending(wlr_surface, surface->resource, + static void layer_surface_role_commit(struct wlr_surface *wlr_surface) { -- -2.49.0 +2.45.2 diff --git a/examples.meson.build b/examples.meson.build index b738157..4f3156e 100644 --- a/examples.meson.build +++ b/examples.meson.build @@ -1,28 +1,18 @@ # Client examples are now available from a separate repository, # https://gitlab.freedesktop.org/wlroots/wlr-clients project( - 'wlroots-examples', - 'c', - meson_version: '>=0.58.0', - 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', + ], ) -add_project_arguments([ - '-D_POSIX_C_SOURCE=200809L', - '-DWLR_USE_UNSTABLE', -], language: 'c') - cc = meson.get_compiler('c') - -add_project_arguments(cc.get_supported_arguments([ - '-Wno-missing-braces', - '-Wno-missing-field-initializers', - '-Wno-unused-parameter' -]), language: 'c') +add_global_arguments('-DWLR_USE_UNSTABLE', language : 'c') cairo = dependency('cairo') drm = dependency('libdrm') @@ -39,7 +29,7 @@ wayland_scanner = find_program( native: true, ) wayland_server = dependency('wayland-server') -wlroots = dependency('wlroots-0.20') +wlroots = dependency('wlroots-0.18') xkbcommon = dependency('xkbcommon') wl_protocol_dir = wayland_protos.get_variable('pkgdatadir') @@ -47,6 +37,9 @@ wl_protocol_dir = wayland_protos.get_variable('pkgdatadir') protocols = { # Stable upstream protocols 'xdg-shell': wl_protocol_dir / 'stable/xdg-shell/xdg-shell.xml', + + # Unstable upstream protocols + 'fullscreen-shell-unstable-v1': wl_protocol_dir / 'unstable/fullscreen-shell/fullscreen-shell-unstable-v1.xml', } protocols_code = {} @@ -101,6 +94,10 @@ compositors = { 'output-layout': { 'src': ['output-layout.c', 'cat.c'], }, + 'fullscreen-shell': { + 'src': 'fullscreen-shell.c', + 'proto': ['fullscreen-shell-unstable-v1'], + }, 'scene-graph': { 'src': 'scene-graph.c', 'proto': ['xdg-shell'], diff --git a/sources b/sources index c7cac09..7ed4928 100644 --- a/sources +++ b/sources @@ -1,2 +1,2 @@ -SHA512 (wlroots-0.20.2.tar.gz) = 634345e23d0b6c28cb501c0dd0ef9c50d529a92ae5c8455e99e876f3f37ee244ac19dd097f76416b2ae4fd7c3f02e39a92a9322cf5a0caf8da21c31cd900e508 -SHA512 (wlroots-0.20.2.tar.gz.sig) = e74dc0abfabed7f40ba4f0e5edfc30ef92b95ebcf4a6aca3b2a605b04b5f2345a6a842cdf56819ce1f050c6181b646eae19dbef835354df7b09562cebbdaa474 +SHA512 (wlroots-0.18.2.tar.gz) = a03826f51dbca287ecbb217aadc361a1dedbbe5e225ee7b9ca22779456156c1035acaea7301ca509c410bfef9d0c33cf94cba140bba25d979608b14a99be8c8a +SHA512 (wlroots-0.18.2.tar.gz.sig) = 93716a0347eafa65675c257080152b0adb2f8145c63f4c1ee55ab3f3972f943dc9b103788cb19905536d7b9c7ff91be7826d82bde9c98666f48ee8fbcb70939b diff --git a/wlroots.spec b/wlroots.spec index 0ce3b16..917bad3 100644 --- a/wlroots.spec +++ b/wlroots.spec @@ -1,15 +1,13 @@ # Version of the .so library -%global abi_ver 0.20 +%global abi_ver 0.18 # libliftoff does not bump soname on API changes -%global liftoff_ver 0.5.0 +%global liftoff_ver %[0%{?fedora} >= 41 ? "0.5.0" : "0.4.1" ] Name: wlroots -Version: 0.20.2 -Release: 2%{?dist} +Version: 0.18.2 +Release: 4%{?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 @@ -27,8 +25,8 @@ Summary: A modular Wayland compositor library # the underlying licenses. License: MIT URL: https://gitlab.freedesktop.org/wlroots/wlroots -Source0: %{url}/-/releases/%{tag}/downloads/%{name}-%{tag}.tar.gz -Source1: %{url}/-/releases/%{tag}/downloads/%{name}-%{tag}.tar.gz.sig +Source0: %{url}/-/releases/%{version}/downloads/%{name}-%{version}.tar.gz +Source1: %{url}/-/releases/%{version}/downloads/%{name}-%{version}.tar.gz.sig # 0FDE7BE0E88F5E48: emersion Source2: https://emersion.fr/.well-known/openpgpkey/hu/dj3498u4hyyarh35rkjfnghbjxug6b19#/gpgkey-0FDE7BE0E88F5E48.gpg @@ -42,29 +40,31 @@ Source3: examples.meson.build # Fedora patches # Following patch is required for phoc. Patch: Revert-layer-shell-error-on-0-dimension-without-anch.patch +# Needed by phoc 0.45.0+, can be dropped in wlroots 0.18.3 +Patch: https://gitlab.freedesktop.org/wlroots/wlroots/-/merge_requests/4985.patch BuildRequires: gcc BuildRequires: glslang BuildRequires: gnupg2 -BuildRequires: meson >= 1.3 +BuildRequires: meson >= 0.59.0 +BuildRequires: (pkgconfig(libdisplay-info) >= 0.1.1 with pkgconfig(libdisplay-info) < 0.3) BuildRequires: (pkgconfig(libliftoff) >= %{liftoff_ver} with pkgconfig(libliftoff) < 0.6) BuildRequires: pkgconfig(egl) -BuildRequires: pkgconfig(gbm) >= 21.1 +BuildRequires: pkgconfig(gbm) >= 17.1.0 BuildRequires: pkgconfig(glesv2) BuildRequires: pkgconfig(hwdata) BuildRequires: pkgconfig(lcms2) -BuildRequires: pkgconfig(libdisplay-info) >= 0.2.0 -BuildRequires: pkgconfig(libdrm) >= 2.4.129 +BuildRequires: pkgconfig(libdrm) >= 2.4.122 BuildRequires: pkgconfig(libinput) >= 1.21.0 BuildRequires: pkgconfig(libseat) BuildRequires: pkgconfig(libudev) -BuildRequires: pkgconfig(pixman-1) >= 0.46.0 +BuildRequires: pkgconfig(pixman-1) >= 0.42.0 BuildRequires: pkgconfig(vulkan) >= 1.2.182 BuildRequires: pkgconfig(wayland-client) -BuildRequires: pkgconfig(wayland-protocols) >= 1.47 +BuildRequires: pkgconfig(wayland-protocols) >= 1.35 BuildRequires: pkgconfig(wayland-scanner) -BuildRequires: pkgconfig(wayland-server) >= 1.24.0 +BuildRequires: pkgconfig(wayland-server) >= 1.23 BuildRequires: pkgconfig(x11-xcb) BuildRequires: pkgconfig(xcb) BuildRequires: pkgconfig(xcb-composite) @@ -77,9 +77,9 @@ BuildRequires: pkgconfig(xcb-render) BuildRequires: pkgconfig(xcb-renderutil) BuildRequires: pkgconfig(xcb-res) BuildRequires: pkgconfig(xcb-shm) -BuildRequires: pkgconfig(xcb-xfixes) >= 1.15 +BuildRequires: pkgconfig(xcb-xfixes) BuildRequires: pkgconfig(xcb-xinput) -BuildRequires: pkgconfig(xkbcommon) >= 1.8.0 +BuildRequires: pkgconfig(xkbcommon) BuildRequires: pkgconfig(xwayland) # libliftoff does not bump soname on API changes Requires: libliftoff%{?_isa} >= %{liftoff_ver} @@ -104,7 +104,7 @@ Development files for %{name}. %prep %{gpgverify} --keyring='%{SOURCE2}' --signature='%{SOURCE1}' --data='%{SOURCE0}' -%autosetup -N -n %{name}-%{tag} +%autosetup -N # apply unconditional patches (0..99) %autopatch -p1 -M99 # apply conditional patches (100..) @@ -122,7 +122,6 @@ MESON_OPTIONS=( %install %{meson_install} -install -pm0644 -Dt '%{buildroot}/%{_pkgdocdir}/examples' examples/*.[ch] install -pm0644 -D '%{SOURCE3}' '%{buildroot}/%{_pkgdocdir}/examples/meson.build' @@ -143,48 +142,6 @@ install -pm0644 -D '%{SOURCE3}' '%{buildroot}/%{_pkgdocdir}/examples/meson.build %changelog -* Fri Jul 17 2026 Fedora Release Engineering - 0.20.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_45_Mass_Rebuild - -* Tue Jul 07 2026 Aleksei Bavshin - 0.20.2-1 -- Update to 0.20.2 (#2497891) - -* Tue May 19 2026 Aleksei Bavshin - 0.20.1-1 -- Update to 0.20.1 (#2480014) - -* Thu Mar 26 2026 Aleksei Bavshin - 0.20.0-1 -- Update to 0.20.0 (#2435845) - -* Thu Mar 19 2026 Aleksei Bavshin - 0.20.0~rc5-1 -- Update to 0.20.0-rc5 - -* Sat Feb 14 2026 Aleksei Bavshin - 0.20.0~rc2-1 -- Update to 0.20.0-rc2 - -* Thu Feb 12 2026 Aleksei Bavshin - 0.19.2-4 -- Apply upstream patch for libinput 1.31 compatibility - -* Sat Jan 24 2026 Aleksei Bavshin - 0.19.2-3 -- Rebuild for libdisplay-info 0.3.0 - -* Sat Jan 17 2026 Fedora Release Engineering - 0.19.2-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_44_Mass_Rebuild - -* Tue Oct 21 2025 Aleksei Bavshin - 0.19.2-1 -- Update to 0.19.2 (#2405567) - -* Sun Sep 28 2025 Aleksei Bavshin - 0.19.1-2 -- Apply upstream patch for crash on disabling outputs - -* Sun Sep 21 2025 Aleksei Bavshin - 0.19.1-1 -- Update to 0.19.1 (#2397203) - -* Fri Jul 25 2025 Fedora Release Engineering - 0.19.0-2 -- Rebuilt for https://fedoraproject.org/wiki/Fedora_43_Mass_Rebuild - -* Fri May 16 2025 Aleksei Bavshin - 0.19.0-1 -- Update to 0.19.0 (#2359256) - * Sat Feb 15 2025 Sam Day - 0.18.2-4 - Add wlroots!4985 patch needed by phoc 0.45.0