fix(linux/postins): allow running on rpm-ostree environments (#4963)

This commit is contained in:
Alex Shek
2026-04-11 03:19:30 +08:00
committed by GitHub
parent d3330d1c8d
commit 379242ec99
+21 -28
View File
@@ -4,33 +4,26 @@
echo "Loading uhid kernel module for DS5 emulation."
modprobe uhid
# Check if we're in an rpm-ostree environment
if [ ! -x "$(command -v rpm-ostree)" ]; then
echo "Not in an rpm-ostree environment, proceeding with post install steps."
# Ensure Sunshine can grab images from KMS
path_to_setcap=$(which setcap)
path_to_sunshine=$(readlink -f "$(which sunshine)")
if [ -x "$path_to_setcap" ] ; then
echo "Setting CAP_SYS_ADMIN, CAP_SYS_NICE capabilities on Sunshine binary."
echo "$path_to_setcap cap_sys_admin,cap_sys_nice+p $path_to_sunshine"
$path_to_setcap cap_sys_admin,cap_sys_nice+p $path_to_sunshine
echo "CAP_SYS_ADMIN, CAP_SYS_NICE capabilities set on Sunshine binary."
else
echo "error: setcap not found or not executable."
fi
# Trigger udev rule reload for /dev/uinput and /dev/uhid
path_to_udevadm=$(which udevadm)
if [ -x "$path_to_udevadm" ] ; then
echo "Reloading udev rules."
$path_to_udevadm control --reload-rules
$path_to_udevadm trigger --property-match=DEVNAME=/dev/uinput
$path_to_udevadm trigger --property-match=DEVNAME=/dev/uhid
echo "Udev rules reloaded successfully."
else
echo "error: udevadm not found or not executable."
fi
# Ensure Sunshine can grab images from KMS
path_to_setcap=$(which setcap)
path_to_sunshine=$(readlink -f "$(which sunshine)")
if [ -x "$path_to_setcap" ] ; then
echo "Setting CAP_SYS_ADMIN, CAP_SYS_NICE capabilities on Sunshine binary."
echo "$path_to_setcap cap_sys_admin,cap_sys_nice+p $path_to_sunshine"
$path_to_setcap cap_sys_admin,cap_sys_nice+p $path_to_sunshine
echo "CAP_SYS_ADMIN, CAP_SYS_NICE capabilities set on Sunshine binary."
else
echo "rpm-ostree environment detected, skipping post install steps. Restart to apply the changes."
echo "error: setcap not found or not executable."
fi
# Trigger udev rule reload for /dev/uinput and /dev/uhid
path_to_udevadm=$(which udevadm)
if [ -x "$path_to_udevadm" ] ; then
echo "Reloading udev rules."
$path_to_udevadm control --reload-rules
$path_to_udevadm trigger --property-match=DEVNAME=/dev/uinput
$path_to_udevadm trigger --property-match=DEVNAME=/dev/uhid
echo "Udev rules reloaded successfully."
else
echo "error: udevadm not found or not executable."
fi