Unverified Commit 32f48d8f authored by K900's avatar K900 Committed by GitHub
Browse files

jellyfin-media-player: 1.12.0 -> 2.0.0, build with Qt6, clean up (#469223)

parents ac31ed11 23d1d19d
Loading
Loading
Loading
Loading
+27 −56
Original line number Diff line number Diff line
{
  lib,
  fetchFromGitHub,
  fetchpatch,
  mkDerivation,
  stdenv,
  SDL2,
  cmake,
  libGL,
  libX11,
  libXrandr,
  libvdpau,
  mpv,
  ninja,
  pkg-config,
  python3,
  wrapQtAppsHook,
  qtbase,
  qtwayland,
  qtdeclarative,
  qtwebchannel,
  qtwebengine,
  qtx11extras,
  jellyfin-web,
  withDbus ? stdenv.hostPlatform.isLinux,
  mpvqt,
  libcec,
  SDL2,
  libXrandr,
}:

mkDerivation rec {
stdenv.mkDerivation rec {
  pname = "jellyfin-media-player";
  version = "1.12.0";
  version = "2.0.0";

  src = fetchFromGitHub {
    owner = "jellyfin";
    repo = "jellyfin-media-player";
    rev = "v${version}";
    sha256 = "sha256-IXinyenadnW+a+anQ9e61h+N8vG2r77JPboHm5dN4Iw=";
    hash = "sha256-tdjmOeuC3LFEIDSH8X9LG/myvE1FoxwR1zpDQRyaTkQ=";
  };

  patches = [
    # fix the location of the jellyfin-web path
    ./fix-web-path.patch
    # disable update notifications since the end user can't simply download the release artifacts to update
    ./disable-update-notifications.patch

    # cmake 4 compatibility
    (fetchpatch {
      url = "https://github.com/jellyfin/jellyfin-media-player/commit/6c5c603a1db489872832ed560581d98fdee89d6f.patch";
      hash = "sha256-Blq7y7kOygbZ6uKxPJl9aDXJWqhE0jnM5GNEAwyQEA0=";
    })
  nativeBuildInputs = [
    cmake
    ninja
    wrapQtAppsHook
  ];

  buildInputs = [
    SDL2
    libGL
    libX11
    libXrandr
    libvdpau
    mpv
    qtbase
    qtdeclarative
    qtwebchannel
    qtwebengine
    qtx11extras
  ]
  ++ lib.optionals stdenv.hostPlatform.isLinux [
    qtwayland
  ];

  nativeBuildInputs = [
    cmake
    ninja
    pkg-config
    python3
    mpvqt

    # input sources
    libcec
    SDL2

    # frame rate switching
    libXrandr
  ];

  cmakeFlags = [
    "-DQTROOT=${qtbase}"
    "-GNinja"
  ]
  ++ lib.optionals (!withDbus) [
    "-DLINUX_X11POWER=ON"
    "-DCHECK_FOR_UPDATES=OFF"
    "-DUSE_STATIC_MPVQT=OFF"
    # workaround for Qt cmake weirdness
    "-DQT_DISABLE_NO_DEFAULT_PATH_IN_QT_PACKAGES=ON"
  ];

  preConfigure = ''
    # link the jellyfin-web files to be copied by cmake (see fix-web-path.patch)
    ln -s ${jellyfin-web}/share/jellyfin-web .
  '';

  postInstall = lib.optionalString stdenv.hostPlatform.isDarwin ''
    mkdir -p $out/bin $out/Applications
    mv "$out/Jellyfin Media Player.app" $out/Applications
@@ -91,7 +62,7 @@ mkDerivation rec {

  meta = {
    homepage = "https://github.com/jellyfin/jellyfin-media-player";
    description = "Jellyfin Desktop Client based on Plex Media Player";
    description = "Jellyfin Desktop Client";
    license = with lib.licenses; [
      gpl2Only
      mit
+0 −13
Original line number Diff line number Diff line
diff --git a/resources/settings/settings_description.json b/resources/settings/settings_description.json
index 3329d0d..ccd5718 100644
--- a/resources/settings/settings_description.json
+++ b/resources/settings/settings_description.json
@@ -127,7 +127,7 @@
         "value": "checkForUpdates",
         "display_name": "Check For Updates",
         "help": "Allows user to disable update check plugin script.",
-        "default": true
+        "default": false
       },
       {
         "value": "enableInputRepeat",
+0 −38
Original line number Diff line number Diff line
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index 9df49da..be1c479 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -106,7 +106,8 @@ endif()
 set(RESOURCE_ROOT .)
 if(APPLE)
   set(RESOURCE_ROOT Resources)
-  add_resources(TARGET ${MAIN_TARGET} SOURCES ${CMAKE_SOURCE_DIR}/native/ DEST ${RESOURCE_ROOT}/web-client/extension)
+  install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/../../jellyfin-web/ DESTINATION ${RESOURCE_ROOT}/web-client/desktop)
+  install(DIRECTORY ${CMAKE_SOURCE_DIR}/native/ DESTINATION ${RESOURCE_ROOT}/web-client/extension)
 endif()
 
 if(NOT APPLE)
@@ -119,6 +120,7 @@ if(NOT APPLE)
       install(FILES ${loc}/qtwebengine_devtools_resources.pak DESTINATION resources)
     endif()
   endforeach()
+  install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/../../jellyfin-web/ DESTINATION ${INSTALL_RESOURCE_DIR}/web-client/desktop)
   install(DIRECTORY ${CMAKE_SOURCE_DIR}/native/ DESTINATION ${INSTALL_RESOURCE_DIR}/web-client/extension)
 endif()
 
diff --git a/src/settings/SettingsComponent.cpp b/src/settings/SettingsComponent.cpp
index c398523..7023948 100644
--- a/src/settings/SettingsComponent.cpp
+++ b/src/settings/SettingsComponent.cpp
@@ -748,7 +748,7 @@ QString SettingsComponent::getWebClientUrl(bool desktop)
 
   if (url == "bundled")
   {
-    auto path = Paths::webExtensionPath() + "find-webclient.html";
+    auto path = Paths::webClientPath("desktop");
 
     url = "file:///" + path;
   }
-- 
2.36.0
+1 −1
Original line number Diff line number Diff line
@@ -2046,7 +2046,7 @@ with pkgs;

  intensity-normalization = with python3Packages; toPythonApplication intensity-normalization;

  jellyfin-media-player = libsForQt5.callPackage ../applications/video/jellyfin-media-player { };
  jellyfin-media-player = kdePackages.callPackage ../applications/video/jellyfin-media-player { };

  jellyfin-mpv-shim = python3Packages.callPackage ../applications/video/jellyfin-mpv-shim { };