Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

v0.22.0 #1756

Merged
merged 197 commits into from
Mar 4, 2024
Merged

v0.22.0 #1756

Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
197 commits
Select commit Hold shift + click to select a range
ff688d9
ci: update release notifier (#1755)
LizardByte-bot Oct 16, 2023
82d0ff6
build(deps): bump third-party/wayland-protocols from `681c33c` to `d7…
dependabot[bot] Oct 17, 2023
e7fc2ed
build(deps): bump third-party/nv-codec-headers from `9402b5a` to `224…
dependabot[bot] Oct 17, 2023
48a6d2a
Bump third-party/nanors from `395e5ad` to `e9e242e` (#1090)
dependabot[bot] Oct 17, 2023
2617241
build(deps): bump third-party/Simple-Web-Server from `2f29926` to `27…
dependabot[bot] Oct 17, 2023
f80251f
build(deps): bump third-party/miniupnp from `e439318` to `fb5c328` (#…
dependabot[bot] Oct 17, 2023
8096364
Bump ffmpeg (#1717)
LizardByte-bot Oct 17, 2023
5b052d7
Add guide for setting custom res with nvidia on linux (#1767)
ehabajmal Oct 19, 2023
3212b03
Manual DS4 mode: Allow Back/Select to trigger Touchpad click (#1772)
ekchang Oct 22, 2023
ab3ff2d
Update linux sunshine.desktop (#1768)
detiam Oct 25, 2023
842a4cf
fix(audio:windows): set cbSize correctly (#1787)
everything411 Oct 27, 2023
df72135
build(deps): bump third-party/tray from `2664388` to `e08bdbe` (#1802)
dependabot[bot] Oct 31, 2023
ca41c9d
config: add 2K resolution (WQHD - 16:9) (#1816)
tgurr Nov 5, 2023
0a56394
docs: fix broken links (#1813)
justindhillon Nov 5, 2023
29a1b15
Fix incorrect portrait mode rotation center on Windows (#1851)
ns6089 Nov 17, 2023
336062d
ci: update global workflows (#1863)
LizardByte-bot Nov 24, 2023
3b9e37e
Don't hardcode the signature length to RSA-2048 (#1872)
cgutman Dec 1, 2023
bd03ef9
docs(windows): add drive permissions troubleshooting (#1883)
ReenigneArcher Dec 3, 2023
6dcc5e7
ci: update release notifier (#1891)
LizardByte-bot Dec 4, 2023
4a2f702
Fix discovery of Windows hosts by Apple devices
cgutman Dec 4, 2023
47b5fc1
ci: update global python (#1896)
LizardByte-bot Dec 7, 2023
a009d13
build(deps): bump actions/setup-python from 4 to 5 (#1893)
dependabot[bot] Dec 8, 2023
a851ef6
Extend session timeout (#1890)
zoeyjodon Dec 9, 2023
a932f6b
ci: update global workflows (#1904)
LizardByte-bot Dec 9, 2023
1dbfdbc
docs: fix failing images (#1903)
ReenigneArcher Dec 9, 2023
09ab49a
ci: update global workflows (#1906)
LizardByte-bot Dec 10, 2023
ef9ec40
ci: update global workflows (#1907)
LizardByte-bot Dec 10, 2023
88fc8f8
build(docker): add fedora 39 and drop fedora 37 (#1827)
ReenigneArcher Dec 11, 2023
4c984ca
build(deps): bump actions/upload-artifact from 3 to 4 (#1915)
dependabot[bot] Dec 15, 2023
068c3fa
docs: use glob pattern to match source code docs (#1918)
ReenigneArcher Dec 17, 2023
6b7b599
chore: update global workflows (#1921)
LizardByte-bot Dec 19, 2023
5bdbda9
Web UI migration to Vite and Vue3 and improvements to the UX (#1673)
TheElixZammuto Dec 28, 2023
96e7443
build(deps): bump @fortawesome/fontawesome-free from 6.4.2 to 6.5.1 (…
dependabot[bot] Dec 28, 2023
0e479bd
build(deps): bump third-party/wayland-protocols from `d70af2e` to `46…
dependabot[bot] Dec 28, 2023
c27725c
build(deps): bump babel from 2.13.0 to 2.14.0 (#1912)
dependabot[bot] Dec 28, 2023
b215fe0
fix: ensure user supplied framerates are used (#1548)
jensaymoo Dec 29, 2023
1540f2c
build(deps): bump third-party/moonlight-common-c
dependabot[bot] Dec 29, 2023
eca26e6
Make wording about fatal errors a little less strong
cgutman Dec 30, 2023
0d7811a
Demote FFmpeg fatal errors
cgutman Dec 30, 2023
11d4723
Print a fatal warning for lack of ViGEmBus
cgutman Dec 30, 2023
a9f2679
Implement new protocol extension to match client connections together
cgutman Dec 29, 2023
0819368
Bump ffmpeg (#1895)
LizardByte-bot Dec 30, 2023
7640c50
build(deps): use a single submodule for ffmpeg (#1952)
ReenigneArcher Dec 30, 2023
66e31a2
Compute the bitrate on the host side for supported clients
cgutman Dec 30, 2023
a6ffeb4
Don't install/update ViGEmBus if 1.17 or later is already installed (…
cgutman Dec 31, 2023
8efc15b
build(cmake): do not include unneeded headers (#1957)
ReenigneArcher Dec 31, 2023
d97f724
Use dl handle for libva's vaTerminate rather than actual function (#1…
chewi Dec 31, 2023
64be0aa
Fix grabbing code when DRM is enabled and X11 is disabled (#1956)
chewi Dec 31, 2023
fe3bf0e
fix(tray): use PROJECT_NAME definition for tooltip (#1958)
ReenigneArcher Dec 31, 2023
44b34d1
Optionally allow the system installation of MiniUPnP to be used (#1959)
chewi Jan 1, 2024
faeeb7e
build(cmake): Use GNUInstallDirs to install data and lib directories …
tgurr Jan 1, 2024
8d14e7c
Optionally allow the system installation of wayland-protocols to be u…
chewi Jan 1, 2024
a452402
ci(macos): install boost from source (#1954)
ReenigneArcher Jan 1, 2024
c0164ca
builds(deps): use miniupnpc package instead of submodule (#1971)
ReenigneArcher Jan 1, 2024
852db48
refactor(process): re-order variables to avoid unused variable when t…
ReenigneArcher Jan 2, 2024
97c9216
Move Alt to Windows mapping option to Input tab
cgutman Jan 1, 2024
6ea836c
Add options to control gamepad autoselection heuristics
cgutman Jan 1, 2024
729922d
Add option to disable high resolution scroll events
cgutman Jan 1, 2024
3ca75be
Add option to disable native pen/touch support
cgutman Jan 1, 2024
caf5e02
Alphabetize defaultConfig
cgutman Jan 1, 2024
9a3106f
fix(ui): fix missing favicon (#1972)
ReenigneArcher Jan 2, 2024
e7a3c48
Only keep the ViGEmBus connection alive while gamepads are attached
cgutman Jan 1, 2024
52e5662
docs: add reset credential examples for unique pacakges (#1973)
mariotaku Jan 3, 2024
beb51cc
Correctly passthrough plane format and modifiers when importing VA su…
cgutman Jan 3, 2024
a9b459c
Use P010 instead of YUV420P10 for 10-bit VAAPI encoding
cgutman Jan 3, 2024
0f640b8
Fix clear color when rendering to VA surfaces
cgutman Jan 3, 2024
43992e7
Don't fail kmsgrab init entirely if a single card doesn't work
cgutman Jan 3, 2024
a01a15a
Fix termination of child processes when the parent terminates
cgutman Jan 3, 2024
556d958
Switch to LizardByte ViGEmClient submodule
cgutman Jan 3, 2024
1bd45ca
Fix low-res scrolling on Linux
cgutman Jan 3, 2024
0403ad1
Fix capturing scaled output with wlgrab
cgutman Jan 3, 2024
e1771de
Fix race condition causing hangs and EGL import errors due to concurr…
cgutman Jan 3, 2024
3adf9e5
Don't busy loop during wlgrab capture
cgutman Jan 3, 2024
ebe01ce
Remove useless texture size queries for every frame in display_ram_t
cgutman Jan 4, 2024
0dff8b1
Use the new VAAPI dummy image support for kmsgrab too
cgutman Jan 4, 2024
bc6cc20
build(linux) make vaapi optional without dlopen (#1979)
chewi Jan 5, 2024
c7e5df5
Refactor EGLAttrib logic into a shared function
cgutman Jan 6, 2024
7d751f0
Fix EGL import for modifiers that require aux planes
cgutman Jan 6, 2024
791ed48
fix(macos): replace depreciated AbsoluteToNanoseconds (#1986)
ReenigneArcher Jan 6, 2024
f88df0f
Implement support for KMS cursor plane capture (#1981)
cgutman Jan 6, 2024
60c95d6
fix(web-api): allow trailing slash on endpoints (#1985)
ReenigneArcher Jan 6, 2024
88d4691
build(deps): bump @vitejs/plugin-vue from 4.3.4 to 4.6.2 (#1965)
dependabot[bot] Jan 7, 2024
b5fae46
docs: refactor and general cleanup (#1992)
ReenigneArcher Jan 7, 2024
d873c8b
build(deps): bump vue from 3.2.25 to 3.4.5 (#1983)
dependabot[bot] Jan 7, 2024
de7b81e
fix(ui): reorder and add missing config options (#1993)
ReenigneArcher Jan 7, 2024
d05a671
feat(ui): add href to logs in fatal error container (#1984)
ReenigneArcher Jan 7, 2024
593e170
Implement graceful termination and group-based app tracking
cgutman Jan 7, 2024
3fb384f
build(deps): bump third-party/tray from `8bb9978` to `2bf1c61`
dependabot[bot] Jan 11, 2024
056281b
Implement HDR support for Linux KMS capture backend (#1994)
cgutman Jan 12, 2024
545af98
Add a fallback to retry codec init with more lenient config options
cgutman Jan 8, 2024
937d0d8
fix: add additional pin validation (#2007)
ReenigneArcher Jan 14, 2024
1ccda51
feat(ui): add hash handler for configuration ids (#2002)
ReenigneArcher Jan 14, 2024
ec1ae4a
docs(advanced-usage): cross reference config UI (#2000)
ReenigneArcher Jan 14, 2024
bc3ab8a
fix(ui): allow hash handler to accept tab ids (#2019)
ReenigneArcher Jan 14, 2024
c1a3903
Fix absolute mouse motion being interpreted as touchscreen input
cgutman Jan 11, 2024
d0049da
Implement pen and touch support for Linux
cgutman Jan 13, 2024
701b708
build(linux deps): fix miniupnp dependency (#2022)
ReenigneArcher Jan 14, 2024
35b785e
build(deps): bump third-party/moonlight-common-c
dependabot[bot] Jan 15, 2024
df2d728
Fix plane_it_t skipping the last entry when iterating
cgutman Jan 17, 2024
b94f8c0
Improve Name->DRM_MODE_CONNECTOR mapping with new types and names
cgutman Jan 17, 2024
8a86678
Reenumerate displays when the display is reinitialized or switched
cgutman Jan 17, 2024
f64712f
Always reset the thread desktop before calling DuplicateOutput()
cgutman Jan 17, 2024
404b434
Fix starvation of encoder thread when not receiving new captured frames
cgutman Jan 19, 2024
21e4450
Fix stream disconnecting when reconfiguring display in X11
cgutman Jan 19, 2024
2e99535
fix(linux)!: use XDG spec for fetching Linux configuration directory …
rafaelsgirao Jan 19, 2024
6cdb7f7
docs(docker): add podman notes (#2035)
ReenigneArcher Jan 19, 2024
77b0bab
Pass launch_session_t directly into session::alloc()
cgutman Jan 15, 2024
3d6e7f4
Refactor audio encryption to use new encryption flags
cgutman Jan 15, 2024
6b5a712
Normalize IPv4-mapped IPv4 addresses before checking PC/LAN/WAN type
cgutman Jan 15, 2024
2f80145
Change crypto::aes_t to variable size and cleanup some crypto code
cgutman Jan 15, 2024
23fb07d
Implement control stream v2 encryption
cgutman Jan 15, 2024
c88fa65
Implement video encryption
cgutman Jan 15, 2024
a10ec3a
Drop unencrypted messages on the encrypted control stream
cgutman Jan 20, 2024
bed58cf
build(deps): bump vite from 4.4.9 to 4.5.2 (#2048)
dependabot[bot] Jan 20, 2024
bf1b9a2
Add a dedicated library for working with JSON (#2047)
FrogTheFrog Jan 20, 2024
270716b
Use safe string composition in tray tooltip
ns6089 Oct 20, 2023
6615087
Add nvprefs user override options
ns6089 Oct 28, 2023
ede59e1
Expose more nvenc options
ns6089 Oct 28, 2023
6ded2a9
Update config page for new nvenc/nvprefs options
ns6089 Oct 29, 2023
fe88663
Add new nvenc options to legacy ffmpeg path
ns6089 Oct 29, 2023
52511f3
Update docs for new nvenc options
ns6089 Oct 29, 2023
0d4dfcd
Find the correct install paths for systemd units and udev rules (#2046)
PVermeer Jan 21, 2024
75b6e1f
docs(setup): correct instruction for portfile install (#2058)
ReenigneArcher Jan 26, 2024
3f31400
Revert "Remove useless texture size queries for every frame in displa…
kelvie Jan 24, 2024
6585140
Avoid unnecessary reallocation of the IV for every packet
cgutman Jan 25, 2024
9dfe97d
Send the frame number in the encrypted video header
cgutman Jan 25, 2024
a15bd65
Adjust default CPU thread count to 2
cgutman Jan 27, 2024
3b11bc8
Rewrite software scaling to use new multi-threaded swscale API
cgutman Jan 27, 2024
9a3553d
Refactor to use pixel format helpers in VAAPI
cgutman Jan 27, 2024
8182f59
Implement NVENC support for KMS and wlgrab capture methods
cgutman Jan 27, 2024
cf416f5
Fix KMS cursor capture on Nvidia GPUs
cgutman Jan 28, 2024
f70c3f1
Fix crash on monitor index not found in KMS
cgutman Jan 21, 2024
f82c3cb
build(deps): bump furo from 2023.9.10 to 2024.1.29 (#2077)
dependabot[bot] Jan 30, 2024
5e948dc
docs(build): add missing libcurl build dep for ubuntu (#2081)
ReenigneArcher Feb 1, 2024
190ea41
build(deps): bump third-party/moonlight-common-c
dependabot[bot] Feb 1, 2024
fe8b0ba
Implement workaround for qWAVE issues handling IPv4-mapped IPv6 addre…
cgutman Feb 2, 2024
c7700f9
Enable opportunistic QoS tagging for control messages
cgutman Feb 2, 2024
5c9533f
Allow DSCP tagging and local traffic prioritization to be enabled sep…
cgutman Feb 2, 2024
bb3b798
Add refcounting to Mac and Linux QoS state to ensure it works properl…
cgutman Feb 2, 2024
2008bc0
Use CS6 instead of CS7 for audio traffic
cgutman Feb 2, 2024
328a300
build(cmake): use CMAKE_SOURCE_DIR property (#2091)
ReenigneArcher Feb 3, 2024
e62d691
Fix -Wreturn-local-addr warning in event_t::view()
cgutman Feb 3, 2024
ca29eac
Refactor RTSP handling to be session-based rather than socket-based
cgutman Feb 3, 2024
f80b237
Implement RTSP encryption support
cgutman Feb 3, 2024
3578727
Require RTSP encryption when encryption mode is set to mandatory
cgutman Feb 3, 2024
71d88ef
build(deps): bump third-party/moonlight-common-c
dependabot[bot] Feb 3, 2024
b7a3985
build(docker): add docker toolchain for clion (#2098)
ReenigneArcher Feb 4, 2024
be6f856
Fix DSCP tagging for dual-stack sockets on Linux
cgutman Feb 3, 2024
dea1155
Inform clients of graceful termination when Sunshine exits
cgutman Feb 3, 2024
76e160b
style(macos): various code style fixes (#2086)
ReenigneArcher Feb 4, 2024
040c3a6
style(submodules): alphabetize gitmodules (#2104)
ReenigneArcher Feb 5, 2024
ff8c8ce
Skip encoder reprobing if no GPU changes have occurred
cgutman Feb 6, 2024
38d45b3
Don't populate QP rate control fallbacks for encoders guaranteed to s…
cgutman Jan 25, 2024
aee88f3
Don't fall back to undefined ref frame count on HEVC/AV1 if H.264 suc…
cgutman Jan 25, 2024
8373a8b
Avoid recreating the display when no display parameters have changed
cgutman Feb 7, 2024
0aa4f06
refactor(logging): separate logging from main (#2110)
ReenigneArcher Feb 7, 2024
ee93890
Don't attempt to get the working directory of a URL
cgutman Feb 5, 2024
aa76b23
Add support for starting URLs and regular files that aren't executable
cgutman Feb 5, 2024
358aac9
Modernize the default Steam shortcut
cgutman Feb 5, 2024
d91e2c9
docs(examples): update uri examples (#2118)
ReenigneArcher Feb 8, 2024
1c50bc5
refactor(main): move map_port to network (#2115)
ReenigneArcher Feb 9, 2024
cd2153f
refactor(main): move file operation functions to new source (#2124)
ReenigneArcher Feb 10, 2024
11c8cf1
Simplify and fix handling of incomplete substitution strings
cgutman Feb 10, 2024
c0ad963
Fix spacing of multi-argument %* substitutions
cgutman Feb 10, 2024
78ed91a
Treat escape sequences like other replacements
cgutman Feb 10, 2024
65493d0
Cloak MAC address from unpaired clients
cgutman Feb 10, 2024
a420760
ci(linux): increase root reserve for AppImage build (#2130)
ReenigneArcher Feb 11, 2024
8689469
refactor(main): move remaining entry related code (#2127)
ReenigneArcher Feb 11, 2024
69a3edd
Use Win32 APIs for UTF-16<->UTF-8 conversion
cgutman Feb 11, 2024
6ddc4b7
Properly re-escape arguments when processing %*
cgutman Feb 10, 2024
56da68c
Preserve backwards-compatible argument escaping behavior for executables
cgutman Feb 15, 2024
d1a6358
Implement backwards compatibility for NVENC APIs back to Video Codec …
cgutman Feb 15, 2024
8074bf8
fix(main): fix version printing (#2167)
ReenigneArcher Feb 24, 2024
341fdaa
build(cmake): add option to skip cuda inheriting compile options (#2164)
ReenigneArcher Feb 24, 2024
dde804f
build(deps): bump third-party/ViGEmClient from `1920260` to `8d71f67`…
dependabot[bot] Feb 24, 2024
c6f94e9
build(cmake): error build on warning (#2165)
ReenigneArcher Feb 25, 2024
8a7a6c4
build(cmake) properly find evdev (#2176)
ReenigneArcher Feb 26, 2024
11c5b64
Use nlohmann_json package instead of submodule (#2161)
chewi Feb 26, 2024
c605a4d
build(deps): bump peter-evans/create-pull-request from 5 to 6 (#2083)
dependabot[bot] Feb 27, 2024
53b2217
build(deps): bump bootstrap from 5.3.2 to 5.3.3 (#2154)
dependabot[bot] Feb 27, 2024
83e3ea5
Use a common function to abort for debugging purposes
cgutman Feb 26, 2024
1020d0c
Install ViGEmBus before starting Sunshine
cgutman Feb 27, 2024
a0d5973
Avoid display switching unexpectedly when the UAC secure desktop appears
cgutman Feb 27, 2024
15272fb
fix(config): properly save global_prep_cmd and fps (#2192)
ReenigneArcher Feb 29, 2024
4252f5d
Add option to allow HEVC usage on older Intel GPUs without low-power …
cgutman Feb 27, 2024
e9bb569
Move UPnP option to the top of the Network tab
cgutman Feb 27, 2024
dfb212c
Don't display automatic gamepad options on unsupported platforms
cgutman Feb 27, 2024
84316b5
Adjust wording of the nvenc_latency_over_power option
cgutman Feb 27, 2024
2e97c55
Move and rename Channels option to feature more prominently in the UI
cgutman Feb 27, 2024
8081f41
Add note to enclose paths with spaces in quotes
cgutman Feb 27, 2024
cb57322
Move and rename Files tab to be less prominent
cgutman Feb 27, 2024
e430f51
Add friendly message when encoder detection fails
cgutman Feb 27, 2024
75a9788
Rework dummy image handling to avoid RTX HDR driver bug
cgutman Feb 24, 2024
1ab30aa
Add log messages to indicate display numbers for KMS and Wlgrab
cgutman Mar 2, 2024
5606840
Stop enumeration after finding a working capture backend
cgutman Mar 2, 2024
8d5a905
chore: bump version to v0.22.0 (#2201)
ReenigneArcher Mar 3, 2024
529f1b8
Fix CUDA context leak causing encoder init failures using X11 capture…
cgutman Mar 4, 2024
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .codeql-prebuild-cpp.sh
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ sudo apt-get install -y \
libcurl4-openssl-dev \
libdrm-dev \
libevdev-dev \
libminiupnpc-dev \
libmfx-dev \
libnotify-dev \
libnuma-dev \
Expand Down
96 changes: 73 additions & 23 deletions .github/workflows/CI.yml
Original file line number Diff line number Diff line change
Expand Up @@ -251,7 +251,7 @@ jobs:
../artifacts/sunshine_debug_${{ matrix.arch }}.flatpak dev.lizardbyte.sunshine.Debug'

- name: Upload Artifacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: sunshine-linux-flatpak-${{ matrix.arch }}
path: artifacts/
Expand Down Expand Up @@ -286,7 +286,7 @@ jobs:
- name: Maximize build space
uses: easimon/maximize-build-space@v8
with:
root-reserve-mb: 20480
root-reserve-mb: 30720
remove-dotnet: 'true'
remove-android: 'true'
remove-haskell: 'true'
Expand Down Expand Up @@ -325,7 +325,7 @@ jobs:
# install newer tar from focal... appimagelint fails on 18.04 without this
echo "original tar version"
tar --version
wget -O tar.deb http://security.ubuntu.com/ubuntu/pool/main/t/tar/tar_1.30+dfsg-7ubuntu0.20.04.2_amd64.deb
wget -O tar.deb http://security.ubuntu.com/ubuntu/pool/main/t/tar/tar_1.30+dfsg-7ubuntu0.20.04.3_amd64.deb
sudo apt-get -y install -f ./tar.deb
echo "new tar version"
tar --version
Expand All @@ -350,6 +350,7 @@ jobs:
libcurl4-openssl-dev \
libdrm-dev \
libevdev-dev \
libminiupnpc-dev \
libmfx-dev \
libnotify-dev \
libnuma-dev \
Expand Down Expand Up @@ -398,10 +399,10 @@ jobs:
mkdir -p build
mkdir -p artifacts

npm install

cd build
cmake -DCMAKE_BUILD_TYPE=Release \
cmake \
-DBUILD_WERROR=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DSUNSHINE_ASSETS_DIR=share/sunshine \
-DSUNSHINE_EXECUTABLE_PATH=/usr/bin/sunshine \
Expand All @@ -427,7 +428,9 @@ jobs:
fi

- name: Set AppImage Version
if: ${{ matrix.type == 'AppImage' && ( needs.check_changelog.outputs.next_version_bare != needs.check_changelog.outputs.last_version ) }} # yamllint disable-line rule:line-length
if: |
matrix.type == 'AppImage' &&
(needs.check_changelog.outputs.next_version_bare != needs.check_changelog.outputs.last_version)
run: |
version=${{ needs.check_changelog.outputs.next_version_bare }}
echo "VERSION=${version}" >> $GITHUB_ENV
Expand Down Expand Up @@ -483,7 +486,7 @@ jobs:
./appimagelint-x86_64.AppImage ./artifacts/sunshine.AppImage

- name: Upload Artifacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: sunshine-linux-${{ matrix.type }}-${{ matrix.dist }}
path: artifacts/
Expand All @@ -506,6 +509,8 @@ jobs:
name: MacOS
runs-on: macos-11
needs: [check_changelog, setup_release]
env:
BOOST_VERSION: 1.83.0

steps:
- name: Checkout
Expand All @@ -516,27 +521,71 @@ jobs:
- name: Setup Dependencies MacOS
run: |
# install dependencies using homebrew
brew install boost cmake curl node opus pkg-config
brew install cmake curl miniupnpc node openssl opus pkg-config

# fix openssl header not found
ln -sf /usr/local/opt/openssl/include/openssl /usr/local/include/openssl
# ln -sf /usr/local/opt/openssl/include/openssl /usr/local/include/openssl

# by installing boost from source, several headers cannot be found...
# the above commented out link only works if boost is installed from homebrew... does not make sense
ln -sf $(find /usr/local/Cellar -type d -name "openssl" -path "*/openssl@3/*/include" | head -n 1) \
/usr/local/include/openssl

# fix opus header not found
ln -sf $(find /usr/local/Cellar -type d -name "opus" -path "*/opus/*/include" | head -n 1) \
/usr/local/include/opus

# fix miniupnpc header not found
ln -sf $(find /usr/local/Cellar -type d -name "miniupnpc" -path "*/miniupnpc/*/include" | head -n 1) \
/usr/local/include/miniupnpc

- name: Install Boost
# installing boost from homebrew takes 30 minutes in a GitHub runner
run: |
export BOOST_ROOT=${HOME}/boost-${BOOST_VERSION}

# install boost
wget \
https://github.com/boostorg/boost/releases/download/boost-${BOOST_VERSION}/boost-${BOOST_VERSION}.tar.gz \
--progress=bar:force:noscroll -q --show-progress
tar xf boost-${BOOST_VERSION}.tar.gz
cd boost-${BOOST_VERSION}

# libdir should be set by --prefix but isn't
./bootstrap.sh \
--prefix=${BOOST_ROOT} \
--libdir=${BOOST_ROOT}/lib \
--with-libraries=locale,log,program_options,system,thread
./b2 headers
./b2 install \
--prefix=${BOOST_ROOT} \
--libdir=${BOOST_ROOT}/lib \
-j$(sysctl -n hw.ncpu) \
link=shared,static \
variant=release \
cxxflags=-std=c++14 \
cxxflags=-stdlib=libc++ \
linkflags=-stdlib=libc++

# put boost in cmake prefix path
echo "BOOST_ROOT=${BOOST_ROOT}" >> ${GITHUB_ENV}

- name: Build MacOS
env:
BRANCH: ${{ github.head_ref || github.ref_name }}
BUILD_VERSION: ${{ needs.check_changelog.outputs.next_version_bare }}
COMMIT: ${{ github.event.pull_request.head.sha || github.sha }}
run: |
npm install

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release \
cmake \
-DBUILD_WERROR=ON \
-DCMAKE_BUILD_TYPE=Release \
-DCMAKE_INSTALL_PREFIX=/usr \
-DSUNSHINE_ASSETS_DIR=local/sunshine/assets \
-DSUNSHINE_EXECUTABLE_PATH=/usr/bin/sunshine \
..
make -j ${nproc}
make -j $(sysctl -n hw.ncpu)

- name: Package MacOS
run: |
Expand All @@ -551,7 +600,7 @@ jobs:
# mv ./cpack_artifacts/Sunshine.dmg ../artifacts/sunshine-bundle.dmg

- name: Upload Artifacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: sunshine-macos
path: artifacts/
Expand Down Expand Up @@ -676,7 +725,7 @@ jobs:
echo "::endgroup::"

- name: Upload Artifacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: sunshine-macports
path: artifacts/
Expand Down Expand Up @@ -719,19 +768,18 @@ jobs:
mingw-w64-x86_64-boost
mingw-w64-x86_64-cmake
mingw-w64-x86_64-curl
mingw-w64-x86_64-onevpl
mingw-w64-x86_64-miniupnpc
mingw-w64-x86_64-nlohmann-json
mingw-w64-x86_64-nodejs
mingw-w64-x86_64-nsis
mingw-w64-x86_64-onevpl
mingw-w64-x86_64-openssl
mingw-w64-x86_64-opus
mingw-w64-x86_64-toolchain
nasm
wget
yasm

- name: Install npm packages
run: |
npm install

- name: Build Windows
shell: msys2 {0}
env:
Expand All @@ -741,7 +789,9 @@ jobs:
run: |
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=RelWithDebInfo \
cmake \
-DBUILD_WERROR=ON \
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
-DSUNSHINE_ASSETS_DIR=assets \
-G "MinGW Makefiles" \
..
Expand Down Expand Up @@ -771,7 +821,7 @@ jobs:
a "../artifacts/sunshine-debuginfo-win32.zip" "*.exe"

- name: Upload Artifacts
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: sunshine-windows
path: artifacts/
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/automerge.yml
Original file line number Diff line number Diff line change
Expand Up @@ -31,7 +31,7 @@ jobs:
github-token: "${{ secrets.GITHUB_TOKEN }}"

- name: Label autoapproved
uses: actions/github-script@v6
uses: actions/github-script@v7
with:
github-token: ${{ secrets.GH_BOT_TOKEN }}
script: |
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/ci-docker.yml
Original file line number Diff line number Diff line change
Expand Up @@ -395,7 +395,7 @@ jobs:

- name: Upload Artifacts
if: ${{ steps.prepare.outputs.artifacts == 'true' }}
uses: actions/upload-artifact@v3
uses: actions/upload-artifact@v4
with:
name: Docker${{ matrix.tag }}
path: artifacts/
Expand Down
Loading
Loading