jan: add darwin support

This commit is contained in:
BatteredBunny
2025-12-19 00:33:47 +02:00
parent 7137cdf068
commit 22b31cdebd
+67 -18
View File
@@ -5,31 +5,29 @@
config,
cudaPackages,
cudaSupport ? config.cudaSupport,
stdenv,
fetchzip,
makeWrapper,
}:
let
pname = "Jan";
version = "0.7.5";
src = fetchurl {
darwin-src = fetchzip {
url = "https://github.com/janhq/jan/releases/download/v${version}/jan-mac-universal-${version}.zip";
hash = "sha256-stTsLKE+2gUKAVwJ2/gOckoL6Nygwr0rkugD1jGj1w4=";
};
linux-src = fetchurl {
url = "https://github.com/janhq/jan/releases/download/v${version}/jan_${version}_amd64.AppImage";
hash = "sha256-RIEBpeogNIDPMpoY5Gk8q4+t7jxcWJEZLPqJHWyaVk4=";
};
appimageContents = appimageTools.extractType2 { inherit pname version src; };
in
appimageTools.wrapType2 {
inherit pname version src;
extraInstallCommands = ''
install -Dm444 ${appimageContents}/Jan.desktop -t $out/share/applications
cp -r ${appimageContents}/usr/share/icons $out/share
'';
extraPkgs =
pkgs:
lib.optionals cudaSupport [
cudaPackages.cudatoolkit
];
appimageContents = appimageTools.extractType2 {
inherit pname version;
src = linux-src;
};
meta = {
changelog = "https://github.com/janhq/jan/releases/tag/v${version}";
@@ -38,6 +36,57 @@ appimageTools.wrapType2 {
license = lib.licenses.asl20;
mainProgram = "Jan";
maintainers = [ ];
platforms = with lib.systems.inspect; patternLogicalAnd patterns.isLinux patterns.isx86_64;
platforms =
lib.platforms.darwin
++ (with lib.systems.inspect; patternLogicalAnd patterns.isLinux patterns.isx86_64);
};
}
linux = appimageTools.wrapType2 {
inherit pname version;
src = linux-src;
extraInstallCommands = ''
install -Dm444 ${appimageContents}/Jan.desktop -t $out/share/applications
cp -r ${appimageContents}/usr/share/icons $out/share
'';
extraPkgs =
pkgs:
lib.optionals cudaSupport [
cudaPackages.cudatoolkit
];
inherit meta;
};
darwin = stdenv.mkDerivation {
inherit
pname
version
meta
;
src = darwin-src;
dontUnpack = true;
sourceRoot = "${pname}.app";
nativeBuildInputs = [
makeWrapper
];
installPhase = ''
runHook preInstall
mkdir -p $out/Applications/${pname}.app
mkdir -p $out/bin
cp -R $src/. $out/Applications/${pname}.app/
if [ -x "$out/Applications/${pname}.app/Contents/MacOS/${pname}" ]; then
makeWrapper "$out/Applications/${pname}.app/Contents/MacOS/${pname}" $out/bin/${pname}
fi
runHook postInstall
'';
};
in
if stdenv.hostPlatform.isDarwin then darwin else linux