SOLVED: Overlay for neovim nightly builds

This is more a cry for help than a question, I’ve been attempting to make my own overlays for neovim so I can install it from their nightly releases. I’ve tried nix-neovim-nightly, the overlay from @teto (here) and my own homebrewed version, but I either get old versions, the derivation doesn’t compile or a

  Could NOT find LibLUV (missing: LIBLUV_LIBRARY LIBLUV_INCLUDE_DIR)
  (Required is at least version "1.30.0")

when compiling. Anyone here using a nightly release of neovim that I could take a look at/steal?

maybe you get an old libuv, you could try the overlay with nixos-unstable to see if it fixes your problem.

Do you have an example on how to do that? Not sure how you’d create an overlay for a unstable package.

EDIT: I just switched my whole system from stable to unstable and the overlay works fine now.

I now have an overlay with cachix support providing neovim nightly builds since the old overlay was archived:

This is not the nightly

@realisation What do you mean?

Not sure how that is setup, but the current commit referenced in that repo is ca6815115c79da62b845f479f0cdd765bdbfb700, which is from the 8th (5 days ago).

Which is pretty recent, but the delta is enough to give errors with the treesitter plugin. Not a bit deal though: I just pinned the plugin to a slightly older commit.

@mredaelli Sorry about that, the CI has been broken for awhile due to niv/github issues so I’ve been manually bumping it. Hopefully it’s fixed now.

1 Like

Are you kidding? :slight_smile: Thank you for the awesome service!

If you want to build it yourself, you could create an overlay like this:

[ (self: super: {

  tree-sitter-updated = super.tree-sitter.overrideAttrs(oldAttrs: {

    version = "0.17.3";
    sha256 = "sha256-uQs80r9cPX8Q46irJYv2FfvuppwonSS5HVClFujaP+U=";
    cargoSha256 = "sha256-fonlxLNh9KyEwCj7G5vxa7cM/DlcHNFbQpp0SwVQ3j4=";

    postInstall = ''
      PREFIX=$out make install
    '';

  });

  neovim-unwrapped = super.neovim-unwrapped.overrideAttrs (oldAttrs: rec {
    name = "neovim-nightly";
    version = "0.5-nightly";
    src = self.fetchurl {
      url = "https://github.com/neovim/neovim/archive/master.zip";
      sha256 = "12q48hq9bjq22gkn3qqga8nnlz89l700n4zgfp6r8fm5dzph3l30";
    };

    nativeBuildInputs = with self.pkgs; [ unzip cmake pkgconfig gettext tree-sitter-updated ];

  });

 })]

I guess you need to update tree-sitter dependency version accordingly in the future. Credit for the tree-sitter part should of course go to mjlbach. Thanks for creating the repository :slight_smile:

This worked for me (as of today)

# ~/.config/nixpkgs/overlays/neovim.nix
self: super: {
  neovim-unwrapped = super.neovim-unwrapped.overrideAttrs (oldAttrs: {
    version = "master";
    src = builtins.fetchGit {
      url = https://github.com/neovim/neovim.git;
    };
    nativeBuildInputs = super.neovim-unwrapped.nativeBuildInputs ++ [ super.tree-sitter ];
  });
}