2.8 KiB
Component catalog
components.toml in UniXNU records the maintained components. Profiles select
canonical IDs through [components] include. The resolver adds dependencies
and orders their build commands before their consumers.
Fields
| Field | Meaning |
|---|---|
id |
Canonical component ID |
kind, path |
Module kind and checkout path |
repository, revision |
Source repository and pinned revision |
legacy_name |
Accepted official compatibility name |
function |
Capability provided by the component |
scope |
Implementation scope |
hardware |
Required controllers, protocols, or GPU family |
os_abi |
XNU or userland ABI requirements |
board_dependencies |
Firmware, wiring, memory, or policy inputs |
verified_devices |
Devices with recorded hardware results |
dependencies |
Component IDs built first |
build_stage |
Kernel, payload, firmware, prelink, or embedded integration |
build |
Build command arguments |
outputs |
Paths produced in the target tree |
runtime_identifiers |
Source filenames, classes, bundle/plugin IDs, symbols, protocols |
Implementation scope and hardware verification are separate fields. Adreno740 implements the A740 GPU interface used by SM8550. sheng is its recorded device verification target. AdrenoMetal provides the Metal frontend through metal2vulkan and Turnip, with dependencies on the kernel interface and OS ABI.
Selection
[components]
include = ["ArmDTPlatform", "ArmCpu", "Adreno740", "AdrenoMetal", "GopFramebuffer"]
Kernel-stage recipes run in dependency order. [kernel] archives can place component:<ID> markers among auxiliary commands. Payload, firmware, prelink, and embedded entries describe their corresponding integration stages.
The device's include array replaces the inherited array. List the required
selection in full; dependencies are added by the resolver. Inspect the resolved
selection, source revisions, local overrides, and build order:
./unixnu status --json -D ../UniXNU-sheng
Search this catalog, the component pages, the README, and source before implementing a capability. Match interfaces, hardware scope, OS requirements, and board inputs.
Source identity
Official compatibility names resolve using the repository identity recorded in
the catalog. For example, the official UniXNU/NativeAdreno source resolves to
Adreno740. A source such as another-owner/NativeAdreno retains its own
identity and selection. Check the remote and revision before editing a feed.
The migration table lists accepted names.
Source filenames and runtime identifiers keep the values used by their ABI.
For example, the AdrenoMetal component stages NativeAdrenoMetal plugin files.