diff --git a/.github/workflows/CI.yml b/.github/workflows/CI.yml index a1b091b9..dac856ed 100644 --- a/.github/workflows/CI.yml +++ b/.github/workflows/CI.yml @@ -130,7 +130,7 @@ jobs: mkdir -p build cd build - cmake -DCMAKE_BUILD_TYPE=Release -DSUNSHINE_CONFIG_DIR=. -DSUNSHINE_DEFAULT_DIR=/etc/sunshine -DSUNSHINE_EXECUTABLE_PATH=/usr/bin/sunshine -DSUNSHINE_ENABLE_WAYLAND=ON -DSUNSHINE_ENABLE_X11=ON -DSUNSHINE_ENABLE_DRM=ON -DSUNSHINE_ENABLE_CUDA=ON "../" + cmake -DCMAKE_BUILD_TYPE=Release -DSUNSHINE_ASSETS_DIR=/usr/local/sunshine/.assets -DSUNSHINE_CONFIG_DIR=/usr/local/sunshine/config -DSUNSHINE_EXECUTABLE_PATH=/usr/bin/sunshine -DSUNSHINE_ENABLE_WAYLAND=ON -DSUNSHINE_ENABLE_X11=ON -DSUNSHINE_ENABLE_DRM=ON -DSUNSHINE_ENABLE_CUDA=ON .. make -j ${nproc} - name: Set AppImage Version @@ -228,7 +228,7 @@ jobs: run: | mkdir build cd build - cmake -DCMAKE_BUILD_TYPE=Release -DSUNSHINE_DEFAULT_DIR=/etc/sunshine .. + cmake -DCMAKE_BUILD_TYPE=Release -DSUNSHINE_ASSETS_DIR=/usr/local/sunshine/.assets -DSUNSHINE_CONFIG_DIR=/usr/local/sunshine/config .. make -j ${nproc} - name: Package MacOS @@ -297,7 +297,7 @@ jobs: run: | mkdir build cd build - cmake -DCMAKE_BUILD_TYPE=Release -DSUNSHINE_ASSETS_DIR=assets -G "MinGW Makefiles" .. + cmake -DCMAKE_BUILD_TYPE=Release -DSUNSHINE_ASSETS_DIR=assets -DSUNSHINE_CONFIG_DIR=config -G "MinGW Makefiles" .. mingw32-make -j2 - name: Package Windows diff --git a/.gitignore b/.gitignore index 39afd65a..6c44c5bc 100644 --- a/.gitignore +++ b/.gitignore @@ -10,14 +10,14 @@ cmake-build* .idea # Extra FontAwesome files -/assets/web/fonts/fontawesome-free-web/css/*.css -!/assets/web/fonts/fontawesome-free-web/css/*min.css -/assets/web/fonts/fontawesome-free-web/js/ -/assets/web/fonts/fontawesome-free-web/less/ -/assets/web/fonts/fontawesome-free-web/metadata/ -/assets/web/fonts/fontawesome-free-web/scss/ -/assets/web/fonts/fontawesome-free-web/sprites/ -/assets/web/fonts/fontawesome-free-web/svgs/ +/src_assets/common/assets/web/fonts/fontawesome-free-web/css/*.css +!/src_assets/common/assets/web/fonts/fontawesome-free-web/css/*min.css +/src_assets/common/assets/web/fonts/fontawesome-free-web/js/ +/src_assets/common/assets/web/fonts/fontawesome-free-web/less/ +/src_assets/common/assets/web/fonts/fontawesome-free-web/metadata/ +/src_assets/common/assets/web/fonts/fontawesome-free-web/scss/ +/src_assets/common/assets/web/fonts/fontawesome-free-web/sprites/ +/src_assets/common/assets/web/fonts/fontawesome-free-web/svgs/ # Translations *.mo diff --git a/CMakeLists.txt b/CMakeLists.txt index f58e0439..9cf5410b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -147,6 +147,8 @@ elseif(APPLE) set(PLATFORM_INCLUDE_DIRS ${Boost_INCLUDE_DIR}) + set(APPLE_PLIST_FILE ${SUNSHINE_SOURCE_ASSETS_DIR}/macos/assets/Info.plist) + set(PLATFORM_TARGET_FILES sunshine/platform/macos/av_audio.h sunshine/platform/macos/av_audio.m @@ -163,7 +165,7 @@ elseif(APPLE) sunshine/platform/macos/publish.cpp sunshine/platform/macos/TPCircularBuffer/TPCircularBuffer.c sunshine/platform/macos/TPCircularBuffer/TPCircularBuffer.h - ${CMAKE_CURRENT_SOURCE_DIR}/assets/assets_mac/Info.plist) + ${APPLE_PLIST_FILE}) else() add_compile_definitions(SUNSHINE_PLATFORM="linux") @@ -389,16 +391,14 @@ else() list(APPEND SUNSHINE_COMPILE_OPTIONS -O3) endif() +set(SUNSHINE_SOURCE_ASSETS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/src_assets") + if(NOT SUNSHINE_ASSETS_DIR) - set(SUNSHINE_ASSETS_DIR "${CMAKE_CURRENT_SOURCE_DIR}/assets") + set(SUNSHINE_ASSETS_DIR "${CMAKE_CURRENT_BINARY_DIR}/.assets") endif() if(NOT SUNSHINE_CONFIG_DIR) - set(SUNSHINE_CONFIG_DIR "${SUNSHINE_ASSETS_DIR}") -endif() - -if(NOT SUNSHINE_DEFAULT_DIR) - set(SUNSHINE_DEFAULT_DIR "${SUNSHINE_ASSETS_DIR}") + set(SUNSHINE_CONFIG_DIR "${CMAKE_CURRENT_BINARY_DIR}/config") endif() list(APPEND CBS_EXTERNAL_LIBRARIES @@ -421,7 +421,6 @@ endif() list(APPEND SUNSHINE_DEFINITIONS SUNSHINE_ASSETS_DIR="${SUNSHINE_ASSETS_DIR}") list(APPEND SUNSHINE_DEFINITIONS SUNSHINE_CONFIG_DIR="${SUNSHINE_CONFIG_DIR}") -list(APPEND SUNSHINE_DEFINITIONS SUNSHINE_DEFAULT_DIR="${SUNSHINE_DEFAULT_DIR}") list(APPEND SUNSHINE_DEFINITIONS APPS_JSON="apps.json") add_executable(sunshine ${SUNSHINE_TARGET_FILES}) target_link_libraries(sunshine ${SUNSHINE_EXTERNAL_LIBRARIES} ${EXTRA_LIBS}) @@ -437,7 +436,7 @@ if(NOT DEFINED CMAKE_CUDA_STANDARD) endif() if(APPLE) - target_link_options(sunshine PRIVATE LINKER:-sectcreate,__TEXT,__info_plist,${CMAKE_CURRENT_SOURCE_DIR}/assets/assets_mac/Info.plist) + target_link_options(sunshine PRIVATE LINKER:-sectcreate,__TEXT,__info_plist,${APPLE_PLIST_FILE}) endif() foreach(flag IN LISTS SUNSHINE_COMPILE_OPTIONS) @@ -472,8 +471,11 @@ if(WIN32) # see options at: https://cmake.org/cmake/help/latest/cpack_gen/nsis.h install(TARGETS audio-info RUNTIME DESTINATION "tools" COMPONENT audio) install(TARGETS sunshinesvc RUNTIME DESTINATION "tools" COMPONENT sunshinesvc) - install(DIRECTORY "${SUNSHINE_ASSETS_DIR}/assets_common/" DESTINATION "${SUNSHINE_CONFIG_DIR}" COMPONENT assets) - install(DIRECTORY "${SUNSHINE_ASSETS_DIR}/assets_windows/" DESTINATION "${SUNSHINE_CONFIG_DIR}" COMPONENT assets) + install(DIRECTORY "${SUNSHINE_SOURCE_ASSETS_DIR}/common/assets" DESTINATION "${SUNSHINE_ASSETS_DIR}" COMPONENT assets) + install(DIRECTORY "${SUNSHINE_SOURCE_ASSETS_DIR}/windows/assets" DESTINATION "${SUNSHINE_ASSETS_DIR}" COMPONENT assets) + + install(DIRECTORY "${SUNSHINE_SOURCE_ASSETS_DIR}/common/config" DESTINATION "${SUNSHINE_CONFIG_DIR}" COMPONENT config) + install(DIRECTORY "${SUNSHINE_SOURCE_ASSETS_DIR}/windows/config" DESTINATION "${SUNSHINE_CONFIG_DIR}" COMPONENT config) # set(CPACK_NSIS_MUI_HEADERIMAGE "") # TODO: image should be 150x57 bmp @@ -513,6 +515,12 @@ if(WIN32) # see options at: https://cmake.org/cmake/help/latest/cpack_gen/nsis.h set(CPACK_COMPONENT_ASSETS_GROUP "${CMAKE_PROJECT_NAME}") set(CPACK_COMPONENT_ASSETS_REQUIRED true) + # config + set(CPACK_COMPONENT_ASSETS_DISPLAY_NAME "Config") + set(CPACK_COMPONENT_ASSETS_DESCRIPTION "Default config files.") + set(CPACK_COMPONENT_ASSETS_GROUP "${CMAKE_PROJECT_NAME}") + set(CPACK_COMPONENT_ASSETS_REQUIRED true) + # audio tool set(CPACK_COMPONENT_AUDIO_DISPLAY_NAME "audio-info.exe") set(CPACK_COMPONENT_AUDIO_DESCRIPTION "CLI tool that allows you to get information about sound devices.") @@ -528,13 +536,23 @@ if(WIN32) # see options at: https://cmake.org/cmake/help/latest/cpack_gen/nsis.h set(CPACK_COMPONENT_SUNSHINESVC_DESCRIPTION "CLI tool that allows you to enable/disable the Sunshine service.") set(CPACK_COMPONENT_SUNSHINESVC_GROUP "Tools") endif() +if(UNIX) + install(DIRECTORY "${SUNSHINE_SOURCE_ASSETS_DIR}/common/assets" DESTINATION "${SUNSHINE_ASSETS_DIR}") + + install(DIRECTORY "${SUNSHINE_SOURCE_ASSETS_DIR}/common/config" DESTINATION "${SUNSHINE_CONFIG_DIR}") + + # Installation destination dir + set(CPACK_SET_DESTDIR true) + set(CMAKE_INSTALL_PREFIX "/usr/local/sunshine/") +endif() if(APPLE) # TODO: test set(prefix "${CMAKE_PROJECT_NAME}.app/Contents") set(INSTALL_RUNTIME_DIR "${prefix}/MacOS") - install(DIRECTORY "${SUNSHINE_ASSETS_DIR}/assets_common/" DESTINATION "${INSTALL_RUNTIME_DIR}") - install(DIRECTORY "${SUNSHINE_ASSETS_DIR}/assets_mac/" DESTINATION "${INSTALL_RUNTIME_DIR}") + install(DIRECTORY "${SUNSHINE_SOURCE_ASSETS_DIR}/macos/assets" DESTINATION "${SUNSHINE_ASSETS_DIR}") + + install(DIRECTORY "${SUNSHINE_SOURCE_ASSETS_DIR}/macos/config" DESTINATION "${SUNSHINE_CONFIG_DIR}") install(TARGETS sunshine BUNDLE DESTINATION . COMPONENT Runtime @@ -542,26 +560,27 @@ if(APPLE) # TODO: test # TODO: bundle doesn't produce a valid .app use cpack -G DragNDrop set(CPACK_BUNDLE_NAME "${CMAKE_PROJECT_NAME}") - set(CPACK_BUNDLE_PLIST "${CMAKE_CURRENT_SOURCE_DIR}/assets_mac/Info.plist") + set(CPACK_BUNDLE_PLIST "${APPLE_PLIST_FILE}") set(CPACK_BUNDLE_ICON "${PROJECT_SOURCE_DIR}/sunshine.icns") # Portfile configure_file(Portfile.in Portfile @ONLY) endif() if(UNIX AND NOT APPLE) - install(DIRECTORY "${SUNSHINE_ASSETS_DIR}/assets_common/" DESTINATION "${SUNSHINE_CONFIG_DIR}") - install(DIRECTORY "${SUNSHINE_ASSETS_DIR}/assets_linux/" DESTINATION "${SUNSHINE_CONFIG_DIR}") + install(DIRECTORY "${SUNSHINE_SOURCE_ASSETS_DIR}/linux/assets" DESTINATION "${SUNSHINE_ASSETS_DIR}") - install(FILES "${SUNSHINE_ASSETS_DIR}/linux-misc/85-sunshine-rules.rules" DESTINATION "/etc/udev/rules.d") + install(DIRECTORY "${SUNSHINE_SOURCE_ASSETS_DIR}/linux/config" DESTINATION "${SUNSHINE_CONFIG_DIR}") + + install(FILES "${SUNSHINE_SOURCE_ASSETS_DIR}/linux/misc/85-sunshine-rules.rules" DESTINATION "/etc/udev/rules.d") install(TARGETS sunshine RUNTIME DESTINATION "/usr/bin") install(FILES "${CMAKE_CURRENT_BINARY_DIR}/sunshine.service" DESTINATION "/usr/lib/systemd/user") # Pre and post install set(CPACK_DEBIAN_PACKAGE_CONTROL_EXTRA - "${SUNSHINE_ASSETS_DIR}/linux-deb/preinst;${SUNSHINE_ASSETS_DIR}/linux-deb/postinst;${SUNSHINE_ASSETS_DIR}/linux-deb/conffiles") - set(CPACK_RPM_PRE_INSTALL_SCRIPT_FILE "${SUNSHINE_ASSETS_DIR}/linux-deb/preinst") - set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${SUNSHINE_ASSETS_DIR}/linux-deb/postinst") + "${SUNSHINE_SOURCE_ASSETS_DIR}/linux/deb/preinst;${SUNSHINE_SOURCE_ASSETS_DIR}/linux/deb/postinst;${SUNSHINE_SOURCE_ASSETS_DIR}/linux/deb/conffiles") + set(CPACK_RPM_PRE_INSTALL_SCRIPT_FILE "${SUNSHINE_SOURCE_ASSETS_DIR}/linux/deb/preinst") + set(CPACK_RPM_POST_INSTALL_SCRIPT_FILE "${SUNSHINE_SOURCE_ASSETS_DIR}/linux/deb/postinst") # Dependencies set(CPACK_DEB_COMPONENT_INSTALL ON) @@ -569,10 +588,6 @@ if(UNIX AND NOT APPLE) set(CPACK_RPM_PACKAGE_REQUIRES "libssl==1.1, libavdevice>=58, libboost-thread>=1.67.0, libboost-filesystem>=1.67.0, libboost-log>=1.67.0, libpulse>=0, libopus>=0, libxcb-shm>=0, libxcb-xfixes>=0, libxtst>=0, libevdev>=2.0, libdrm>=2.0, libcap>=2.0") set(CPACK_DEBIAN_PACKAGE_SHLIBDEPS OFF) # This should automatically figure out dependencies, doesn't work with the current config - # Installation destination dir - set(CPACK_SET_DESTDIR true) - set(CMAKE_INSTALL_PREFIX "/etc/sunshine") - # AppImage desktop file configure_file(sunshine.desktop.in sunshine.desktop @ONLY) endif() diff --git a/Portfile.in b/Portfile.in index c784c3b0..2cb35466 100644 --- a/Portfile.in +++ b/Portfile.in @@ -31,21 +31,19 @@ depends_lib port:avahi \ boost.version 1.76 configure.args -DBOOST_ROOT=[boost::install_area] \ - -DSUNSHINE_ASSETS_DIR=${worksrcpath}/assets - -DSUNSHINE_DEFAULT_DIR=${prefix}/etc/sunshine + -DSUNSHINE_ASSETS_DIR=${prefix}/usr/local/sunshine/.assets + -DSUNSHINE_CONFIG_DIR=${prefix}/usr/local/sunshine/config cmake.out_of_source yes destroot { - xinstall -d -m 755 ${destroot}${prefix}/etc/${name} - xinstall ${worksrcpath}/assets/assets_mac/apps.json ${destroot}${prefix}/etc/${name} - xinstall ${worksrcpath}/assets/assets_common/box.png ${destroot}${prefix}/etc/${name} - xinstall ${worksrcpath}/assets/assets_common/sunshine.conf ${destroot}${prefix}/etc/${name} + xinstall -d -m 755 ${destroot}${prefix}/usr/local/${name}/.assets + xinstall {*}[glob ${worksrcpath}/src_assets/common/assets/*] ${destroot}${prefix}/usr/local/${name}/.assets + xinstall {*}[glob ${worksrcpath}/src_assets/macos/assets/*] ${destroot}${prefix}/usr/local/${name}/.assets - xinstall -d -m 755 ${destroot}${prefix}/etc/${name}/web - xinstall {*}[glob ${worksrcpath}/assets/assets_common/web/*.html] ${destroot}${prefix}/etc/${name}/web - xinstall -d -m 755 ${destroot}${prefix}/etc/${name}/web/third_party - xinstall {*}[glob ${worksrcpath}/assets/assets_common/web/third_party/*] ${destroot}${prefix}/etc/${name}/web/third_party + xinstall -d -m 755 ${destroot}${prefix}/usr/local/${name}/config + xinstall {*}[glob ${worksrcpath}/src_assets/common/config/*] ${destroot}${prefix}/usr/local/${name}/config + xinstall {*}[glob ${worksrcpath}/src_assets/macos/config/*] ${destroot}${prefix}/usr/local/${name}/config xinstall ${workpath}/build/${name} ${destroot}${prefix}/bin } diff --git a/assets/linux-deb/conffiles b/assets/linux-deb/conffiles deleted file mode 100644 index cf2d2444..00000000 --- a/assets/linux-deb/conffiles +++ /dev/null @@ -1,2 +0,0 @@ -/etc/sunshine/sunshine.conf -/etc/sunshine/apps.json diff --git a/assets/linux-deb/preinst b/assets/linux-deb/preinst deleted file mode 100644 index ec56e883..00000000 --- a/assets/linux-deb/preinst +++ /dev/null @@ -1,9 +0,0 @@ -#!/bin/sh -#Store backup for old config files to prevent it from being overwritten -if [ -f /etc/sunshine/sunshine.conf ]; then - cp /etc/sunshine/sunshine.conf /etc/sunshine/sunshine.conf.old -fi - -if [ -f /etc/sunshine/apps.json ]; then - cp /etc/sunshine/apps.json /etc/sunshine/apps.json.old -fi diff --git a/docs/source/about/installation.rst b/docs/source/about/installation.rst index d7e043a4..40eecd20 100644 --- a/docs/source/about/installation.rst +++ b/docs/source/about/installation.rst @@ -27,7 +27,7 @@ AppImage .. image:: https://img.shields.io/github/issues/sunshinestream/sunshine/pkg:appimage?logo=github&style=for-the-badge :alt: GitHub issues by-label -The current compatibility of the AppImage is shown below. +The current known compatibility of the AppImage is shown below. - [✖] Debian oldstable (buster) - [✔] Debian stable (bullseye) diff --git a/assets/assets_common/box.png b/src_assets/common/assets/box.png similarity index 100% rename from assets/assets_common/box.png rename to src_assets/common/assets/box.png diff --git a/assets/assets_common/steam.png b/src_assets/common/assets/steam.png similarity index 100% rename from assets/assets_common/steam.png rename to src_assets/common/assets/steam.png diff --git a/assets/assets_common/web/apps.html b/src_assets/common/assets/web/apps.html similarity index 100% rename from assets/assets_common/web/apps.html rename to src_assets/common/assets/web/apps.html diff --git a/assets/assets_common/web/clients.html b/src_assets/common/assets/web/clients.html similarity index 100% rename from assets/assets_common/web/clients.html rename to src_assets/common/assets/web/clients.html diff --git a/assets/assets_common/web/config.html b/src_assets/common/assets/web/config.html similarity index 100% rename from assets/assets_common/web/config.html rename to src_assets/common/assets/web/config.html diff --git a/assets/assets_common/web/fonts/fontawesome-free-web/LICENSE.txt b/src_assets/common/assets/web/fonts/fontawesome-free-web/LICENSE.txt similarity index 100% rename from assets/assets_common/web/fonts/fontawesome-free-web/LICENSE.txt rename to src_assets/common/assets/web/fonts/fontawesome-free-web/LICENSE.txt diff --git a/assets/assets_common/web/fonts/fontawesome-free-web/attribution.js b/src_assets/common/assets/web/fonts/fontawesome-free-web/attribution.js similarity index 100% rename from assets/assets_common/web/fonts/fontawesome-free-web/attribution.js rename to src_assets/common/assets/web/fonts/fontawesome-free-web/attribution.js diff --git a/assets/assets_common/web/fonts/fontawesome-free-web/css/all.min.css b/src_assets/common/assets/web/fonts/fontawesome-free-web/css/all.min.css similarity index 100% rename from assets/assets_common/web/fonts/fontawesome-free-web/css/all.min.css rename to src_assets/common/assets/web/fonts/fontawesome-free-web/css/all.min.css diff --git a/assets/assets_common/web/fonts/fontawesome-free-web/css/brands.min.css b/src_assets/common/assets/web/fonts/fontawesome-free-web/css/brands.min.css similarity index 100% rename from assets/assets_common/web/fonts/fontawesome-free-web/css/brands.min.css rename to src_assets/common/assets/web/fonts/fontawesome-free-web/css/brands.min.css diff --git a/assets/assets_common/web/fonts/fontawesome-free-web/css/fontawesome.min.css b/src_assets/common/assets/web/fonts/fontawesome-free-web/css/fontawesome.min.css similarity index 100% rename from assets/assets_common/web/fonts/fontawesome-free-web/css/fontawesome.min.css rename to src_assets/common/assets/web/fonts/fontawesome-free-web/css/fontawesome.min.css diff --git a/assets/assets_common/web/fonts/fontawesome-free-web/css/regular.min.css b/src_assets/common/assets/web/fonts/fontawesome-free-web/css/regular.min.css similarity index 100% rename from assets/assets_common/web/fonts/fontawesome-free-web/css/regular.min.css rename to src_assets/common/assets/web/fonts/fontawesome-free-web/css/regular.min.css diff --git a/assets/assets_common/web/fonts/fontawesome-free-web/css/solid.min.css b/src_assets/common/assets/web/fonts/fontawesome-free-web/css/solid.min.css similarity index 100% rename from assets/assets_common/web/fonts/fontawesome-free-web/css/solid.min.css rename to src_assets/common/assets/web/fonts/fontawesome-free-web/css/solid.min.css diff --git a/assets/assets_common/web/fonts/fontawesome-free-web/css/svg-with-js.min.css b/src_assets/common/assets/web/fonts/fontawesome-free-web/css/svg-with-js.min.css similarity index 100% rename from assets/assets_common/web/fonts/fontawesome-free-web/css/svg-with-js.min.css rename to src_assets/common/assets/web/fonts/fontawesome-free-web/css/svg-with-js.min.css diff --git a/assets/assets_common/web/fonts/fontawesome-free-web/css/v4-shims.min.css b/src_assets/common/assets/web/fonts/fontawesome-free-web/css/v4-shims.min.css similarity index 100% rename from assets/assets_common/web/fonts/fontawesome-free-web/css/v4-shims.min.css rename to src_assets/common/assets/web/fonts/fontawesome-free-web/css/v4-shims.min.css diff --git a/assets/assets_common/web/fonts/fontawesome-free-web/webfonts/fa-brands-400.eot b/src_assets/common/assets/web/fonts/fontawesome-free-web/webfonts/fa-brands-400.eot similarity index 100% rename from assets/assets_common/web/fonts/fontawesome-free-web/webfonts/fa-brands-400.eot rename to src_assets/common/assets/web/fonts/fontawesome-free-web/webfonts/fa-brands-400.eot diff --git a/assets/assets_common/web/fonts/fontawesome-free-web/webfonts/fa-brands-400.svg b/src_assets/common/assets/web/fonts/fontawesome-free-web/webfonts/fa-brands-400.svg similarity index 100% rename from assets/assets_common/web/fonts/fontawesome-free-web/webfonts/fa-brands-400.svg rename to src_assets/common/assets/web/fonts/fontawesome-free-web/webfonts/fa-brands-400.svg diff --git a/assets/assets_common/web/fonts/fontawesome-free-web/webfonts/fa-brands-400.ttf b/src_assets/common/assets/web/fonts/fontawesome-free-web/webfonts/fa-brands-400.ttf similarity index 100% rename from assets/assets_common/web/fonts/fontawesome-free-web/webfonts/fa-brands-400.ttf rename to src_assets/common/assets/web/fonts/fontawesome-free-web/webfonts/fa-brands-400.ttf diff --git a/assets/assets_common/web/fonts/fontawesome-free-web/webfonts/fa-brands-400.woff b/src_assets/common/assets/web/fonts/fontawesome-free-web/webfonts/fa-brands-400.woff similarity index 100% rename from assets/assets_common/web/fonts/fontawesome-free-web/webfonts/fa-brands-400.woff rename to src_assets/common/assets/web/fonts/fontawesome-free-web/webfonts/fa-brands-400.woff diff --git a/assets/assets_common/web/fonts/fontawesome-free-web/webfonts/fa-brands-400.woff2 b/src_assets/common/assets/web/fonts/fontawesome-free-web/webfonts/fa-brands-400.woff2 similarity index 100% rename from assets/assets_common/web/fonts/fontawesome-free-web/webfonts/fa-brands-400.woff2 rename to src_assets/common/assets/web/fonts/fontawesome-free-web/webfonts/fa-brands-400.woff2 diff --git a/assets/assets_common/web/fonts/fontawesome-free-web/webfonts/fa-regular-400.eot b/src_assets/common/assets/web/fonts/fontawesome-free-web/webfonts/fa-regular-400.eot similarity index 100% rename from assets/assets_common/web/fonts/fontawesome-free-web/webfonts/fa-regular-400.eot rename to src_assets/common/assets/web/fonts/fontawesome-free-web/webfonts/fa-regular-400.eot diff --git a/assets/assets_common/web/fonts/fontawesome-free-web/webfonts/fa-regular-400.svg b/src_assets/common/assets/web/fonts/fontawesome-free-web/webfonts/fa-regular-400.svg similarity index 100% rename from assets/assets_common/web/fonts/fontawesome-free-web/webfonts/fa-regular-400.svg rename to src_assets/common/assets/web/fonts/fontawesome-free-web/webfonts/fa-regular-400.svg diff --git a/assets/assets_common/web/fonts/fontawesome-free-web/webfonts/fa-regular-400.ttf b/src_assets/common/assets/web/fonts/fontawesome-free-web/webfonts/fa-regular-400.ttf similarity index 100% rename from assets/assets_common/web/fonts/fontawesome-free-web/webfonts/fa-regular-400.ttf rename to src_assets/common/assets/web/fonts/fontawesome-free-web/webfonts/fa-regular-400.ttf diff --git a/assets/assets_common/web/fonts/fontawesome-free-web/webfonts/fa-regular-400.woff b/src_assets/common/assets/web/fonts/fontawesome-free-web/webfonts/fa-regular-400.woff similarity index 100% rename from assets/assets_common/web/fonts/fontawesome-free-web/webfonts/fa-regular-400.woff rename to src_assets/common/assets/web/fonts/fontawesome-free-web/webfonts/fa-regular-400.woff diff --git a/assets/assets_common/web/fonts/fontawesome-free-web/webfonts/fa-regular-400.woff2 b/src_assets/common/assets/web/fonts/fontawesome-free-web/webfonts/fa-regular-400.woff2 similarity index 100% rename from assets/assets_common/web/fonts/fontawesome-free-web/webfonts/fa-regular-400.woff2 rename to src_assets/common/assets/web/fonts/fontawesome-free-web/webfonts/fa-regular-400.woff2 diff --git a/assets/assets_common/web/fonts/fontawesome-free-web/webfonts/fa-solid-900.eot b/src_assets/common/assets/web/fonts/fontawesome-free-web/webfonts/fa-solid-900.eot similarity index 100% rename from assets/assets_common/web/fonts/fontawesome-free-web/webfonts/fa-solid-900.eot rename to src_assets/common/assets/web/fonts/fontawesome-free-web/webfonts/fa-solid-900.eot diff --git a/assets/assets_common/web/fonts/fontawesome-free-web/webfonts/fa-solid-900.svg b/src_assets/common/assets/web/fonts/fontawesome-free-web/webfonts/fa-solid-900.svg similarity index 100% rename from assets/assets_common/web/fonts/fontawesome-free-web/webfonts/fa-solid-900.svg rename to src_assets/common/assets/web/fonts/fontawesome-free-web/webfonts/fa-solid-900.svg diff --git a/assets/assets_common/web/fonts/fontawesome-free-web/webfonts/fa-solid-900.ttf b/src_assets/common/assets/web/fonts/fontawesome-free-web/webfonts/fa-solid-900.ttf similarity index 100% rename from assets/assets_common/web/fonts/fontawesome-free-web/webfonts/fa-solid-900.ttf rename to src_assets/common/assets/web/fonts/fontawesome-free-web/webfonts/fa-solid-900.ttf diff --git a/assets/assets_common/web/fonts/fontawesome-free-web/webfonts/fa-solid-900.woff b/src_assets/common/assets/web/fonts/fontawesome-free-web/webfonts/fa-solid-900.woff similarity index 100% rename from assets/assets_common/web/fonts/fontawesome-free-web/webfonts/fa-solid-900.woff rename to src_assets/common/assets/web/fonts/fontawesome-free-web/webfonts/fa-solid-900.woff diff --git a/assets/assets_common/web/fonts/fontawesome-free-web/webfonts/fa-solid-900.woff2 b/src_assets/common/assets/web/fonts/fontawesome-free-web/webfonts/fa-solid-900.woff2 similarity index 100% rename from assets/assets_common/web/fonts/fontawesome-free-web/webfonts/fa-solid-900.woff2 rename to src_assets/common/assets/web/fonts/fontawesome-free-web/webfonts/fa-solid-900.woff2 diff --git a/assets/assets_common/web/header-no-nav.html b/src_assets/common/assets/web/header-no-nav.html similarity index 100% rename from assets/assets_common/web/header-no-nav.html rename to src_assets/common/assets/web/header-no-nav.html diff --git a/assets/assets_common/web/header.html b/src_assets/common/assets/web/header.html similarity index 100% rename from assets/assets_common/web/header.html rename to src_assets/common/assets/web/header.html diff --git a/assets/assets_common/web/images/favicon.ico b/src_assets/common/assets/web/images/favicon.ico similarity index 100% rename from assets/assets_common/web/images/favicon.ico rename to src_assets/common/assets/web/images/favicon.ico diff --git a/assets/assets_common/web/images/logo-sunshine-45.png b/src_assets/common/assets/web/images/logo-sunshine-45.png similarity index 100% rename from assets/assets_common/web/images/logo-sunshine-45.png rename to src_assets/common/assets/web/images/logo-sunshine-45.png diff --git a/assets/assets_common/web/index.html b/src_assets/common/assets/web/index.html similarity index 100% rename from assets/assets_common/web/index.html rename to src_assets/common/assets/web/index.html diff --git a/assets/assets_common/web/password.html b/src_assets/common/assets/web/password.html similarity index 100% rename from assets/assets_common/web/password.html rename to src_assets/common/assets/web/password.html diff --git a/assets/assets_common/web/pin.html b/src_assets/common/assets/web/pin.html similarity index 100% rename from assets/assets_common/web/pin.html rename to src_assets/common/assets/web/pin.html diff --git a/assets/assets_common/web/third_party/bootstrap.bundle.min.js b/src_assets/common/assets/web/third_party/bootstrap.bundle.min.js similarity index 100% rename from assets/assets_common/web/third_party/bootstrap.bundle.min.js rename to src_assets/common/assets/web/third_party/bootstrap.bundle.min.js diff --git a/assets/assets_common/web/third_party/bootstrap.min.css b/src_assets/common/assets/web/third_party/bootstrap.min.css similarity index 100% rename from assets/assets_common/web/third_party/bootstrap.min.css rename to src_assets/common/assets/web/third_party/bootstrap.min.css diff --git a/assets/assets_common/web/third_party/vue.js b/src_assets/common/assets/web/third_party/vue.js similarity index 100% rename from assets/assets_common/web/third_party/vue.js rename to src_assets/common/assets/web/third_party/vue.js diff --git a/assets/assets_common/web/troubleshooting.html b/src_assets/common/assets/web/troubleshooting.html similarity index 100% rename from assets/assets_common/web/troubleshooting.html rename to src_assets/common/assets/web/troubleshooting.html diff --git a/assets/assets_common/web/welcome.html b/src_assets/common/assets/web/welcome.html similarity index 100% rename from assets/assets_common/web/welcome.html rename to src_assets/common/assets/web/welcome.html diff --git a/assets/assets_common/sunshine.conf b/src_assets/common/config/sunshine.conf similarity index 100% rename from assets/assets_common/sunshine.conf rename to src_assets/common/config/sunshine.conf diff --git a/assets/assets_linux/shaders/opengl/ConvertUV.frag b/src_assets/linux/assets/shaders/opengl/ConvertUV.frag similarity index 100% rename from assets/assets_linux/shaders/opengl/ConvertUV.frag rename to src_assets/linux/assets/shaders/opengl/ConvertUV.frag diff --git a/assets/assets_linux/shaders/opengl/ConvertUV.vert b/src_assets/linux/assets/shaders/opengl/ConvertUV.vert similarity index 100% rename from assets/assets_linux/shaders/opengl/ConvertUV.vert rename to src_assets/linux/assets/shaders/opengl/ConvertUV.vert diff --git a/assets/assets_linux/shaders/opengl/ConvertY.frag b/src_assets/linux/assets/shaders/opengl/ConvertY.frag similarity index 100% rename from assets/assets_linux/shaders/opengl/ConvertY.frag rename to src_assets/linux/assets/shaders/opengl/ConvertY.frag diff --git a/assets/assets_linux/shaders/opengl/Scene.frag b/src_assets/linux/assets/shaders/opengl/Scene.frag similarity index 100% rename from assets/assets_linux/shaders/opengl/Scene.frag rename to src_assets/linux/assets/shaders/opengl/Scene.frag diff --git a/assets/assets_linux/shaders/opengl/Scene.vert b/src_assets/linux/assets/shaders/opengl/Scene.vert similarity index 100% rename from assets/assets_linux/shaders/opengl/Scene.vert rename to src_assets/linux/assets/shaders/opengl/Scene.vert diff --git a/assets/assets_linux/apps.json b/src_assets/linux/config/apps.json similarity index 100% rename from assets/assets_linux/apps.json rename to src_assets/linux/config/apps.json diff --git a/src_assets/linux/deb/conffiles b/src_assets/linux/deb/conffiles new file mode 100644 index 00000000..4a35822b --- /dev/null +++ b/src_assets/linux/deb/conffiles @@ -0,0 +1,2 @@ +/usr/local/sunshine/config/sunshine.conf +/usr/local/sunshine/config/apps.json diff --git a/assets/linux-deb/postinst b/src_assets/linux/deb/postinst similarity index 59% rename from assets/linux-deb/postinst rename to src_assets/linux/deb/postinst index d3195c6a..a42d3ca5 100644 --- a/assets/linux-deb/postinst +++ b/src_assets/linux/deb/postinst @@ -12,25 +12,25 @@ else echo "Warning: /etc/group not found" fi -if [ -f /etc/sunshine/sunshine.conf.old ]; then +if [ -f /usr/local/sunshine/config/sunshine.conf.old ]; then echo "Restoring old sunshine.conf" - mv /etc/sunshine/sunshine.conf.old /etc/sunshine/sunshine.conf + mv /usr/local/sunshine/config/sunshine.conf.old /usr/local/sunshine/config/sunshine.conf fi -if [ -f /etc/sunshine/apps.json.old ]; then +if [ -f /usr/local/sunshine/config/apps.json.old ]; then echo "Restoring old apps.json" - mv /etc/sunshine/apps.json.old /etc/sunshine/apps.json + mv /usr/local/sunshine/config/apps.json.old /usr/local/sunshine/config/apps.json fi # Update permissions on config files for Web Manager -if [ -f /etc/sunshine/apps.json ]; then +if [ -f /usr/local/sunshine/config/apps.json ]; then echo "chmod 666 /etc/sunshine/apps.json" - chmod 666 /etc/sunshine/apps.json + chmod 666 /usr/local/sunshine/config/apps.json fi -if [ -f /etc/sunshine/sunshine.conf ]; then +if [ -f /usr/local/sunshine/config/sunshine.conf ]; then echo "chmod 666 /etc/sunshine/sunshine.conf" - chmod 666 /etc/sunshine/sunshine.conf + chmod 666 /usr/local/sunshine/config/sunshine.conf fi # Ensure Sunshine can grab images from KMS diff --git a/src_assets/linux/deb/preinst b/src_assets/linux/deb/preinst new file mode 100644 index 00000000..0522b5d6 --- /dev/null +++ b/src_assets/linux/deb/preinst @@ -0,0 +1,9 @@ +#!/bin/sh +#Store backup for old config files to prevent it from being overwritten +if [ -f /usr/local/sunshine/config/sunshine.conf ]; then + cp /usr/local/sunshine/config/sunshine.conf /usr/local/sunshine/config/sunshine.conf.old +fi + +if [ -f /usr/local/sunshine/config/apps.json ]; then + cp /usr/local/sunshine/config/apps.json /usr/local/sunshine/config/apps.json.old +fi diff --git a/assets/linux-misc/85-sunshine-rules.rules b/src_assets/linux/misc/85-sunshine-rules.rules similarity index 100% rename from assets/linux-misc/85-sunshine-rules.rules rename to src_assets/linux/misc/85-sunshine-rules.rules diff --git a/assets/assets_mac/Info.plist b/src_assets/macos/assets/Info.plist similarity index 100% rename from assets/assets_mac/Info.plist rename to src_assets/macos/assets/Info.plist diff --git a/assets/assets_mac/apps.json b/src_assets/macos/config/apps.json similarity index 100% rename from assets/assets_mac/apps.json rename to src_assets/macos/config/apps.json diff --git a/assets/assets_windows/shaders/directx/ConvertUVPS.hlsl b/src_assets/windows/assets/shaders/directx/ConvertUVPS.hlsl similarity index 100% rename from assets/assets_windows/shaders/directx/ConvertUVPS.hlsl rename to src_assets/windows/assets/shaders/directx/ConvertUVPS.hlsl diff --git a/assets/assets_windows/shaders/directx/ConvertUVVS.hlsl b/src_assets/windows/assets/shaders/directx/ConvertUVVS.hlsl similarity index 100% rename from assets/assets_windows/shaders/directx/ConvertUVVS.hlsl rename to src_assets/windows/assets/shaders/directx/ConvertUVVS.hlsl diff --git a/assets/assets_windows/shaders/directx/ConvertYPS.hlsl b/src_assets/windows/assets/shaders/directx/ConvertYPS.hlsl similarity index 100% rename from assets/assets_windows/shaders/directx/ConvertYPS.hlsl rename to src_assets/windows/assets/shaders/directx/ConvertYPS.hlsl diff --git a/assets/assets_windows/shaders/directx/ScenePS.hlsl b/src_assets/windows/assets/shaders/directx/ScenePS.hlsl similarity index 100% rename from assets/assets_windows/shaders/directx/ScenePS.hlsl rename to src_assets/windows/assets/shaders/directx/ScenePS.hlsl diff --git a/assets/assets_windows/shaders/directx/SceneVS.hlsl b/src_assets/windows/assets/shaders/directx/SceneVS.hlsl similarity index 100% rename from assets/assets_windows/shaders/directx/SceneVS.hlsl rename to src_assets/windows/assets/shaders/directx/SceneVS.hlsl diff --git a/assets/assets_windows/apps.json b/src_assets/windows/config/apps.json similarity index 100% rename from assets/assets_windows/apps.json rename to src_assets/windows/config/apps.json diff --git a/sunshine/config.cpp b/sunshine/config.cpp index 6aaeb305..6dd3c1b2 100644 --- a/sunshine/config.cpp +++ b/sunshine/config.cpp @@ -20,7 +20,7 @@ using namespace std::literals; #define PRIVATE_KEY_FILE CA_DIR "/cakey.pem" #define CERTIFICATE_FILE CA_DIR "/cacert.pem" -#define APPS_JSON_PATH SUNSHINE_CONFIG_DIR "/" APPS_JSON +#define APPS_JSON_PATH SUNSHINE_CONFIG_DIR "/apps.json" namespace config { namespace nv { @@ -695,7 +695,7 @@ int apply_flags(const char *line) { void apply_config(std::unordered_map &&vars) { if(!fs::exists(stream.file_apps.c_str())) { - fs::copy_file(SUNSHINE_DEFAULT_DIR "/" APPS_JSON, stream.file_apps); + fs::copy_file(SUNSHINE_CONFIG_DIR "/apps.json", stream.file_apps); } for(auto &[name, val] : vars) { @@ -906,7 +906,7 @@ int parse(int argc, char *argv[]) { } if(!fs::exists(sunshine.config_file)) { - fs::copy_file(SUNSHINE_DEFAULT_DIR "/sunshine.conf", sunshine.config_file); + fs::copy_file(SUNSHINE_CONFIG_DIR "/sunshine.conf", sunshine.config_file); } auto vars = parse_config(read_file(sunshine.config_file.c_str()));