diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index 9298ce63..7d7c1fb4 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -886,7 +886,6 @@ jobs: mingw-w64-x86_64-openssl mingw-w64-x86_64-opus mingw-w64-x86_64-toolchain - mingw-w64-x86_64-x265 nasm yasm @@ -903,7 +902,7 @@ jobs: -DSUNSHINE_ASSETS_DIR=assets \ -G "MinGW Makefiles" \ .. - mingw32-make -j2 + mingw32-make -j$(nproc) - name: Package Windows shell: msys2 {0} diff --git a/CMakeLists.txt b/CMakeLists.txt index 9bb0244c..606339db 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,13 +1,14 @@ cmake_minimum_required(VERSION 3.0) project(Sunshine VERSION 0.16.0 - DESCRIPTION "Sunshine is a Gamestream host for Moonlight." + DESCRIPTION "Sunshine is a self-hosted game stream host for Moonlight." HOMEPAGE_URL "https://app.lizardbyte.dev" ) -set(PROJECT_LONG_DESCRIPTION "Sunshine is a self hosted, low latency, cloud gaming solution with support for AMD, \ -Intel, and Nvidia GPUs. It is an open source implementation of NVIDIA's GameStream, as used by the NVIDIA Shield. \ -Connect to Sunshine from any Moonlight client, available for nearly any device imaginable.") +set(PROJECT_LONG_DESCRIPTION "Offering low latency, cloud gaming server capabilities with support for AMD, Intel, \ +and Nvidia GPUs for hardware encoding. Software encoding is also available. You can connect to Sunshine from any \ +Moonlight client on a variety of devices. A web UI is provided to allow configuration, and client pairing, from \ +your favorite web browser. Pair from the local server or any mobile device.") option(SUNSHINE_CONFIGURE_APPIMAGE "Configuration specific for AppImage." OFF) option(SUNSHINE_CONFIGURE_AUR "Configure files required for AUR." OFF) @@ -246,7 +247,7 @@ else() if(WAYLAND_FOUND) add_compile_definitions(SUNSHINE_BUILD_WAYLAND) macro(genWayland FILENAME) - make_directory(${CMAKE_BINARY_DIR}/generated-src) + file(MAKE_DIRECTORY ${CMAKE_BINARY_DIR}/generated-src) message("wayland-scanner private-code ${CMAKE_SOURCE_DIR}/third-party/wayland-protocols/${FILENAME}.xml ${CMAKE_BINARY_DIR}/generated-src/${FILENAME}.c") message("wayland-scanner client-header ${CMAKE_SOURCE_DIR}/third-party/wayland-protocols/${FILENAME}.xml ${CMAKE_BINARY_DIR}/generated-src/${FILENAME}.h") @@ -533,11 +534,15 @@ if(WIN32) # see options at: https://cmake.org/cmake/help/latest/cpack_gen/nsis.h # Sets permissions on the installed folder so that we can write in it # Install service SET(CPACK_NSIS_EXTRA_INSTALL_COMMANDS - "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS} - ExecWait 'icacls \\\"$INSTDIR\\\" /grant:r Users:\\\(OI\\\)\\\(CI\\\)\\\(F\\\)' - ExecWait '\\\"$INSTDIR\\\\scripts\\\\add-firewall-rule.bat\\\"' - ExecWait '\\\"$INSTDIR\\\\scripts\\\\install-service.bat\\\"' - ") + "${CPACK_NSIS_EXTRA_INSTALL_COMMANDS} + ExecWait '\\\"$SYSDIR\\\\cmd.exe\\\" /c \\\"start https://sunshinestream.readthedocs.io/\\\"' + ExecWait 'icacls \\\"$INSTDIR\\\" /grant:r Users:\\\(OI\\\)\\\(CI\\\)\\\(F\\\)' + ExecWait '\\\"$INSTDIR\\\\scripts\\\\add-firewall-rule.bat\\\"' + ExecWait '\\\"$INSTDIR\\\\scripts\\\\install-service.bat\\\"' + MessageBox MB_YESNO|MB_ICONQUESTION 'Do you want to add/update ViGEmBus (virtual controller support)?' IDNO NoController + ExecWait '\\\"$SYSDIR\\\\cmd.exe\\\" /c \\\"start https://github.com/ViGEm/ViGEmBus/releases/latest\\\"' ; skipped if no + NoController: + ") # Extra uninstall commands # Uninstall service @@ -566,10 +571,16 @@ if(WIN32) # see options at: https://cmake.org/cmake/help/latest/cpack_gen/nsis.h # Checking for previous installed versions set(CPACK_NSIS_ENABLE_UNINSTALL_BEFORE_INSTALL "ON") - set(CPACK_NSIS_HELP_LINK "https://docs.lizardbyte.dev/projects/sunshine/en/latest/about/installation.html") + set(CPACK_NSIS_HELP_LINK "https://sunshinestream.readthedocs.io/about/installation.html") set(CPACK_NSIS_URL_INFO_ABOUT "${CMAKE_PROJECT_HOMEPAGE_URL}") set(CPACK_NSIS_CONTACT "${CMAKE_PROJECT_HOMEPAGE_URL}/support") + set(CPACK_NSIS_MENU_LINKS + "https://sunshinestream.readthedocs.io" "Sunshine documentation" + "https://app.lizardbyte.dev" "LizardByte Web Site" + "https://app.lizardbyte.dev/support" "LizardByte Support" + ) + # Setting components groups and dependencies # sunshine binary set(CPACK_COMPONENT_APPLICATION_DISPLAY_NAME "${CMAKE_PROJECT_NAME}") diff --git a/DOCKER_README.md b/DOCKER_README.md index 222cd163..71338e0a 100644 --- a/DOCKER_README.md +++ b/DOCKER_README.md @@ -71,13 +71,13 @@ port `47990` (e.g. `http://:47990`). The internal port must be `47990`, (e.g. `-p 8080:47990`). All the ports listed in the `docker run` and `docker-compose` examples are required. -| Parameter | Function | Example Value | Required | -|-----------------------------|---------------------------|--------------------|----------| -| `-p :47990` | Web UI Port | `47990` | True | -| `-v :/config` | Volume mapping | `/home/sunshine` | True | -| `-e PUID=` | User ID | `1001` | False | -| `-e PGID=` | Group ID | `1001` | False | -| `-e TZ=` | Lookup TZ value [here][1] | `America/New_York` | False | +| Parameter | Function | Example Value | Required | +|-----------------------------|----------------------|--------------------|----------| +| `-p :47990` | Web UI Port | `47990` | True | +| `-v :/config` | Volume mapping | `/home/sunshine` | True | +| `-e PUID=` | User ID | `1001` | False | +| `-e PGID=` | Group ID | `1001` | False | +| `-e TZ=` | Lookup [TZ value][1] | `America/New_York` | False | [1]: https://en.wikipedia.org/wiki/List_of_tz_database_time_zones diff --git a/README.rst b/README.rst index f7853dee..c0027711 100644 --- a/README.rst +++ b/README.rst @@ -4,34 +4,91 @@ LizardByte has the full documentation hosted on `Read the Docs ` for additional information. Linux ----- -First, follow the instructions for your preferred package type below. - -Then start sunshine with the following command, unless a start command is listed in the specified package. - -.. code-block:: bash - - sunshine +Follow the instructions for your preferred package type below. AppImage ^^^^^^^^ -.. image:: https://img.shields.io/github/issues/lizardbyte/sunshine/pkg:appimage?logo=github&style=for-the-badge - :alt: GitHub issues by-label - According to AppImageLint the supported distro matrix of the AppImage is below. - [✖] Debian oldstable (buster) @@ -82,9 +73,6 @@ Uninstall: Debian Package ^^^^^^^^^^^^^^ -.. image:: https://img.shields.io/github/issues/lizardbyte/sunshine/pkg:deb?logo=github&style=for-the-badge - :alt: GitHub issues by-label - #. Download ``sunshine-{ubuntu-version}.deb`` and run the following code. .. code-block:: bash @@ -103,9 +91,6 @@ Uninstall: Flatpak Package ^^^^^^^^^^^^^^^ -.. image:: https://img.shields.io/github/issues/lizardbyte/sunshine/pkg:flatpak?logo=github&style=for-the-badge - :alt: GitHub issues by-label - #. Install `Flatpak `_ as required. #. Download ``sunshine_{arch}.flatpak`` and run the following code. @@ -145,9 +130,6 @@ Uninstall: RPM Package ^^^^^^^^^^^ -.. image:: https://img.shields.io/github/issues/lizardbyte/sunshine/pkg:rpm?logo=github&style=for-the-badge - :alt: GitHub issues by-label - #. Add `rpmfusion` repositories by running the following code. .. code-block:: bash @@ -170,12 +152,11 @@ Uninstall: macOS ----- -.. image:: https://img.shields.io/github/issues/lizardbyte/sunshine/os:macos?logo=github&style=for-the-badge - :alt: GitHub issues by-label +Sunshine on macOS is experimental. Gamepads do not work. Other features may not work as expected. pkg ^^^ -.. Warning:: The `pkg` does not include runtime dependencies and should be considered experimental. +.. Warning:: The `pkg` does not include runtime dependencies. #. Download the ``sunshine.pkg`` file and install it as normal. @@ -218,16 +199,14 @@ Uninstall: Windows ------- -.. image:: https://img.shields.io/github/issues/lizardbyte/sunshine/os:windows:10?logo=github&style=for-the-badge - :alt: GitHub issues by-label - -.. image:: https://img.shields.io/github/issues/lizardbyte/sunshine/os:windows:11?logo=github&style=for-the-badge - :alt: GitHub issues by-label Installer ^^^^^^^^^ #. Download and install ``sunshine-windows.exe`` +.. Attention:: You should carefully select or unselect the options you want to install. Do not blindly install or enable + features. + To uninstall, find Sunshine in the list `here `_ and select "Uninstall" from the overflow menu. Different versions of Windows may provide slightly different steps for uninstall. diff --git a/docs/source/about/third_party_packages.rst b/docs/source/about/third_party_packages.rst index ad8979dc..40a6bc70 100644 --- a/docs/source/about/third_party_packages.rst +++ b/docs/source/about/third_party_packages.rst @@ -52,6 +52,3 @@ Legacy GitHub Repo .. image:: https://img.shields.io/github/release-date/loki-47-6F-64/sunshine?style=for-the-badge&logo=github :alt: GitHub Release Date - -.. image:: https://img.shields.io/github/downloads/loki-47-6F-64/sunshine/total?style=for-the-badge&logo=github - :alt: GitHub Releases diff --git a/docs/source/about/usage.rst b/docs/source/about/usage.rst index 7d59b715..f24ba011 100644 --- a/docs/source/about/usage.rst +++ b/docs/source/about/usage.rst @@ -1,23 +1,35 @@ Usage ===== #. See the `setup`_ section for your specific OS. -#. Run ``sunshine /sunshine.conf``. +#. If you did not install the service, then start sunshine with the following command, unless a start command is listed + in the specified package :ref:`installation ` instructions. - .. Note:: You do not need to specify a config file. If no config file is entered the default location will be used. + .. Note:: A service is a process that runs in the background. Running multiple instances of Sunshine is not + advised. - .. Attention:: The configuration file specified will be created if it doesn't exist. + **Basic usage** + .. code-block:: bash - .. Tip:: If using the Linux AppImage, replace ``sunshine`` with ``./sunshine.AppImage`` + sunshine + + **Specify config file** + .. code-block:: bash + + sunshine /sunshine.conf + + .. Note:: You do not need to specify a config file. If no config file is entered the default location will be used. + + .. Attention:: The configuration file specified will be created if it doesn't exist. #. Configure Sunshine in the web ui The web ui is available on `https://localhost:47990 `_ by default. You may replace `localhost` with your internal ip address. - .. Attention:: Ignore any warning given by your browser about "insecure website". + .. Attention:: Ignore any warning given by your browser about "insecure website". This is due to the SSL certificate + being self signed. - .. Caution:: If running for the first time, make sure to note the username and password Sunshine showed to you, - since you cannot get back later! + .. Caution:: If running for the first time, make sure to note the username and password that you created. **Add games and applications.** This can be configured in the web ui. @@ -26,8 +38,6 @@ Usage list of applications that are started just before running a stream. This is the directory within the GitHub repo. - .. Attention:: Application list is not fully supported on macOS - #. In Moonlight, you may need to add the PC manually. #. When Moonlight request you insert the correct pin on sunshine: @@ -76,7 +86,7 @@ Sunshine needs access to `uinput` to create mouse and gamepad events. .. code-block:: [Unit] - Description=Sunshine Gamestream Server for Moonlight + Description=Sunshine self-hosted game stream host for Moonlight. [Service] ExecStart= @@ -118,7 +128,7 @@ Sunshine needs access to `uinput` to create mouse and gamepad events. sudo setcap cap_sys_admin+p $(readlink -f $(which sunshine)) - **Disable** + **Disable (for Xorg/X11)** .. code-block:: bash sudo setcap -r $(readlink -f $(which sunshine)) @@ -149,6 +159,32 @@ Windows ^^^^^^^ For gamepad support, install `ViGEmBus `_ +Sunshine firewall + **Add rule** + .. code-block:: batch + + cd /d "C:\Program Files\Sunshine\scripts" + add-firewall-rule.bat + + **Remove rule** + .. code-block:: batch + + cd /d "C:\Program Files\Sunshine\scripts" + remove-firewall-rule.bat + +Sunshine service + **Enable** + .. code-block:: batch + + cd /d "C:\Program Files\Sunshine\scripts" + install-service.bat + + **Disable** + .. code-block:: batch + + cd /d "C:\Program Files\Sunshine\scripts" + uninstall-service.bat + Shortcuts --------- All shortcuts start with ``CTRL + ALT + SHIFT``, just like Moonlight @@ -159,34 +195,43 @@ All shortcuts start with ``CTRL + ALT + SHIFT``, just like Moonlight Application List ---------------- - Applications should be configured via the web UI. -- A basic understanding of working directories and commands is recommended. +- A basic understanding of working directories and commands is required. - You can use Environment variables in place of values - ``$(HOME)`` will be replaced by the value of ``$HOME`` - ``$$`` will be replaced by ``$``, e.g. ``$$(HOME)`` will be become ``$(HOME)`` - ``env`` - Adds or overwrites Environment variables for the commands/applications run by Sunshine - ``"Variable name":"Variable value"`` - ``apps`` - The list of applications +- Advanced users may want to edit the application list manually. The format is ``json``. - Example application: .. code-block:: json { - "name":"An App", - "cmd":"command to open app", - "prep-cmd":[ - { - "do":"some-command", - "undo":"undo-that-command" - } - ], - "detached":[ - "some-command", - "another-command" - ] + "cmd": "command to open app", + "detached": [ + "some-command", + "another-command" + ], + "image-path": "/full-path/to/png-image", + "name": "An App", + "output": "/full-path/to/command-log-file", + "prep-cmd": [ + { + "do": "some-command", + "undo": "undo-that-command" + } + ], + "working-dir": "/full-path/to/working-directory" } + - ``cmd`` - The main application + - ``detached`` - A list of commands to be run and forgotten about + + - If not specified, a process is started that sleeps indefinitely + + - ``image-path`` - The full path to the cover art image to use. - ``name`` - The name of the application/game - ``output`` - The file where the output of the command is stored - - ``detached`` - A list of commands to be run and forgotten about - ``prep-cmd`` - A list of commands to be run before/after the application - If any of the prep-commands fail, starting the application is aborted @@ -199,9 +244,7 @@ Application List - This should not fail considering it is supposed to undo the ``do`` commands - If it fails, Sunshine is terminated - - ``cmd`` - The main application - - - If not specified, a process is started that sleeps indefinitely + - ``working-dir`` - The working directory to use. If not specified, Sunshine will use the application directory. Considerations -------------- @@ -214,3 +257,11 @@ Considerations - In addition to the apps listed, one app "Desktop" is hardcoded into Sunshine. It does not start an application, instead it simply starts a stream. - For the Linux flatpak you must prepend commands with ``flatpak-spawn --host``. + +Tutorials +--------- +Tutorial videos are available `here `_. + +.. admonition:: Community! + + Tutorials are community generated. Want to contribute? Reach out to us on our discord server. diff --git a/docs/source/building/linux.rst b/docs/source/building/linux.rst index 0b1c6ffe..2ccdd7c0 100644 --- a/docs/source/building/linux.rst +++ b/docs/source/building/linux.rst @@ -41,7 +41,7 @@ Install Requirements nvidia-cuda-dev \ # Cuda, NvFBC nvidia-cuda-toolkit # Cuda, NvFBC -Fedora 35 +Fedora 36 ^^^^^^^^^ End of Life: TBD @@ -80,73 +80,6 @@ Install Requirements pulseaudio-libs-devel \ rpm-build # if you want to build an RPM binary package -Ubuntu 18.04 -^^^^^^^^^^^^ -End of Life: April 2028 - -Install Repositories - .. code-block:: bash - - sudo apt update && sudo apt install \ - software-properties-common \ - && add-apt-repository ppa:savoury1/boost-defaults-1.71 && \ - add-apt-repository ppa:ubuntu-toolchain-r/test && \ - -Install Requirements - .. code-block:: bash - - sudo apt install \ - build-essential \ - cmake \ - gcc-10 \ - g++-10 \ - libavdevice-dev \ - libboost-filesystem1.71-dev \ - libboost-log1.71-dev \ - libboost-regex1.71-dev \ - libboost-thread1.71-dev \ - libboost-program-options1.71-dev \ - libcap-dev \ # KMS - libdrm-dev \ # KMS - libevdev-dev \ - libnuma-dev \ - libopus-dev \ - libpulse-dev \ - libssl-dev \ - libva-dev \ - libvdpau-dev \ - libwayland-dev \ # Wayland - libx11-dev \ # X11 - libxcb-shm0-dev \ # X11 - libxcb-xfixes0-dev \ # X11 - libxcb1-dev \ # X11 - libxfixes-dev \ # X11 - libxrandr-dev \ # X11 - libxtst-dev \ # X11 - nodejs \ - npm \ - wget - -Update gcc alias - .. code-block:: bash - - update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-10 100 --slave /usr/bin/g++ g++ /usr/bin/g++-10 - -Install CuDA - .. code-block:: bash - - wget https://developer.download.nvidia.com/compute/cuda/11.4.2/local_installers/cuda_11.4.2_470.57.02_linux.run --progress=bar:force:noscroll -q --show-progress -O ./cuda.run && chmod a+x ./cuda.run - ./cuda.run --silent --toolkit --toolkitpath=/usr --no-opengl-libs --no-man-page --no-drm && rm ./cuda.run - -Install CMake - .. code-block:: bash - - wget https://cmake.org/files/v3.22/cmake-3.22.2-linux-x86_64.sh - mkdir /opt/cmake - sh /cmake-3.22.2-linux-x86_64.sh --prefix=/opt/cmake --skip-license - ln -s /opt/cmake/bin/cmake /usr/local/bin/cmake - cmake --version - Ubuntu 20.04 ^^^^^^^^^^^^ End of Life: April 2030 @@ -241,19 +174,10 @@ Build ----- .. Attention:: Ensure you are in the build directory created during the clone step earlier before continuing. -Debian based OSes - .. code-block:: bash +.. code-block:: bash - cmake -DCMAKE_C_COMPILER=gcc-10 -DCMAKE_CXX_COMPILER=g++-10 .. + cmake .. + make -j ${nproc} -Red Hat based OSes - .. code-block:: bash - - cmake -DCMAKE_C_COMPILER=gcc -DCMAKE_CXX_COMPILER=g++ .. - -Finally - .. code-block:: bash - - make -j ${nproc} - cpack -G DEB # optionally, create a deb package - cpack -G RPM # optionally, create a rpm package + cpack -G DEB # optionally, create a deb package + cpack -G RPM # optionally, create a rpm package diff --git a/docs/source/building/macos.rst b/docs/source/building/macos.rst index 58344241..5ff3e74e 100644 --- a/docs/source/building/macos.rst +++ b/docs/source/building/macos.rst @@ -43,5 +43,4 @@ Build cpack -G DragNDrop # optionally, create a macOS dmg package If cmake fails complaining to find Boost, try to set the path explicitly. - ``cmake -DBOOST_ROOT=[boost path] ..``, e.g., ``cmake -DBOOST_ROOT=/opt/local/libexec/boost/1.76 ..`` - + ``cmake -DBOOST_ROOT=[boost path] ..``, e.g., ``cmake -DBOOST_ROOT=/opt/local/libexec/boost/1.80 ..`` diff --git a/docs/source/building/windows.rst b/docs/source/building/windows.rst index 70ca0c2e..82b0dfe6 100644 --- a/docs/source/building/windows.rst +++ b/docs/source/building/windows.rst @@ -3,14 +3,20 @@ Windows Requirements ------------ -First you need to install `MSYS2 `_, then startup "MSYS2 MinGW 64-bit" and install the -following packages using: +First you need to install `MSYS2 `_, then startup "MSYS2 MinGW 64-bit" and execute the following +codes. -.. code-block:: bash +Update all packages: + .. code-block:: bash - pacman -S mingw-w64-x86_64-binutils mingw-w64-x86_64-openssl mingw-w64-x86_64-cmake \ - mingw-w64-x86_64-toolchain mingw-w64-x86_64-opus mingw-w64-x86_64-x265 mingw-w64-x86_64-boost \ - git mingw-w64-x86_64-make cmake make gcc + pacman -Suy + +Install dependencies: + .. code-block:: bash + + pacman -S base-devel cmake diffutils gcc git make mingw-w64-x86_64-binutils \ + mingw-w64-x86_64-boost mingw-w64-x86_64-cmake mingw-w64-x86_64-curl \ + mingw-w64-x86_64-openssl mingw-w64-x86_64-opus mingw-w64-x86_64-toolchain npm dependencies ---------------- @@ -27,10 +33,8 @@ Build .. code-block:: bash - cmake -G"Unix Makefiles" .. - cmake -G"MinGW Makefiles" .. # alternatively - - mingw32-make + cmake -G "MinGW Makefiles" .. + mingw32-make -j$(nproc) cpack -G NSIS # optionally, create a windows installer cpack -G ZIP # optionally, create a windows standalone package diff --git a/docs/source/contributing/testing.rst b/docs/source/contributing/testing.rst index 512aed1c..0d6d7afa 100644 --- a/docs/source/contributing/testing.rst +++ b/docs/source/contributing/testing.rst @@ -7,11 +7,9 @@ Source code is tested against the `.clang-format` file for linting errors. The w format testing is `.github/workflows/cpp-clang-format-lint.yml`. Test clang-format locally. - .. Todo:: This documentation needs to be improved. - .. code-block:: bash - clang-format ... + find ./ -iname *.cpp -o -iname *.h -iname *.m -iname *.mm | xargs clang-format -i Sphinx ------ diff --git a/docs/source/gamestream/gamestream.rst b/docs/source/gamestream/gamestream.rst new file mode 100644 index 00000000..c5c8d68d --- /dev/null +++ b/docs/source/gamestream/gamestream.rst @@ -0,0 +1,21 @@ +GameStream +========== +Nvidia announced that their GameStream service for Nvidia Games clients will be discontinued in February 2023. +Luckily, Sunshine performance is now on par with Nvidia GameStream. Many users have even reported that Sunshine +outperforms GameStream, so rest assured that Sunshine will be equally performant moving forward. + +Migration +--------- +We have developed a simple migration tool to help you migrate your GameStream games and apps to Sunshine automatically. +Please check out our `GSMS `_ project if you're interested in an automated +migration option. At the time of writing this GSMS offers the ability to migrate your custom games and apps. The +working directory, command, and image are all set in Sunshine's ``apps.json`` file. The box-art image is also copied +to a specified directory. + +Limitations +----------- +Sunshine does have some limitations, as compared to Nvidia GameStream. + +- HDR support is limited and currently HDR is converted to SDR. +- Automatic game/application list. +- Changing game settings automatically, to optimize streaming. diff --git a/docs/source/legal/legal.rst b/docs/source/legal/legal.rst new file mode 100644 index 00000000..13bc3660 --- /dev/null +++ b/docs/source/legal/legal.rst @@ -0,0 +1,21 @@ +Legal +===== +.. Attention:: This documentation is for informational purposes only and is not intended as legal advice. If you have + any legal questions or concerns about using Sunshine, we recommend consulting with a lawyer. + +Sunshine is licensed under the GPL-3.0 license, which allows for free use and modification of the software. +The full text of the license can be reviewed `here `_. + +Commercial Use +-------------- +Sunshine can be used in commercial applications without any limitations. This means that businesses and organizations +can use Sunshine to create and sell products or services without needing to seek permission or pay a fee. + +However, it is important to note that the GPL-3.0 license does not grant any rights to distribute or sell the encoders +contained within Sunshine. If you plan to sell access to Sunshine as part of their distribution, you are responsible +for obtaining the necessary licenses to do so. This may include obtaining a license from the +Motion Picture Experts Group (MPEG-LA) and/or any other necessary licensing requirements. + +In summary, while Sunshine is free to use, it is the user's responsibility to ensure compliance with all applicable +licensing requirements when redistributing the software as part of a commercial offering. If you have any questions or +concerns about using Sunshine in a commercial setting, we recommend consulting with a lawyer. diff --git a/docs/source/toc.rst b/docs/source/toc.rst index efafa92b..eff935bb 100644 --- a/docs/source/toc.rst +++ b/docs/source/toc.rst @@ -9,6 +9,12 @@ about/usage about/advanced_usage +.. toctree:: + :maxdepth: 2 + :caption: GameStream + + gamestream/gamestream + .. toctree:: :maxdepth: 2 :caption: Troubleshooting @@ -34,3 +40,9 @@ contributing/contributing contributing/localization contributing/testing + +.. toctree:: + :maxdepth: 2 + :caption: Legal + + legal/legal diff --git a/docs/source/troubleshooting/general.rst b/docs/source/troubleshooting/general.rst index 2bbb93c9..3b6d6aad 100644 --- a/docs/source/troubleshooting/general.rst +++ b/docs/source/troubleshooting/general.rst @@ -1,13 +1,20 @@ General ======= + +Forgotten Credentials +--------------------- If you forgot your credentials to the web UI, try this. .. code-block:: bash sunshine --creds +Web UI Access +------------- Can't access the web UI? #. Check firewall rules. +Nvidia issues +------------- NvFBC, NvENC, or general issues with Nvidia graphics card. - Consumer grade Nvidia cards are software limited to a specific number of encodes. See `Video Encode and Decode GPU Support Matrix `_ diff --git a/docs/source/troubleshooting/linux.rst b/docs/source/troubleshooting/linux.rst index 0c8e3f97..5c2d7c8a 100644 --- a/docs/source/troubleshooting/linux.rst +++ b/docs/source/troubleshooting/linux.rst @@ -1,5 +1,8 @@ Linux ===== + +KMS Streaming fails +------------------- If screencasting fails with KMS, you may need to run the following to force unprivileged screencasting. .. code-block:: bash diff --git a/docs/source/troubleshooting/macos.rst b/docs/source/troubleshooting/macos.rst index 70a0d60c..551f6945 100644 --- a/docs/source/troubleshooting/macos.rst +++ b/docs/source/troubleshooting/macos.rst @@ -1,5 +1,8 @@ macOS ===== + +Dynamic session lookup failed +----------------------------- If you get this error: `Dynamic session lookup supported but failed: launchd did not provide a socket path, verify that org.freedesktop.dbus-session.plist is loaded!` diff --git a/docs/source/troubleshooting/windows.rst b/docs/source/troubleshooting/windows.rst index 15053519..31a1a6ba 100644 --- a/docs/source/troubleshooting/windows.rst +++ b/docs/source/troubleshooting/windows.rst @@ -1,4 +1,6 @@ Windows ======= -No gamepad is detected. - #. Verify that you've installed `ViGEmBus `_. + +No gamepad detected +------------------- +#. Verify that you've installed `ViGEmBus `_. diff --git a/src_assets/common/assets/web/index.html b/src_assets/common/assets/web/index.html index 55b41947..a5d86505 100644 --- a/src_assets/common/assets/web/index.html +++ b/src_assets/common/assets/web/index.html @@ -1,6 +1,6 @@

Hello, Sunshine!

-

Sunshine is a Gamestream host for Moonlight

+

Sunshine is a self-hosted game stream host for Moonlight.

diff --git a/src_assets/windows/misc/service/install-service.bat b/src_assets/windows/misc/service/install-service.bat index af27fec1..576563bc 100644 --- a/src_assets/windows/misc/service/install-service.bat +++ b/src_assets/windows/misc/service/install-service.bat @@ -23,5 +23,8 @@ if %ERRORLEVEL%==0 ( rem Run the sc command to create/reconfigure the service sc %SC_CMD% %SERVICE_NAME% binPath= %SERVICE_BIN% start= %SERVICE_START_TYPE% +rem Set the description of the service +sc description %SERVICE_NAME% "Sunshine is a self-hosted game stream host for Moonlight." + rem Start the new service net start %SERVICE_NAME% diff --git a/tools/CMakeLists.txt b/tools/CMakeLists.txt index 887b4267..a66bbb2c 100644 --- a/tools/CMakeLists.txt +++ b/tools/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 2.8) +cmake_minimum_required(VERSION 3.0) project(sunshine_tools)