diff options
Diffstat (limited to 'pkgs/by-name/lm/lmstudio')
-rw-r--r-- | pkgs/by-name/lm/lmstudio/darwin.nix | 28 | ||||
-rw-r--r-- | pkgs/by-name/lm/lmstudio/linux.nix | 29 | ||||
-rw-r--r-- | pkgs/by-name/lm/lmstudio/package.nix | 38 |
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; } + |