about summary refs log tree commit diff
path: root/pkgs/by-name/lm/lmstudio
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/by-name/lm/lmstudio')
-rw-r--r--pkgs/by-name/lm/lmstudio/darwin.nix28
-rw-r--r--pkgs/by-name/lm/lmstudio/linux.nix29
-rw-r--r--pkgs/by-name/lm/lmstudio/package.nix38
3 files changed, 68 insertions, 27 deletions
diff --git a/pkgs/by-name/lm/lmstudio/darwin.nix b/pkgs/by-name/lm/lmstudio/darwin.nix
new file mode 100644
index 0000000000000..f08d2d1510b7f
--- /dev/null
+++ b/pkgs/by-name/lm/lmstudio/darwin.nix
@@ -0,0 +1,28 @@
+{ stdenv
+, fetchurl
+, undmg
+, lib
+, meta
+, pname
+, version
+}:
+stdenv.mkDerivation {
+  inherit meta pname version;
+
+  src = fetchurl {
+    url = "https://releases.lmstudio.ai/mac/arm64/${version}/latest/LM-Studio-${version}-arm64.dmg";
+    hash = "sha256-byS0LNJQjs/+sf2anhTAdsXUWad9HujxmLx5uEfdlo8=";
+  };
+
+  nativeBuildInputs = [ undmg ];
+
+  sourceRoot = ".";
+
+  installPhase = ''
+    runHook preInstall
+    mkdir -p $out/Applications
+    cp -r *.app $out/Applications
+    runHook postInstall
+  '';
+}
+
diff --git a/pkgs/by-name/lm/lmstudio/linux.nix b/pkgs/by-name/lm/lmstudio/linux.nix
new file mode 100644
index 0000000000000..abca76ac032a8
--- /dev/null
+++ b/pkgs/by-name/lm/lmstudio/linux.nix
@@ -0,0 +1,29 @@
+{ lib
+, appimageTools
+, fetchurl
+, version
+, pname
+, meta
+}:
+let
+  src = fetchurl {
+    url = "https://releases.lmstudio.ai/linux/x86/${version}/beta/LM_Studio-${version}.AppImage";
+    hash = "sha256-2a3ac+0m3C/YyPM0Waia+x2Q/lodfbyHNvlbB2AHT78=";
+  };
+
+  appimageContents = appimageTools.extractType2 { inherit pname version src; };
+in
+appimageTools.wrapType2 {
+  inherit meta pname version src;
+
+  extraPkgs = pkgs: [ pkgs.ocl-icd ];
+
+  extraInstallCommands = ''
+    mkdir -p $out/share/applications
+    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'
+  '';
+}
+
diff --git a/pkgs/by-name/lm/lmstudio/package.nix b/pkgs/by-name/lm/lmstudio/package.nix
index f9325e5b800d9..962bd58a94f0a 100644
--- a/pkgs/by-name/lm/lmstudio/package.nix
+++ b/pkgs/by-name/lm/lmstudio/package.nix
@@ -1,38 +1,22 @@
 { lib
-, appimageTools
-, fetchurl
+, stdenv
+, callPackage
+, ...
 }:
-
 let
   pname = "lmstudio";
-  version = "0.2.20";
-  src = fetchurl {
-    url = "https://releases.lmstudio.ai/linux/${version}/beta/LM_Studio-${version}.AppImage";
-    hash = "sha256-T92ZDqGvxJfBkAWsK8EgHdQZnLefK3gDP2vCTL8X+eM=";
-  };
-
-  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
-    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'
-  '';
-
+  version = "0.2.25";
   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;
+    maintainers = with lib.maintainers; [ cig0 eeedean ];
+    platforms = [ "x86_64-linux" "aarch64-darwin" ];
     sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
   };
-}
+in
+  if stdenv.isDarwin
+    then callPackage ./darwin.nix { inherit pname version meta; }
+    else callPackage ./linux.nix  { inherit pname version meta; }
+