Arch-ification 2.6 + 2.7: identity files and archr(7) man page

scripts/image: rewrite /etc/os-release block to the freedesktop layout
expected by third-party tools. ID_LIKE=arch is the change that makes
ArchR detect-cleanly as Arch family across distros, package managers
and analytics. PRETTY_NAME, ANSI_COLOR, LOGO, DOCUMENTATION_URL,
SUPPORT_URL and BUG_REPORT_URL added on top, with sensible fallbacks
from GIT_ORGANIZATION/GIT_REPO when the user has not overridden them
in distributions/ArchR/options.

Drop the empty /etc/archr-release sentinel file alongside os-release.
Arch ships /etc/arch-release the same way (empty by convention) for
tools that detect distro family by file presence rather than by parsing
os-release.

distributions/ArchR/options: fix typo HOME_URL "arc-r.io" -> "arch-r.io".

projects/ArchR/packages/archr: ship archr(7) under /usr/share/man/man7.
First man page of the distro, covers the public command surface
(archr-update, archr-config, archr-systems, etc.), the file locations
that matter (/etc/os-release, /etc/archr-release, /storage layout) and
the architectural decision recorded today (LibreELEC-style read-only
rootfs + storage overlay is by design, not technical debt; SteamOS
validates the model).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
Douglas Teles
2026-06-23 15:00:08 -03:00
parent 4273d71442
commit 7c82f31dae
4 changed files with 128 additions and 2 deletions
+1 -1
View File
@@ -23,7 +23,7 @@
DESCRIPTION="Arch R - Gaming OS for R36S"
# Distribution Home URL
HOME_URL="https://arc-r.io"
HOME_URL="https://arch-r.io"
# Documentation URL
WIKI_URL="https://arch-r.io/docs/guide/"
+10
View File
@@ -71,6 +71,16 @@ EOF
cp ${PKG_DIR}/sources/scripts/* ${INSTALL}/usr/bin
chmod 0755 ${INSTALL}/usr/bin/* 2>/dev/null ||:
### Install man pages
if [ -d "${PKG_DIR}/sources/man" ]; then
for page in ${PKG_DIR}/sources/man/*.[1-9]; do
[ -f "${page}" ] || continue
section=${page##*.}
mkdir -p ${INSTALL}/usr/share/man/man${section}
cp ${page} ${INSTALL}/usr/share/man/man${section}/
done
fi
### Fix and migrate to autostart package
enable_service archr-autostart.service
@@ -0,0 +1,104 @@
.TH ARCHR 7 "2026-06-23" "ArchR" "ArchR Manual"
.SH NAME
archr \- overview of the ArchR distribution
.SH DESCRIPTION
.B ArchR
is a Linux distribution targeted at the Rockchip RK3326 handheld console family
(R36S, K36, MagicX XU10, Soysauce/Y3506 and clones).
It boots from a microSD card, exposes EmulationStation as the default front end,
and ships a curated catalogue of emulators, RetroAchievements integration,
PortMaster compatibility and panel auto-detection via DTBO overlays.
.PP
ArchR follows the Arch Linux family conventions (
.BR ID_LIKE =arch
in
.IR /etc/os-release ", "
empty sentinel file at
.IR /etc/archr-release )
while keeping the LibreELEC-inherited boot model: read-only squashfs rootfs
plus a read-write overlay at
.IR /storage .
This combination is shared with SteamOS and chosen for its resilience to
power-loss during gameplay and for atomic system updates.
.SH COMMANDS
The following helpers are installed under
.IR /usr/bin
and are the public interface of the distro:
.TP
.B archr-update
Check for and apply an OS update. Pulls a signed image from
.IR https://update.arch-r.io ;
during a future release, this will become a wrapper around
.BR pacman -Syu .
.TP
.B archr-config
Read or write a runtime setting persisted in
.IR /storage/.config/system/configs/system.cfg .
Used by every emulator launcher and by EmulationStation.
.TP
.B archr-settings
Top-level settings UI dispatcher consumed by EmulationStation menus.
.TP
.B archr-systems
List supported emulator systems and their associated cores.
.TP
.B archr-scraper
Scrape metadata and box art for the games library.
.TP
.B archr-info
Show device, firmware, kernel, panel overlay and GPU driver in use.
.TP
.B archr-keyboard
Toggle the on-screen virtual keyboard.
.TP
.B archr-bluetooth ", " archr-bluetooth-agent
Manage Bluetooth devices and the agent that pairs them headlessly.
.TP
.B archr-memory-manager
Configure zram, swappiness and the OOM behaviour. Started as a service at boot.
.TP
.B archr-report-stats
Send anonymized telemetry when the user opts in.
.TP
.B archr-retroachievements-info
Display RetroAchievements account state and recent unlocks.
.SH FILES
.TP
.I /etc/os-release
Distribution identity (NAME, ID, ID_LIKE, VERSION_ID).
.TP
.I /etc/archr-release
Empty sentinel file. Detected by third-party tools to recognize ArchR as Arch
family. Equivalent to
.IR /etc/arch-release
on Arch Linux.
.TP
.I /storage/.config
User-writable configuration root for emulators, EmulationStation, system
preferences and saved settings.
.TP
.I /storage/roms
Default ROM library root, expected layout matches EmulationStation conventions.
.TP
.I /usr/share/bootloader
Boot files installed by mkimage: kernel, DTB, overlay catalogue, update script.
.TP
.I /usr/lib/systemd/system/archr.target
Default systemd target. Symlinks
.IR default.target
into it during build.
.SH SEE ALSO
.BR systemd (1),
.BR pacman (8),
.BR archr-update (1)
.PP
Full documentation:
.UR https://arch-r.io
.UE
.PP
Bug reports:
.UR https://github.com/archr-linux/Arch-R/issues
.UE
.SH AUTHORS
Douglas Teles and contributors. Built on the shoulders of LibreELEC, JELOS and
ROCKNIX, all GPL-2.0-or-later.
+13 -1
View File
@@ -163,14 +163,22 @@ echo "${TARGET_VERSION}" >${INSTALL}/etc/release
# Create /etc/os-release
cat <<EOF >${INSTALL}/etc/os-release
NAME="${DISTRONAME}"
PRETTY_NAME="${DISTRONAME} ${OS_VERSION}"
ID="${OSNAME}"
ID_LIKE="arch"
VERSION_ID="${OS_VERSION}"
VERSION="${OS_VERSION}"
ANSI_COLOR="38;2;23;147;209"
LOGO="archr"
HOME_URL="${HOME_URL}"
DOCUMENTATION_URL="${WIKI_URL:-${HOME_URL}}"
SUPPORT_URL="${SUPPORT_URL:-https://github.com/${GIT_ORGANIZATION}/${GIT_REPO}/discussions}"
BUG_REPORT_URL="${BUG_REPORT_URL:-https://github.com/${GIT_ORGANIZATION}/${GIT_REPO}/issues}"
OS_NAME="${DISTRONAME}"
OS_VERSION="${OS_VERSION}"
OS_BUILD="${OS_BUILD}"
GIT_ORGANIZATION="${GIT_ORGANIZATION}"
GIT_REPO="${GIT_REPO}"
HOME_URL="${HOME_URL}"
BUILD_ID="${GIT_HASH}"
BUILD_BRANCH="$(git branch --show-current)"
BUILD_DATE="${BUILD_DATE}"
@@ -178,6 +186,10 @@ HW_DEVICE="${DEVICE}"
HW_ARCH="${ARCH}"
EOF
# Arch Linux family sentinel file (empty by convention, see /etc/arch-release on Arch)
# Allows third-party tools that detect Arch via this file to recognize ArchR.
: >${INSTALL}/etc/archr-release
if [ -n "${HW_CPU}" ]
then
cat <<EOF >>${INSTALL}/etc/os-release