diff --git a/packaging/linux/fedora/sunshine.spec b/packaging/linux/fedora/sunshine.spec index a56287e4bb5..7c907888cf6 100644 --- a/packaging/linux/fedora/sunshine.spec +++ b/packaging/linux/fedora/sunshine.spec @@ -173,6 +173,11 @@ if [ -n "$cuda_version" ] && [[ " ${cuda_supported_architectures[@]} " =~ " ${ar cmake_args+=("-DCMAKE_CUDA_COMPILER:PATH=%{_builddir}/cuda/bin/nvcc") fi +# setup the version +export BRANCH=%{branch} +export BUILD_VERSION=v%{build_version} +export COMMIT=%{commit} + # cmake cd %{_builddir}/Sunshine echo "cmake args:" @@ -198,12 +203,23 @@ EOF %post # Note: this is copied from the postinst script -# Trigger udev rule reload for /dev/uinput and /dev/uhid -path_to_udevadm=$(which udevadm) -if [ -x "$path_to_udevadm" ] ; then - $path_to_udevadm control --reload-rules - $path_to_udevadm trigger --property-match=DEVNAME=/dev/uinput - $path_to_udevadm trigger --property-match=DEVNAME=/dev/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." + + # 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 +else + echo "rpm-ostree environment detected, skipping post install steps. Restart to apply the changes." fi %preun diff --git a/src_assets/linux/misc/postinst b/src_assets/linux/misc/postinst index 47deb784ce4..262dd8bce14 100644 --- a/src_assets/linux/misc/postinst +++ b/src_assets/linux/misc/postinst @@ -1,17 +1,32 @@ #!/bin/sh -# 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 "$path_to_setcap cap_sys_admin+p $path_to_sunshine" - $path_to_setcap cap_sys_admin+p $path_to_sunshine -fi +# 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 capability on Sunshine binary." + echo "$path_to_setcap cap_sys_admin+p $path_to_sunshine" + $path_to_setcap cap_sys_admin+p $path_to_sunshine + echo "CAP_SYS_ADMIN capability 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 - $path_to_udevadm control --reload-rules - $path_to_udevadm trigger --property-match=DEVNAME=/dev/uinput - $path_to_udevadm trigger --property-match=DEVNAME=/dev/uhid + # 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 +else + echo "rpm-ostree environment detected, skipping post install steps. Restart to apply the changes." fi