Loading 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/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; }; } })