diff --git a/pkgs/applications/misc/notesnook/default.nix b/pkgs/applications/misc/notesnook/default.nix new file mode 100644 index 000000000000..55bd926fb7fa --- /dev/null +++ b/pkgs/applications/misc/notesnook/default.nix @@ -0,0 +1,76 @@ +{ lib, stdenv, appimageTools, fetchurl, undmg }: + +let + pname = "notesnook"; + version = "2.5.7"; + + inherit (stdenv.hostPlatform) system; + throwSystem = throw "Unsupported system: ${system}"; + + suffix = { + x86_64-linux = "linux_x86_64.AppImage"; + x86_64-darwin = "mac_x64.dmg"; + aarch64-darwin = "mac_arm64.dmg"; + }.${system} or throwSystem; + + src = fetchurl { + url = "https://github.com/streetwriters/notesnook/releases/download/v${version}/notesnook_${suffix}"; + hash = { + x86_64-linux = "sha256-M/59pjhuKF/MOMpT9/qrlThHO0V8e49cfiaWMkEWHNg="; + x86_64-darwin = "sha256-cluIizmweIMU6RIFxoEQ3DYChRVEuVLxrPjwfFfeq1w="; + aarch64-darwin = "sha256-cbBnKrb8poyDL1D+32UrOl3RXt8Msncw440qra9+Gs0="; + }.${system} or throwSystem; + }; + + appimageContents = appimageTools.extractType2 { + inherit pname version src; + }; + + meta = with lib; { + description = "A fully open source & end-to-end encrypted note taking alternative to Evernote."; + longDescription = '' + Notesnook is a free (as in speech) & open source note taking app + focused on user privacy & ease of use. To ensure zero knowledge + principles, Notesnook encrypts everything on your device using + XChaCha20-Poly1305 & Argon2. + ''; + homepage = "https://notesnook.com"; + license = licenses.gpl3Only; + maintainers = with maintainers; [ j0lol ]; + platforms = [ "x86_64-linux" "x86_64-darwin" "aarch64-darwin" ]; + }; + + linux = appimageTools.wrapType2 rec { + inherit pname version src meta; + + profile = '' + export LC_ALL=C.UTF-8 + ''; + + multiPkgs = null; # no 32bit needed + extraPkgs = appimageTools.defaultFhsEnvArgs.multiPkgs; + extraInstallCommands = '' + mv $out/bin/{${pname}-${version},${pname}} + install -Dm444 ${appimageContents}/notesnook.desktop -t $out/share/applications + install -Dm444 ${appimageContents}/notesnook.png -t $out/share/pixmaps + substituteInPlace $out/share/applications/notesnook.desktop \ + --replace 'Exec=AppRun --no-sandbox %U' 'Exec=${pname}' + ''; + }; + + darwin = stdenv.mkDerivation { + inherit pname version src meta; + + nativeBuildInputs = [ undmg ]; + + sourceRoot = "Notesnook.app"; + + installPhase = '' + mkdir -p $out/Applications/Notesnook.app + cp -R . $out/Applications/Notesnook.app + ''; + }; +in +if stdenv.isDarwin +then darwin +else linux diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f6ee2814f487..0d319fde3107 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -9018,6 +9018,8 @@ with pkgs; node2nix = nodePackages.node2nix; + notesnook = callPackage ../applications/misc/notesnook { }; + openipmi = callPackage ../tools/system/openipmi { }; ox = callPackage ../applications/editors/ox { };