From 0cd0e98df198949f7c12cd3e65a703a5d51d9aee Mon Sep 17 00:00:00 2001 From: Lan Tian Date: Thu, 5 Dec 2024 20:32:41 -0800 Subject: [PATCH] kikoplay: init at 0-unstable-2018-03-22 --- .../ki/kikoplay/change-install-path.patch | 21 ++++ pkgs/by-name/ki/kikoplay/package.nix | 97 +++++++++++++++++++ pkgs/by-name/ki/kikoplay/qhttpengine.nix | 31 ++++++ 3 files changed, 149 insertions(+) create mode 100644 pkgs/by-name/ki/kikoplay/change-install-path.patch create mode 100644 pkgs/by-name/ki/kikoplay/package.nix create mode 100644 pkgs/by-name/ki/kikoplay/qhttpengine.nix diff --git a/pkgs/by-name/ki/kikoplay/change-install-path.patch b/pkgs/by-name/ki/kikoplay/change-install-path.patch new file mode 100644 index 000000000000..f955ca331cff --- /dev/null +++ b/pkgs/by-name/ki/kikoplay/change-install-path.patch @@ -0,0 +1,21 @@ +diff --git a/KikoPlay.pro b/KikoPlay.pro +index 9fd9d70..a52e8f3 100644 +--- a/KikoPlay.pro ++++ b/KikoPlay.pro +@@ -511,12 +511,12 @@ 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:web.path = /usr/share/kikoplay/web ++ unix:web.path = OUTPATH/share/kikoplay/web + unix:web.files = web/* + + INSTALLS += target icons desktop web diff --git a/pkgs/by-name/ki/kikoplay/package.nix b/pkgs/by-name/ki/kikoplay/package.nix new file mode 100644 index 000000000000..c26d1dd29aad --- /dev/null +++ b/pkgs/by-name/ki/kikoplay/package.nix @@ -0,0 +1,97 @@ +{ + fetchFromGitHub, + stdenv, + lib, + callPackage, + libsForQt5, + makeWrapper, + qt5, + mpv, + lua5_3_compat, +}: +let + qhttpengine = callPackage ./qhttpengine.nix { }; +in +stdenv.mkDerivation rec { + pname = "kikoplay"; + version = "1.0.3"; + src = fetchFromGitHub { + owner = "KikoPlayProject"; + repo = "KikoPlay"; + rev = "${version}"; + hash = "sha256-y+sT0aHDvKFNaJIxnGxDXZXUiCzuXVF7FPc8t//RMW4="; + }; + + nativeBuildInputs = [ + libsForQt5.qmake + makeWrapper + qt5.qtwebsockets + qt5.wrapQtAppsHook + ]; + + buildInputs = [ + mpv + qhttpengine + qt5.qtbase + qt5.qtwebsockets + ]; + + strictDeps = true; + + patches = [ ./change-install-path.patch ]; + + postPatch = '' + substituteInPlace KikoPlay.pro \ + --replace-fail "OUTPATH" "$out" \ + --replace-fail "liblua53.a" "${lua5_3_compat}/lib/liblua.so.5.3" + + 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 + substituteInPlace "$F" --replace-fail "/usr/share/kikoplay/" "$out/share/kikoplay/" + done + ''; + + qmakeFlags = [ "KikoPlay.pro" ]; + hardeningDisable = [ "format" ]; + + # We will append QT wrapper args to our own wrapper + dontWrapQtApps = true; + + postFixup = '' + mkdir -p $out/share/kikoplay/extension/script + cp -r ${ + (fetchFromGitHub { + owner = "KikoPlayProject"; + repo = "KikoPlayScript"; + rev = "0efa0aa479922ea7881966e3876263ccc3de1cf7"; + hash = "sha256-saRI+/wk90Ldry85dh3PStKVQZjDECtPN58tJftkVJA="; + }) + }/{bgm_calendar,danmu,library,resource} $out/share/kikoplay/extension/script/ + mkdir -p $out/share/kikoplay/extension/app + cp -r ${ + (fetchFromGitHub { + owner = "KikoPlayProject"; + repo = "KikoPlayApp"; + rev = "1e9c0a2e0a0b34ce4f8b97c712afacd85708f848"; + hash = "sha256-ditVnsOHirCw/ve96c0evBYWG+1YQpsQXht7vgto8/o="; + }) + }/app/* $out/share/kikoplay/extension/app/ + + wrapProgram $out/bin/KikoPlay \ + "''${qtWrapperArgs[@]}" \ + --set QT_QPA_PLATFORM xcb \ + --set XDG_SESSION_TYPE x11 + ''; + + meta = { + mainProgram = "KikoPlay"; + maintainers = with lib.maintainers; [ xddxdd ]; + description = "More than a Full-Featured Danmu Player"; + homepage = "https://kikoplay.fun"; + license = lib.licenses.gpl3Only; + # See https://github.com/NixOS/nixpkgs/pull/354929 + broken = stdenv.isDarwin; + }; +} diff --git a/pkgs/by-name/ki/kikoplay/qhttpengine.nix b/pkgs/by-name/ki/kikoplay/qhttpengine.nix new file mode 100644 index 000000000000..3f1afdcab6c4 --- /dev/null +++ b/pkgs/by-name/ki/kikoplay/qhttpengine.nix @@ -0,0 +1,31 @@ +{ + fetchFromGitHub, + stdenv, + lib, + cmake, + qt5, +}: +stdenv.mkDerivation rec { + pname = "qhttpengine"; + version = "0-unstable-2018-03-22"; + src = fetchFromGitHub { + owner = "nitroshare"; + repo = "qhttpengine"; + rev = "43f55df51623621ed3efb4e42c7894586d988667"; + hash = "sha256-XO56DUKyUIOhp+xpArMeoNHmlgAld9tUFMCY+tjyI4M="; + }; + + nativeBuildInputs = [ + cmake + qt5.wrapQtAppsHook + ]; + + buildInputs = [ qt5.qtbase ]; + + meta = { + maintainers = with lib.maintainers; [ xddxdd ]; + description = "HTTP server for Qt applications"; + homepage = "https://github.com/nitroshare/qhttpengine"; + license = lib.licenses.mit; + }; +}