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
, cmake
, fetchFromGitHub
, jellyfin-media-player
, libGL
@@ -6,11 +7,14 @@
, libXrandr
, libvdpau
, mpv
, ninja
, pkg-config
, python3
, qt6
, SDL2
, stdenv
}:
jellyfin-media-player.overrideAttrs (upstream: {
(jellyfin-media-player.overrideAttrs (upstream: {
src = fetchFromGitHub {
owner = "jellyfin";
repo = "jellyfin-media-player";
@@ -18,9 +22,12 @@ jellyfin-media-player.overrideAttrs (upstream: {
hash = "sha256-saR/P2daqjF0G8N7BX6Rtsb1dWGjdf5MPDx1lhoioEw=";
};
# 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)
patches = builtins.tail upstream.patches;
patches = (builtins.tail upstream.patches) ++ [
./0001-fix-web-path.patch
./0002-qt6-build-fixes.patch
];
buildInputs = [
SDL2
libGL
@@ -36,7 +43,24 @@ jellyfin-media-player.overrideAttrs (upstream: {
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 // {
platforms = upstream.meta.platforms ++ [ "aarch64-linux" ];
};
})
}))