From f5a8836dea30935f297ee20c75721b2acee0a3c5 Mon Sep 17 00:00:00 2001 From: BatteredBunny Date: Thu, 18 Dec 2025 23:15:33 +0200 Subject: [PATCH 1/4] jan: 0.6.10 -> 0.7.5 --- pkgs/by-name/ja/jan/package.nix | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/pkgs/by-name/ja/jan/package.nix b/pkgs/by-name/ja/jan/package.nix index d10693fc1729..a0f1a65d20dd 100644 --- a/pkgs/by-name/ja/jan/package.nix +++ b/pkgs/by-name/ja/jan/package.nix @@ -2,14 +2,17 @@ lib, appimageTools, fetchurl, + config, + cudaPackages, + cudaSupport ? config.cudaSupport, }: let pname = "Jan"; - version = "0.6.10"; + version = "0.7.5"; src = fetchurl { url = "https://github.com/menloresearch/jan/releases/download/v${version}/jan_${version}_amd64.AppImage"; - hash = "sha256-eag8c/Jp2ahV71kEuFoT2rmz0S9RPbiqy5YBO0Z+ICY="; + hash = "sha256-RIEBpeogNIDPMpoY5Gk8q4+t7jxcWJEZLPqJHWyaVk4="; }; appimageContents = appimageTools.extractType2 { inherit pname version src; }; @@ -22,6 +25,12 @@ appimageTools.wrapType2 { cp -r ${appimageContents}/usr/share/icons $out/share ''; + extraPkgs = + pkgs: + lib.optionals cudaSupport [ + cudaPackages.cudatoolkit + ]; + meta = { changelog = "https://github.com/menloresearch/jan/releases/tag/v${version}"; description = "Jan is an open source alternative to ChatGPT that runs 100% offline on your computer"; From 2d5f9b1cd318edbfa74e889f9f8d57e625e1a58c Mon Sep 17 00:00:00 2001 From: BatteredBunny Date: Thu, 18 Dec 2025 23:28:16 +0200 Subject: [PATCH 2/4] jan: update repo url --- pkgs/by-name/ja/jan/package.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkgs/by-name/ja/jan/package.nix b/pkgs/by-name/ja/jan/package.nix index a0f1a65d20dd..492abd69447b 100644 --- a/pkgs/by-name/ja/jan/package.nix +++ b/pkgs/by-name/ja/jan/package.nix @@ -11,7 +11,7 @@ let pname = "Jan"; version = "0.7.5"; src = fetchurl { - url = "https://github.com/menloresearch/jan/releases/download/v${version}/jan_${version}_amd64.AppImage"; + url = "https://github.com/janhq/jan/releases/download/v${version}/jan_${version}_amd64.AppImage"; hash = "sha256-RIEBpeogNIDPMpoY5Gk8q4+t7jxcWJEZLPqJHWyaVk4="; }; @@ -32,9 +32,9 @@ appimageTools.wrapType2 { ]; meta = { - changelog = "https://github.com/menloresearch/jan/releases/tag/v${version}"; + changelog = "https://github.com/janhq/jan/releases/tag/v${version}"; description = "Jan is an open source alternative to ChatGPT that runs 100% offline on your computer"; - homepage = "https://github.com/menloresearch/jan"; + homepage = "https://github.com/janhq/jan"; license = lib.licenses.agpl3Plus; mainProgram = "Jan"; maintainers = [ ]; From 7137cdf068e4dc3a5cb4f6221aba355206e2ad8d Mon Sep 17 00:00:00 2001 From: BatteredBunny Date: Thu, 18 Dec 2025 23:36:13 +0200 Subject: [PATCH 3/4] jan: update license --- pkgs/by-name/ja/jan/package.nix | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkgs/by-name/ja/jan/package.nix b/pkgs/by-name/ja/jan/package.nix index 492abd69447b..82dae088a1e0 100644 --- a/pkgs/by-name/ja/jan/package.nix +++ b/pkgs/by-name/ja/jan/package.nix @@ -35,7 +35,7 @@ appimageTools.wrapType2 { changelog = "https://github.com/janhq/jan/releases/tag/v${version}"; description = "Jan is an open source alternative to ChatGPT that runs 100% offline on your computer"; homepage = "https://github.com/janhq/jan"; - license = lib.licenses.agpl3Plus; + license = lib.licenses.asl20; mainProgram = "Jan"; maintainers = [ ]; platforms = with lib.systems.inspect; patternLogicalAnd patterns.isLinux patterns.isx86_64; From 22b31cdebd92d7b72c5ce38863ebc1b03f42de3f Mon Sep 17 00:00:00 2001 From: BatteredBunny Date: Fri, 19 Dec 2025 00:03:00 +0200 Subject: [PATCH 4/4] jan: add darwin support --- pkgs/by-name/ja/jan/package.nix | 85 ++++++++++++++++++++++++++------- 1 file changed, 67 insertions(+), 18 deletions(-) diff --git a/pkgs/by-name/ja/jan/package.nix b/pkgs/by-name/ja/jan/package.nix index 82dae088a1e0..5382c883cea6 100644 --- a/pkgs/by-name/ja/jan/package.nix +++ b/pkgs/by-name/ja/jan/package.nix @@ -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