nixpkgs mirror (for testing) github.com/NixOS/nixpkgs
nix
at python-updates 59 lines 1.7 kB view raw
1{ 2 appimageTools, 3 fetchurl, 4 version, 5 url, 6 hash, 7 pname, 8 meta, 9 stdenv, 10 lib, 11 passthru, 12 graphicsmagick, 13}: 14let 15 src = fetchurl { inherit url hash; }; 16 17 appimageContents = appimageTools.extractType2 { inherit pname version src; }; 18in 19appimageTools.wrapType2 { 20 inherit 21 meta 22 pname 23 version 24 src 25 passthru 26 ; 27 28 nativeBuildInputs = [ graphicsmagick ]; 29 30 extraPkgs = pkgs: [ pkgs.ocl-icd ]; 31 32 extraInstallCommands = '' 33 mkdir -p $out/share/applications 34 35 # setup icons (see https://aur.archlinux.org/cgit/aur.git/tree/PKGBUILD?h=lmstudio#n55 for how Arch solved this; approach adapted to here) 36 src_icon="${appimageContents}/usr/share/icons/hicolor/0x0/apps/lm-studio.png" 37 sizes=("16x16" "32x32" "48x48" "64x64" "128x128" "256x256") 38 for size in "''${sizes[@]}"; do 39 install -dm755 "$out/share/icons/hicolor/$size/apps" 40 gm convert "$src_icon" -resize "$size" "$out/share/icons/hicolor/$size/apps/lm-studio.png" 41 done 42 43 install -m 444 -D ${appimageContents}/lm-studio.desktop -t $out/share/applications 44 45 # Rename the main executable from lmstudio to lm-studio 46 mv $out/bin/lmstudio $out/bin/lm-studio 47 48 substituteInPlace $out/share/applications/lm-studio.desktop \ 49 --replace-fail 'Exec=AppRun --no-sandbox %U' 'Exec=lm-studio' 50 51 # lms cli tool 52 install -m 755 ${appimageContents}/resources/app/.webpack/lms $out/bin/ 53 54 patchelf --set-interpreter "${stdenv.cc.bintools.dynamicLinker}" \ 55 --set-rpath "${lib.getLib stdenv.cc.cc}/lib:${lib.getLib stdenv.cc.cc}/lib64:$out/lib:${ 56 lib.makeLibraryPath [ (lib.getLib stdenv.cc.cc) ] 57 }" $out/bin/lms 58 ''; 59}