depot/third_party/nixpkgs/pkgs/by-name/bu/butterfly/package.nix

82 lines
2.4 KiB
Nix

{
lib,
fetchFromGitHub,
flutter,
stdenv,
fetchzip,
}:
let
pname = "butterfly";
version = "2.2.1";
src = fetchFromGitHub {
owner = "LinwoodDev";
repo = "Butterfly";
rev = "v${version}";
hash = "sha256-TV7C0v3y9G44Df/x1ST8D0c0QqNBuuhzPBMKUyf/iwo=";
};
pdfium-binaries = fetchzip {
url = "https://github.com/bblanchon/pdfium-binaries/releases/download/chromium/5200/pdfium-linux-x64.tgz";
hash = "sha256-AJop6gKjF/DPgItuPQsWpgngxiqVNeqBbhHZz3aQ1n0=";
stripRoot = false;
};
in
flutter.buildFlutterApplication {
inherit pname version src;
pubspecLock = lib.importJSON ./pubspec.lock.json;
sourceRoot = "${src.name}/app";
customSourceBuilders = {
printing =
{ version, src, ... }:
stdenv.mkDerivation rec {
pname = "printing";
inherit version src;
inherit (src) passthru;
patches = [ ./printing.patch ];
installPhase = ''
runHook preInstall
mkdir $out
cp -a ./* $out/
runHook postInstall
'';
};
};
env.PDFIUM_DIR = "${pdfium-binaries}";
gitHashes = {
dart_leap = "sha256-eEyUqdVToybQoDwdmz47H0f3/5zRdJzmPv1d/5mTOgA=";
lw_file_system = "sha256-CPBwaDTK57SKcaD4IzjIL4cWixEDK9sv3zCDeNfFpw0=";
flutter_secure_storage_web = "sha256-ULYXcFjz9gKMjw1Q1KAmX2J7EcE8CbW0MN/EnwmaoQY=";
networker = "sha256-8ol5YRim4dLpgR30DXbgHzq+VDk1sPLIi+AxUtwOls8=";
lw_file_system_api = "sha256-OOLbqKLvgHUJf3LiiQoHJS6kngnWtHPhswM69sX5fwE=";
lw_sysapi = "sha256-9hCAYB5tqYKQPHGa7+Zma6fE8Ei08RvyL9d65FMuI+I=";
flex_color_scheme = "sha256-MYEiiltevfz0gDag3yS/ZjeVaJyl1JMS8zvgI0k4Y0k=";
material_leap = "sha256-pQ+OvecHaav5QI+Hf7+DDcXYM3JMwogseMzce1ULveY=";
networker_socket = "sha256-+h5FXqPhB6VJ269WPoqKk+/1cE+p7UbLvDwnXrJh+CE=";
perfect_freehand = "sha256-dMJ8CyhoQWbBRvUQyzPc7vdAhCzcAl1X7CcaT3u6dWo=";
};
postInstall = ''
cp -r linux/debian/usr/share $out/share
'';
meta = {
description = "Powerful, minimalistic, cross-platform, opensource note-taking app";
homepage = "https://github.com/LinwoodDev/Butterfly";
mainProgram = "butterfly";
license = with lib.licenses; [
agpl3Plus
cc-by-sa-40
asl20 # pdfium-binaries
];
maintainers = with lib.maintainers; [ aucub ];
platforms = [ "x86_64-linux" ];
sourceProvenance = with lib.sourceTypes; [
fromSource
binaryNativeCode # pdfium-binaries
];
};
}