From eaa8c08047a3600fa9e81dff9ed000be5f04a8f5 Mon Sep 17 00:00:00 2001 From: emaryn Date: Sun, 16 Mar 2025 23:27:44 +0800 Subject: [PATCH 1/3] cherry-studio: refactor --- pkgs/by-name/ch/cherry-studio/package.nix | 43 ++++++----------------- 1 file changed, 10 insertions(+), 33 deletions(-) diff --git a/pkgs/by-name/ch/cherry-studio/package.nix b/pkgs/by-name/ch/cherry-studio/package.nix index 3a7398b62182..b8c7471b0e55 100644 --- a/pkgs/by-name/ch/cherry-studio/package.nix +++ b/pkgs/by-name/ch/cherry-studio/package.nix @@ -1,11 +1,9 @@ { lib, - stdenv, stdenvNoCC, fetchFromGitHub, cacert, yarn-berry, - nodejs, electron, makeWrapper, writableTmpDirAsHomeHook, @@ -15,7 +13,7 @@ commandLineArgs ? "", }: -stdenv.mkDerivation (finalAttrs: { +stdenvNoCC.mkDerivation (finalAttrs: { pname = "cherry-studio"; version = "1.0.1"; @@ -36,30 +34,13 @@ stdenv.mkDerivation (finalAttrs: { writableTmpDirAsHomeHook ]; - postConfigure = - let - supportedArchitectures = builtins.toJSON { - os = [ - "darwin" - "linux" - ]; - cpu = [ - "x64" - "ia32" - "arm64" - ]; - libc = [ - "glibc" - "musl" - ]; - }; - in - '' - yarn config set enableTelemetry false - yarn config set enableGlobalCache false - yarn config set supportedArchitectures --json '${supportedArchitectures}' - yarn config set cacheFolder $out - ''; + postConfigure = '' + yarn config set enableTelemetry false + yarn config set enableGlobalCache false + yarn config set --json supportedArchitectures.os '[ "linux", "darwin" ]' + yarn config set --json supportedArchitectures.cpu '["arm", "arm64", "ia32", "x64"]' + yarn config set cacheFolder $out + ''; buildPhase = '' runHook preBuild @@ -80,11 +61,7 @@ stdenv.mkDerivation (finalAttrs: { copyDesktopItems ]; - env = { - ELECTRON_SKIP_BINARY_DOWNLOAD = "1"; - npm_config_build_from_source = "true"; - npm_config_nodedir = nodejs; - }; + env.ELECTRON_SKIP_BINARY_DOWNLOAD = "1"; postConfigure = '' yarn config set enableTelemetry false @@ -126,7 +103,7 @@ stdenv.mkDerivation (finalAttrs: { mkdir -p $out/lib/cherry-studio cp -r dist/linux-unpacked/{resources,LICENSE*} $out/lib/cherry-studio install -Dm644 build/icon.png $out/share/pixmaps/cherry-studio.png - makeWrapper "${lib.getExe electron}" $out/bin/cherry-studio \ + makeWrapper ${lib.getExe electron} $out/bin/cherry-studio \ --inherit-argv0 \ --add-flags $out/lib/cherry-studio/resources/app.asar \ --add-flags "\''${NIXOS_OZONE_WL:+\''${WAYLAND_DISPLAY:+--ozone-platform-hint=auto --enable-features=WaylandWindowDecorations --enable-wayland-ime=true}}" \ From 18214c6b8f250662ca7ba98cfc8a60b2cae02681 Mon Sep 17 00:00:00 2001 From: emaryn Date: Sun, 16 Mar 2025 23:29:13 +0800 Subject: [PATCH 2/3] cherry-studio: update update script --- pkgs/by-name/ch/cherry-studio/package.nix | 3 +-- pkgs/by-name/ch/cherry-studio/update.sh | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 2 deletions(-) create mode 100755 pkgs/by-name/ch/cherry-studio/update.sh diff --git a/pkgs/by-name/ch/cherry-studio/package.nix b/pkgs/by-name/ch/cherry-studio/package.nix index b8c7471b0e55..67fdd012e608 100644 --- a/pkgs/by-name/ch/cherry-studio/package.nix +++ b/pkgs/by-name/ch/cherry-studio/package.nix @@ -9,7 +9,6 @@ writableTmpDirAsHomeHook, makeDesktopItem, copyDesktopItems, - nix-update-script, commandLineArgs ? "", }: @@ -112,7 +111,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { runHook postInstall ''; - passthru.updateScript = nix-update-script { }; + passthru.updateScript = ./update.sh; meta = { description = "Desktop client that supports for multiple LLM providers"; diff --git a/pkgs/by-name/ch/cherry-studio/update.sh b/pkgs/by-name/ch/cherry-studio/update.sh new file mode 100755 index 000000000000..78609183ed43 --- /dev/null +++ b/pkgs/by-name/ch/cherry-studio/update.sh @@ -0,0 +1,16 @@ +#!/usr/bin/env nix-shell +#!nix-shell -i bash -p curl gnused jq nix bash coreutils nix-update + +set -eou pipefail + +latestTag=$(curl ${GITHUB_TOKEN:+-u ":$GITHUB_TOKEN"} -sL https://api.github.com/repos/CherryHQ/cherry-studio/releases/latest | jq --raw-output .tag_name) +latestVersion=$(echo "$latestTag" | sed 's/^v//') + +currentVersion=$(nix-instantiate --eval -E "with import ./. {}; cherry-studio.version or (lib.getVersion cherry-studio)" | tr -d '"') + +if [[ "$currentVersion" == "$latestVersion" ]]; then + echo "package is up-to-date: $currentVersion" + exit 0 +fi + +nix-update cherry-studio --version "$latestVersion" From 8eeecc40bbc6085e68c5da3e322213cbc0b601ad Mon Sep 17 00:00:00 2001 From: emaryn Date: Sun, 16 Mar 2025 15:31:34 +0000 Subject: [PATCH 3/3] cherry-studio: 1.0.1 -> 1.1.8 --- pkgs/by-name/ch/cherry-studio/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ch/cherry-studio/package.nix b/pkgs/by-name/ch/cherry-studio/package.nix index 67fdd012e608..6f32c17dbe1e 100644 --- a/pkgs/by-name/ch/cherry-studio/package.nix +++ b/pkgs/by-name/ch/cherry-studio/package.nix @@ -14,13 +14,13 @@ stdenvNoCC.mkDerivation (finalAttrs: { pname = "cherry-studio"; - version = "1.0.1"; + version = "1.1.8"; src = fetchFromGitHub { owner = "CherryHQ"; repo = "cherry-studio"; tag = "v${finalAttrs.version}"; - hash = "sha256-C8D0XCwIFWG+5WakAK+TmI4VVuIYJBSgkv5ynM2Ewkc="; + hash = "sha256-zZwweJso4KaJMXNUJ+kEvbkHOkhvvPv/IYu/evXzsWs="; }; yarnOfflineCache = stdenvNoCC.mkDerivation { @@ -50,7 +50,7 @@ stdenvNoCC.mkDerivation (finalAttrs: { ''; outputHashMode = "recursive"; - outputHash = "sha256-DrEkaXkbaY40uYH7niT10OFJH+PD7ip3A4OCwbKmtz8="; + outputHash = "sha256-HKtd+zdP7e/6vmlL4NS8X8gZ8AhxThtOS7taQ+iAnK0="; }; nativeBuildInputs = [