Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
26 changes: 24 additions & 2 deletions pkgs/by-name/lm/lmstudio/darwin.nix
Original file line number Diff line number Diff line change
Expand Up @@ -11,8 +11,8 @@ stdenv.mkDerivation {
inherit meta pname version;

src = fetchurl {
url = "https://releases.lmstudio.ai/darwin/arm64/${version}/${rev}/LM-Studio-${version}-arm64.dmg";
hash = "sha256-XPaXIWd/Xl3i5dS+5WY9OEIB9PNWe5y9C1MwoZMDht0=";
url = "https://installers.lmstudio.ai/darwin/arm64/${version}-${rev}/LM-Studio-${version}-${rev}-arm64.dmg";
hash = "sha256-x4IRT1PjBz9eafmwNRyLVq+4/Rkptz6RVWDFdRrGnGY=";
};

nativeBuildInputs = [ undmg ];
Expand All @@ -25,4 +25,26 @@ stdenv.mkDerivation {
cp -r *.app $out/Applications
runHook postInstall
'';

# LM Studio ships Scripts inside the App Bundle, which may be messed up by standard fixups
dontFixup = true;

# undmg doesn't support APFS and 7zz does break the xattr. Took that approach from https://github.com/NixOS/nixpkgs/blob/a3c6ed7ad2649c1a55ffd94f7747e3176053b833/pkgs/by-name/in/insomnia/package.nix#L52
unpackCmd = ''
echo "Creating temp directory"
mnt=$(TMPDIR=/tmp mktemp -d -t nix-XXXXXXXXXX)
function finish {
echo "Ejecting temp directory"
/usr/bin/hdiutil detach $mnt -force
rm -rf $mnt
}
# Detach volume when receiving SIG "0"
trap finish EXIT
# Mount DMG file
echo "Mounting DMG file into \"$mnt\""
/usr/bin/hdiutil attach -nobrowse -mountpoint $mnt $curSrc
# Copy content to local dir for later use
echo 'Copying extracted content into "sourceRoot"'
cp -a $mnt/LM\ Studio.app $PWD/
'';
}
4 changes: 2 additions & 2 deletions pkgs/by-name/lm/lmstudio/linux.nix
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
}:
let
src = fetchurl {
url = "https://releases.lmstudio.ai/linux/x86/${version}/${rev}/LM_Studio-${version}.AppImage";
hash = "sha256-ylUS6WrGavNW1WbroBnCLeeMBeBX41ontwKeQLug6/s=";
url = "https://installers.lmstudio.ai/linux/x64/${version}-${rev}/LM-Studio-${version}-${rev}-x64.AppImage";
hash = "sha256-laROBUr1HLoaQT6rYhhhulR1KZuKczNomKbrXXkDANY=";
};

appimageContents = appimageTools.extractType2 { inherit pname version src; };
Expand Down
4 changes: 2 additions & 2 deletions pkgs/by-name/lm/lmstudio/package.nix
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,8 @@
}:
let
pname = "lmstudio";
version = "0.3.5";
rev = "2";
version = "0.3.6";
rev = "8";
meta = {
description = "LM Studio is an easy to use desktop app for experimenting with local and open-source Large Language Models (LLMs)";
homepage = "https://lmstudio.ai/";
Expand Down