about summary refs log tree commit diff
diff options
context:
space:
mode:
authorPol Dellaiera <pol.dellaiera@protonmail.com>2024-02-21 11:11:17 +0100
committerPol Dellaiera <pol.dellaiera@protonmail.com>2024-03-28 19:30:20 +0100
commit8a74441fc09539b80985c1704530ebbd85390d4a (patch)
treea9dfcdc4acf473c84ebfcc7464df339f2a4eef5e
parentcabdd9cee83606f8fb38dc40aa255f6afc968617 (diff)
downloadnixlib-8a74441fc09539b80985c1704530ebbd85390d4a.tar
nixlib-8a74441fc09539b80985c1704530ebbd85390d4a.tar.gz
nixlib-8a74441fc09539b80985c1704530ebbd85390d4a.tar.bz2
nixlib-8a74441fc09539b80985c1704530ebbd85390d4a.tar.lz
nixlib-8a74441fc09539b80985c1704530ebbd85390d4a.tar.xz
nixlib-8a74441fc09539b80985c1704530ebbd85390d4a.tar.zst
nixlib-8a74441fc09539b80985c1704530ebbd85390d4a.zip
lmstudio: init at 0.2.18
-rw-r--r--pkgs/by-name/lm/lmstudio/package.nix39
1 files changed, 39 insertions, 0 deletions
diff --git a/pkgs/by-name/lm/lmstudio/package.nix b/pkgs/by-name/lm/lmstudio/package.nix
new file mode 100644
index 000000000000..f1edf4d8c5e0
--- /dev/null
+++ b/pkgs/by-name/lm/lmstudio/package.nix
@@ -0,0 +1,39 @@
+{ 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 ];
+  };
+}