From 43fbd229f975b345fce08bddf51f85be53293ec1 Mon Sep 17 00:00:00 2001 From: Sandelinos Date: Thu, 31 Jul 2025 16:04:12 +0300 Subject: [PATCH] main/postmarketos-ui-retroarch: new aport Part-of: https://gitlab.postmarketos.org/postmarketOS/pmaports/-/merge_requests/6852 --- main/postmarketos-ui-retroarch/APKBUILD | 39 +++++++++++++++++++ ...tmarketos-ui-retroarch-openrc.post-install | 4 ++ ...tmarketos-ui-retroarch-openrc.post-upgrade | 1 + .../postmarketos-ui-retroarch.sh | 2 + .../postmarketos-ui-retroarch/retroarch.initd | 26 +++++++++++++ 5 files changed, 72 insertions(+) create mode 100644 main/postmarketos-ui-retroarch/APKBUILD create mode 100644 main/postmarketos-ui-retroarch/postmarketos-ui-retroarch-openrc.post-install create mode 120000 main/postmarketos-ui-retroarch/postmarketos-ui-retroarch-openrc.post-upgrade create mode 100755 main/postmarketos-ui-retroarch/postmarketos-ui-retroarch.sh create mode 100644 main/postmarketos-ui-retroarch/retroarch.initd diff --git a/main/postmarketos-ui-retroarch/APKBUILD b/main/postmarketos-ui-retroarch/APKBUILD new file mode 100644 index 000000000..22710c948 --- /dev/null +++ b/main/postmarketos-ui-retroarch/APKBUILD @@ -0,0 +1,39 @@ +# Reference: https://postmarketos.org/uipkg +# Maintainer: Sandelinos +pkgname=postmarketos-ui-retroarch +pkgver=1 +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 + retroarch + " +subpackages="$pkgname-openrc" +source=" + retroarch.initd + postmarketos-ui-retroarch.sh + " +options="!check pmb:drm" + +package() { + install -Dm755 retroarch.initd "$pkgdir/etc/init.d/retroarch" + install -Dm755 postmarketos-ui-retroarch.sh "$pkgdir/usr/bin/postmarketos-ui-retroarch" +} + +openrc() { + install_if="$pkgname=$pkgver-r$pkgrel openrc" + install="$subpkgname.post-install $subpkgname.post-upgrade" + depends="elogind-openrc" + + default_openrc +} + +sha512sums=" +07b2177325734bdb8358265c48f6849ba39e9801b2b1a871d7242259f4d456ff974eed126a6e5775bca87bf5286422db0afd4a2fa0b96a170f18682edd60a0cd retroarch.initd +317299beaf517274f5027c59c4903301abfa531043184dab8824d74cab22c4e2cd573b56492195caf9f151f6ad41da1dd3a4a561d986d8e8034b7e459c859983 postmarketos-ui-retroarch.sh +" diff --git a/main/postmarketos-ui-retroarch/postmarketos-ui-retroarch-openrc.post-install b/main/postmarketos-ui-retroarch/postmarketos-ui-retroarch-openrc.post-install new file mode 100644 index 000000000..26cb14fdf --- /dev/null +++ b/main/postmarketos-ui-retroarch/postmarketos-ui-retroarch-openrc.post-install @@ -0,0 +1,4 @@ +#!/bin/sh + +rc-update add elogind default +rc-update add retroarch default diff --git a/main/postmarketos-ui-retroarch/postmarketos-ui-retroarch-openrc.post-upgrade b/main/postmarketos-ui-retroarch/postmarketos-ui-retroarch-openrc.post-upgrade new file mode 120000 index 000000000..927d49738 --- /dev/null +++ b/main/postmarketos-ui-retroarch/postmarketos-ui-retroarch-openrc.post-upgrade @@ -0,0 +1 @@ +postmarketos-ui-retroarch-openrc.post-install \ No newline at end of file diff --git a/main/postmarketos-ui-retroarch/postmarketos-ui-retroarch.sh b/main/postmarketos-ui-retroarch/postmarketos-ui-retroarch.sh new file mode 100755 index 000000000..d035fffb1 --- /dev/null +++ b/main/postmarketos-ui-retroarch/postmarketos-ui-retroarch.sh @@ -0,0 +1,2 @@ +#!/bin/sh +retroarch && loginctl poweroff diff --git a/main/postmarketos-ui-retroarch/retroarch.initd b/main/postmarketos-ui-retroarch/retroarch.initd new file mode 100644 index 000000000..1425cd50c --- /dev/null +++ b/main/postmarketos-ui-retroarch/retroarch.initd @@ -0,0 +1,26 @@ +#!/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" +}