diff --git a/pkgs/by-name/lm/lmstudio/darwin.nix b/pkgs/by-name/lm/lmstudio/darwin.nix index a2702a5e06d2..c5e420b6b8f6 100644 --- a/pkgs/by-name/lm/lmstudio/darwin.nix +++ b/pkgs/by-name/lm/lmstudio/darwin.nix @@ -27,7 +27,9 @@ stdenv.mkDerivation { installPhase = '' runHook preInstall mkdir -p $out/Applications - cp -r *.app $out/Applications + # The DMG mounts as a single volume directory named after the version + # (e.g. "LM Studio 0.4.23+1-arm64/"), with the app bundle inside it. + cp -r */*.app $out/Applications # Bypass the /Applications path check in the main index.js # LM Studio verifies the app is running from /Applications and shows an diff --git a/pkgs/by-name/lm/lmstudio/linux.nix b/pkgs/by-name/lm/lmstudio/linux.nix index c168a53eef20..dccb5b344ee2 100644 --- a/pkgs/by-name/lm/lmstudio/linux.nix +++ b/pkgs/by-name/lm/lmstudio/linux.nix @@ -7,9 +7,7 @@ pname, meta, stdenv, - lib, passthru, - graphicsmagick, }: let src = fetchurl { inherit url hash; }; @@ -25,28 +23,21 @@ appimageTools.wrapType2 { passthru ; - nativeBuildInputs = [ graphicsmagick ]; - extraPkgs = pkgs: [ pkgs.ocl-icd ]; extraInstallCommands = '' - mkdir -p $out/share/applications + # upstream ships pre-rendered icons for every hicolor size + mkdir -p $out/share/icons + cp -r ${appimageContents}/usr/share/icons/hicolor $out/share/icons/ - # setup icons (see https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=lmstudio#n55 for how Arch solved this; approach adapted to here) - src_icon="${appimageContents}/usr/share/icons/hicolor/0x0/apps/lm-studio.png" - sizes=("16x16" "32x32" "48x48" "64x64" "128x128" "256x256") - for size in "''${sizes[@]}"; do - install -dm755 "$out/share/icons/hicolor/$size/apps" - gm convert "$src_icon" -resize "$size" "$out/share/icons/hicolor/$size/apps/lm-studio.png" - done - - install -m 444 -D ${appimageContents}/lm-studio.desktop -t $out/share/applications + install -m 444 -D ${appimageContents}/ai.elementlabs.lmstudio.desktop \ + -t $out/share/applications # Rename the main executable from lmstudio to lm-studio mv $out/bin/lmstudio $out/bin/lm-studio - substituteInPlace $out/share/applications/lm-studio.desktop \ - --replace-fail 'Exec=AppRun --no-sandbox %U' 'Exec=lm-studio' + substituteInPlace $out/share/applications/ai.elementlabs.lmstudio.desktop \ + --replace-fail 'Exec=AppRun %U' 'Exec=lm-studio %U' # lms cli tool install -m 755 ${appimageContents}/resources/app/.webpack/lms $out/bin/ diff --git a/pkgs/by-name/lm/lmstudio/package.nix b/pkgs/by-name/lm/lmstudio/package.nix index c0b88f1435ea..d68a3ee29e4a 100644 --- a/pkgs/by-name/lm/lmstudio/package.nix +++ b/pkgs/by-name/lm/lmstudio/package.nix @@ -7,12 +7,12 @@ let pname = "lmstudio"; - version_aarch64-linux = "0.4.21-2"; - hash_aarch64-linux = "sha256-ft/ud1MOP3eOEZgiB+IdL6qhpTiWfEqGz8iKoWnCKn8="; - version_aarch64-darwin = "0.4.21-2"; - hash_aarch64-darwin = "sha256-A0PQ348VQovNbBqnl5z0krZKec0tPZQZ0aZ1QdNuzzE="; - version_x86_64-linux = "0.4.21-2"; - hash_x86_64-linux = "sha256-EBQ3bYnWaMOBTNIOKxRqB2FGdg3tHvB7lo+2HFje01U="; + version_aarch64-linux = "0.4.23-1"; + hash_aarch64-linux = "sha256-MzPygFB0StS8KTuZWq0AR+ZtiQIJ353QHlgpddOa19Y="; + version_aarch64-darwin = "0.4.23-1"; + hash_aarch64-darwin = "sha256-9FD1ENl1YIpF+/VM2JKRXChQZswHy/NEHX3bC6Mynw4="; + version_x86_64-linux = "0.4.23-1"; + hash_x86_64-linux = "sha256-wb3xlSgeJdySGvXJHrJQIDUkDc4SFxQMQwNtbPMDj9g="; meta = { description = "LM Studio is an easy to use desktop app for experimenting with local and open-source Large Language Models (LLMs)";