Unverified Commit 877c9acd authored by Sandro Jäckel's avatar Sandro Jäckel Committed by GitHub
Browse files

kazumi: init at 1.4.1 (#346472)

parents 3287385b f321425b
Loading
Loading
Loading
Loading
+109 −0
Original line number Diff line number Diff line
{
  lib,
  fetchFromGitHub,
  flutter,
  stdenv,
  webkitgtk_4_1,
  alsa-lib,
  libayatana-appindicator,
  libepoxy,
  autoPatchelfHook,
  wrapGAppsHook3,
  gst_all_1,
  at-spi2-atk,
  fetchurl,
}:
let
  version = "1.4.1";
  src = fetchFromGitHub {
    owner = "Predidit";
    repo = "Kazumi";
    rev = version;
    hash = "sha256-LRlJo2zuE3Y3i4vBcjxIYQEDVJ2x85Fn77K4LVtTlg8=";
  };
  mdk-sdk = fetchurl {
    url = "https://github.com/wang-bin/mdk-sdk/releases/download/v0.29.1/mdk-sdk-linux-x64.tar.xz";
    hash = "sha256-7dkvm5kP3gcQwXOE9DrjoOTzKRiwk/PVeRr7poLdCU0=";
  };
in
flutter.buildFlutterApplication {
  pname = "kazumi";

  inherit version src;

  pubspecLock = lib.importJSON ./pubspec.lock.json;

  nativeBuildInputs = [
    wrapGAppsHook3
    autoPatchelfHook
  ];

  buildInputs = [
    webkitgtk_4_1
    alsa-lib
    at-spi2-atk
    libayatana-appindicator
    libepoxy
    gst_all_1.gstreamer
    gst_all_1.gst-vaapi
    gst_all_1.gst-libav
    gst_all_1.gst-plugins-good
    gst_all_1.gst-plugins-bad
    gst_all_1.gst-plugins-base
  ];

  customSourceBuilders = {
    flutter_volume_controller =
      { version, src, ... }:
      stdenv.mkDerivation rec {
        pname = "flutter_volume_controller";
        inherit version src;
        inherit (src) passthru;
        postPatch = ''
          substituteInPlace linux/CMakeLists.txt \
            --replace-fail '# Include ALSA' 'find_package(PkgConfig REQUIRED)' \
            --replace-fail 'find_package(ALSA REQUIRED)' 'pkg_check_modules(ALSA REQUIRED alsa)'
        '';
        installPhase = ''
          runHook preInstall
          mkdir $out
          cp -r ./* $out/
          runHook postInstall
        '';
      };
    fvp =
      { version, src, ... }:
      stdenv.mkDerivation rec {
        pname = "fvp";
        inherit version src;
        inherit (src) passthru;
        installPhase = ''
          runHook preInstall
          tar -xf ${mdk-sdk} -C ./linux
          mkdir $out
          cp -r ./* $out/
          runHook postInstall
        '';
      };
  };

  gitHashes = {
    desktop_webview_window = "sha256-Z9ehzDKe1W3wGa2AcZoP73hlSwydggO6DaXd9mop+cM=";
    webview_windows = "sha256-9oWTvEoFeF7djEVA3PSM72rOmOMUhV8ZYuV6+RreNzE=";
  };

  postInstall = ''
    mkdir -p $out/share/applications/ $out/share/icons/hicolor/512x512/apps/
    cp ./assets/linux/io.github.Predidit.Kazumi.desktop $out/share/applications
    cp ./assets/images/logo/logo_linux.png $out/share/icons/hicolor/512x512/apps/io.github.Predidit.Kazumi.png
  '';

  meta = {
    description = "Watch Animes online with danmaku support";
    homepage = "https://github.com/Predidit/Kazumi";
    mainProgram = "kazumi";
    license = with lib.licenses; [ gpl3Plus ];
    maintainers = with lib.maintainers; [ aucub ];
    platforms = lib.platforms.linux;
  };
}
+1946 −0

File added.

Preview size limit exceeded, changes collapsed.