From 68ddf01ecef766620d4e564cada0a1125840547f Mon Sep 17 00:00:00 2001 From: Izzie Walton Date: Thu, 20 Mar 2025 11:34:21 -0400 Subject: [PATCH 1/4] Fix additional CI issues. --- .github/workflows/main.yml | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index a175db2..d897652 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -92,7 +92,7 @@ jobs: curl -L https://github.com/ninja-build/ninja/releases/download/v1.10.2/ninja-win.zip > ninja.zip unzip ninja.zip mv ninja.exe build/ - curl -L https://sourceforge.net/projects/mpv-player-windows/files/libmpv/mpv-dev-x86_64-v3-20240304-git-9ac791c.7z/download > mpv.7z + curl -L https://sourceforge.net/projects/mpv-player-windows/files/libmpv/mpv-dev-x86_64-20240304-git-9ac791c.7z/download > mpv.7z 7z x mpv.7z mkdir mpv mv include mpv @@ -136,7 +136,7 @@ jobs: curl -L https://github.com/ninja-build/ninja/releases/download/v1.10.2/ninja-win.zip > ninja.zip unzip ninja.zip mv ninja.exe build/ - curl -L https://sourceforge.net/projects/mpv-player-windows/files/libmpv/mpv-dev-x86_64-20240304-git-9ac791c.7z/download > mpv.7z + curl -L https://sourceforge.net/projects/mpv-player-windows/files/libmpv/mpv-dev-x86_64-v3-20240304-git-9ac791c.7z/download > mpv.7z 7z x mpv.7z mkdir mpv mv include mpv @@ -208,6 +208,7 @@ jobs: build-ubuntu: strategy: + fail-fast: false matrix: tag: [oracular, noble, jammy] runs-on: "ubuntu-latest" @@ -278,6 +279,7 @@ jobs: build-debian: strategy: + fail-fast: false matrix: tag: [bookworm, trixie] runs-on: "ubuntu-latest" From 6c5c603a1db489872832ed560581d98fdee89d6f Mon Sep 17 00:00:00 2001 From: Andrew Rabert Date: Sat, 29 Mar 2025 22:28:27 -0400 Subject: [PATCH 2/4] Fix compatibility with cmake 4.0 (Linux-only) CMP0026 OLD behavior was removed in cmake 4.0. This should be safe as, at least on Linux, there doesn't seem to be any resources being copied. There might still be changes needed to fix compatibility with cmake 4.0 when building for macos. --- CMakeLists.txt | 1 - CMakeModules/utils.cmake | 28 +++++++++++++++------------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1817775..52b98a3 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -41,7 +41,6 @@ endmacro() set_policy(CMP0020 NEW) set_policy(CMP0017 NEW) set_policy(CMP0058 NEW) -set_policy(CMP0026 OLD) set_policy(CMP0071 NEW) set_policy(CMP0072 NEW) set_policy(CMP0148 OLD) diff --git a/CMakeModules/utils.cmake b/CMakeModules/utils.cmake index 0b129e9..db83e26 100644 --- a/CMakeModules/utils.cmake +++ b/CMakeModules/utils.cmake @@ -17,20 +17,22 @@ function(copy_resources target) get_property(RESOURCE_LIST GLOBAL PROPERTY _${target}_RESOURCE_LIST) - # we read the LOCATION from the target instead of using a generator - # here since add_custom_command doesn't support generator expresessions - # in the output field, and this is still cleaner than hardcoding the path - # of the output binary. - # - get_property(TARGET_LOC TARGET ${target} PROPERTY LOCATION) - get_filename_component(TARGET_DIR ${TARGET_LOC} DIRECTORY) - if(APPLE) - set(TARGET_LOC ${TARGET_DIR}/..) - else() - set(TARGET_LOC ${TARGET_DIR}) - endif() - if(RESOURCE_LIST) + set_policy(CMP0026 OLD) + + # we read the LOCATION from the target instead of using a generator + # here since add_custom_command doesn't support generator expresessions + # in the output field, and this is still cleaner than hardcoding the path + # of the output binary. + # + get_property(TARGET_LOC TARGET ${target} PROPERTY LOCATION) + get_filename_component(TARGET_DIR ${TARGET_LOC} DIRECTORY) + if(APPLE) + set(TARGET_LOC ${TARGET_DIR}/..) + else() + set(TARGET_LOC ${TARGET_DIR}) + endif() + foreach(RF ${RESOURCE_LIST}) string(REPLACE "|" ";" PARTS "${RF}") list(GET PARTS 0 SOURCE_FILE) From 28207b756c82d620b5443548db1cf871a7fba9e3 Mon Sep 17 00:00:00 2001 From: Andrew Rabert Date: Sun, 30 Mar 2025 17:00:30 -0400 Subject: [PATCH 3/4] Add cmake option to disable update checks This is useful for when the JMP installation is externally managed (ex. Flatpak, Arch Linux AUR, etc.). --- CMakeLists.txt | 5 +++++ src/settings/SettingsComponent.cpp | 4 ++++ src/system/SystemComponent.cpp | 2 ++ 3 files changed, 11 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 52b98a3..bf41488 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,9 +10,14 @@ project(JellyfinMediaPlayer CXX C) # we want this to be able to run clang-tidy set(CMAKE_EXPORT_COMPILE_COMMANDS ON CACHE BOOL "" FORCE) +option(CHECK_FOR_UPDATES "Enable checking for new versions of Jellyfin Media Player" ON) option(OPENELEC "Make an OpenELEC build" OFF) option(LINUX_X11POWER "Enable non D-Bus screensaver management" OFF) +if (NOT CHECK_FOR_UPDATES) + add_definitions(-DDISABLE_UPDATE_CHECK) +endif() + if((NOT LINUX_X11POWER) AND (UNIX AND (NOT APPLE))) set(LINUX_DBUS ON) endif() diff --git a/src/settings/SettingsComponent.cpp b/src/settings/SettingsComponent.cpp index 9beb844..8de385c 100644 --- a/src/settings/SettingsComponent.cpp +++ b/src/settings/SettingsComponent.cpp @@ -305,6 +305,10 @@ void SettingsComponent::loadConf(const QString& path, bool storage) getSection(SETTINGS_SECTION_MAIN)->setValue("autodetectCertBundle", "true"); } } + +#ifdef DISABLE_UPDATE_CHECK + getSection(SETTINGS_SECTION_MAIN)->setValueHidden("checkForUpdates", "true"); +#endif } /////////////////////////////////////////////////////////////////////////////////////////////////// diff --git a/src/system/SystemComponent.cpp b/src/system/SystemComponent.cpp index fa58fee..970c545 100644 --- a/src/system/SystemComponent.cpp +++ b/src/system/SystemComponent.cpp @@ -360,6 +360,7 @@ QString SystemComponent::getNativeShellScript() ///////////////////////////////////////////////////////////////////////////////////////// void SystemComponent::checkForUpdates() { +#ifndef DISABLE_UPDATE_CHECK if (SettingsComponent::Get().value(SETTINGS_SECTION_MAIN, "checkForUpdates").toBool()) { #if !defined(Q_OS_WIN) && !defined(Q_OS_MAC) QNetworkAccessManager *manager = new QNetworkAccessManager(this); @@ -374,6 +375,7 @@ void SystemComponent::checkForUpdates() emit updateInfoEmitted("SSL_UNAVAILABLE"); #endif } +#endif } ///////////////////////////////////////////////////////////////////////////////////////// From 2a3dadae071aad69357f8234dc87e9b6f15e18b2 Mon Sep 17 00:00:00 2001 From: Izzie Walton Date: Fri, 4 Apr 2025 01:04:17 -0400 Subject: [PATCH 4/4] Revert "Prevent issue where wayland has black screen due to broken gpu accel (#165, #610)" This reverts commit c1cae320063bb5df7c8c655a5fffd499666f3577. --- src/main.cpp | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/main.cpp b/src/main.cpp index 75e6033..1172568 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -82,10 +82,7 @@ void ShowLicenseInfo() ///////////////////////////////////////////////////////////////////////////////////////// QStringList g_qtFlags = { "--disable-web-security", - "--enable-gpu-rasterization", -#ifdef Q_OS_LINUX - "--disable-gpu" -#endif + "--enable-gpu-rasterization" }; ///////////////////////////////////////////////////////////////////////////////////////// @@ -110,7 +107,7 @@ int main(int argc, char *argv[]) "the scale (DPI) of the desktop interface."); scaleOption.setValueName("scale"); scaleOption.setDefaultValue("auto"); - + auto platformOption = QCommandLineOption("platform", "Equivalant to QT_QPA_PLATFORM."); platformOption.setValueName("platform"); platformOption.setDefaultValue("default"); @@ -173,7 +170,7 @@ int main(int argc, char *argv[]) QApplication app(newArgc, newArgv); app.setApplicationName("Jellyfin Media Player"); -#if defined(Q_OS_WIN) +#if defined(Q_OS_WIN) // Setting window icon on OSX will break user ability to change it app.setWindowIcon(QIcon(":/images/icon.png")); #endif