Merge pull request #308621 from eeedean/lmstudio-update

added aarch64-darwin version of lmstudio + updated lmstudio to 0.2.22

Changed files
+73 -27
maintainers
pkgs
by-name
+5
maintainers/maintainer-list.nix
···
githubId = 54799;
name = "Edward Tjörnhammar";
};
+
eeedean = {
+
github = "eeedean";
+
githubId = 8173116;
+
name = "Dean Eckert";
+
};
eelco = {
email = "edolstra+nixpkgs@gmail.com";
github = "edolstra";
+28
pkgs/by-name/lm/lmstudio/darwin.nix
···
+
{ stdenv
+
, fetchurl
+
, undmg
+
, lib
+
, meta
+
, pname
+
, version
+
}:
+
stdenv.mkDerivation {
+
inherit meta pname version;
+
+
src = fetchurl {
+
url = "https://releases.lmstudio.ai/mac/arm64/${version}/b/latest/LM-Studio-${version}-arm64.dmg";
+
hash = "sha256-kb1XoTZjhCL1+CsV+r3/EN0srzIJ43H2VMZ779dVq1k=";
+
};
+
+
nativeBuildInputs = [ undmg ];
+
+
sourceRoot = ".";
+
+
installPhase = ''
+
runHook preInstall
+
mkdir -p $out/Applications
+
cp -r *.app $out/Applications
+
runHook postInstall
+
'';
+
}
+
+29
pkgs/by-name/lm/lmstudio/linux.nix
···
+
{ lib
+
, appimageTools
+
, fetchurl
+
, version
+
, pname
+
, meta
+
}:
+
let
+
src = fetchurl {
+
url = "https://releases.lmstudio.ai/linux/${version}/beta/LM_Studio-${version}.AppImage";
+
hash = "sha256-hcV8wDhulFAxHDBDKicpEGovwcsn9RaIi/idUz+YzD8=";
+
};
+
+
appimageContents = appimageTools.extractType2 { inherit pname version src; };
+
in
+
appimageTools.wrapType2 {
+
inherit meta 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'
+
'';
+
}
+
+11 -27
pkgs/by-name/lm/lmstudio/package.nix
···
{ 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.22";
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; [ drupol eeedean ];
+
platforms = lib.platforms.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; }
+