Files
nixpkgs/pkgs/by-name/ap/appflowy/package.nix
Dark Steveneq 646b892680
Some checks failed
Periodic Merges (6h) / master → staging-nixos (push) Failing after 12m50s
Periodic Merges (6h) / master → staging-next (push) Failing after 12m54s
Periodic Merges (24h) / merge-base(master,staging) → haskell-updates (push) Failing after 11m54s
Periodic Merges (6h) / staging-next → staging (push) Failing after 12m13s
Periodic Merges (24h) / staging-next-25.05 → staging-25.05 (push) Failing after 13m24s
Periodic Merges (24h) / release-25.05 → staging-next-25.05 (push) Failing after 14m28s
push sheeet
2025-10-09 14:15:47 +02:00

115 lines
3.0 KiB
Nix

{
stdenvNoCC,
lib,
fetchzip,
autoPatchelfHook,
makeWrapper,
copyDesktopItems,
makeDesktopItem,
gtk3,
xdg-user-dirs,
keybinder3,
libnotify,
}:
let
dist =
rec {
x86_64-linux = {
urlSuffix = "linux-x86_64.tar.gz";
hash = "sha256-n1ID/fGkRisxJ2rYmNLO9YX1ylezEQldEtnRuIVXHGk=";
};
x86_64-darwin = {
urlSuffix = "macos-universal.zip";
hash = "sha256-+TXllfXtu+7X36XJQMydJzMaWeUkp4/TRD0a35GHuws=";
};
aarch64-darwin = x86_64-darwin;
}
."${stdenvNoCC.hostPlatform.system}"
or (throw "appflowy: No source for system: ${stdenvNoCC.hostPlatform.system}");
in
stdenvNoCC.mkDerivation (finalAttrs: {
pname = "appflowy";
version = "0.9.9";
src = fetchzip {
url = "https://github.com/AppFlowy-IO/appflowy/releases/download/${finalAttrs.version}/AppFlowy-${finalAttrs.version}-${dist.urlSuffix}";
inherit (dist) hash;
stripRoot = false;
};
nativeBuildInputs = [
makeWrapper
copyDesktopItems
]
++ lib.optionals stdenvNoCC.hostPlatform.isLinux [ autoPatchelfHook ];
buildInputs = [
gtk3
keybinder3
libnotify
];
dontBuild = true;
dontConfigure = true;
installPhase =
lib.optionalString stdenvNoCC.hostPlatform.isLinux ''
runHook preInstall
cd AppFlowy/
mkdir -p $out/{bin,opt}
# Copy archive contents to the outpout directory
cp -r ./* $out/opt/
# Copy icon
install -Dm444 data/flutter_assets/assets/images/flowy_logo.svg $out/share/icons/hicolor/scalable/apps/appflowy.svg
runHook postInstall
''
+ lib.optionalString stdenvNoCC.hostPlatform.isDarwin ''
runHook preInstall
mkdir -p $out/{Applications,bin}
cp -r ./AppFlowy.app $out/Applications/
runHook postInstall
'';
preFixup =
lib.optionalString stdenvNoCC.hostPlatform.isLinux ''
# Add missing libraries to appflowy using the ones it comes with
makeWrapper $out/opt/AppFlowy $out/bin/appflowy \
--set LD_LIBRARY_PATH "$out/opt/lib/" \
--prefix PATH : "${lib.makeBinPath [ xdg-user-dirs ]}"
''
+ lib.optionalString stdenvNoCC.hostPlatform.isDarwin ''
makeWrapper $out/Applications/AppFlowy.app/Contents/MacOS/AppFlowy $out/bin/appflowy
'';
desktopItems = lib.optionals stdenvNoCC.hostPlatform.isLinux [
(makeDesktopItem {
name = "appflowy";
desktopName = "AppFlowy";
comment = finalAttrs.meta.description;
exec = "appflowy %U";
icon = "appflowy";
categories = [ "Office" ];
mimeTypes = [ "x-scheme-handler/appflowy-flutter" ];
})
];
meta = with lib; {
description = "Open-source alternative to Notion";
homepage = "https://www.appflowy.io/";
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
license = licenses.agpl3Only;
changelog = "https://github.com/AppFlowy-IO/appflowy/releases/tag/${finalAttrs.version}";
maintainers = with maintainers; [ darkonion0 ];
platforms = [ "x86_64-linux" ] ++ platforms.darwin;
mainProgram = "appflowy";
};
})