From: ifreund <ifreund@users.noreply.github.com>
To: ml@inbox.vuxu.org
Subject: Re: [PR PATCH] [Updated] wlroots: update to 0.13.0.
Date: Mon, 19 Apr 2021 00:12:05 +0200 [thread overview]
Message-ID: <20210418221205.Hp2Ic4kXXfPF3ZmKwewZb2G11-JVeuSqJ49iZmBPDqU@z> (raw)
In-Reply-To: <gh-mailinglist-notifications-41a7ca26-5023-4802-975b-f1789d68868e-void-packages-30076@inbox.vuxu.org>
[-- Attachment #1: Type: text/plain, Size: 885 bytes --]
There is an updated pull request by ifreund against master on the void-packages repository
https://github.com/ifreund/void-packages bump-wlroots
https://github.com/void-linux/void-packages/pull/30076
wlroots: update to 0.13.0.
<!-- Mark items with [x] where applicable -->
#### General
- [ ] This is a new package and it conforms to the [quality requirements](https://github.com/void-linux/void-packages/blob/master/Manual.md#quality-requirements)
#### Have the results of the proposed changes been tested?
- [x] I use the packages affected by the proposed changes on a regular basis and confirm this PR works for me
- [ ] I generally don't use the affected packages but briefly tested this PR
This will remain a draft until all reverse dependencies have been bumped as needed.
A patch file from https://github.com/void-linux/void-packages/pull/30076.patch is attached
[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #2: github-pr-bump-wlroots-30076.patch --]
[-- Type: text/x-diff, Size: 26347 bytes --]
From 60e7f030a4b86ab3727b82aca5a8a3019f74bbbd Mon Sep 17 00:00:00 2001
From: Isaac Freund <ifreund@ifreund.xyz>
Date: Wed, 7 Apr 2021 22:02:02 +0200
Subject: [PATCH 1/7] wlroots: update to 0.13.0.
---
common/shlibs | 2 +-
srcpkgs/wlroots/template | 18 +++++++++---------
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/common/shlibs b/common/shlibs
index 001fcd56590d..5f51c81f52b9 100644
--- a/common/shlibs
+++ b/common/shlibs
@@ -3461,7 +3461,7 @@ libcodecore.so.0 libio.elementary.code-3.0_1
libio.elementary.music-core.so.0 libio.elementary.music-5.0_1
libpantheon-files-core.so.4 libio.elementary.files-4.1.4_1
libpantheon-files-widgets.so.4 libio.elementary.files-4.1.4_1
-libwlroots.so.7 wlroots-0.12.0_1
+libwlroots.so.8 wlroots-0.13.0_1
libbaseencode.so.1 libbaseencode-1.0.9_1
libcotp.so.12 libcotp-1.2.1_1
libunarr.so.1 libunarr-1.0.1_1
diff --git a/srcpkgs/wlroots/template b/srcpkgs/wlroots/template
index c4d3bad99c6b..fd3a4b0b5aae 100644
--- a/srcpkgs/wlroots/template
+++ b/srcpkgs/wlroots/template
@@ -1,25 +1,25 @@
# Template file for 'wlroots'
pkgname=wlroots
-version=0.12.0
-revision=2
+version=0.13.0
+revision=1
build_style=meson
-# enable assertions - upstream uses them only for unreachable situations
-configure_args="-Dlogind=disabled -Dlibseat=enabled
- -Dxcb-errors=enabled -Dxcb-icccm=enabled -Dxwayland=enabled
- -Dx11-backend=enabled -Dexamples=false -Dwerror=false -Db_ndebug=false"
+# Follow upstream packaging recommendations:
+# https://github.com/swaywm/wlroots/wiki/Packaging-recommendations
+configure_args="--auto-features=enabled -Dlogind=disabled
+ -Dexamples=false -Dwerror=false -Db_ndebug=false"
hostmakedepends="pkg-config wayland-devel"
_devel_depends="MesaLib-devel libseat-devel eudev-libudev-devel libdrm-devel
libinput-devel libxkbcommon-devel pixman-devel wayland-devel wayland-protocols
- xcb-util-errors-devel xcb-util-wm-devel"
+ xcb-util-errors-devel xcb-util-wm-devel xcb-util-renderutil-devel"
makedepends="${_devel_depends}
libxcb-devel xcb-util-cursor-devel xcb-util-devel xcb-util-image-devel
- xcb-util-keysyms-devel xcb-util-renderutil-devel xcb-util-xrm-devel"
+ xcb-util-keysyms-devel xcb-util-xrm-devel xorg-server-xwayland"
short_desc="Modular Wayland compositor library"
maintainer="Isaac Freund <ifreund@ifreund.xyz>"
license="MIT"
homepage="https://github.com/swaywm/wlroots"
distfiles="https://github.com/swaywm/wlroots/archive/${version}.tar.gz"
-checksum=c9e9f4f6d2f526d0b2886daf3ec37e64831773059aa669fb98a88522a1626bdb
+checksum=f6bea37fd4a6f5e5f552b83d61adae8c73e64b0bcb9ae0ab464ebcd9309d3cf3
post_install() {
vlicense LICENSE
From 820275c556f69f82aa53f131647131a98a79205a Mon Sep 17 00:00:00 2001
From: Isaac Freund <ifreund@ifreund.xyz>
Date: Wed, 7 Apr 2021 22:42:06 +0200
Subject: [PATCH 2/7] sway: update to 1.6.
---
srcpkgs/sway/INSTALL.msg | 6 --
srcpkgs/sway/patches/6046.patch | 133 --------------------------------
srcpkgs/sway/template | 12 +--
3 files changed, 4 insertions(+), 147 deletions(-)
delete mode 100644 srcpkgs/sway/INSTALL.msg
delete mode 100644 srcpkgs/sway/patches/6046.patch
diff --git a/srcpkgs/sway/INSTALL.msg b/srcpkgs/sway/INSTALL.msg
deleted file mode 100644
index 05274ffcc3aa..000000000000
--- a/srcpkgs/sway/INSTALL.msg
+++ /dev/null
@@ -1,6 +0,0 @@
-Setting the SUID bit after install has been retired for all Wayland
-compositors. It is recommended that users use a session management daemon
-such as elogind or seatd and do not rely on compositors dropping privileges.
-
-All users who require this functionality will need to set the SUID bit manually
-after each update going forward.
diff --git a/srcpkgs/sway/patches/6046.patch b/srcpkgs/sway/patches/6046.patch
deleted file mode 100644
index 34845cd99b59..000000000000
--- a/srcpkgs/sway/patches/6046.patch
+++ /dev/null
@@ -1,133 +0,0 @@
-Upstream: yes
-Source: https://github.com/swaywm/sway/pull/6046
-Reason: Popup menu flickers on Firefox
-(https://bugzilla.mozilla.org/show_bug.cgi?id=1696662)
-
-From cf03185561e919f1c337f087194fec150425eef5 Mon Sep 17 00:00:00 2001
-From: Kenny Levinsen <kl@kl.wtf>
-Date: Fri, 19 Feb 2021 18:39:54 +0100
-Subject: [PATCH 1/3] view: Recursively check mapped of view_child tree
-
-A subsurface may be set to mapped without its parent.
----
- sway/tree/view.c | 14 ++++++++++++--
- 1 file changed, 12 insertions(+), 2 deletions(-)
-
-diff --git a/sway/tree/view.c b/sway/tree/view.c
-index ad79b2294..c8a4ea6b6 100644
---- a/sway/tree/view.c
-+++ b/sway/tree/view.c
-@@ -982,8 +982,18 @@ static void view_child_subsurface_create(struct sway_view_child *child,
- view_child_damage(&subsurface->child, true);
- }
-
-+static bool view_child_is_mapped(struct sway_view_child *child) {
-+ while (child) {
-+ if (!child->mapped) {
-+ return false;
-+ }
-+ child = child->parent;
-+ }
-+ return true;
-+}
-+
- static void view_child_damage(struct sway_view_child *child, bool whole) {
-- if (!child || !child->mapped || !child->view || !child->view->container) {
-+ if (!child || !view_child_is_mapped(child) || !child->view || !child->view->container) {
- return;
- }
- int sx, sy;
-@@ -1082,7 +1092,7 @@ void view_child_init(struct sway_view_child *child,
- }
-
- void view_child_destroy(struct sway_view_child *child) {
-- if (child->mapped && child->view->container != NULL) {
-+ if (view_child_is_mapped(child) && child->view->container != NULL) {
- view_child_damage(child, true);
- }
-
-
-From e2ec65d0a32797edd0846758bc24cf685e2d19d5 Mon Sep 17 00:00:00 2001
-From: Kenny Levinsen <kl@kl.wtf>
-Date: Fri, 19 Feb 2021 18:41:04 +0100
-Subject: [PATCH 2/3] view: Mark subchildren as unmapped in view_child_destroy
-
-The subchildren lose their parent association at this point, so they
-will not be able to see that the parent is unmapped.
-
-Instead, just set the subchildren to be unmapped directly.
----
- sway/tree/view.c | 3 +++
- 1 file changed, 3 insertions(+)
-
-diff --git a/sway/tree/view.c b/sway/tree/view.c
-index c8a4ea6b6..978271c24 100644
---- a/sway/tree/view.c
-+++ b/sway/tree/view.c
-@@ -1105,6 +1105,9 @@ void view_child_destroy(struct sway_view_child *child) {
- wl_list_for_each_safe(subchild, tmpchild, &child->children, link) {
- wl_list_remove(&subchild->link);
- subchild->parent = NULL;
-+ // The subchild lost its parent link, so it cannot see that the parent
-+ // is unmapped. Unmap it directly.
-+ subchild->mapped = false;
- }
-
- wl_list_remove(&child->surface_commit.link);
-
-From c06a926e0d89e952e5a3892b63f07d5b802b34ef Mon Sep 17 00:00:00 2001
-From: Kenny Levinsen <kl@kl.wtf>
-Date: Fri, 19 Feb 2021 18:33:20 +0100
-Subject: [PATCH 3/3] view: Set parent for view_child subsurfaces on init
-
-view_child_init was calling view_init_subsurfaces, which did not set the
-parent attribute for the subchildren. This lead to the subchildren
-acting as standalone children. If the parent was an xdg_popup, this
-would make the subchild unaware of the popup position.
-
-Introduce view_child_init_subsurfaces for view_child_init to use
-instead.
-
-Closes: https://github.com/swaywm/sway/issues/6038
----
- sway/tree/view.c | 13 ++++++++++++-
- 1 file changed, 12 insertions(+), 1 deletion(-)
-
-diff --git a/sway/tree/view.c b/sway/tree/view.c
-index 978271c24..8a2a8178d 100644
---- a/sway/tree/view.c
-+++ b/sway/tree/view.c
-@@ -465,6 +465,9 @@ static void view_subsurface_create(struct sway_view *view,
- static void view_init_subsurfaces(struct sway_view *view,
- struct wlr_surface *surface);
-
-+static void view_child_init_subsurfaces(struct sway_view_child *view_child,
-+ struct wlr_surface *surface);
-+
- static void view_handle_surface_new_subsurface(struct wl_listener *listener,
- void *data) {
- struct sway_view *view =
-@@ -1033,6 +1036,14 @@ static void view_init_subsurfaces(struct sway_view *view,
- }
- }
-
-+static void view_child_init_subsurfaces(struct sway_view_child *view_child,
-+ struct wlr_surface *surface) {
-+ struct wlr_subsurface *subsurface;
-+ wl_list_for_each(subsurface, &surface->subsurfaces, parent_link) {
-+ view_child_subsurface_create(view_child, subsurface);
-+ }
-+}
-+
- static void view_child_handle_surface_map(struct wl_listener *listener,
- void *data) {
- struct sway_view_child *child =
-@@ -1088,7 +1099,7 @@ void view_child_init(struct sway_view_child *child,
- wlr_surface_send_enter(child->surface, workspace->output->wlr_output);
- }
-
-- view_init_subsurfaces(child->view, surface);
-+ view_child_init_subsurfaces(child, surface);
- }
-
- void view_child_destroy(struct sway_view_child *child) {
diff --git a/srcpkgs/sway/template b/srcpkgs/sway/template
index 2858c7026b56..3297f668adf4 100644
--- a/srcpkgs/sway/template
+++ b/srcpkgs/sway/template
@@ -1,8 +1,9 @@
# Template file for 'sway'
pkgname=sway
-version=1.5.1
-revision=2
+version=1.6
+revision=1
build_style=meson
+configure_args="-Dwerror=false -Db_ndebug=false"
conf_files="/etc/sway/config"
hostmakedepends="pkg-config wayland-devel scdoc git"
makedepends="wlroots-devel pcre-devel json-c-devel pango-devel cairo-devel
@@ -13,12 +14,7 @@ maintainer="Olaf Mersmann <olafm@p-value.net>"
license="MIT"
homepage="https://swaywm.org"
distfiles="https://github.com/swaywm/${pkgname}/archive/${version}.tar.gz"
-checksum=095f983c9a5f80d761bc2fb19df8166839b9290124ccd47f3e74119a1335490f
-patch_args="-Np1"
-
-post_patch() {
- vsed -e 's/werror=true/werror=false/g' -i meson.build
-}
+checksum=9ecfd2f38239f7e90922a13cd348fc95fc059e8fa0e4b75b8ffcc7b61685a5fb
post_install() {
vlicense LICENSE
From f2d26813c274db2f0cc119b31605b621c3dbb0fb Mon Sep 17 00:00:00 2001
From: Isaac Freund <ifreund@ifreund.xyz>
Date: Sat, 10 Apr 2021 19:46:49 +0200
Subject: [PATCH 3/7] hikari: update to 2.3.0.
---
srcpkgs/hikari/INSTALL.msg | 6 ------
srcpkgs/hikari/template | 12 +++++++++---
2 files changed, 9 insertions(+), 9 deletions(-)
delete mode 100644 srcpkgs/hikari/INSTALL.msg
diff --git a/srcpkgs/hikari/INSTALL.msg b/srcpkgs/hikari/INSTALL.msg
deleted file mode 100644
index 05274ffcc3aa..000000000000
--- a/srcpkgs/hikari/INSTALL.msg
+++ /dev/null
@@ -1,6 +0,0 @@
-Setting the SUID bit after install has been retired for all Wayland
-compositors. It is recommended that users use a session management daemon
-such as elogind or seatd and do not rely on compositors dropping privileges.
-
-All users who require this functionality will need to set the SUID bit manually
-after each update going forward.
diff --git a/srcpkgs/hikari/template b/srcpkgs/hikari/template
index 093d55610b0b..598a87de6179 100644
--- a/srcpkgs/hikari/template
+++ b/srcpkgs/hikari/template
@@ -1,6 +1,6 @@
# Template file for 'hikari'
pkgname=hikari
-version=2.2.3
+version=2.3.0
revision=1
build_style=gnu-makefile
make_cmd=bmake
@@ -16,7 +16,7 @@ license="BSD-2-Clause"
homepage="https://hikari.acmelabs.space"
changelog="https://hub.darcs.net/raichoo/hikari/browse/CHANGELOG.md"
distfiles="${homepage}/releases/${pkgname}-${version}.tar.gz"
-checksum=0727d8652e6debea52a9d975bd656cb573556e0e14184b069925c40f2f1b02b4
+checksum=8577ea568d2a41b0dc7b2fae784446778e3ddd5b9563576c9756dfbf7b9435d2
conf_files="/etc/pam.d/hikari-unlocker /etc/hikari/hikari.conf"
pre_build() {
@@ -25,13 +25,19 @@ pre_build() {
# command line (i.e., when make_use_env is undefined), but it ignores
# the values in the environment when make_use_env=yes. The _EXTRA
# variables provided in the Makefile allow us to force the right flags.
- export CFLAGS_EXTRA="${CFLAGS}"
+ export CFLAGS_EXTRA="${CFLAGS} -Wno-error"
export LDFLAGS_EXTRA="${LDFLAGS}"
# bmake tends to ignore CC in the environment
make_build_args+=" CC=$CC"
}
+# bmake's -q flag seems to differ in behavior from gnu make which causes the
+# build style's handling of the check target not existing to fail.
+do_check() {
+ :
+}
+
post_install() {
vlicense LICENSE
}
From ff623dfd70d17da75e7973d483634683f2a6408d Mon Sep 17 00:00:00 2001
From: Isaac Freund <ifreund@ifreund.xyz>
Date: Sun, 18 Apr 2021 11:25:11 +0200
Subject: [PATCH 4/7] cage: update to 0.1.3.
---
srcpkgs/cage/INSTALL.msg | 6 ------
srcpkgs/cage/template | 6 +++---
2 files changed, 3 insertions(+), 9 deletions(-)
delete mode 100644 srcpkgs/cage/INSTALL.msg
diff --git a/srcpkgs/cage/INSTALL.msg b/srcpkgs/cage/INSTALL.msg
deleted file mode 100644
index 05274ffcc3aa..000000000000
--- a/srcpkgs/cage/INSTALL.msg
+++ /dev/null
@@ -1,6 +0,0 @@
-Setting the SUID bit after install has been retired for all Wayland
-compositors. It is recommended that users use a session management daemon
-such as elogind or seatd and do not rely on compositors dropping privileges.
-
-All users who require this functionality will need to set the SUID bit manually
-after each update going forward.
diff --git a/srcpkgs/cage/template b/srcpkgs/cage/template
index 960ccfac2156..1b447bcf2ba1 100644
--- a/srcpkgs/cage/template
+++ b/srcpkgs/cage/template
@@ -1,7 +1,7 @@
# Template file for 'cage'
pkgname=cage
-version=0.1.2.1
-revision=3
+version=0.1.3
+revision=1
build_style=meson
configure_args="$(vopt_bool xwayland xwayland)"
hostmakedepends="pkg-config wayland-devel scdoc"
@@ -12,7 +12,7 @@ maintainer="Illia Shestakov <ishestakov@airmail.cc>"
license="MIT"
homepage="https://www.hjdskes.nl/projects/cage/"
distfiles="https://github.com/Hjdskes/cage/archive/v${version}.tar.gz"
-checksum=38a3e3968f00cc58fe1d9448e972cfac7d1efa30c48699f09032f264101a55ac
+checksum=c28aa8230f937c89b564967748451c1eb15d8633a71a1ed6e22d532afa15462e
build_options="xwayland"
build_options_default="xwayland"
From c34e57e4421bc67fe9348613c5815ad18f84a678 Mon Sep 17 00:00:00 2001
From: Isaac Freund <ifreund@ifreund.xyz>
Date: Sun, 18 Apr 2021 12:18:32 +0200
Subject: [PATCH 5/7] wayfire: update to 0.7.0.
---
srcpkgs/wayfire/INSTALL.msg | 6 -
srcpkgs/wayfire/patches/wlroots13.patch | 189 ++++++++++++++++++++++++
srcpkgs/wayfire/template | 3 +-
3 files changed, 191 insertions(+), 7 deletions(-)
delete mode 100644 srcpkgs/wayfire/INSTALL.msg
create mode 100644 srcpkgs/wayfire/patches/wlroots13.patch
diff --git a/srcpkgs/wayfire/INSTALL.msg b/srcpkgs/wayfire/INSTALL.msg
deleted file mode 100644
index 05274ffcc3aa..000000000000
--- a/srcpkgs/wayfire/INSTALL.msg
+++ /dev/null
@@ -1,6 +0,0 @@
-Setting the SUID bit after install has been retired for all Wayland
-compositors. It is recommended that users use a session management daemon
-such as elogind or seatd and do not rely on compositors dropping privileges.
-
-All users who require this functionality will need to set the SUID bit manually
-after each update going forward.
diff --git a/srcpkgs/wayfire/patches/wlroots13.patch b/srcpkgs/wayfire/patches/wlroots13.patch
new file mode 100644
index 000000000000..d42dbc425a3a
--- /dev/null
+++ b/srcpkgs/wayfire/patches/wlroots13.patch
@@ -0,0 +1,189 @@
+diff --git a/meson.build b/meson.build
+index 4a8992cb..117f928c 100644
+--- a/meson.build
++++ b/meson.build
+@@ -28,7 +28,7 @@ libinput = dependency('libinput', version: '>=1.7.0')
+ pixman = dependency('pixman-1')
+ threads = dependency('threads')
+ xkbcommon = dependency('xkbcommon')
+-wlroots = dependency('wlroots', version: ['>=0.12.0', '<0.13.0'], required: get_option('use_system_wlroots'))
++wlroots = dependency('wlroots', version: ['>=0.13.0', '<0.14.0'], required: get_option('use_system_wlroots'))
+ wfconfig = dependency('wf-config', version: ['>=0.7.0', '<0.8.0'], required: get_option('use_system_wfconfig'))
+
+ use_system_wlroots = not get_option('use_system_wlroots').disabled() and wlroots.found()
+diff --git a/plugins/single_plugins/vswipe.cpp b/plugins/single_plugins/vswipe.cpp
+index da37448c..26c8f399 100644
+--- a/plugins/single_plugins/vswipe.cpp
++++ b/plugins/single_plugins/vswipe.cpp
+@@ -1,3 +1,4 @@
++#include <wayfire/nonstd/wlroots-full.hpp>
+ #include <wayfire/plugin.hpp>
+ #include <wayfire/output.hpp>
+ #include <wayfire/core.hpp>
+diff --git a/src/api/wayfire/nonstd/wlroots-full.hpp b/src/api/wayfire/nonstd/wlroots-full.hpp
+index 77a12c70..4a24f1a1 100644
+--- a/src/api/wayfire/nonstd/wlroots-full.hpp
++++ b/src/api/wayfire/nonstd/wlroots-full.hpp
+@@ -112,6 +112,8 @@ extern "C"
+ #include <wlr/types/wlr_pointer_gestures_v1.h>
+ #include <wlr/types/wlr_idle.h>
+ #include <wlr/interfaces/wlr_keyboard.h>
++#include <wlr/types/wlr_touch.h>
++#include <wlr/types/wlr_pointer_gestures_v1.h>
+ #include <wlr/xcursor.h>
+ #include <wlr/types/wlr_data_control_v1.h>
+ #include <wlr/types/wlr_virtual_keyboard_v1.h>
+diff --git a/src/api/wayfire/nonstd/wlroots.hpp b/src/api/wayfire/nonstd/wlroots.hpp
+index 4686d14f..402ab3cd 100644
+--- a/src/api/wayfire/nonstd/wlroots.hpp
++++ b/src/api/wayfire/nonstd/wlroots.hpp
+@@ -43,7 +43,14 @@ extern "C"
+ struct wlr_viewporter;
+
+ #include <wlr/types/wlr_input_device.h>
++#include <wlr/types/wlr_pointer.h>
++#include <wlr/types/wlr_keyboard.h>
++#include <wlr/types/wlr_touch.h>
+ #include <wlr/types/wlr_output.h>
+ #include <wlr/types/wlr_box.h>
+ #include <wlr/util/edges.h>
++#include <wayland-server.h>
++
++ static constexpr uint32_t WLR_KEY_PRESSED = WL_KEYBOARD_KEY_STATE_PRESSED;
++ static constexpr uint32_t WLR_KEY_RELEASED = WL_KEYBOARD_KEY_STATE_RELEASED;
+ }
+diff --git a/src/core/opengl.cpp b/src/core/opengl.cpp
+index 09022930..aacb0800 100644
+--- a/src/core/opengl.cpp
++++ b/src/core/opengl.cpp
+@@ -227,25 +227,27 @@ void render_rectangle(wf::geometry_t geometry, wf::color_t color,
+
+ void render_begin()
+ {
+- /* No real reason for 10, 10, 0 but it doesn't matter */
+- render_begin(10, 10, 0);
++ if (!wlr_egl_is_current(wf::get_core_impl().egl))
++ {
++ wlr_egl_make_current(wf::get_core_impl().egl);
++ }
++
++ GL_CALL(glEnable(GL_BLEND));
++ GL_CALL(glBlendFunc(GL_ONE, GL_ONE_MINUS_SRC_ALPHA));
+ }
+
+ void render_begin(const wf::framebuffer_base_t& fb)
+ {
+- render_begin(fb.viewport_width, fb.viewport_height, fb.fb);
++ render_begin();
++ fb.bind();
+ }
+
+-void render_begin(int32_t viewport_width, int32_t viewport_height, uint32_t fb)
++void render_begin(int32_t width, int32_t height, uint32_t fb)
+ {
+- if (!wlr_egl_is_current(wf::get_core_impl().egl))
+- {
+- wlr_egl_make_current(wf::get_core_impl().egl, EGL_NO_SURFACE, NULL);
+- }
++ render_begin();
+
+- wlr_renderer_begin(wf::get_core_impl().renderer,
+- viewport_width, viewport_height);
+- GL_CALL(glBindFramebuffer(GL_FRAMEBUFFER, fb));
++ GL_CALL(glBindFramebuffer(GL_DRAW_FRAMEBUFFER, fb));
++ GL_CALL(glViewport(0, 0, width, height));
+ }
+
+ void clear(wf::color_t col, uint32_t mask)
+@@ -257,8 +259,7 @@ void clear(wf::color_t col, uint32_t mask)
+ void render_end()
+ {
+ GL_CALL(glBindFramebuffer(GL_FRAMEBUFFER, current_output_fb));
+- wlr_renderer_scissor(wf::get_core().renderer, NULL);
+- wlr_renderer_end(wf::get_core().renderer);
++ GL_CALL(glDisable(GL_SCISSOR_TEST));
+ }
+ }
+
+diff --git a/src/core/seat/cursor.cpp b/src/core/seat/cursor.cpp
+index 7ba23b06..d6006f17 100644
+--- a/src/core/seat/cursor.cpp
++++ b/src/core/seat/cursor.cpp
+@@ -160,7 +160,10 @@ void wf::cursor_t::set_cursor(std::string name)
+ name = "left_ptr";
+ }
+
+- wlr_xcursor_manager_set_cursor_image(xcursor, name.c_str(), cursor);
++ idle_set_cursor.run_once([name, this] ()
++ {
++ wlr_xcursor_manager_set_cursor_image(xcursor, name.c_str(), cursor);
++ });
+ }
+
+ void wf::cursor_t::unhide_cursor()
+@@ -175,6 +178,7 @@ void wf::cursor_t::unhide_cursor()
+
+ void wf::cursor_t::hide_cursor()
+ {
++ idle_set_cursor.disconnect();
+ wlr_cursor_set_surface(cursor, NULL, 0, 0);
+ this->hide_ref_counter++;
+ }
+diff --git a/src/core/seat/cursor.hpp b/src/core/seat/cursor.hpp
+index 0c4ab8fe..aec8f1aa 100644
+--- a/src/core/seat/cursor.hpp
++++ b/src/core/seat/cursor.hpp
+@@ -3,6 +3,7 @@
+
+ #include "seat.hpp"
+ #include "wayfire/plugin.hpp"
++#include "wayfire/util.hpp"
+
+ namespace wf
+ {
+@@ -28,6 +29,13 @@ struct cursor_t
+ void hide_cursor();
+ int hide_ref_counter = 0;
+
++ /**
++ * Delay setting the cursor, in order to avoid setting the cursor
++ * multiple times in a single frame and to avoid setting it in the middle
++ * of the repaint loop (not allowed by wlroots).
++ */
++ wf::wl_idle_call idle_set_cursor;
++
+ /**
+ * Start/stop touchscreen mode, which means the cursor will be hidden.
+ * It will be shown again once a pointer or tablet event happens.
+diff --git a/src/main.cpp b/src/main.cpp
+index bd07d618..0c5e97e7 100644
+--- a/src/main.cpp
++++ b/src/main.cpp
+@@ -260,7 +260,7 @@ int main(int argc, char *argv[])
+ /** TODO: move this to core_impl constructor */
+ core.display = display;
+ core.ev_loop = wl_display_get_event_loop(core.display);
+- core.backend = wlr_backend_autocreate(core.display, NULL);
++ core.backend = wlr_backend_autocreate(core.display);
+ core.renderer = wlr_backend_get_renderer(core.backend);
+ core.egl = wlr_gles2_renderer_get_egl(core.renderer);
+ assert(core.egl);
+diff --git a/src/output/render-manager.cpp b/src/output/render-manager.cpp
+index 2039333c..cb2a38bf 100644
+--- a/src/output/render-manager.cpp
++++ b/src/output/render-manager.cpp
+@@ -1019,8 +1019,12 @@ class wf::render_manager::impl
+ swap_damage |= output_damage->get_wlr_damage_box();
+ }
+
+- OpenGL::render_begin(postprocessing->get_target_framebuffer());
+- wlr_output_render_software_cursors(output->handle, swap_damage.to_pixman());
++ OpenGL::render_begin();
++ wlr_renderer_begin(wf::get_core().renderer,
++ output->handle->width, output->handle->height);
++ wlr_output_render_software_cursors(output->handle,
++ swap_damage.to_pixman());
++ wlr_renderer_end(wf::get_core().renderer);
+ OpenGL::render_end();
+
+ /* Part 4: postprocessing effects */
diff --git a/srcpkgs/wayfire/template b/srcpkgs/wayfire/template
index ab6136b72473..1b94e4d7f0a2 100644
--- a/srcpkgs/wayfire/template
+++ b/srcpkgs/wayfire/template
@@ -1,7 +1,7 @@
# Template file for 'wayfire'
pkgname=wayfire
version=0.7.0
-revision=2
+revision=1
_utils_commit=f45641beef46babdc8f1b8d18a924e72beaf8ee6
_touch_commit=b1075c54a280f913edc26b9757262f4f9d6b62b0
build_style=meson
@@ -19,6 +19,7 @@ distfiles="https://github.com/WayfireWM/wayfire/archive/v${version}.tar.gz
checksum="b1a94ad2843db19e78cbd361ceebaade4507647ad893d5b5117a9fc7724ce41c
d172f8c21e0bac01e4116cd957fb0159c5cb39ddfdce897beb0d9c753796d5f1
2b22e03d3a522baeff5798f630ffe5aa95899fd3233b291527503af5fd3e30be"
+patch_args=-Np1
# Optimization for nested STL calls
CXXFLAGS="-O3"
From f27140eef04e598a9c833d6a6734f618113454d4 Mon Sep 17 00:00:00 2001
From: Isaac Freund <ifreund@ifreund.xyz>
Date: Sun, 18 Apr 2021 12:31:27 +0200
Subject: [PATCH 6/7] wayfire-plugins-extra: revbump for wlroots 0.13.0.
---
srcpkgs/wayfire-plugins-extra/template | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/srcpkgs/wayfire-plugins-extra/template b/srcpkgs/wayfire-plugins-extra/template
index 60fd9784e783..320429eb61d1 100644
--- a/srcpkgs/wayfire-plugins-extra/template
+++ b/srcpkgs/wayfire-plugins-extra/template
@@ -1,7 +1,7 @@
# Template file for 'wayfire-plugins-extra'
pkgname=wayfire-plugins-extra
version=0.7.0
-revision=1
+revision=2
build_style=meson
hostmakedepends="pkg-config wayland-devel"
makedepends="wayfire-devel glibmm-devel"
From 3362982941be891bce846d0ba69649543d26211a Mon Sep 17 00:00:00 2001
From: Isaac Freund <ifreund@ifreund.xyz>
Date: Mon, 19 Apr 2021 00:07:05 +0200
Subject: [PATCH 7/7] xdg-desktop-portal-wlr: update to 0.3.0.
---
.../fix-return-value-on-cmd-failure.patch | 22 +++++++++++++++++++
srcpkgs/xdg-desktop-portal-wlr/template | 10 +++++----
2 files changed, 28 insertions(+), 4 deletions(-)
create mode 100644 srcpkgs/xdg-desktop-portal-wlr/patches/fix-return-value-on-cmd-failure.patch
diff --git a/srcpkgs/xdg-desktop-portal-wlr/patches/fix-return-value-on-cmd-failure.patch b/srcpkgs/xdg-desktop-portal-wlr/patches/fix-return-value-on-cmd-failure.patch
new file mode 100644
index 000000000000..40b7a809516c
--- /dev/null
+++ b/srcpkgs/xdg-desktop-portal-wlr/patches/fix-return-value-on-cmd-failure.patch
@@ -0,0 +1,22 @@
+From ebb50839a560134d44d7a7512faae15deae9c0fb Mon Sep 17 00:00:00 2001
+From: Stefano Ragni <stefano.ragni@outlook.com>
+Date: Sun, 18 Apr 2021 19:55:19 +0200
+Subject: [PATCH] wlr_screencast: fix return value on cmd failure
+
+---
+ src/screencast/wlr_screencast.c | 2 +-
+ 1 file changed, 1 insertion(+), 1 deletion(-)
+
+diff --git a/src/screencast/wlr_screencast.c b/src/screencast/wlr_screencast.c
+index 45bea73..a3b0637 100644
+--- a/src/screencast/wlr_screencast.c
++++ b/src/screencast/wlr_screencast.c
+@@ -406,7 +406,7 @@ static bool wlr_output_chooser(struct xdpw_output_chooser *chooser,
+
+ if (!wait_chooser(pid)) {
+ close(chooser_out[0]);
+- goto end;
++ return false;
+ }
+
+ FILE *f = fdopen(chooser_out[0], "r");
diff --git a/srcpkgs/xdg-desktop-portal-wlr/template b/srcpkgs/xdg-desktop-portal-wlr/template
index 3392d274358e..2854b7e0de27 100644
--- a/srcpkgs/xdg-desktop-portal-wlr/template
+++ b/srcpkgs/xdg-desktop-portal-wlr/template
@@ -1,17 +1,19 @@
# Template file for 'xdg-desktop-portal-wlr'
pkgname=xdg-desktop-portal-wlr
-version=0.2.0
+version=0.3.0
revision=1
build_style=meson
-hostmakedepends="pkg-config wayland-devel"
-makedepends="wayland-devel wayland-protocols elogind-devel pipewire-devel"
+hostmakedepends="pkg-config wayland-devel scdoc"
+makedepends="wayland-devel wayland-protocols elogind-devel pipewire-devel
+ iniparser-devel"
depends="xdg-desktop-portal"
short_desc="Backend of xdg-desktop-portal for wlroots"
maintainer="Isaac Freund <ifreund@ifreund.xyz>"
license="MIT"
homepage="https://github.com/emersion/xdg-desktop-portal-wlr"
distfiles="${homepage}/archive/v${version}.tar.gz"
-checksum=316f5df3a70331c2fa5476e33acf92349e56eb0514d245b942fcf3122ba32df6
+checksum=5c80469b04c4e5d22689f755d61adcf92758bc1c85f0747ae1f586b4bcd7873c
+patch_args=-Np1
post_install() {
vlicense LICENSE
next prev parent reply other threads:[~2021-04-18 22:12 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-04-07 20:02 [PR PATCH] " ifreund
2021-04-07 20:07 ` ericonr
2021-04-07 20:42 ` [PR PATCH] [Updated] " ifreund
2021-04-07 21:14 ` jbeich
2021-04-07 22:24 ` ifreund
2021-04-08 2:28 ` ericonr
2021-04-09 18:44 ` st3r4g
2021-04-10 17:56 ` [PR PATCH] [Updated] " ifreund
2021-04-18 10:18 ` ifreund
2021-04-18 10:32 ` ifreund
2021-04-18 11:01 ` ifreund
2021-04-18 15:31 ` st3r4g
2021-04-18 15:45 ` st3r4g
2021-04-18 15:48 ` st3r4g
2021-04-18 16:22 ` st3r4g
2021-04-18 16:24 ` st3r4g
2021-04-18 16:42 ` st3r4g
2021-04-18 17:47 ` st3r4g
2021-04-18 19:01 ` st3r4g
2021-04-18 22:07 ` [PR PATCH] [Updated] " ifreund
2021-04-18 22:08 ` ifreund
2021-04-18 22:11 ` st3r4g
2021-04-18 22:12 ` ifreund [this message]
2021-04-18 22:49 ` [PR PATCH] [Updated] " ifreund
2021-04-18 22:53 ` ifreund
2021-04-18 23:23 ` ifreund
2021-04-20 4:27 ` ericonr
2021-04-20 4:28 ` ericonr
2021-04-20 4:28 ` [PR PATCH] [Merged]: " ericonr
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20210418221205.Hp2Ic4kXXfPF3ZmKwewZb2G11-JVeuSqJ49iZmBPDqU@z \
--to=ifreund@users.noreply.github.com \
--cc=ml@inbox.vuxu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).