diff --git a/pkgs/by-name/mo/mochi/package.nix b/pkgs/by-name/mo/mochi/package.nix index a9a63fad183b..47445d2180e7 100644 --- a/pkgs/by-name/mo/mochi/package.nix +++ b/pkgs/by-name/mo/mochi/package.nix @@ -1,23 +1,24 @@ { - _7zz, appimageTools, fetchurl, - fetchzip, lib, + makeWrapper, + stdenv, stdenvNoCC, libxshmfence, + undmg, }: let pname = "mochi"; - version = "1.18.11"; + version = "1.20.10"; linux = appimageTools.wrapType2 rec { inherit pname version meta; src = fetchurl { - url = "https://mochi.cards/releases/Mochi-${version}.AppImage"; - hash = "sha256-NQ591KtWQz8hlXPhV83JEwGm+Au26PIop5KVzsyZKp4="; + url = "https://download.mochi.cards/releases/Mochi-${version}.AppImage"; + hash = "sha256-oC53TXgK6UUgsHbLo0Ri/+2/UajYwpoXxHwqO1xY91U="; }; appimageContents = appimageTools.extractType2 { inherit pname version src; }; @@ -32,21 +33,31 @@ let ''; }; - darwin = stdenvNoCC.mkDerivation { + darwin = stdenv.mkDerivation { inherit pname version meta; - src = fetchzip { - url = "https://mochi.cards/releases/Mochi-${version}.dmg"; - hash = "sha256-5RM4eqHQoYfO5JiUH9ol+3XxOk4VX4ocE3Yia82sovI="; - stripRoot = false; - nativeBuildInputs = [ _7zz ]; + src = fetchurl { + url = "https://download.mochi.cards/releases/Mochi-${version}${lib.optionalString stdenv.hostPlatform.isAarch64 "-arm64"}.dmg"; + hash = + if stdenv.hostPlatform.isAarch64 then + "sha256-nLz73G6vthiXex7+y6bLVhe/RvK3fE3UHuzHf8lcilE=" + else + "sha256-MuvzijF2eDELcSfOyqffKk5tx2a51vU8cGV2/ShSfTg="; }; + sourceRoot = "."; + + nativeBuildInputs = [ + makeWrapper + undmg + ]; + installPhase = '' runHook preInstall - mkdir -p $out/Applications - cp -r *.app $out/Applications + mkdir -p $out/{Applications,bin} + cp -a Mochi.app $out/Applications + makeWrapper $out/Applications/Mochi.app/Contents/MacOS/Mochi $out/bin/${pname} runHook postInstall ''; @@ -57,6 +68,7 @@ let homepage = "https://mochi.cards/"; changelog = "https://mochi.cards/changelog.html"; license = lib.licenses.unfree; + mainProgram = "mochi"; sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ]; maintainers = with lib.maintainers; [ poopsicles ]; platforms = lib.platforms.linux ++ lib.platforms.darwin;