Skip to content

fix(linux): use FQDN naming for all Linux packaging types#4779

Merged
ReenigneArcher merged 4 commits intoLizardByte:masterfrom
psyke83:xdg_fqdn
Mar 7, 2026
Merged

fix(linux): use FQDN naming for all Linux packaging types#4779
ReenigneArcher merged 4 commits intoLizardByte:masterfrom
psyke83:xdg_fqdn

Conversation

@psyke83
Copy link
Contributor

@psyke83 psyke83 commented Feb 26, 2026

Normalize install files to use the FQDN naming scheme for all package types (native/AppImage/Flatpak) to allow XDG compliance.

  • Use FQDN naming convention for icons.
  • Use "app-FQDN" naming convention for unprivileged systemd service; fixes XDG Desktop Portal app_id detection.
  • Restore privileged "sunshine-kms" service unit back to "sunshine" and restore as the default in documentation and via preset unit. The unprivileged service only needs XDG compliance.

Description

Screenshot

Issues Fixed or Closed

Roadmap Issues

Type of Change

  • feat: New feature (non-breaking change which adds functionality)
  • fix: Bug fix (non-breaking change which fixes an issue)
  • docs: Documentation only changes
  • style: Changes that do not affect the meaning of the code (white-space, formatting, missing semicolons, etc.)
  • refactor: Code change that neither fixes a bug nor adds a feature
  • perf: Code change that improves performance
  • test: Adding missing tests or correcting existing tests
  • build: Changes that affect the build system or external dependencies
  • ci: Changes to CI configuration files and scripts
  • chore: Other changes that don't modify src or test files
  • revert: Reverts a previous commit
  • BREAKING CHANGE: Introduces a breaking change (can be combined with any type above)

Checklist

  • Code follows the style guidelines of this project
  • Code has been self-reviewed
  • Code has been commented, particularly in hard-to-understand areas
  • Code docstring/documentation-blocks for new or existing methods/components have been added or updated
  • Unit tests have been added or updated for any new or modified functionality

AI Usage

  • None: No AI tools were used in creating this PR
  • Light: AI provided minor assistance (formatting, simple suggestions)
  • Moderate: AI helped with code generation or debugging specific parts
  • Heavy: AI generated most or all of the code changes

Normalize install files to use the FQDN naming scheme for all package
types (native/AppImage/Flatpak) to allow XDG compliance.

* Use FQDN naming convention for icons.
* Use "app-FQDN" naming convention for unprivileged systemd service;
  fixes XDG Desktop Portal app_id detection.
* Restore privileged "sunshine-kms" service unit back to "sunshine"
  and restore as the default in documentation and via preset unit.
  The unprivileged service only needs XDG compliance.
@psyke83 psyke83 marked this pull request as ready for review February 26, 2026 09:46
@psyke83
Copy link
Contributor Author

psyke83 commented Feb 26, 2026

These changes are enough to fix XDG detection when streaming via Portal grab, but if we want more complete compliance, the real binary should probably be named "PROJECT_FQDN" as well. Should we change it or leave as-is? Detection works fine on Fedora 43 with the native package and these current changes.

@ReenigneArcher
Copy link
Member

These changes are enough to fix XDG detection when streaming via Portal grab, but if we want more complete compliance, the real binary should probably be named "PROJECT_FQDN" as well. Should we change it or leave as-is? Detection works fine on Fedora 43 with the native package and these current changes.

I think we should change it. Maybe for this one we can create an alias in the post install scripts?

@psyke83
Copy link
Contributor Author

psyke83 commented Feb 26, 2026

These changes are enough to fix XDG detection when streaming via Portal grab, but if we want more complete compliance, the real binary should probably be named "PROJECT_FQDN" as well. Should we change it or leave as-is? Detection works fine on Fedora 43 with the native package and these current changes.

I think we should change it. Maybe for this one we can create an alias in the post install scripts?

I'm not sure what kind of alias you mean? XDG detects the app_id using multiple matching strategies, including the name of the executable via /proc/$(pidof sunshine)/exe. This would point to the real file and not a symlink. But it's already matching correctly without this change.

@ReenigneArcher
Copy link
Member

I'm not sure what kind of alias you mean?

Disregard, for I was mistakenly thinking this PR was changing the binary name.

@psyke83
Copy link
Contributor Author

psyke83 commented Feb 26, 2026

I'm not sure what kind of alias you mean?

Disregard, for I was mistakenly thinking this PR was changing the binary name.

So we'll leave the binary name as-is? I think it's ok. Are you comfortable with the hardcoding of the FQDN in scripts, though? It would cause issues for forks that change to their own FQDN. Should I modify the cmake scripts to replace the strings in these files in the same way that the service files are processed?

@ReenigneArcher
Copy link
Member

Are you comfortable with the hardcoding of the FQDN in scripts

Hardcoding is fine.

The configure files was not really meant to help forks anyway. It was more to have less places when an adjustment was made.

psyke83 and others added 2 commits March 7, 2026 10:23
Normalize install files to use the FQDN naming scheme for all package
types (native/AppImage/Flatpak) to allow XDG compliance.

* Use FQDN naming convention for icons.
* Use "app-FQDN" naming convention for unprivileged systemd service;
  fixes XDG Desktop Portal app_id detection.
* Restore privileged "sunshine-kms" service unit back to "sunshine"
  and restore as the default in documentation and via preset unit.
  The unprivileged service only needs XDG compliance.
@codecov
Copy link

codecov bot commented Mar 7, 2026

Bundle Report

Bundle size has no change ✅

@sonarqubecloud
Copy link

sonarqubecloud bot commented Mar 7, 2026

@ReenigneArcher
Copy link
Member

Sorry for the delay on this PR. There was a bunch of build failures that needed to be addressed, but finally caught up now.

But if we want more complete compliance, the real binary should probably be named "PROJECT_FQDN" as well.

Back to this original comment, I guess there was some confusion with the back and forth. I think renaming the binary is a good idea if it makes the project more compliant with standard practices.

What I meant by creating an alias is something like alias sunshine='dev.lizardbyte.app.Sunshine' in the post install scripts. Maybe this is not necessary though?

This could always be done later if we don't want to do it now though.

NOTE: If you do push changes to this PR, I had pushed a fix for the new sonar issues, so please keep that.

@codecov
Copy link

codecov bot commented Mar 7, 2026

Codecov Report

❌ Patch coverage is 0% with 6 lines in your changes missing coverage. Please review.
✅ Project coverage is 16.75%. Comparing base (76c3463) to head (98cb636).
⚠️ Report is 1 commits behind head on master.
✅ All tests successful. No failed tests found.

Files with missing lines Patch % Lines
src/platform/linux/kmsgrab.cpp 0.00% 6 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##           master    #4779      +/-   ##
==========================================
+ Coverage   16.74%   16.75%   +0.01%     
==========================================
  Files         106      106              
  Lines       21761    21762       +1     
  Branches     9736     9737       +1     
==========================================
+ Hits         3644     3647       +3     
- Misses      15794    16378     +584     
+ Partials     2323     1737     -586     
Flag Coverage Δ
Archlinux 11.05% <0.00%> (ø)
FreeBSD-14.3-aarch64 ?
FreeBSD-14.3-amd64 13.06% <ø> (ø)
Homebrew-ubuntu-22.04 13.26% <0.00%> (ø)
Linux-AppImage 11.47% <0.00%> (ø)
Windows-AMD64 13.43% <ø> (ø)
Windows-ARM64 12.34% <ø> (-0.01%) ⬇️
macOS-arm64 16.96% <ø> (ø)
macOS-x86_64 15.54% <ø> (+0.02%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

Files with missing lines Coverage Δ
src/platform/linux/kmsgrab.cpp 3.78% <0.00%> (-0.01%) ⬇️

... and 54 files with indirect coverage changes

@ReenigneArcher
Copy link
Member

I will merge and we can decide about the binary name later.

@ReenigneArcher ReenigneArcher merged commit daa99db into LizardByte:master Mar 7, 2026
73 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants