wayland: hotplugging additional screens

Jan Beich jbeich at FreeBSD.org
Sun Sep 15 13:07:48 UTC 2019


raichoo <raichoo at acmelabs.space> writes:

> Hi,
>
> I'm currently developing a wayland compositor on FreeBSD and got started on
> adding support for multiple screens. It seems that a running compositor is not
> getting notified when a new screen is attached to the system. I need to restart
> the compositor for it to get recognized. The library I'm using is wlroots.
>
> Is anyone else having the same issue?

Does the following help?

Index: devel/libudev-devd/Makefile
===================================================================
--- devel/libudev-devd/Makefile	(revision 512101)
+++ devel/libudev-devd/Makefile	(working copy)
@@ -2,8 +2,12 @@
 
 PORTNAME=	libudev-devd
 PORTVERSION=	0.4
+PORTREVISION=	1
 CATEGORIES=	devel
 
+PATCH_SITES=	https://github.com/${GH_ACCOUNT}/${GH_PROJECT}/commit/
+PATCHFILES+=	f11ee5b418c7.patch:-p1
+
 MAINTAINER=	x11 at FreeBSD.org
 COMMENT=	libudev-compatible interface for devd
 
Index: devel/libudev-devd/distinfo
===================================================================
--- devel/libudev-devd/distinfo	(revision 512101)
+++ devel/libudev-devd/distinfo	(working copy)
@@ -1,3 +1,5 @@
 TIMESTAMP = 1527795819
 SHA256 (FreeBSDDesktop-libudev-devd-0.4-fbe5a0b_GH0.tar.gz) = 4f6423caf9b673e8bae14c2ec94f0ac1c3fc90b2a1b96315ce11caba1ac342e2
 SIZE (FreeBSDDesktop-libudev-devd-0.4-fbe5a0b_GH0.tar.gz) = 17111
+SHA256 (f11ee5b418c7.patch) = 5f7ed7a4158295356310b838a8f0363c8c6a197dab8e24cc4ca9ee2ded4cc6a5
+SIZE (f11ee5b418c7.patch) = 2768
Index: x11-toolkits/wlroots/Makefile
===================================================================
--- x11-toolkits/wlroots/Makefile	(revision 511956)
+++ x11-toolkits/wlroots/Makefile	(working copy)
@@ -2,6 +2,7 @@
 
 PORTNAME=	wlroots
 DISTVERSION=	0.7.0
+PORTREVISION=	1
 CATEGORIES=	x11-toolkits
 
 MAINTAINER=	jbeich at FreeBSD.org
Index: x11-toolkits/wlroots/files/patch-backend_session_session.c
===================================================================
--- x11-toolkits/wlroots/files/patch-backend_session_session.c	(nonexistent)
+++ x11-toolkits/wlroots/files/patch-backend_session_session.c	(working copy)
@@ -0,0 +1,22 @@
+Enable DRM hotplug on FreeBSD
+
+--- backend/session/session.c.orig	2019-08-27 03:32:24 UTC
++++ backend/session/session.c
+@@ -288,11 +288,6 @@ size_t wlr_session_find_gpus(struct wlr_session *sessi
+ 		return explicit_find_gpus(session, ret_len, ret, explicit);
+ 	}
+ 
+-#ifdef __FreeBSD__
+-	// XXX: libudev-devd does not return any GPUs (yet?)
+-	return explicit_find_gpus(session, ret_len, ret, "/dev/drm/0");
+-#else
+-
+ 	struct udev_enumerate *en = udev_enumerate_new(session->udev);
+ 	if (!en) {
+ 		wlr_log(WLR_ERROR, "Failed to create udev enumeration");
+@@ -360,5 +355,4 @@ size_t wlr_session_find_gpus(struct wlr_session *sessi
+ 	udev_enumerate_unref(en);
+ 
+ 	return i;
+-#endif
+ }



More information about the freebsd-x11 mailing list