Linux target support¶
Pocket Harbor separates portable library behavior from operating-system integration. Store search, downloads, catalogue caches, BIOS validation, game scanning, localization, and the TUI remain shared. A target profile supplies the parts that vary between Linux distributions.
Current target¶
darkos is the default and the only registered target. It defines:
- ARM64 release and updater asset names;
/roms2and/romsmount discovery, including two-card priority;- the DarkOS EmulationStation ROM-folder catalogue;
- the Tools launcher and installed application layout;
- the marker used to request an EmulationStation refresh after exit;
- the Ubuntu 18.04/glibc 2.27-compatible build and clean-runtime smoke test.
Set PH_TARGET_OS=darkos explicitly when testing target selection. An unknown value stops with a
clear error so Pocket Harbor never installs into guessed paths.
Requirements for another Linux distribution¶
A future target is ready to publish only after it has all of the following:
- A runtime
LinuxTargetregistration with ROM roots, launcher layout, frontend refresh contract, architecture, and its platform-folder profile. - A build profile under
packaging/targetsselecting a compatible Python runtime, container base, Docker platform, launcher, exported layout, and architecture validation. - A launcher owned by that target; it must provide a terminal, writable private state, controller access, CA certificates, safe update/rollback, and one frontend refresh after normal exit.
- Unit tests for target selection and paths, offline end-to-end tests for one-card and two-card behavior where applicable, updater bundle validation, and a clean-container executable smoke test.
- Physical testing of launch, display, controls, downloads, BIOS handling, update/rollback, and frontend refresh on the named OS and device.
- A target-specific artifact named
pocket-harbor-<version>-<target>-<architecture>.zipand an updated compatibility table.
Until these conditions are met, another distribution is not supported, even if local source runs
successfully with manually configured PH_ROMS_DIRS.