* [Buildroot] [PATCH 1/8] package/wayland: bump version
2013-10-10 21:05 [Buildroot] [pull request v3] Pull request for branch yem/rpi-wayland Yann E. MORIN
@ 2013-10-10 21:05 ` Yann E. MORIN
2013-10-10 21:05 ` [Buildroot] [PATCH 2/8] package/weston: " Yann E. MORIN
` (7 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Yann E. MORIN @ 2013-10-10 21:05 UTC (permalink / raw)
To: buildroot
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
package/wayland/wayland.mk | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/package/wayland/wayland.mk b/package/wayland/wayland.mk
index b5fe94d..0810536 100644
--- a/package/wayland/wayland.mk
+++ b/package/wayland/wayland.mk
@@ -4,7 +4,7 @@
#
################################################################################
-WAYLAND_VERSION = 1.1.0
+WAYLAND_VERSION = 1.2.1
WAYLAND_SITE = http://wayland.freedesktop.org/releases/
WAYLAND_SOURCE = wayland-$(WAYLAND_VERSION).tar.xz
WAYLAND_LICENSE = MIT
--
1.8.1.2
^ permalink raw reply related [flat|nested] 10+ messages in thread* [Buildroot] [PATCH 2/8] package/weston: bump version
2013-10-10 21:05 [Buildroot] [pull request v3] Pull request for branch yem/rpi-wayland Yann E. MORIN
2013-10-10 21:05 ` [Buildroot] [PATCH 1/8] package/wayland: bump version Yann E. MORIN
@ 2013-10-10 21:05 ` Yann E. MORIN
2013-10-10 21:05 ` [Buildroot] [PATCH 3/8] package/wayland: install wayland-scanner to $(HOST) Yann E. MORIN
` (6 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Yann E. MORIN @ 2013-10-10 21:05 UTC (permalink / raw)
To: buildroot
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
Even with EGL disabled, weston-1.2.2 still tries to build the
simple EGL clients, so they need to be explicitly disabled.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
package/weston/weston.mk | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/package/weston/weston.mk b/package/weston/weston.mk
index 38647bd..4b99dce 100644
--- a/package/weston/weston.mk
+++ b/package/weston/weston.mk
@@ -4,7 +4,7 @@
#
################################################################################
-WESTON_VERSION = 1.1.0
+WESTON_VERSION = 1.2.2
WESTON_SITE = http://wayland.freedesktop.org/releases/
WESTON_SOURCE = weston-$(WESTON_VERSION).tar.xz
WESTON_LICENSE = MIT
@@ -14,6 +14,7 @@ WESTON_DEPENDENCIES = host-pkgconf wayland libxkbcommon pixman libpng \
jpeg mtdev udev cairo
WESTON_CONF_OPT = \
--disable-egl \
+ --disable-simple-egl-clients \
--disable-xwayland \
--disable-x11-compositor \
--disable-drm-compositor \
--
1.8.1.2
^ permalink raw reply related [flat|nested] 10+ messages in thread* [Buildroot] [PATCH 3/8] package/wayland: install wayland-scanner to $(HOST)
2013-10-10 21:05 [Buildroot] [pull request v3] Pull request for branch yem/rpi-wayland Yann E. MORIN
2013-10-10 21:05 ` [Buildroot] [PATCH 1/8] package/wayland: bump version Yann E. MORIN
2013-10-10 21:05 ` [Buildroot] [PATCH 2/8] package/weston: " Yann E. MORIN
@ 2013-10-10 21:05 ` Yann E. MORIN
2013-10-10 21:05 ` [Buildroot] [PATCH 4/8] package/weston: fix configure.ac to check for wayland-scanner Yann E. MORIN
` (5 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Yann E. MORIN @ 2013-10-10 21:05 UTC (permalink / raw)
To: buildroot
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
wayland-scanner is needed by weston.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Cc: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
---
package/wayland/wayland.mk | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/package/wayland/wayland.mk b/package/wayland/wayland.mk
index 0810536..739971b 100644
--- a/package/wayland/wayland.mk
+++ b/package/wayland/wayland.mk
@@ -22,7 +22,8 @@ WAYLAND_CONF_OPT = --disable-scanner
define WAYLAND_BUILD_SCANNER
(cd $(@D)/src/; \
$(HOSTCC) $(HOST_CFLAGS) $(HOST_LDFLAGS) \
- -o wayland-scanner scanner.c wayland-util.c -lexpat)
+ -o wayland-scanner scanner.c wayland-util.c -lexpat; \
+ install -m 0755 -D wayland-scanner $(HOST_DIR)/usr/bin/wayland-scanner )
endef
WAYLAND_POST_CONFIGURE_HOOKS += WAYLAND_BUILD_SCANNER
--
1.8.1.2
^ permalink raw reply related [flat|nested] 10+ messages in thread* [Buildroot] [PATCH 4/8] package/weston: fix configure.ac to check for wayland-scanner
2013-10-10 21:05 [Buildroot] [pull request v3] Pull request for branch yem/rpi-wayland Yann E. MORIN
` (2 preceding siblings ...)
2013-10-10 21:05 ` [Buildroot] [PATCH 3/8] package/wayland: install wayland-scanner to $(HOST) Yann E. MORIN
@ 2013-10-10 21:05 ` Yann E. MORIN
2013-10-10 21:05 ` [Buildroot] [PATCH 5/8] package/weston: fix configure.ac for fbdev compositor Yann E. MORIN
` (4 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Yann E. MORIN @ 2013-10-10 21:05 UTC (permalink / raw)
To: buildroot
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
configure whines while checking for wayland-scanner.
wayland-scanner is used to generate the protocol parser C files from
the protocol definition XML files.
weston has a hard-dependency on wayland-scanner, so it can regenerate
its shell/mouse/keyboard/... "handlers".
Since we're using a tarball, those protocol files are already generated
and up-to-date, but the check is hard-coded and unconditional. If
wayland-scanner is missing, configure fails.
We could well patch away this check, but we'd have to carry and maintain
it probably for ever.
Better to fix it: add a patch from upstream weston to fix configure
whining.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
...02-fix-configure.ac-check-wayland-scanner.patch | 26 ++++++++++++++++++++++
package/weston/weston.mk | 4 ++++
2 files changed, 30 insertions(+)
create mode 100644 package/weston/weston-0002-fix-configure.ac-check-wayland-scanner.patch
diff --git a/package/weston/weston-0002-fix-configure.ac-check-wayland-scanner.patch b/package/weston/weston-0002-fix-configure.ac-check-wayland-scanner.patch
new file mode 100644
index 0000000..ca7368f
--- /dev/null
+++ b/package/weston/weston-0002-fix-configure.ac-check-wayland-scanner.patch
@@ -0,0 +1,26 @@
+commit 9f43cb48aac9d27aa49fe955104f5cfd204703ed
+Author: Quentin Glidic <sardemff7+git@sardemff7.net>
+Date: Sat Aug 24 20:36:10 2013 +0200
+
+ autotools: Fix AC_PATH_PROG call
+
+ Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
+ Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+diff --git a/configure.ac b/configure.ac
+index 0129157..43e5e5c 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -424,8 +424,10 @@ if test "x$have_lcms" = xyes; then
+ fi
+ AM_CONDITIONAL(HAVE_LCMS, [test "x$have_lcms" = xyes])
+
+-AC_PATH_PROG([wayland_scanner], [wayland-scanner],
+- [AC_MSG_ERROR("wayland-scanner is needed to compile weston")])
++AC_PATH_PROG([wayland_scanner], [wayland-scanner])
++if test x$wayland_scanner = x; then
++ AC_MSG_ERROR([wayland-scanner is needed to compile weston])
++fi
+
+ AC_CONFIG_FILES([Makefile
+ shared/Makefile
diff --git a/package/weston/weston.mk b/package/weston/weston.mk
index 4b99dce..6b4dece 100644
--- a/package/weston/weston.mk
+++ b/package/weston/weston.mk
@@ -12,6 +12,10 @@ WESTON_LICENSE_FILES = COPYING
WESTON_DEPENDENCIES = host-pkgconf wayland libxkbcommon pixman libpng \
jpeg mtdev udev cairo
+
+# We touch configure.ac with one of our patches
+WESTON_AUTORECONF = YES
+
WESTON_CONF_OPT = \
--disable-egl \
--disable-simple-egl-clients \
--
1.8.1.2
^ permalink raw reply related [flat|nested] 10+ messages in thread* [Buildroot] [PATCH 5/8] package/weston: fix configure.ac for fbdev compositor
2013-10-10 21:05 [Buildroot] [pull request v3] Pull request for branch yem/rpi-wayland Yann E. MORIN
` (3 preceding siblings ...)
2013-10-10 21:05 ` [Buildroot] [PATCH 4/8] package/weston: fix configure.ac to check for wayland-scanner Yann E. MORIN
@ 2013-10-10 21:05 ` Yann E. MORIN
2013-10-10 21:05 ` [Buildroot] [PATCH 6/8] package/weston: introduce infrastructure to select other compositors Yann E. MORIN
` (3 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Yann E. MORIN @ 2013-10-10 21:05 UTC (permalink / raw)
To: buildroot
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
Apply patch from upstream.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
...ompositor-fbdev-drop-dependency-on-libdrm.patch | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
create mode 100644 package/weston/weston-0003-compositor-fbdev-drop-dependency-on-libdrm.patch
diff --git a/package/weston/weston-0003-compositor-fbdev-drop-dependency-on-libdrm.patch b/package/weston/weston-0003-compositor-fbdev-drop-dependency-on-libdrm.patch
new file mode 100644
index 0000000..dfc20de
--- /dev/null
+++ b/package/weston/weston-0003-compositor-fbdev-drop-dependency-on-libdrm.patch
@@ -0,0 +1,22 @@
+commit 7b8e970ad1f1ef96db23b379a41edeb40ef1e8b6
+Author: Adrian Negreanu <adrian.m.negreanu@intel.com>
+Date: Thu Sep 26 19:31:32 2013 +0300
+
+ compositor-fbdev: drop dependency on libdrm
+
+ Signed-off-by: Adrian Negreanu <adrian.m.negreanu@intel.com>
+ Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+
+diff --git a/configure.ac b/configure.ac
+index 7c2da44..a43bf5b 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -190,7 +190,7 @@ AM_CONDITIONAL([ENABLE_FBDEV_COMPOSITOR],
+ [test x$enable_fbdev_compositor = xyes])
+ AS_IF([test x$enable_fbdev_compositor = xyes], [
+ AC_DEFINE([BUILD_FBDEV_COMPOSITOR], [1], [Build the fbdev compositor])
+- PKG_CHECK_MODULES([FBDEV_COMPOSITOR], [libudev >= 136 mtdev >= 1.1.0 libdrm >= 2.4.30])
++ PKG_CHECK_MODULES([FBDEV_COMPOSITOR], [libudev >= 136 mtdev >= 1.1.0])
+ ])
+
+ AC_ARG_ENABLE([rdp-compositor], [ --enable-rdp-compositor],,
--
1.8.1.2
^ permalink raw reply related [flat|nested] 10+ messages in thread* [Buildroot] [PATCH 6/8] package/weston: introduce infrastructure to select other compositors
2013-10-10 21:05 [Buildroot] [pull request v3] Pull request for branch yem/rpi-wayland Yann E. MORIN
` (4 preceding siblings ...)
2013-10-10 21:05 ` [Buildroot] [PATCH 5/8] package/weston: fix configure.ac for fbdev compositor Yann E. MORIN
@ 2013-10-10 21:05 ` Yann E. MORIN
2013-10-10 21:05 ` [Buildroot] [PATCH 7/8] package/rpi-userland: add patch to remove faulty assert() Yann E. MORIN
` (2 subsequent siblings)
8 siblings, 0 replies; 10+ messages in thread
From: Yann E. MORIN @ 2013-10-10 21:05 UTC (permalink / raw)
To: buildroot
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
package/weston/Config.in | 11 +++++++++--
1 file changed, 9 insertions(+), 2 deletions(-)
diff --git a/package/weston/Config.in b/package/weston/Config.in
index 56eb135..0f168ac 100644
--- a/package/weston/Config.in
+++ b/package/weston/Config.in
@@ -14,8 +14,6 @@ config BR2_PACKAGE_WESTON
depends on BR2_TOOLCHAIN_HAS_THREADS # wayland
# Runtime dependency
select BR2_PACKAGE_XKEYBOARD_CONFIG
- # Make sure at least one backend is selected
- select BR2_PACKAGE_WESTON_FBDEV
help
Weston is the reference implementation of a Wayland
compositor, and a useful compositor in its own right.
@@ -26,7 +24,16 @@ config BR2_PACKAGE_WESTON
if BR2_PACKAGE_WESTON
+# These two options make sure at least one compositor is selected.
+config BR2_PACKAGE_WESTON_HAS_COMPOSITOR
+ bool
+config BR2_PACKAGE_WESTON_NEEDS_ONE_COMPOSITOR
+ def_bool y
+ depends on ! BR2_PACKAGE_WESTON_HAS_COMPOSITOR
+ select BR2_PACKAGE_WESTON_FBDEV
+
config BR2_PACKAGE_WESTON_FBDEV
bool "fbdev compositor"
+ default y
endif
--
1.8.1.2
^ permalink raw reply related [flat|nested] 10+ messages in thread* [Buildroot] [PATCH 7/8] package/rpi-userland: add patch to remove faulty assert()
2013-10-10 21:05 [Buildroot] [pull request v3] Pull request for branch yem/rpi-wayland Yann E. MORIN
` (5 preceding siblings ...)
2013-10-10 21:05 ` [Buildroot] [PATCH 6/8] package/weston: introduce infrastructure to select other compositors Yann E. MORIN
@ 2013-10-10 21:05 ` Yann E. MORIN
2013-10-10 21:05 ` [Buildroot] [PATCH 8/8] package/weston: add RPi compositor Yann E. MORIN
2013-10-11 7:44 ` [Buildroot] [pull request v3] Pull request for branch yem/rpi-wayland Peter Korsgaard
8 siblings, 0 replies; 10+ messages in thread
From: Yann E. MORIN @ 2013-10-10 21:05 UTC (permalink / raw)
To: buildroot
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
While porting wayland/weston to run on the RPi, I always tripped on
this assert.
Thinking there was an issue with weston, I poked the weston guys on
IRC about the issue. 'daniels' on irc.freenode.net/#wayland suggested
removing the assert altogether, as that's what they had pushed
upstream in their wayland pull-request:
https://github.com/raspberrypi/userland/pull/92
Turns out they forgot to include this in their pull-request, but that
they were using a patched rpi-userland without that assert.
And indeed, without that assert, weston runs on the RPi. :-)
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
The weston guys will probably push this upstream soon.
If not, then I'll take the burden to do it.
---
.../rpi-userland-002-remove-faulty-assert.patch | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
create mode 100644 package/rpi-userland/rpi-userland-002-remove-faulty-assert.patch
diff --git a/package/rpi-userland/rpi-userland-002-remove-faulty-assert.patch b/package/rpi-userland/rpi-userland-002-remove-faulty-assert.patch
new file mode 100644
index 0000000..c23c43a
--- /dev/null
+++ b/package/rpi-userland/rpi-userland-002-remove-faulty-assert.patch
@@ -0,0 +1,21 @@
+interface: remove faulty assert() to make weston happy at runtime
+
+This was removed after a discussion on IRC with the weston guys
+('daniels' on irc.freenode.net/#wayland).
+
+Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
+---
+Upstream status: no, will be pushed by weston guys later.
+If not, I'll do it.
+
+diff -durN rpi-userland-77d32cd.orig/interface/vmcs_host/vc_vchi_dispmanx.c rpi-userland-77d32cd/interface/vmcs_host/vc_vchi_dispmanx.c
+--- rpi-userland-77d32cd.orig/interface/vmcs_host/vc_vchi_dispmanx.c 2013-10-04 17:43:44.000000000 +0200
++++ rpi-userland-77d32cd/interface/vmcs_host/vc_vchi_dispmanx.c 2013-10-08 22:28:51.611433539 +0200
+@@ -1187,7 +1187,6 @@
+ continue;
+
+ if(dispmanx_client.update_callback ) {
+- vcos_assert( dispmanx_client.pending_update_handle == (DISPMANX_UPDATE_HANDLE_T) dispmanx_client.notify_buffer[1]);
+ dispmanx_client.update_callback((DISPMANX_UPDATE_HANDLE_T) dispmanx_client.notify_buffer[1], dispmanx_client.update_callback_param);
+ }
+ }
--
1.8.1.2
^ permalink raw reply related [flat|nested] 10+ messages in thread* [Buildroot] [PATCH 8/8] package/weston: add RPi compositor
2013-10-10 21:05 [Buildroot] [pull request v3] Pull request for branch yem/rpi-wayland Yann E. MORIN
` (6 preceding siblings ...)
2013-10-10 21:05 ` [Buildroot] [PATCH 7/8] package/rpi-userland: add patch to remove faulty assert() Yann E. MORIN
@ 2013-10-10 21:05 ` Yann E. MORIN
2013-10-11 7:44 ` [Buildroot] [pull request v3] Pull request for branch yem/rpi-wayland Peter Korsgaard
8 siblings, 0 replies; 10+ messages in thread
From: Yann E. MORIN @ 2013-10-10 21:05 UTC (permalink / raw)
To: buildroot
From: "Yann E. MORIN" <yann.morin.1998@free.fr>
Procedure highly inspired by:
http://wayland.freedesktop.org/raspberrypi.html
The resulting weston works almost flawlessly, but requires a bit
of love:
- /boot/config.txt must include this line: dispmanx_offline=1
- at least 128MiB of RAM must be allocated to the GPU
- after 24-or-so terminal-clients are connected, the screen
turns black. Exiting a client restores the screen
It seems increasing/decreasing the amount of memory allocated to
the GPU makes the clients limit to wobble above/below 24 clients
at a time. YMMV, as they say...
Without dispmanx_offline=1, the limit is much below 24, at around 13.
But changing the amount of memory allocated to the GPU does not change
this limit in this case. YMMV, again.
Anyway, there are not many different clients available, besides the
terminal client, since all other clients are EGL-based, and there
is (yet) no EGL support (for weston!) on the RPi. So the tests were
made only with the terminal client.
The system is rather smooth, but spwaning too many clients in a
rapid-fire is sure to exhibit some lag. Resizing windows is a bit
jerky, but moving them along is fine.
Note: the config option has a depends on THREADS due to rpi-userland,
even though weston itself already inherits the same dependency from
wayland. But better be clean and safe.
Signed-off-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
---
package/weston/Config.in | 9 +++++++++
package/weston/weston.mk | 14 +++++++++++++-
2 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/package/weston/Config.in b/package/weston/Config.in
index 0f168ac..4532c28 100644
--- a/package/weston/Config.in
+++ b/package/weston/Config.in
@@ -36,4 +36,13 @@ config BR2_PACKAGE_WESTON_FBDEV
bool "fbdev compositor"
default y
+config BR2_PACKAGE_WESTON_RPI
+ bool "RPi compositor"
+ depends on BR2_arm # rpi-userland
+ depends on BR2_INSTALL_LIBSTDCPP # rpi-userland
+ depends on BR2_LARGEFILE # rpi-userland
+ depends on BR2_TOOLCHAIN_HAS_THREADS # rpi-userland
+ select BR2_PACKAGE_RPI_USERLAND
+ select BR2_PACKAGE_WESTON_HAS_COMPOSITOR
+
endif
diff --git a/package/weston/weston.mk b/package/weston/weston.mk
index 6b4dece..c8b47a7 100644
--- a/package/weston/weston.mk
+++ b/package/weston/weston.mk
@@ -24,8 +24,8 @@ WESTON_CONF_OPT = \
--disable-drm-compositor \
--disable-wayland-compositor \
--disable-headless-compositor \
- --disable-rpi-compositor \
--disable-weston-launch \
+ --disable-colord \
--disable-libunwind
ifeq ($(BR2_PACKAGE_WESTON_FBDEV),y)
@@ -34,4 +34,16 @@ else
WESTON_CONF_OPT += --disable-fbdev-compositor
endif
+ifeq ($(BR2_PACKAGE_WESTON_RPI),y)
+WESTON_DEPENDENCIES += rpi-userland
+WESTON_CONF_OPT += --enable-rpi-compositor \
+ --disable-resize-optimization \
+ --disable-setuid-install \
+ --disable-xwayland-test \
+ --disable-simple-egl-clients \
+ WESTON_NATIVE_BACKEND=rpi-backend.so
+else
+WESTON_CONF_OPT += --disable-rpi-compositor
+endif # BR2_PACKAGE_WESTON_RPI
+
$(eval $(autotools-package))
--
1.8.1.2
^ permalink raw reply related [flat|nested] 10+ messages in thread* [Buildroot] [pull request v3] Pull request for branch yem/rpi-wayland
2013-10-10 21:05 [Buildroot] [pull request v3] Pull request for branch yem/rpi-wayland Yann E. MORIN
` (7 preceding siblings ...)
2013-10-10 21:05 ` [Buildroot] [PATCH 8/8] package/weston: add RPi compositor Yann E. MORIN
@ 2013-10-11 7:44 ` Peter Korsgaard
8 siblings, 0 replies; 10+ messages in thread
From: Peter Korsgaard @ 2013-10-11 7:44 UTC (permalink / raw)
To: buildroot
>>>>> "Yann" == Yann E MORIN <yann.morin.1998@free.fr> writes:
Yann> From: "Yann E. MORIN" <yann.morin.1998@free.fr>
Yann> Hello All!
Yann> This series makes it possible to run weston on the raspberrypi.
Yann> The series:
Yann> - bumps wayland and weston (patches 1 and 2)
Yann> - installs wayland-scanner to $(HOST) (patch 3)
Yann> - fixes weston configure.ac with patches from upstream (patches 4 and 5)
Yann> - modifies weston to build more than one compositor (patch 6)
Yann> - fixes rpi-userland (patch 7)
Yann> - actualy enables the rpi compoisotor in weston (path 8)
Yann> Please pay special attention to commit logs of patches 4 and 7, they are
Yann> tricky. I can add more details, or reworks them, if need be.
Yann> Changes v2 -> v3:
Yann> - drop patch 9 due to it being dead code for now (Thomas)
Yann> - fix weston build without EGL (Peter)
Yann> - fix rpi-compositor missing dependency
Committed with the install -> $(INSTALL) fixup as discussed on IRC -
Thanks.
--
Bye, Peter Korsgaard
^ permalink raw reply [flat|nested] 10+ messages in thread