Help needed: Neovim completions fail to build

I have latest neovim 0.5.0 from unstable channel in my systemPackages and a module with
package = unstable.neovim.
When I run sudo nixos-rebuild switch it fails with this error:

building '/nix/store/xww7ac2zpqqgzy2xmkf4jkfwngg1fs2m-neovim-0.5.0.drv'...
Generating remote plugin manifest
building '/nix/store/qmmns1pwgqwci76maf5xn9rh6b93pyll-neovim-0.5.0.drv'...
substituteStream(): WARNING: pattern 'Name=Neovim' doesn't match anything in file '/nix/store/lg8kk3a1wi9dl54imrl04f544lszzysi-neovim-0.5.0/share/applications/nvim.desktop'
/nix/store/mnrankjvp65m4gr6yq92ghdd5i0mj9lc-hook/nix-support/setup-hook: line 40: /nix/store/5d7g5rvjl3ws9isln704sh8v33d9rq7p-neovim-0.5.0/bin/nvim-python3: Permission denied
builder for '/nix/store/qmmns1pwgqwci76maf5xn9rh6b93pyll-neovim-0.5.0.drv' failed with exit code 1
cannot build derivation '/nix/store/9zm6355qakvmfbdfqrrgc18w9lybq8pc-man-paths.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/gfdq1wmz5zpzlaggvl1jad2ashppp5aj-neovim-0.5.0_fish-completions.drv': 1 dependencies couldn't be built
cannot build derivation '/nix/store/nazlda8qr6ilbmi9r3vrbxh4pjhn3p29-system-path.drv': 1 dependencies couldn't be built

I’ve removed all references to neovim in my configuration.nix and home manager config, ran sudo nix-collect-garbage -d and updated the channels, then added the package back to systemPackages and ran sudo nixos-rebuild switch, but nothing changed.

I can install neovim using nix-env -iA unstable.neovim and it successfully works, but then I cannot manage plugins and etc trough the module.

I’m using NixOS 21.05 for only several weeks, any help would be appreciated

Can you post your configuration?

1 Like

Yes, here is my system config

/etc/nixos/configuration.nix

{ config, pkgs, ... }:

let unstable = import <nixos-unstable> {};

in {
  imports =
    [
      ./hardware-configuration.nix
      ./cachix.nix
    ];

  boot.loader.systemd-boot.enable = true;
  boot.loader.efi.efiSysMountPoint = "/boot/efi";
  boot.loader.efi.canTouchEfiVariables = true;

  networking.hostName = "yakuri354-laptop";

  time.timeZone = "Europe/Moscow";

  networking.useDHCP = false;
  networking.interfaces.wlp2s0.useDHCP = true;

  # networking.proxy.default = "http://user:password@proxy:port/";
  # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain";

  i18n.defaultLocale = "en_US.UTF-8";
  # console = {
  #   font = "Lat2-Terminus16";
  #   keyMap = "us";
  # };

  nix.autoOptimiseStore = true;

  nix.gc = {
    automatic = true;
    dates = "weekly";
    options = "--delete-older-than 30d";
  };

  nix.extraOptions = ''
    binary-caches-parallel-connections = 12
  '';


  services.dbus.packages = with pkgs; [ gnome3.dconf ];

  services.xserver.enable = true;
  services.xserver.displayManager.gdm.wayland = true;

  services.xserver.displayManager.gdm.enable = true;
  services.xserver.desktopManager.gnome.enable = true;
  
  services.xserver.layout = "ru";
  services.xserver.xkbOptions = "eurosign:e";

  services.printing.enable = true;

  security.rtkit.enable = true;

  # Add PipeWire instead of Pulseaudio
  hardware.pulseaudio.enable = false;
  
  services.pipewire = {
    enable = true;
    alsa.enable = true;
    alsa.support32Bit = true;
    pulse.enable = true;
    # jack.enable = true;

    # use the example session manager (no others are packaged yet so this is enabled by default,
    # no need to redefine it in your config for now)
    #media-session.enable = true;
  };

  services.xserver.libinput.enable = true;
  
  programs.fish.enable = true;
  
  programs.fish.promptInit = ''
    any-nix-shell fish --info-right | source
  '';

  nix.trustedUsers = [ "root" "yakuri354" ];

  users.users.yakuri354 = {
    isNormalUser = true;
    shell = pkgs.fish;
    extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
  };

  programs.neovim = {
    enable = true;
    package = unstable.neovim;
    viAlias = true;
    vimAlias = true;
  };

  environment.variables.EDITOR = "vim";
  
  nixpkgs.config.allowUnfree = true; # :sad:
  
  # List packages installed in system profile. To search, run:
  # $ nix search wget
  environment.systemPackages = with pkgs; [
    wget
    curl
    git
    clang
    nano
    neovim
    powertop
    cachix
    unstable.any-nix-shell
  ];

  # Some programs need SUID wrappers, can be configured further or are
  # started in user sessions.
  # programs.mtr.enable = true;
  # programs.gnupg.agent = {
  #   enable = true;
  #   enableSSHSupport = true;
  # };

  # List services that you want to enable:

  # Enable the OpenSSH daemon.
  # services.openssh.enable = true;

  # Open ports in the firewall.
  # networking.firewall.allowedTCPPorts = [ ... ];
  # networking.firewall.allowedUDPPorts = [ ... ];
  # Or disable the firewall altogether.
  # networking.firewall.enable = false;

  # This value determines the NixOS release from which the default
  # settings for stateful data, like file locations and database versions
  # on your system were taken. It‘s perfectly fine and recommended to leave
  # this value at the release version of the first install of this system.
  # Before changing this value read the documentation for this option
  # (e.g. man configuration.nix or on https://nixos.org/nixos/options.html).
  system.stateVersion = "21.05"; # Did you read the comment?

}

Taking a wild guess here, but two things I’d try to at least troubleshoot:

  1. package = unstable.neovim-unwrapped;
  2. Remove neovim from environment.systemPackages
1 Like

Thank you, that worked!