nixpkgs/pkgs/by-name/lm/lmstudio/package.nix
2024-03-28 19:30:20 +01:00

40 lines
1.3 KiB
Nix

{ lib
, appimageTools
, fetchurl
}:
let
pname = "lmstudio";
version = "0.2.18";
src = fetchurl {
url = "https://releases.lmstudio.ai/linux/${version}/beta/LM_Studio-${version}.AppImage";
hash = "sha256-cUa0fjV7xx6+2tnGVP7uLG0QQb44LhP2nYsn6Qn0al4=";
};
appimageContents = appimageTools.extractType2 { inherit pname version src; };
in
appimageTools.wrapType2 {
inherit pname version src;
extraPkgs = pkgs: (appimageTools.defaultFhsEnvArgs.multiPkgs pkgs) ++ [ pkgs.ocl-icd ];
extraInstallCommands = ''
mkdir -p $out/share/applications
mv $out/bin/lmstudio-${version} $out/bin/lmstudio
cp -r ${appimageContents}/usr/share/icons $out/share
install -m 444 -D ${appimageContents}/lm-studio.desktop -t $out/share/applications
substituteInPlace $out/share/applications/lm-studio.desktop \
--replace-fail 'Exec=AppRun --no-sandbox %U' 'Exec=lmstudio'
'';
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/";
license = lib.licenses.unfree;
mainProgram = "lmstudio";
maintainers = with lib.maintainers; [ drupol ];
platforms = lib.platforms.linux;
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
};
}