Loading pkgs/by-name/el/ela-widget-tools/fix-install-path.patch 0 → 100644 +90 −0 Original line number Diff line number Diff line diff --git a/CMakeLists.txt b/CMakeLists.txt index d04794e..b686747 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,11 +10,6 @@ set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>") -#在这里配置QT路径 例如 D:/Qt/6.6.2/msvc2019_64 D:/Qt/5.15.2/msvc2019_64 /home/liniyous/Qt/5.15.2/gcc_64 -SET(QT_SDK_DIR D:/Qt/5.15.2/msvc2019_64 CACHE PATH "QT SDK DIR" FORCE) -message("在CMAKE中配置 QT_SDK_DIR 选项指定QT路径; 当前路径: ${QT_SDK_DIR}") -SET(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR}/Install CACHE PATH "Installation path" FORCE) - option(BUILD_ELAPACKETIO "Build ElaPacketIO" OFF) list(APPEND CMAKE_PREFIX_PATH ${QT_SDK_DIR}) diff --git a/ElaWidgetTools/CMakeLists.txt b/ElaWidgetTools/CMakeLists.txt index 0f61edd..7b075f1 100644 --- a/ElaWidgetTools/CMakeLists.txt +++ b/ElaWidgetTools/CMakeLists.txt @@ -46,9 +46,9 @@ if (MSVC) set_target_properties(${PROJECT_NAME} PROPERTIES DEBUG_POSTFIX "d") endif () -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${PROJECT_NAME}) -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${PROJECT_NAME}) -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${PROJECT_NAME}) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) target_link_libraries(${PROJECT_NAME} PUBLIC Qt${QT_VERSION_MAJOR}::Widgets ) @@ -63,13 +63,6 @@ endif () install( TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME} - ARCHIVE DESTINATION ${PROJECT_NAME}/lib - LIBRARY DESTINATION ${PROJECT_NAME}/lib - RUNTIME DESTINATION ${PROJECT_NAME}/bin -) -install(TARGETS ${PROJECT_NAME} - LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/ElaWidgetToolsExample - RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/ElaWidgetToolsExample ) if (MSVC AND NOT LIB_TYPE STREQUAL "STATIC") install( @@ -87,7 +80,7 @@ set(LIB_DIR lib) install( EXPORT ${PROJECT_NAME} FILE ${PROJECT_NAME}Targets.cmake - DESTINATION ${PROJECT_NAME}/lib/cmake + DESTINATION lib/cmake ) include(CMakePackageConfigHelpers) @@ -102,7 +95,6 @@ configure_package_config_file( ${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake INSTALL_DESTINATION lib/cmake PATH_VARS INCLUDE_DIRS LIBRARIES LIB_DIR - INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}/${PROJECT_NAME} ) install( diff --git a/ElaWidgetToolsExample/CMakeLists.txt b/ElaWidgetToolsExample/CMakeLists.txt index 7330ed1..3cd0cc7 100644 --- a/ElaWidgetToolsExample/CMakeLists.txt +++ b/ElaWidgetToolsExample/CMakeLists.txt @@ -41,9 +41,9 @@ else () ) endif () -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${PROJECT_NAME}) -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${PROJECT_NAME}) -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${PROJECT_NAME}) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) if (WIN32) target_include_directories(${PROJECT_NAME} PUBLIC @@ -93,8 +93,6 @@ endif () include(GNUInstallDirs) install(TARGETS ${PROJECT_NAME} - LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/${PROJECT_NAME} - RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/${PROJECT_NAME} ) if (MSVC) install( pkgs/by-name/el/ela-widget-tools/package.nix 0 → 100644 +66 −0 Original line number Diff line number Diff line { fetchFromGitHub, lib, stdenv, cmake, qt6, ... }: stdenv.mkDerivation (finalAttrs: { pname = "ela-widget-tools"; version = "0-unstable-2025-10-30"; src = fetchFromGitHub { owner = "Liniyous"; repo = "ElaWidgetTools"; rev = "c1eed7c23545e61cc63a34f2cc26737c9d563f78"; hash = "sha256-bmByAQKasqJIaX9W8M+cFQppr7ACF07TZAuXb0xgvfU="; }; patches = [ ./fix-install-path.patch ]; # Qt CMake private include path is empty, generate one ourselves postPatch = let includeBaseFor = component: [ "${qt6.qtbase}/include/${component}/${qt6.qtbase.version}" "${qt6.qtbase}/include/${component}/${qt6.qtbase.version}/${component}" ]; includePaths = builtins.concatStringsSep " " ( lib.flatten ( builtins.map includeBaseFor [ "QtCore" "QtGui" "QtWidgets" ] ) ); in '' substituteInPlace ElaWidgetTools/CMakeLists.txt \ --replace-fail \ '${"\${Qt\${QT_VERSION_MAJOR}Widgets_PRIVATE_INCLUDE_DIRS}"}' \ "${includePaths}" ''; nativeBuildInputs = [ cmake qt6.wrapQtAppsHook ]; buildInputs = [ qt6.qtbase ]; postInstall = '' cp -r $out/ElaWidgetTools/* $out/ rm -rf $out/ElaWidgetTools ''; meta = { mainProgram = "ElaWidgetToolsExample"; maintainers = with lib.maintainers; [ xddxdd ]; description = "Fluent-UI For QT-Widget"; homepage = "https://github.com/Liniyous/ElaWidgetTools"; license = lib.licenses.mit; }; }) pkgs/by-name/ki/kikoplay/change-install-path.patch +10 −7 Original line number Diff line number Diff line diff --git a/KikoPlay.pro b/KikoPlay.pro index 9fd9d70..a52e8f3 100644 index e3f57f5..813e42a 100644 --- a/KikoPlay.pro +++ b/KikoPlay.pro @@ -511,12 +511,12 @@ linux-g++* { @@ -749,14 +749,14 @@ linux-g++* { unix { # Install settings - target.path += /usr/bin - unix:icons.path = /usr/share/pixmaps - unix:desktop.path = /usr/share/applications + target.path += OUTPATH/bin + unix:icons.path = OUTPATH/share/pixmaps + unix:desktop.path = OUTPATH/share/applications unix:icons.files = kikoplay.png kikoplay.xpm unix:desktop.files = kikoplay.desktop unix:desktop.files = io.github.KikoPlayProject.KikoPlay.desktop - unix:icons.path = /usr/share/icons/hicolor/128x128/apps + unix:icons.path = OUTPATH/share/icons/hicolor/128x128/apps unix:icons.files = io.github.KikoPlayProject.KikoPlay.png - unix:metainfo.path = /usr/share/metainfo + unix:metainfo.path = OUTPATH/share/metainfo unix:metainfo.files = io.github.KikoPlayProject.KikoPlay.metainfo.xml - unix:web.path = /usr/share/kikoplay/web + unix:web.path = OUTPATH/share/kikoplay/web unix:web.files = web/* INSTALLS += target icons desktop web INSTALLS += target desktop icons metainfo web pkgs/by-name/ki/kikoplay/fix-mpv-dup-initialization.patch 0 → 100644 +15 −0 Original line number Diff line number Diff line diff --git a/Play/Video/mpvplayer.cpp b/Play/Video/mpvplayer.cpp index bf767ad..e1b1864 100644 --- a/Play/Video/mpvplayer.cpp +++ b/Play/Video/mpvplayer.cpp @@ -712,8 +712,10 @@ void MPVPlayer::initializeGL() {MPV_RENDER_PARAM_INVALID, nullptr} }; + if (mpv_gl == NULL) { if (mpv_render_context_create(&mpv_gl, mpv, params) < 0) throw std::runtime_error("failed to initialize mpv GL context"); + } mpv_render_context_set_update_callback(mpv_gl, MPVPlayer::on_update, reinterpret_cast<void *>(this)); const char *version = reinterpret_cast<const char*>(glFuns->glGetString(GL_VERSION)); pkgs/by-name/ki/kikoplay/package.nix +55 −40 Original line number Diff line number Diff line Loading @@ -2,90 +2,105 @@ fetchFromGitHub, stdenv, lib, callPackage, libsForQt5, makeWrapper, qt5, cmake, qt6, pkg-config, mpv, lua5_3_compat, onnxruntime, ela-widget-tools, qtwebapp, }: let qhttpengine = callPackage ./qhttpengine.nix { }; in stdenv.mkDerivation rec { stdenv.mkDerivation (finalAttrs: { pname = "kikoplay"; version = "1.0.3"; version = "2.0.0"; src = fetchFromGitHub { owner = "KikoPlayProject"; repo = "KikoPlay"; rev = "${version}"; hash = "sha256-y+sT0aHDvKFNaJIxnGxDXZXUiCzuXVF7FPc8t//RMW4="; tag = finalAttrs.version; hash = "sha256-Rj+U7hs6PGq3BwLUoCRxbTl3lOVd8S5F5Lwb0tG67oM="; }; nativeBuildInputs = [ libsForQt5.qmake cmake makeWrapper qt5.qtwebsockets qt5.wrapQtAppsHook pkg-config qt6.qmake qt6.wrapQtAppsHook ]; buildInputs = [ ela-widget-tools lua5_3_compat mpv qhttpengine qt5.qtbase qt5.qtwebsockets onnxruntime qt6.qmake qt6.qtbase qt6.qtdeclarative qt6.qtpositioning qt6.qtwayland qt6.qtwebengine qt6.qtwebsockets qtwebapp ]; strictDeps = true; patches = [ ./change-install-path.patch ]; patches = [ ./change-install-path.patch ./fix-mpv-dup-initialization.patch ]; postPatch = '' substituteInPlace KikoPlay.pro \ --replace-fail "OUTPATH" "$out" \ --replace-fail "liblua53.a" "${lua5_3_compat}/lib/liblua.so.5.3" --replace-fail "liblua53.a" "liblua.so.5.3" \ --replace-fail "DEFINES += KSERVICE" "" substituteInPlace kikoplay.desktop \ --replace-fail "/usr/share/pixmaps/kikoplay.png" "$out/share/pixmaps/kikoplay.png" for F in Extension/App/appmanager.cpp Extension/Script/scriptmanager.cpp LANServer/router.cpp; do for F in Extension/App/appmanager.cpp Extension/Script/scriptmanager.cpp LANServer/router.cpp Play/Subtitle/subtitlerecognizer.cpp; do substituteInPlace "$F" --replace-fail "/usr/share/kikoplay/" "$out/share/kikoplay/" done rm -rf lib/ ''; dontUseCmakeConfigure = true; qmakeFlags = [ "KikoPlay.pro" ]; hardeningDisable = [ "format" ]; # We will append QT wrapper args to our own wrapper dontWrapQtApps = true; qtWrapperArgs = [ "--prefix" "LD_LIBRARY_PATH" ":" "${lua5_3_compat}/lib:/run/opengl-driver/lib" ]; postFixup = '' mkdir -p $out/share/kikoplay/extension/script cp -r ${ (fetchFromGitHub { fetchFromGitHub { owner = "KikoPlayProject"; repo = "KikoPlayScript"; rev = "0efa0aa479922ea7881966e3876263ccc3de1cf7"; hash = "sha256-saRI+/wk90Ldry85dh3PStKVQZjDECtPN58tJftkVJA="; }) rev = "31dc29fd2fd538eab529f1165697e94bac131737"; hash = "sha256-3iwm4zMd1yEQ2bFWZqjIGj2IoGUtXl1LEPFlEJjLIew="; } }/{bgm_calendar,danmu,library,resource} $out/share/kikoplay/extension/script/ mkdir -p $out/share/kikoplay/extension/app cp -r ${ (fetchFromGitHub { fetchFromGitHub { owner = "KikoPlayProject"; repo = "KikoPlayApp"; rev = "1e9c0a2e0a0b34ce4f8b97c712afacd85708f848"; hash = "sha256-ditVnsOHirCw/ve96c0evBYWG+1YQpsQXht7vgto8/o="; }) rev = "62082956bbb0719c4a3a544be6d26e84162370de"; hash = "sha256-/BuEyOwZvm1LRU0UQ/xqxOqouGB06p72WYFcSSdjqiw="; } }/app/* $out/share/kikoplay/extension/app/ wrapProgram $out/bin/KikoPlay \ "''${qtWrapperArgs[@]}" \ --set QT_QPA_PLATFORM xcb \ --set XDG_SESSION_TYPE x11 ''; passthru = { inherit ela-widget-tools qtwebapp; }; meta = { changelog = "https://github.com/KikoPlayProject/KikoPlay/releases/tag/${finalAttrs.version}"; mainProgram = "KikoPlay"; maintainers = with lib.maintainers; [ xddxdd ]; description = "More than a Full-Featured Danmu Player"; Loading @@ -94,4 +109,4 @@ stdenv.mkDerivation rec { # See https://github.com/NixOS/nixpkgs/pull/354929 broken = stdenv.hostPlatform.isDarwin; }; } }) Loading
pkgs/by-name/el/ela-widget-tools/fix-install-path.patch 0 → 100644 +90 −0 Original line number Diff line number Diff line diff --git a/CMakeLists.txt b/CMakeLists.txt index d04794e..b686747 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,11 +10,6 @@ set(CMAKE_CXX_STANDARD 17) set(CMAKE_CXX_STANDARD_REQUIRED ON) add_compile_options("$<$<CXX_COMPILER_ID:MSVC>:/utf-8>") -#在这里配置QT路径 例如 D:/Qt/6.6.2/msvc2019_64 D:/Qt/5.15.2/msvc2019_64 /home/liniyous/Qt/5.15.2/gcc_64 -SET(QT_SDK_DIR D:/Qt/5.15.2/msvc2019_64 CACHE PATH "QT SDK DIR" FORCE) -message("在CMAKE中配置 QT_SDK_DIR 选项指定QT路径; 当前路径: ${QT_SDK_DIR}") -SET(CMAKE_INSTALL_PREFIX ${CMAKE_SOURCE_DIR}/Install CACHE PATH "Installation path" FORCE) - option(BUILD_ELAPACKETIO "Build ElaPacketIO" OFF) list(APPEND CMAKE_PREFIX_PATH ${QT_SDK_DIR}) diff --git a/ElaWidgetTools/CMakeLists.txt b/ElaWidgetTools/CMakeLists.txt index 0f61edd..7b075f1 100644 --- a/ElaWidgetTools/CMakeLists.txt +++ b/ElaWidgetTools/CMakeLists.txt @@ -46,9 +46,9 @@ if (MSVC) set_target_properties(${PROJECT_NAME} PROPERTIES DEBUG_POSTFIX "d") endif () -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${PROJECT_NAME}) -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${PROJECT_NAME}) -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${PROJECT_NAME}) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) target_link_libraries(${PROJECT_NAME} PUBLIC Qt${QT_VERSION_MAJOR}::Widgets ) @@ -63,13 +63,6 @@ endif () install( TARGETS ${PROJECT_NAME} EXPORT ${PROJECT_NAME} - ARCHIVE DESTINATION ${PROJECT_NAME}/lib - LIBRARY DESTINATION ${PROJECT_NAME}/lib - RUNTIME DESTINATION ${PROJECT_NAME}/bin -) -install(TARGETS ${PROJECT_NAME} - LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/ElaWidgetToolsExample - RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/ElaWidgetToolsExample ) if (MSVC AND NOT LIB_TYPE STREQUAL "STATIC") install( @@ -87,7 +80,7 @@ set(LIB_DIR lib) install( EXPORT ${PROJECT_NAME} FILE ${PROJECT_NAME}Targets.cmake - DESTINATION ${PROJECT_NAME}/lib/cmake + DESTINATION lib/cmake ) include(CMakePackageConfigHelpers) @@ -102,7 +95,6 @@ configure_package_config_file( ${PROJECT_BINARY_DIR}/${PROJECT_NAME}Config.cmake INSTALL_DESTINATION lib/cmake PATH_VARS INCLUDE_DIRS LIBRARIES LIB_DIR - INSTALL_PREFIX ${CMAKE_INSTALL_PREFIX}/${PROJECT_NAME} ) install( diff --git a/ElaWidgetToolsExample/CMakeLists.txt b/ElaWidgetToolsExample/CMakeLists.txt index 7330ed1..3cd0cc7 100644 --- a/ElaWidgetToolsExample/CMakeLists.txt +++ b/ElaWidgetToolsExample/CMakeLists.txt @@ -41,9 +41,9 @@ else () ) endif () -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${PROJECT_NAME}) -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${PROJECT_NAME}) -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}/${PROJECT_NAME}) +set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) +set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) +set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CMAKE_BINARY_DIR}) if (WIN32) target_include_directories(${PROJECT_NAME} PUBLIC @@ -93,8 +93,6 @@ endif () include(GNUInstallDirs) install(TARGETS ${PROJECT_NAME} - LIBRARY DESTINATION ${CMAKE_INSTALL_PREFIX}/${PROJECT_NAME} - RUNTIME DESTINATION ${CMAKE_INSTALL_PREFIX}/${PROJECT_NAME} ) if (MSVC) install(
pkgs/by-name/el/ela-widget-tools/package.nix 0 → 100644 +66 −0 Original line number Diff line number Diff line { fetchFromGitHub, lib, stdenv, cmake, qt6, ... }: stdenv.mkDerivation (finalAttrs: { pname = "ela-widget-tools"; version = "0-unstable-2025-10-30"; src = fetchFromGitHub { owner = "Liniyous"; repo = "ElaWidgetTools"; rev = "c1eed7c23545e61cc63a34f2cc26737c9d563f78"; hash = "sha256-bmByAQKasqJIaX9W8M+cFQppr7ACF07TZAuXb0xgvfU="; }; patches = [ ./fix-install-path.patch ]; # Qt CMake private include path is empty, generate one ourselves postPatch = let includeBaseFor = component: [ "${qt6.qtbase}/include/${component}/${qt6.qtbase.version}" "${qt6.qtbase}/include/${component}/${qt6.qtbase.version}/${component}" ]; includePaths = builtins.concatStringsSep " " ( lib.flatten ( builtins.map includeBaseFor [ "QtCore" "QtGui" "QtWidgets" ] ) ); in '' substituteInPlace ElaWidgetTools/CMakeLists.txt \ --replace-fail \ '${"\${Qt\${QT_VERSION_MAJOR}Widgets_PRIVATE_INCLUDE_DIRS}"}' \ "${includePaths}" ''; nativeBuildInputs = [ cmake qt6.wrapQtAppsHook ]; buildInputs = [ qt6.qtbase ]; postInstall = '' cp -r $out/ElaWidgetTools/* $out/ rm -rf $out/ElaWidgetTools ''; meta = { mainProgram = "ElaWidgetToolsExample"; maintainers = with lib.maintainers; [ xddxdd ]; description = "Fluent-UI For QT-Widget"; homepage = "https://github.com/Liniyous/ElaWidgetTools"; license = lib.licenses.mit; }; })
pkgs/by-name/ki/kikoplay/change-install-path.patch +10 −7 Original line number Diff line number Diff line diff --git a/KikoPlay.pro b/KikoPlay.pro index 9fd9d70..a52e8f3 100644 index e3f57f5..813e42a 100644 --- a/KikoPlay.pro +++ b/KikoPlay.pro @@ -511,12 +511,12 @@ linux-g++* { @@ -749,14 +749,14 @@ linux-g++* { unix { # Install settings - target.path += /usr/bin - unix:icons.path = /usr/share/pixmaps - unix:desktop.path = /usr/share/applications + target.path += OUTPATH/bin + unix:icons.path = OUTPATH/share/pixmaps + unix:desktop.path = OUTPATH/share/applications unix:icons.files = kikoplay.png kikoplay.xpm unix:desktop.files = kikoplay.desktop unix:desktop.files = io.github.KikoPlayProject.KikoPlay.desktop - unix:icons.path = /usr/share/icons/hicolor/128x128/apps + unix:icons.path = OUTPATH/share/icons/hicolor/128x128/apps unix:icons.files = io.github.KikoPlayProject.KikoPlay.png - unix:metainfo.path = /usr/share/metainfo + unix:metainfo.path = OUTPATH/share/metainfo unix:metainfo.files = io.github.KikoPlayProject.KikoPlay.metainfo.xml - unix:web.path = /usr/share/kikoplay/web + unix:web.path = OUTPATH/share/kikoplay/web unix:web.files = web/* INSTALLS += target icons desktop web INSTALLS += target desktop icons metainfo web
pkgs/by-name/ki/kikoplay/fix-mpv-dup-initialization.patch 0 → 100644 +15 −0 Original line number Diff line number Diff line diff --git a/Play/Video/mpvplayer.cpp b/Play/Video/mpvplayer.cpp index bf767ad..e1b1864 100644 --- a/Play/Video/mpvplayer.cpp +++ b/Play/Video/mpvplayer.cpp @@ -712,8 +712,10 @@ void MPVPlayer::initializeGL() {MPV_RENDER_PARAM_INVALID, nullptr} }; + if (mpv_gl == NULL) { if (mpv_render_context_create(&mpv_gl, mpv, params) < 0) throw std::runtime_error("failed to initialize mpv GL context"); + } mpv_render_context_set_update_callback(mpv_gl, MPVPlayer::on_update, reinterpret_cast<void *>(this)); const char *version = reinterpret_cast<const char*>(glFuns->glGetString(GL_VERSION));
pkgs/by-name/ki/kikoplay/package.nix +55 −40 Original line number Diff line number Diff line Loading @@ -2,90 +2,105 @@ fetchFromGitHub, stdenv, lib, callPackage, libsForQt5, makeWrapper, qt5, cmake, qt6, pkg-config, mpv, lua5_3_compat, onnxruntime, ela-widget-tools, qtwebapp, }: let qhttpengine = callPackage ./qhttpengine.nix { }; in stdenv.mkDerivation rec { stdenv.mkDerivation (finalAttrs: { pname = "kikoplay"; version = "1.0.3"; version = "2.0.0"; src = fetchFromGitHub { owner = "KikoPlayProject"; repo = "KikoPlay"; rev = "${version}"; hash = "sha256-y+sT0aHDvKFNaJIxnGxDXZXUiCzuXVF7FPc8t//RMW4="; tag = finalAttrs.version; hash = "sha256-Rj+U7hs6PGq3BwLUoCRxbTl3lOVd8S5F5Lwb0tG67oM="; }; nativeBuildInputs = [ libsForQt5.qmake cmake makeWrapper qt5.qtwebsockets qt5.wrapQtAppsHook pkg-config qt6.qmake qt6.wrapQtAppsHook ]; buildInputs = [ ela-widget-tools lua5_3_compat mpv qhttpengine qt5.qtbase qt5.qtwebsockets onnxruntime qt6.qmake qt6.qtbase qt6.qtdeclarative qt6.qtpositioning qt6.qtwayland qt6.qtwebengine qt6.qtwebsockets qtwebapp ]; strictDeps = true; patches = [ ./change-install-path.patch ]; patches = [ ./change-install-path.patch ./fix-mpv-dup-initialization.patch ]; postPatch = '' substituteInPlace KikoPlay.pro \ --replace-fail "OUTPATH" "$out" \ --replace-fail "liblua53.a" "${lua5_3_compat}/lib/liblua.so.5.3" --replace-fail "liblua53.a" "liblua.so.5.3" \ --replace-fail "DEFINES += KSERVICE" "" substituteInPlace kikoplay.desktop \ --replace-fail "/usr/share/pixmaps/kikoplay.png" "$out/share/pixmaps/kikoplay.png" for F in Extension/App/appmanager.cpp Extension/Script/scriptmanager.cpp LANServer/router.cpp; do for F in Extension/App/appmanager.cpp Extension/Script/scriptmanager.cpp LANServer/router.cpp Play/Subtitle/subtitlerecognizer.cpp; do substituteInPlace "$F" --replace-fail "/usr/share/kikoplay/" "$out/share/kikoplay/" done rm -rf lib/ ''; dontUseCmakeConfigure = true; qmakeFlags = [ "KikoPlay.pro" ]; hardeningDisable = [ "format" ]; # We will append QT wrapper args to our own wrapper dontWrapQtApps = true; qtWrapperArgs = [ "--prefix" "LD_LIBRARY_PATH" ":" "${lua5_3_compat}/lib:/run/opengl-driver/lib" ]; postFixup = '' mkdir -p $out/share/kikoplay/extension/script cp -r ${ (fetchFromGitHub { fetchFromGitHub { owner = "KikoPlayProject"; repo = "KikoPlayScript"; rev = "0efa0aa479922ea7881966e3876263ccc3de1cf7"; hash = "sha256-saRI+/wk90Ldry85dh3PStKVQZjDECtPN58tJftkVJA="; }) rev = "31dc29fd2fd538eab529f1165697e94bac131737"; hash = "sha256-3iwm4zMd1yEQ2bFWZqjIGj2IoGUtXl1LEPFlEJjLIew="; } }/{bgm_calendar,danmu,library,resource} $out/share/kikoplay/extension/script/ mkdir -p $out/share/kikoplay/extension/app cp -r ${ (fetchFromGitHub { fetchFromGitHub { owner = "KikoPlayProject"; repo = "KikoPlayApp"; rev = "1e9c0a2e0a0b34ce4f8b97c712afacd85708f848"; hash = "sha256-ditVnsOHirCw/ve96c0evBYWG+1YQpsQXht7vgto8/o="; }) rev = "62082956bbb0719c4a3a544be6d26e84162370de"; hash = "sha256-/BuEyOwZvm1LRU0UQ/xqxOqouGB06p72WYFcSSdjqiw="; } }/app/* $out/share/kikoplay/extension/app/ wrapProgram $out/bin/KikoPlay \ "''${qtWrapperArgs[@]}" \ --set QT_QPA_PLATFORM xcb \ --set XDG_SESSION_TYPE x11 ''; passthru = { inherit ela-widget-tools qtwebapp; }; meta = { changelog = "https://github.com/KikoPlayProject/KikoPlay/releases/tag/${finalAttrs.version}"; mainProgram = "KikoPlay"; maintainers = with lib.maintainers; [ xddxdd ]; description = "More than a Full-Featured Danmu Player"; Loading @@ -94,4 +109,4 @@ stdenv.mkDerivation rec { # See https://github.com/NixOS/nixpkgs/pull/354929 broken = stdenv.hostPlatform.isDarwin; }; } })