Skip to content

Commit 31e8b79

Browse files
Merge pull request #1115 from LizardByte/nightly
v0.20.0
2 parents d70d084 + 7cc6fcd commit 31e8b79

File tree

163 files changed

+5656
-3253
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

163 files changed

+5656
-3253
lines changed

.clang-format

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,7 +52,7 @@ NamespaceIndentation: All
5252
ObjCSpaceAfterProperty: true
5353
ObjCSpaceBeforeProtocolList: true
5454
PointerAlignment: Right
55-
ReflowComments: false
55+
ReflowComments: true
5656
SpaceAfterCStyleCast: true
5757
SpaceAfterLogicalNot: false
5858
SpaceAfterTemplateKeyword: true

.github/ISSUE_TEMPLATE/bug-report.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,6 @@ body:
102102
- Linux - solus (Third Party)
103103
- macOS - dmg
104104
- macOS - Portfile
105-
- macOS - pkg
106105
- Windows - Chocolatey (Third Party)
107106
- Windows - installer
108107
- Windows - portable
@@ -111,6 +110,7 @@ body:
111110
- other (not listed)
112111
- other (self built)
113112
- other (fork of this repo)
113+
- n/a
114114
validations:
115115
required: true
116116
- type: dropdown
@@ -123,6 +123,7 @@ body:
123123
- Intel
124124
- Nvidia
125125
- none (software encoding)
126+
- n/a
126127
validations:
127128
required: true
128129
- type: input

.github/workflows/CI.yml

Lines changed: 29 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -474,7 +474,7 @@ jobs:
474474
build_mac:
475475
name: MacOS
476476
runs-on: macos-11
477-
needs: setup_release
477+
needs: [check_changelog, setup_release]
478478

479479
steps:
480480
- name: Checkout
@@ -514,47 +514,34 @@ jobs:
514514
515515
# package
516516
cpack -G DragNDrop
517-
mv ./cpack_artifacts/Sunshine.dmg ../artifacts/sunshine-macos-experimental-dragndrop.dmg
518-
519-
cpack -G Bundle
520-
mv ./cpack_artifacts/Sunshine.dmg ../artifacts/sunshine-macos-experimental-bundle.dmg
517+
mv ./cpack_artifacts/Sunshine.dmg ../artifacts/sunshine.dmg
521518
522-
cpack -G ZIP
523-
mv ./cpack_artifacts/Sunshine.zip ../artifacts/sunshine-macos-experimental-archive.zip
519+
# cpack -G Bundle
520+
# mv ./cpack_artifacts/Sunshine.dmg ../artifacts/sunshine-bundle.dmg
524521
525522
- name: Upload Artifacts
526523
uses: actions/upload-artifact@v3
527524
with:
528525
name: sunshine-macos
529526
path: artifacts/
530527

531-
# this step can be removed after packages are fixed
532-
- name: Delete experimental packages
533-
if: ${{ github.event_name == 'push' && github.ref == 'refs/heads/master' }}
534-
working-directory: artifacts
535-
run: |
536-
rm -f ./sunshine-macos-experimental-dragndrop.dmg
537-
rm -f ./sunshine-macos-experimental-bundle.dmg
538-
rm -f ./sunshine-macos-experimental-archive.zip
539-
540-
# # no artifacts to release currently
541-
# - name: Create/Update GitHub Release
542-
# if: ${{ needs.setup_release.outputs.create_release == 'true' }}
543-
# uses: ncipollo/release-action@v1
544-
# with:
545-
# name: ${{ needs.setup_release.outputs.release_name }}
546-
# tag: ${{ needs.setup_release.outputs.release_tag }}
547-
# commit: ${{ needs.setup_release.outputs.release_commit }}
548-
# artifacts: "*artifacts/*"
549-
# token: ${{ secrets.GH_BOT_TOKEN }}
550-
# allowUpdates: true
551-
# body: ${{ needs.setup_release.outputs.release_body }}
552-
# discussionCategory: announcements
553-
# prerelease: ${{ needs.setup_release.outputs.pre_release }}
528+
- name: Create/Update GitHub Release
529+
if: ${{ needs.setup_release.outputs.create_release == 'true' }}
530+
uses: ncipollo/release-action@v1
531+
with:
532+
name: ${{ needs.setup_release.outputs.release_name }}
533+
tag: ${{ needs.setup_release.outputs.release_tag }}
534+
commit: ${{ needs.setup_release.outputs.release_commit }}
535+
artifacts: "*artifacts/*"
536+
token: ${{ secrets.GH_BOT_TOKEN }}
537+
allowUpdates: true
538+
body: ${{ needs.setup_release.outputs.release_body }}
539+
discussionCategory: announcements
540+
prerelease: ${{ needs.setup_release.outputs.pre_release }}
554541

555542
build_mac_port:
556543
name: Macports
557-
needs: setup_release
544+
needs: [check_changelog, setup_release]
558545
runs-on: macos-11
559546

560547
steps:
@@ -728,25 +715,6 @@ jobs:
728715
done
729716
exit "$fail"
730717
731-
- name: Package
732-
run: |
733-
# create packages
734-
sudo port pkg sunshine
735-
sudo port dmg sunshine
736-
737-
work=$(port work sunshine)
738-
echo "Sunshine port work directory: ${work}"
739-
740-
# move components out of port work directory
741-
sudo mv ${work}/Sunshine*component.pkg /tmp/
742-
743-
# copy artifacts
744-
sudo mv ${work}/Sunshine*.pkg ./artifacts/sunshine.pkg
745-
sudo mv ${work}/Sunshine*.dmg ./artifacts/sunshine.dmg
746-
747-
# move components back
748-
# sudo mv /tmp/Sunshine*component.pkg ${work}/
749-
750718
- name: Upload Artifacts
751719
uses: actions/upload-artifact@v3
752720
with:
@@ -770,7 +738,7 @@ jobs:
770738
build_win:
771739
name: Windows
772740
runs-on: windows-2019
773-
needs: setup_release
741+
needs: [check_changelog, setup_release]
774742

775743
steps:
776744
- name: Checkout
@@ -813,7 +781,7 @@ jobs:
813781
run: |
814782
mkdir build
815783
cd build
816-
cmake -DCMAKE_BUILD_TYPE=Release \
784+
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \
817785
-DSUNSHINE_ASSETS_DIR=assets \
818786
-G "MinGW Makefiles" \
819787
..
@@ -833,6 +801,15 @@ jobs:
833801
mv ./cpack_artifacts/Sunshine.exe ../artifacts/sunshine-windows-installer.exe
834802
mv ./cpack_artifacts/Sunshine.zip ../artifacts/sunshine-windows-portable.zip
835803
804+
- name: Package Windows Debug Info
805+
working-directory: build
806+
run: |
807+
# save the original binaries with debug info
808+
7z -r `
809+
"-xr!CMakeFiles" `
810+
"-xr!cpack_artifacts" `
811+
a "../artifacts/sunshine-debuginfo-win32.zip" "*.exe"
812+
836813
- name: Upload Artifacts
837814
uses: actions/upload-artifact@v3
838815
with:

.github/workflows/localize.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ jobs:
7777
run: echo "date=$(date +'%Y-%m-%d')" >> $GITHUB_OUTPUT
7878

7979
- name: Create/Update Pull Request
80-
uses: peter-evans/create-pull-request@v4
80+
uses: peter-evans/create-pull-request@v5
8181
with:
8282
add-paths: |
8383
locale/*.po

.readthedocs.yaml

Lines changed: 9 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -8,26 +8,16 @@ version: 2
88

99
# Set the version of Python
1010
build:
11-
os: ubuntu-20.04
11+
os: ubuntu-22.04
1212
tools:
13-
python: "3.10"
14-
15-
## apt packages required packages to run cmake on sunshine, note that additional packages are required
16-
# apt_packages:
17-
# - cmake
18-
# - libboost-filesystem-dev
19-
# - libboost-log-dev
20-
# - libboost-thread-dev
21-
22-
## run cmake
23-
# jobs:
24-
# pre_build:
25-
# - cmake .
26-
27-
## Include the submodules, required for cmake
28-
# submodules:
29-
# include: all
30-
# recursive: true
13+
python: "3.11"
14+
apt_packages:
15+
- graphviz
16+
17+
# submodules required for include statements
18+
submodules:
19+
include: all
20+
recursive: true
3121

3222
# Build documentation in the docs/ directory with Sphinx
3323
sphinx:

CHANGELOG.md

Lines changed: 81 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,85 @@
11
# Changelog
22

3+
## [0.20.0] - 2023-05-28
4+
**Breaking**
5+
- (Windows) The Windows installer version of Sunshine is now always launched by the Sunshine Service. Manually launching Sunshine.exe from Program Files is no longer supported. This was necessary to address security issues caused by non-admin users having access to Sunshine's config data. If you have set up Task Scheduler or other mechanisms to launch Sunshine automatically, remove those from your system before updating.
6+
- (Windows) The Start Menu shortcut has been redesigned for use with the Sunshine Service. It now launches Sunshine in the background (if not already running) and opens the Web UI, avoiding the persistent Command Prompt window present in prior versions. The Start Menu shortcut is now the recommended method for opening the Web UI and launching Sunshine.
7+
- (Network/UPnP) If the Moonlight Internet Hosting Tool is installed alongside Sunshine, you must remove it or upgrade to v5.6 or later to prevent conflicts with Sunshine's UPnP support. As a reminder, the Moonlight Internet Hosting Tool is not required to stream over the Internet with Sunshine. Instead, simply enable UPnP in the Sunshine Web UI.
8+
- (Windows) If Steam is installed, the Steam Streaming Speakers driver will be automatically installed when starting a stream for the first time. This behavior can be disabled in the Audio/Video tab of the Web UI. This Steam driver enables support for surround sound and muting host audio without requiring any manual configuration.
9+
- (Input) The Back Button Timeout option has been renamed to Guide Button Emulation Timeout and has been disabled by default to ensure long presses on the Back button work by default. The previous behavior can be restored by setting the Guide Button Emulation Timeout to 2000.
10+
- (Windows) The service name of SunshineSvc has been changed to SunshineService to address a false positive in MalwareBytes. If you have any scripts or other logic on your system that is using the service name, you will need to update that for the new name.
11+
- (Windows) To support new installer features, install-service.bat no longer sets the service to auto-start by default. Users executing install-service.bat manually on the Sunshine portable build must also execute autostart-service.bat to start Sunshine on boot. However, installing the service manually like this is not recommended. Instead, use the Sunshine installer which handles service installation and configuration automatically.
12+
- (Linux/Fedora) Fedora 36 builds are removed due to upstream end of support
13+
14+
**Added**
15+
- (Windows) Added an option to launch apps and prep/undo commands as administrator
16+
- (Installer/Windows) Added an option to choose whether Sunshine launches on boot. If not configured to launch on boot, use the Start Menu shortcut to start Sunshine when desired.
17+
- (Input/Windows) Added option to send VK codes instead of scancodes for compatibility with iOS/Android devices using non-English keyboard layouts
18+
- (UI) The Apply/Restart option is now available in the Web UI for all platforms
19+
- (Systray) Added a Restart option to the system tray context menu
20+
- (Video/Windows) Added host latency data to video frames. This requires future updates to Moonlight to display in the on-screen overlay.
21+
- (Audio) Added support for matching Audio Sink and Virtual Sink values on device names
22+
- (Client) Added friendly error messages for clients when streaming fails to start
23+
- (Video/Windows) Added warning log messages when Windows is hiding DRM-protected content from display capture
24+
- (Interop/Windows) Added warning log messages when GeForce Experience is currently using the same ports as Sunshine
25+
- (Linux/Fedora) Fedora 38 builds are now available
26+
27+
**Changed**
28+
- (Video) Encoder selection now happens at each stream start for more reliable GPU detection
29+
- (Video/Windows) The host display now stays on while clients are actively streaming
30+
- (Audio) Streaming will no longer fail if audio capture is unavailable
31+
- (Audio/Windows) Sunshine will automatically switch back to the Virtual Sink if the default audio device is changed while streaming
32+
- (Audio) Changes to the host audio playback option will now take effect when resuming a session from Moonlight
33+
- (Audio/Windows) Sunshine will switch to a different default audio device if Steam Streaming Speakers are the default when Sunshine starts. This handles cases where Sunshine terminates unexpectedly without restoring the default audio device.
34+
- (Apps) The Connection Terminated dialog will no longer appear in Moonlight when the app on the host exits normally
35+
- (Systray/Windows) Quitting Sunshine via the system tray will now stop the Sunshine Service rather than leaving it running and allowing it to restart Sunshine
36+
- (UI) The 100.64.0.0/10 CGN IP address range is now treated as a LAN address range
37+
- (Video) Removed a workaround for some versions of Moonlight prior to mid-2022
38+
- (UI) The PIN field is now cleared after successfully pairing
39+
- (UI) User names are now treated as case-insensitive
40+
- (Linux) Changed udev rule to automatically grant access to virtual input devices
41+
- (UI) Several item descriptions were adjusted to reflect newer configuration recommendations
42+
- (UI) Placeholder text opacity has been reduced to improve contrast with non-placeholder text
43+
- (Video/Windows) Minor capture performance improvements
44+
45+
**Fixed**
46+
- (Video) VRAM usage while streaming is significantly reduced, particularly with higher display resolutions and HDR
47+
- (Network/UPnP) UPnP support was rewritten to fix several major issues handling router restarts, IP address changes, and port forwarding expiration
48+
- (Input) Fixed modifier keys from the software keyboard on Android clients
49+
- (Audio) Fixed handling of default audio device changes while streaming
50+
- (Windows) Fixed streaming after Microsoft Remote Desktop or Fast User Switching has been used
51+
- (Input) Fixed some games not recognizing emulated Guide button presses
52+
- (Video/Windows) Fixed incorrect gamma when using an Advanced Color SDR display on the host
53+
- (Installer/Windows) The installer is no longer blurry on High DPI systems
54+
- (Systray/Windows) Fixed multiple system tray icons appearing if Sunshine exits unexpectedly
55+
- (Systray/Windows) Fixed the system tray icon not appearing in several situations
56+
- (Windows) Fixed hang on shutdown/restart if mDNS registration fails
57+
- (UI) Fixed missing response headers
58+
- (Stability) Fixed several possible crashes in cases where the client did not successfully connect
59+
- (Stability) Fixed several memory leaks
60+
- (Input/Windows) Back/Select input now correctly generates the Share button when emulating DS4 controllers
61+
- (Audio/Windows) Fixed various bugs in audio-info.exe that led to inaccurate output on some systems
62+
- (Video/Windows) Fixed incorrect resolution values from dxgi-info.exe on High DPI systems
63+
- (Video/Linux) Fixed poor quality encoding from H.264 on Intel encoders
64+
- (Config) Fixed a couple of typos in predefined resolutions
65+
66+
**Dependencies**
67+
- Bump sphinx-copybutton from 0.5.1 to 0.5.2
68+
- Bump sphinx from 6.13 to 7.0.1
69+
- Bump third-party/nv-codec-headers from 2055784 to 2cd175b
70+
- Bump furo from 2023.3.27 to 2023.5.20
71+
72+
**Misc**
73+
- (Build/Linux) Add X11 to PLATFORM_LIBARIES when found
74+
- (Build/macOS) Fix compilation with Clang 14
75+
- (Docs) Fix nvlax URL
76+
- (Docs) Add diagrams using graphviz
77+
- (Docs) Improvements to source code documentation
78+
- (Build) Unpin docker dependencies
79+
- (Build/Linux) Honor install prefix for tray icon
80+
- (Build/Windows) Unstripped binaries are now provided as a debuginfo package to support crash dump debugging
81+
- (Config) Config directories are now created recursively
82+
383
## [0.19.1] - 2023-03-30
484
**Fixed**
585
- (Audio) Fixed no audio issue introduced in v0.19.0
@@ -409,3 +489,4 @@ settings. In v0.17.0, games now run under your user account without elevated pri
409489
[0.18.4]: https://github.com/LizardByte/Sunshine/releases/tag/v0.18.4
410490
[0.19.0]: https://github.com/LizardByte/Sunshine/releases/tag/v0.19.0
411491
[0.19.1]: https://github.com/LizardByte/Sunshine/releases/tag/v0.19.1
492+
[0.20.0]: https://github.com/LizardByte/Sunshine/releases/tag/v0.20.0

0 commit comments

Comments
 (0)