From 02740f4f78acfa4aa5b68429818412a41b82b809 Mon Sep 17 00:00:00 2001 From: Piotr Kwiecinski <2151333+piotrkwiecinski@users.noreply.github.com> Date: Sat, 7 Feb 2026 19:15:43 +0100 Subject: [PATCH 1/2] mochi: 1.18.11 -> 1.20.10; unbreak --- pkgs/by-name/mo/mochi/package.nix | 38 ++++++++++++++++++++----------- 1 file changed, 25 insertions(+), 13 deletions(-) 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; From a30ba61b87fa6259cd5a29e84a13bd6f7d8489d2 Mon Sep 17 00:00:00 2001 From: Piotr Kwiecinski <2151333+piotrkwiecinski@users.noreply.github.com> Date: Sun, 8 Feb 2026 12:25:10 +0100 Subject: [PATCH 2/2] mochi: add updateScript --- pkgs/by-name/mo/mochi/package.nix | 2 ++ pkgs/by-name/mo/mochi/update.sh | 26 ++++++++++++++++++++++++++ 2 files changed, 28 insertions(+) create mode 100755 pkgs/by-name/mo/mochi/update.sh diff --git a/pkgs/by-name/mo/mochi/package.nix b/pkgs/by-name/mo/mochi/package.nix index 47445d2180e7..99191d5ae593 100644 --- a/pkgs/by-name/mo/mochi/package.nix +++ b/pkgs/by-name/mo/mochi/package.nix @@ -31,6 +31,8 @@ let substituteInPlace $out/share/applications/${pname}.desktop \ --replace-fail 'Exec=AppRun --no-sandbox' 'Exec=${pname}' ''; + + passthru.updateScript = ./update.sh; }; darwin = stdenv.mkDerivation { diff --git a/pkgs/by-name/mo/mochi/update.sh b/pkgs/by-name/mo/mochi/update.sh new file mode 100755 index 000000000000..cc6e20044d54 --- /dev/null +++ b/pkgs/by-name/mo/mochi/update.sh @@ -0,0 +1,26 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl nix common-updater-scripts + +set -euo pipefail + +latestVersion=$(curl -Ls https://mochi.cards/ | grep -oP 'Mochi-\K[0-9]+\.[0-9]+\.[0-9]+(?=\.AppImage)' | head -1) +currentVersion=$(nix-instantiate --eval -E "with import ./. {}; mochi.version" | tr -d '"') + +echo "latest version: $latestVersion" +echo "current version: $currentVersion" + +if [[ "$latestVersion" == "$currentVersion" ]]; then + echo "package is up-to-date" + exit 0 +fi + +# Update version and hash for x86_64-linux (AppImage) +update-source-version mochi "$latestVersion" --system=x86_64-linux + +# Update hashes for darwin systems +for system in x86_64-darwin aarch64-darwin; do + url=$(nix-instantiate --eval --json -E "with import ./. { system = \"$system\"; }; mochi.src.url" | tr -d '"') + hash=$(nix-prefetch-url "$url") + sriHash=$(nix --extra-experimental-features nix-command hash convert --hash-algo sha256 --to sri "$hash") + update-source-version mochi "$latestVersion" "$sriHash" --system="$system" --ignore-same-version +done