Merge remote-tracking branch 'sunshine/master'

This commit is contained in:
Yukino Song
2025-07-13 23:16:01 +08:00
93 changed files with 2952 additions and 493 deletions

View File

@@ -1,13 +1,13 @@
[Desktop Entry]
Type=Application
Name=@PROJECT_NAME@
Exec=sunshine
Version=1.0
Categories=RemoteAccess;Network;
Comment=@PROJECT_DESCRIPTION@
Exec=sunshine
Icon=sunshine
Keywords=gamestream;stream;moonlight;remote play;
Categories=AudioVideo;Network;RemoteAccess;
Name=@PROJECT_NAME@
Terminal=true
Type=Application
Version=1.0
X-AppImage-Arch=x86_64
X-AppImage-Name=sunshine
X-AppImage-Version=@PROJECT_VERSION@
X-AppImage-Arch=x86_64

View File

@@ -10,7 +10,7 @@ url=@PROJECT_HOMEPAGE_URL@
license=('GPL-3.0-only')
install=sunshine.install
_gcc_version=13
_gcc_version=14
depends=(
'avahi'
@@ -36,7 +36,10 @@ depends=(
)
makedepends=(
'appstream'
'appstream-glib'
'cmake'
'desktop-file-utils'
'cuda'
"gcc${_gcc_version}"
'git'
@@ -64,7 +67,7 @@ prepare() {
build() {
export BRANCH="@GITHUB_BRANCH@"
export BUILD_VERSION="@GITHUB_BUILD_VERSION@"
export BUILD_VERSION="@BUILD_VERSION@"
export COMMIT="@GITHUB_COMMIT@"
export CC="gcc-${_gcc_version}"
@@ -86,6 +89,11 @@ build() {
-D SUNSHINE_PUBLISHER_WEBSITE='https://app.lizardbyte.dev' \
-D SUNSHINE_PUBLISHER_ISSUE_URL='https://app.lizardbyte.dev/support'
appstreamcli validate "build/dev.lizardbyte.app.Sunshine.metainfo.xml"
appstream-util validate "build/dev.lizardbyte.app.Sunshine.metainfo.xml"
desktop-file-validate "build/dev.lizardbyte.app.Sunshine.desktop"
desktop-file-validate "build/dev.lizardbyte.app.Sunshine.terminal.desktop"
make -C build
}

View File

@@ -1,15 +1,15 @@
[Desktop Entry]
Type=Application
Name=@PROJECT_NAME@
Exec=/usr/bin/env systemctl start --u sunshine
Version=1.0
Actions=RunInTerminal;
Categories=RemoteAccess;Network;
Comment=@PROJECT_DESCRIPTION@
Exec=/usr/bin/env systemctl start --u sunshine
Icon=@SUNSHINE_DESKTOP_ICON@
Keywords=gamestream;stream;moonlight;remote play;
Categories=AudioVideo;Network;RemoteAccess;
Actions=RunInTerminal;
Name=@PROJECT_NAME@
Type=Application
Version=1.0
[Desktop Action RunInTerminal]
Name=Run in Terminal
Exec=gio launch @CMAKE_INSTALL_FULL_DATAROOTDIR@/applications/@PROJECT_FQDN@.terminal.desktop
Icon=application-x-executable
Exec=gio launch @CMAKE_INSTALL_FULL_DATAROOTDIR@/applications/sunshine_terminal.desktop
Name=Run in Terminal

View File

@@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application">
<component type="desktop">
<id>@PROJECT_FQDN@</id>
<name>@CMAKE_PROJECT_NAME@</name>
<name>@PROJECT_NAME@</name>
<summary>@PROJECT_BRIEF_DESCRIPTION@</summary>
<metadata_license>CC0-1.0</metadata_license>
@@ -15,39 +15,49 @@
<control>gamepad</control>
</supports>
<url type="bugtracker">https://github.com/LizardByte/Sunshine/issues</url>
<url type="homepage">@PROJECT_HOMEPAGE_URL@</url>
<url type="bugtracker">https://github.com/LizardByte/Sunshine/issues</url>
<url type="faq">https://docs.lizardbyte.dev/projects/sunshine/latest/md_docs_2troubleshooting.html</url>
<url type="help">https://docs.lizardbyte.dev/projects/sunshine</url>
<url type="donation">https://app.lizardbyte.dev/#Donate</url>
<url type="contact">https://app.lizardbyte.dev/support</url>
<url type="translate">https://translate.lizardbyte.dev</url>
<url type="contribute">https://docs.lizardbyte.dev</url>
<url type="vcs-browser">https://github.com/LizardByte/Sunshine</url>
<url type="contact">https://app.lizardbyte.dev/support</url>
<description>
<p>
@PROJECT_LONG_DESCRIPTION@
</p>
<p>NOTE: Sunshine requires additional installation steps.</p>
<p>NOTE: Sunshine requires additional installation steps (Flatpak).</p>
<p>
<code>flatpak run --command=additional-install.sh @PROJECT_FQDN@</code>
</p>
<p>NOTE: Sunshine uses a self-signed certificate. The web browser will report it as not secure, but it is safe.</p>
<p>NOTE: KMS Grab (Optional)</p>
<p>NOTE: KMS Grab (Flatpak)</p>
<p>
<code>sudo -i PULSE_SERVER=unix:/run/user/$(id -u $whoami)/pulse/native flatpak run @PROJECT_FQDN@</code>
</p>
</description>
<releases>
<release version="@PROJECT_VERSION@" date="1990-01-01"></release>
<release version="@PROJECT_VERSION@" date="@PROJECT_YEAR@-@PROJECT_MONTH@-@PROJECT_DAY@">
<description>
<p>
See the full changelog on GitHub
<!-- changelog -->
</p>
</description>
</release>
</releases>
<developer_name>LizardByte</developer_name>
<developer id="dev.lizardbyte">
<name>LizardByte</name>
</developer>
<screenshots>
<screenshot type="default">
<image>https://app.lizardbyte.dev/Sunshine/assets/img/banners/AdobeStock_305732536_1920x1280.jpg</image>
<caption>Sunshine</caption>
<image>https://app.lizardbyte.dev/Sunshine/assets/img/screenshots/01-sunshine-welcome-page.png</image>
<caption>Sunshine welcome page</caption>
</screenshot>
</screenshots>
<content_rating type="oars-1.0">

View File

@@ -15,8 +15,11 @@ License: GPLv3-only
URL: https://github.com/LizardByte/Sunshine
Source0: tarball.tar.gz
BuildRequires: appstream
# BuildRequires: boost-devel >= 1.86.0
BuildRequires: cmake >= 3.25.0
BuildRequires: desktop-file-utils
BuildRequires: libappstream-glib
BuildRequires: libayatana-appindicator3-devel
BuildRequires: libcap-devel
BuildRequires: libcurl-devel
@@ -197,6 +200,11 @@ cmake "${cmake_args[@]}"
make -j$(nproc) -C "%{_builddir}/Sunshine/build"
%check
# validate the metainfo file
appstreamcli validate %{buildroot}%{_metainfodir}/*.metainfo.xml
appstream-util validate %{buildroot}%{_metainfodir}/*.metainfo.xml
desktop-file-validate %{buildroot}%{_datadir}/applications/*.desktop
# run tests
cd %{_builddir}/Sunshine/build
xvfb-run ./tests/test_sunshine
@@ -252,14 +260,14 @@ rm -f /usr/lib/modules-load.d/uhid.conf
%{_modulesloaddir}/uhid.conf
# Desktop entries
%{_datadir}/applications/sunshine*.desktop
%{_datadir}/applications/*.desktop
# Icons
%{_datadir}/icons/hicolor/scalable/apps/apollo.svg
%{_datadir}/icons/hicolor/scalable/status/apollo*.svg
# Metainfo
%{_datadir}/metainfo/sunshine.appdata.xml
%{_datadir}/metainfo/*.metainfo.xml
# Assets
%{_datadir}/sunshine/**

View File

@@ -1,5 +1,5 @@
[Desktop Entry]
Categories=AudioVideo;Network;RemoteAccess;
Categories=RemoteAccess;Network;
Comment=@PROJECT_DESCRIPTION@
Exec=sunshine.sh
Icon=@SUNSHINE_DESKTOP_ICON@

View File

@@ -1,8 +1,9 @@
{
"dev.lizardbyte.app.Sunshine": [
"appstream-missing-screenshots",
"appstream-external-screenshot-url",
"appstream-screenshots-not-mirrored-in-ostree",
"external-gitmodule-url-found",
"finish-args-flatpak-spawn-access"
"finish-args-flatpak-spawn-access",
"finish-args-home-filesystem-access"
]
}

View File

@@ -32,15 +32,12 @@
"sources": [
{
"type": "git",
"url": "https://salsa.debian.org/utopia-team/avahi.git",
"commit": "1412c015d348166d58ea9c192239b00769eae24e",
"tag": "debian/0.8-13",
"url": "https://github.com/avahi/avahi.git",
"commit": "f060abee2807c943821d88839c013ce15db17b58",
"tag": "v0.8",
"x-checker-data": {
"type": "git",
"tag-pattern": "^debian\\/(\\d.+)$",
"versions": {
"<": "0.9"
}
"tag-pattern": "^v([\\d.]+)$"
}
},
{

View File

@@ -5,22 +5,24 @@
"-Ddocumentation=disabled",
"-Dtests=disabled"
],
"cleanup": [
"/bin"
],
"sources": [
{
"type": "git",
"url": "https://salsa.debian.org/debian/libevdev.git",
"commit": "1aa7baa233d6df4cee6a66fbc61bb5ffc8b6e88d",
"tag": "debian/1.13.0+dfsg-1",
"url": "https://github.com/LizardByte-infrastructure/libevdev.git",
"commit": "ac0056961c3332a260db063ab4fccc7747638a1d",
"tag": "libevdev-1.13.4",
"x-checker-data": {
"type": "git",
"tag-pattern": "^debian\\/(\\d.\\d+\\.\\d+)",
"versions": {
"<": "1.13.1"
}
"type": "anitya",
"project-id": 20540,
"stable-only": true,
"tag-template": "libevdev-$version"
}
}
],
"cleanup": [
"/bin",
"/include",
"/lib/pkgconfig",
"/share"
]
}

View File

@@ -11,15 +11,12 @@
"sources": [
{
"type": "git",
"url": "https://salsa.debian.org/gnome-team/libnotify.git",
"commit": "ccf2f62ef0a4b264dd4eff32cab70a3e213ceb1a",
"tag": "debian/0.8.1-1",
"url": "https://github.com/LizardByte-infrastructure/libnotify.git",
"commit": "131aad01ff5f563b4863becbb6ed84dac6e75d5a",
"tag": "0.8.6",
"x-checker-data": {
"type": "git",
"tag-pattern": "^debian\\/(\\d.+)$",
"versions": {
"<": "0.8.2"
}
"tag-pattern": "^([\\d.]+)$"
}
}
]

View File

@@ -1,25 +1,33 @@
{
"name": "miniupnpc",
"buildsystem": "cmake-ninja",
"builddir": true,
"config-opts": [
"-DCMAKE_BUILD_TYPE=Release",
"-DUPNPC_BUILD_SAMPLE=OFF",
"-DCMAKE_BUILD_TYPE=RelWithDebInfo",
"-DUPNPC_BUILD_STATIC=OFF",
"-DUPNPC_BUILD_SHARED=ON",
"-DUPNPC_BUILD_TESTS=OFF"
"-DUPNPC_BUILD_TESTS=OFF",
"-DUPNPC_BUILD_SAMPLE=OFF"
],
"sources": [
{
"type": "git",
"url": "https://salsa.debian.org/miniupnp-team/miniupnpc.git",
"commit": "c5fe3aa794e92a503cecec6a4071eb6d310b4e42",
"tag": "debian/2.2.4-1",
"url": "https://miniupnp.tuxfamily.org/files/miniupnpc-2.3.3.tar.gz",
"sha256": "d52a0afa614ad6c088cc9ddff1ae7d29c8c595ac5fdd321170a05f41e634bd1a",
"x-checker-data": {
"type": "git",
"tag-pattern": "^debian\\/(\\d.+)$",
"versions": {
"<": "2.2.5"
}
}
"type": "anitya",
"project-id": 1986,
"stable-only": true,
"url-template": "https://miniupnp.tuxfamily.org/files/miniupnpc-$version.tar.gz"
},
"type": "archive"
}
],
"cleanup": [
"/share/man",
"/lib/pkgconfig",
"/lib/libminiupnpc.so",
"/lib/cmake",
"/include",
"/bin/external-ip.sh"
]
}

View File

@@ -1,22 +1,24 @@
{
"name": "numactl",
"buildsystem": "autotools",
"cleanup": [
"/bin"
],
"sources": [
{
"type": "git",
"url": "https://salsa.debian.org/debian/numactl.git",
"commit": "640bb34497702f9aaeb8af1b491f32b91d03ec80",
"tag": "debian/2.0.16-1",
"url": "https://github.com/numactl/numactl.git",
"tag": "v2.0.19",
"commit": "3bc85e37d5a30da6790cb7e8bb488bb8f679170f",
"x-checker-data": {
"type": "git",
"tag-pattern": "^debian\\/(\\d.+)$",
"versions": {
"<": "2.0.17"
}
"tag-pattern": "^v([\\d.]+)$"
}
}
],
"rm-configure": true,
"cleanup": [
"/include",
"/lib/pkgconfig",
"/lib/*.a",
"/lib/*.la",
"/lib/*.so",
"/share/man"
]
}

View File

@@ -1,20 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop">
<id>@PROJECT_NAME@.desktop</id>
<metadata_license>@PROJECT_LICENSE@</metadata_license>
<project_license>@PROJECT_LICENSE@</project_license>
<name>@PROJECT_NAME@</name>
<url type="homepage">@CMAKE_PROJECT_HOMEPAGE_URL@</url>
<summary>@PROJECT_BRIEF_DESCRIPTION@</summary>
<description>
<p>
@PROJECT_LONG_DESCRIPTION@
</p>
</description>
<screenshots>
<screenshot type="default">
<image>https://app.lizardbyte.dev/Sunshine/assets/images/AdobeStock_305732536_1920x1280.jpg</image>
<caption>Sunshine</caption>
</screenshot>
</screenshots>
</component>

View File

@@ -6,7 +6,7 @@ class @PROJECT_NAME@ < Formula
homepage "@PROJECT_HOMEPAGE_URL@"
url "@GITHUB_CLONE_URL@",
tag: "@GITHUB_TAG@"
version "@FORMULA_VERSION@"
version "@BUILD_VERSION@"
license all_of: ["GPL-3.0-only"]
head "@GITHUB_CLONE_URL@", branch: "@GITHUB_DEFAULT_BRANCH@"
@@ -319,31 +319,31 @@ index 5b3638d..aca9481 100644
run [opt_bin/"sunshine", "~/.config/sunshine/sunshine.conf"]
end
def caveats
caveats_message = <<~EOS
Thanks for installing @PROJECT_NAME@!
To get started, review the documentation at:
https://docs.lizardbyte.dev/projects/sunshine
EOS
def post_install
if OS.linux?
caveats_message += <<~EOS
opoo <<~EOS
ATTENTION: To complete installation, you must run the following command:
`sudo #{bin}/postinst`
EOS
end
if OS.mac?
caveats_message += <<~EOS
opoo <<~EOS
Sunshine can only access microphones on macOS due to system limitations.
To stream system audio use "Soundflower" or "BlackHole".
Gamepads are not currently supported on macOS.
EOS
end
end
caveats_message
def caveats
<<~EOS
Thanks for installing @PROJECT_NAME@!
To get started, review the documentation at:
https://docs.lizardbyte.dev/projects/sunshine
EOS
end
test do