Skip to content

treewide: depend on the per-class device support packages - #166

Merged
dangowrt merged 2 commits into
openwrt:masterfrom
dangowrt:video-support-deps
Sep 30, 2026
Merged

dangowrt merged 2 commits into
openwrt:masterfrom
dangowrt:video-support-deps

Conversation

@dangowrt

Copy link
Copy Markdown
Member

The AUDIO_SUPPORT and DISPLAY_SUPPORT target features were replaced in openwrt.git by per-class *-support packages that allocate the device groups and ship the hotplug rules, merged as openwrt/openwrt#25446. This is the part of that migration which this feed has to state for itself.

Most of the feed needs nothing, because the gate travels: openwrt/packages#30651 puts a plain dependency on libdrm and libevdev, and package/scripts/package-metadata.pl re-emits a selected package's own conditions onto whatever selects it. So wlroots, plymouth, vkmark, libva, kmscube, libcairo, libepoxy, libsdl3 and every libmesa-* provider already inherit what they need. Two things cannot be inherited.

kmscon

It reads its keyboard from /dev/input directly through libudev and has no libevdev or libinput dependency to inherit the gate from, so it names input-support itself. Its DRM side still comes from libdrm.

mesa and the render node

A hardware driver renders through /dev/dri/renderD*, which is 0600 root:root until accel-support allocates the render group. That dependency goes on each hardware driver, ten libmesa-* and eight libvulkan-*.

The software rasterisers are deliberately excluded: libmesa-softpipe, libmesa-llvmpipe and libvulkan-lvp run on the CPU and open no device. Putting the gate on the individual drivers rather than on the shared Package/libmesa/Default is what makes that distinction possible, and it has a useful consequence: an image built around a software rasteriser stays out of the render group, while one that picks a hardware driver pulls the group in with it.

Measured on the generated Kconfig:

package resolves to
libmesa-softpipe, libmesa-llvmpipe video-support only
libmesa-amd, libmesa-virgl, and the rest of the hardware drivers accel-support and video-support
kmscon input-support and video-support

kmscon reads its keyboard from /dev/input directly through libudev, so
it needs the input group and the hotplug rule that input-support ships.
It has no libevdev or libinput dependency to inherit that from, unlike
the compositors in this feed.

The DRM side already comes from libdrm.

Signed-off-by: Daniel Golle <[email protected]>
A hardware driver renders through /dev/dri/renderD*, which is 0600
root:root until accel-support allocates the render group and ships the
rule that puts the node into it.

The software rasterisers are the exception and keep no such dependency:
libmesa-softpipe, libmesa-llvmpipe and libvulkan-lvp run on the CPU and
open no device. Because the gate sits on each driver, an image built
around a software rasteriser stays out of the render group, while one
that picks a hardware driver pulls the group in with it.

Signed-off-by: Daniel Golle <[email protected]>
@dangowrt
dangowrt marked this pull request as ready for review September 29, 2026 14:56
@dangowrt
dangowrt merged commit 2baec75 into openwrt:master Sep 30, 2026
12 of 14 checks passed
@dangowrt
dangowrt deleted the video-support-deps branch September 30, 2026 11:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant