Compare commits

...
Author SHA1 Message Date
Clayton Craft 443be5720c main/postmarketos-ui-retroarch: support for systemd, simplify startup, enable wifi
- tinydm is used to start retroarch for systemd and openrc
- ui pkg now depends on pmos-base-ui stuff, fixing serial getty login
  and making sure other required UI things are included by default
- retroarch wifi driver is enabled, which unfortunately means vendoring
  the retroarch.cfg from aports

Signed-off-by: Clayton Craft <craftyguy@postmarketos.org>
2025-12-15 13:50:28 -08:00
7 changed files with 46 additions and 41 deletions

No files matched your search

+27 -12
View File
@@ -1,39 +1,54 @@
# Reference: https://postmarketos.org/uipkg
# Maintainer: Sandelinos <postmarketos@sandelinos.me>
pkgname=postmarketos-ui-retroarch
pkgver=1
pkgver=2
pkgrel=0
pkgdesc="RetroArch in KMS mode"
url="https://www.retroarch.com"
arch="noarch"
license="GPL-3.0-or-later"
depends="
autologin
elogind
polkit-elogind
postmarketos-base-ui
postmarketos-base-ui-audio
postmarketos-base-ui-networkmanager
retroarch
tinydm
"
subpackages="$pkgname-openrc"
depends_systemd="polkit-systemd"
subpackages="$pkgname-openrc $pkgname-systemd"
source="
retroarch.initd
postmarketos-ui-retroarch.sh
retroarch.cfg
retroarch.desktop
"
options="!check pmb:drm"
install="$pkgname.post-install"
# Note: for adding a new skeleton config in /etc/retroarch.cfg:
replaces="retroarch"
package() {
install -Dm755 retroarch.initd "$pkgdir/etc/init.d/retroarch"
install -Dm755 postmarketos-ui-retroarch.sh "$pkgdir/usr/bin/postmarketos-ui-retroarch"
install -Dm644 retroarch.cfg -t "$pkgdir"/etc/
# Ok ok this isn't *really* wayland, but tinydm doesn't care and it runs
# retroarch just fine...
install -Dm644 retroarch.desktop -t "$pkgdir"/usr/share/wayland-sessions/
}
openrc() {
install_if="$pkgname=$pkgver-r$pkgrel openrc"
install="$subpkgname.post-install $subpkgname.post-upgrade"
depends="elogind-openrc"
depends="elogind-openrc polkit-elogind"
mkdir -p "$subpkgdir"
default_openrc
}
systemd() {
mkdir -p "$subpkgdir"
default_systemd
}
sha512sums="
07b2177325734bdb8358265c48f6849ba39e9801b2b1a871d7242259f4d456ff974eed126a6e5775bca87bf5286422db0afd4a2fa0b96a170f18682edd60a0cd retroarch.initd
317299beaf517274f5027c59c4903301abfa531043184dab8824d74cab22c4e2cd573b56492195caf9f151f6ad41da1dd3a4a561d986d8e8034b7e459c859983 postmarketos-ui-retroarch.sh
9c71418cdddbaff028431a58b04924ed5360bafd3a08fb50edd48f8f27ed353f25c2c6d6db4b85b44f7f556e9552d7d1914e3278bfb6ca0b7fb8478ef6ab50ae retroarch.cfg
f25843d7a95c3c01e6ce709d55398d3696bcb429fd6913f9bab9623151b8f12a601d9d53973581c54f0ae562e1080d40631aa491dc1cd8179848a878848a5a33 retroarch.desktop
"
@@ -1,4 +1,4 @@
#!/bin/sh
rc-update add elogind default
rc-update add retroarch default
rc-update add tinydm default
@@ -0,0 +1,3 @@
#!/bin/sh
tinydm-set-session -s /usr/share/wayland-sessions/retroarch.desktop
@@ -1,2 +0,0 @@
#!/bin/sh
retroarch && loginctl poweroff
@@ -0,0 +1,11 @@
# Config from aports:
menu_show_core_updater = false
assets_directory = /usr/share/libretro/assets
libretro_directory = /usr/lib/libretro
libretro_info_path = /usr/share/libretro/info
cheat_database_path = /usr/share/libretro/database/cht
joypad_autoconfig_dir = /usr/share/libretro/autoconfig
# pmOS-specific:
wifi_driver = "nmcli"
wifi_enabled = "true"
@@ -0,0 +1,4 @@
[Desktop Entry]
Type=Application
Name=RetroArch
Exec=/usr/bin/retroarch --appendconfig=/usr/share/retroarch/retroarch.cfg
@@ -1,26 +0,0 @@
#!/sbin/openrc-run
supervisor="supervise-daemon"
name="retroarch"
description="retroarch"
command="/usr/bin/autologin"
command_args="postmarketos-ui-retroarch"
depend() {
provide display-manager
need localmount
want elogind
}
start_pre() {
# default to 10000 if none set in config
[ -z "$AUTOLOGIN_UID" ] && AUTOLOGIN_UID=10000
user=$(getent passwd ${AUTOLOGIN_UID} | cut -d: -f1)
[ -z "$user" ] && {
eerror "ERROR: unable to find user with uid $AUTOLOGIN_UID"
return 1
}
command_args="$user $command_args"
}