From 64bee7e7292785c514e2889edb72d7c4c8da395b Mon Sep 17 00:00:00 2001 From: Farouk Brown Date: Sat, 26 Apr 2025 19:45:58 +0100 Subject: [PATCH] fix: set avante-nvim to build from source --- flake/legacyPackages.nix | 11 +++ flake/legacyPackages/avante-nvim.nix | 81 +++++++++++++++++++++ modules/plugins/assistant/avante/config.nix | 5 +- modules/wrapper/build/config.nix | 2 +- npins/sources.json | 13 ++-- 5 files changed, 100 insertions(+), 12 deletions(-) create mode 100644 flake/legacyPackages/avante-nvim.nix diff --git a/flake/legacyPackages.nix b/flake/legacyPackages.nix index 33aee0e3..0fbc269c 100644 --- a/flake/legacyPackages.nix +++ b/flake/legacyPackages.nix @@ -28,6 +28,17 @@ sha256 = pin.hash; }; }; + avante-nvim = let + pin = self.pins.avante-nvim; + in + final.callPackage ./legacyPackages/avante-nvim.nix { + version = pin.branch; + src = prev.fetchFromGitHub { + inherit (pin.repository) owner repo; + rev = pin.revision; + sha256 = pin.hash; + }; + }; }) ]; }; diff --git a/flake/legacyPackages/avante-nvim.nix b/flake/legacyPackages/avante-nvim.nix new file mode 100644 index 00000000..d54325d4 --- /dev/null +++ b/flake/legacyPackages/avante-nvim.nix @@ -0,0 +1,81 @@ +{ + nix-update-script, + openssl, + pkg-config, + rustPlatform, + stdenv, + vimPlugins, + vimUtils, + makeWrapper, + pkgs, + version, + src, +}: let + inherit version src; + avante-nvim-lib = rustPlatform.buildRustPackage { + pname = "avante-nvim-lib"; + inherit version src; + + useFetchCargoVendor = true; + cargoHash = "sha256-pmnMoNdaIR0i+4kwW3cf01vDQo39QakTCEG9AXA86ck="; + + nativeBuildInputs = [ + pkg-config + makeWrapper + pkgs.perl + ]; + + buildInputs = [ + openssl + ]; + + buildFeatures = ["luajit"]; + + checkFlags = [ + # Disabled because they access the network. + "--skip=test_hf" + "--skip=test_public_url" + "--skip=test_roundtrip" + "--skip=test_fetch_md" + ]; + }; +in + vimUtils.buildVimPlugin { + pname = "avante-nvim"; + inherit version src; + + dependencies = with vimPlugins; [ + dressing-nvim + img-clip-nvim + nui-nvim + nvim-treesitter + plenary-nvim + ]; + + postInstall = let + ext = stdenv.hostPlatform.extensions.sharedLibrary; + in '' + mkdir -p $out/build + ln -s ${avante-nvim-lib}/lib/libavante_repo_map${ext} $out/build/avante_repo_map${ext} + ln -s ${avante-nvim-lib}/lib/libavante_templates${ext} $out/build/avante_templates${ext} + ln -s ${avante-nvim-lib}/lib/libavante_tokenizers${ext} $out/build/avante_tokenizers${ext} + ln -s ${avante-nvim-lib}/lib/libavante_html2md${ext} $out/build/avante_html2md${ext} + ''; + + passthru = { + updateScript = nix-update-script { + attrPath = "vimPlugins.avante-nvim.avante-nvim-lib"; + }; + + # needed for the update script + inherit avante-nvim-lib; + }; + + nvimSkipModules = [ + # Requires setup with corresponding provider + "avante.providers.azure" + "avante.providers.copilot" + "avante.providers.vertex_claude" + "avante.providers.ollama" + ]; + } diff --git a/modules/plugins/assistant/avante/config.nix b/modules/plugins/assistant/avante/config.nix index 369ff24e..bb97780f 100644 --- a/modules/plugins/assistant/avante/config.nix +++ b/modules/plugins/assistant/avante/config.nix @@ -1,5 +1,4 @@ { - pkgs, config, lib, ... @@ -17,8 +16,8 @@ in { ]; lazy.plugins = { - "avante.nvim" = with pkgs.vimPlugins; { - package = avante-nvim; + avante-nvim = { + package = "avante-nvim"; setupModule = "avante"; inherit (cfg) setupOpts; event = ["DeferredUIEnter"]; diff --git a/modules/wrapper/build/config.nix b/modules/wrapper/build/config.nix index 3b147571..4d331a67 100644 --- a/modules/wrapper/build/config.nix +++ b/modules/wrapper/build/config.nix @@ -51,7 +51,7 @@ doCheck = false; }; - inherit (inputs.self.legacyPackages.${pkgs.stdenv.system}) blink-cmp; + inherit (inputs.self.legacyPackages.${pkgs.stdenv.system}) blink-cmp avante-nvim; }; buildConfigPlugins = plugins: diff --git a/npins/sources.json b/npins/sources.json index d7e15028..a55ed2d1 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -27,20 +27,17 @@ "hash": "0c1jkhxamfn2md7m1r5b2wpxa26y90b98yzjwf68m3fymalvkn5h" }, "avante-nvim": { - "type": "GitRelease", + "type": "Git", "repository": { "type": "GitHub", "owner": "yetone", "repo": "avante.nvim" }, - "pre_releases": false, - "version_upper_bound": null, - "release_prefix": null, + "branch": "main", "submodules": false, - "version": "v0.0.23", - "revision": "868c13657442b799a5c161940602f99623a08197", - "url": "https://api.github.com/repos/yetone/avante.nvim/tarball/v0.0.23", - "hash": "11h0fch0whr2mh23940h3k7l6grnp5bqv2nyxywkg1zvj680vpji" + "revision": "f9aa75459d403d9e963ef2647c9791e0dfc9e5f9", + "url": "https://github.com/yetone/avante.nvim/archive/f9aa75459d403d9e963ef2647c9791e0dfc9e5f9.tar.gz", + "hash": "1qgdxapmw24zkx3d4cwv6f459p2a6dw7pvx7sa3650px2n75bb31" }, "base16": { "type": "Git",