jellyfin-media-player: working qt6 build

haven't checked cross compilation
This commit is contained in:
2023-06-02 01:48:29 +00:00
parent e9dc22c1f2
commit 0c610c8f1c
3 changed files with 65 additions and 4 deletions

View File

@@ -0,0 +1,24 @@
diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt
index bcebe43..a15b0ef 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -107,8 +107,8 @@ endif()
set(RESOURCE_ROOT .)
if(APPLE)
set(RESOURCE_ROOT Resources)
- add_resources(TARGET ${MAIN_TARGET} SOURCES ${CMAKE_CURRENT_BINARY_DIR}/../dist/ DEST ${RESOURCE_ROOT}/web-client/desktop)
- 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)
@@ -121,7 +121,7 @@ if(NOT APPLE)
install(FILES ${loc}/qtwebengine_devtools_resources.pak DESTINATION resources)
endif()
endforeach()
- install(DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/../dist/ DESTINATION ${INSTALL_RESOURCE_DIR}/web-client/desktop)
+ 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()

View File

@@ -0,0 +1,13 @@
diff --git a/src/input/InputComponent.cpp b/src/input/InputComponent.cpp
index 0f5f129..94596b6 100644
--- a/src/input/InputComponent.cpp
+++ b/src/input/InputComponent.cpp
@@ -132,7 +132,7 @@ void InputComponent::handleAction(const QString& action)
else
{
qDebug() << "Invoking slot" << qPrintable(recvSlot->m_slot.data());
- QGenericArgument arg0 = QGenericArgument();
+ QMetaMethodArgument arg0;
if (recvSlot->m_hasArguments)
arg0 = Q_ARG(const QString&, hostArguments);

View File

@@ -1,4 +1,5 @@
{ lib { lib
, cmake
, fetchFromGitHub , fetchFromGitHub
, jellyfin-media-player , jellyfin-media-player
, libGL , libGL
@@ -6,11 +7,14 @@
, libXrandr , libXrandr
, libvdpau , libvdpau
, mpv , mpv
, ninja
, pkg-config
, python3
, qt6 , qt6
, SDL2 , SDL2
, stdenv , stdenv
}: }:
jellyfin-media-player.overrideAttrs (upstream: { (jellyfin-media-player.overrideAttrs (upstream: {
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jellyfin"; owner = "jellyfin";
repo = "jellyfin-media-player"; repo = "jellyfin-media-player";
@@ -18,9 +22,12 @@ jellyfin-media-player.overrideAttrs (upstream: {
hash = "sha256-saR/P2daqjF0G8N7BX6Rtsb1dWGjdf5MPDx1lhoioEw="; hash = "sha256-saR/P2daqjF0G8N7BX6Rtsb1dWGjdf5MPDx1lhoioEw=";
}; };
# nixos ships two patches: # nixos ships two patches:
# - the first fixes "web paths" and has *mostly* been upstreamed (so skip) # - the first fixes "web paths" and has *mostly* been upstreamed (so skip and manually tweak a bit)
# - the second disables auto-update notifications (keep) # - the second disables auto-update notifications (keep)
patches = builtins.tail upstream.patches; patches = (builtins.tail upstream.patches) ++ [
./0001-fix-web-path.patch
./0002-qt6-build-fixes.patch
];
buildInputs = [ buildInputs = [
SDL2 SDL2
libGL libGL
@@ -36,7 +43,24 @@ jellyfin-media-player.overrideAttrs (upstream: {
qt6.qtwayland qt6.qtwayland
]; ];
nativeBuildInputs = [
cmake
ninja
pkg-config
python3
# new packages which weren't needed before
qt6.wrapQtAppsHook # replaces the implicit qt5 version
qt6.qt5compat
];
cmakeFlags = [
"-DCMAKE_BUILD_TYPE=Release"
"-DQTROOT=${qt6.qtbase}"
"-GNinja"
];
meta = upstream.meta // { meta = upstream.meta // {
platforms = upstream.meta.platforms ++ [ "aarch64-linux" ]; platforms = upstream.meta.platforms ++ [ "aarch64-linux" ];
}; };
}) }))