mirror of
				https://github.com/neovim/neovim.git
				synced 2025-11-04 01:34:25 +00:00 
			
		
		
		
	build: remove nix flakes (#28863)
It does not work and we don't plan on maintaining these anymore. The flake files are being moved to https://github.com/nix-community/neovim-nightly-overlay/pull/516 instead.
This commit is contained in:
		
							
								
								
									
										4
									
								
								.github/scripts/labeler_configuration.yml
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										4
									
								
								.github/scripts/labeler_configuration.yml
									
									
									
									
										vendored
									
									
								
							@@ -46,10 +46,6 @@ mouse:
 | 
			
		||||
  - changed-files:
 | 
			
		||||
    - any-glob-to-any-file: [ src/nvim/mouse* ]
 | 
			
		||||
 | 
			
		||||
platform:nix:
 | 
			
		||||
  - changed-files:
 | 
			
		||||
    - any-glob-to-any-file: [ contrib/flake.lock, contrib/flake.nix ]
 | 
			
		||||
 | 
			
		||||
snippet:
 | 
			
		||||
  - changed-files:
 | 
			
		||||
    - any-glob-to-any-file: [ runtime/lua/vim/snippet.lua ]
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										61
									
								
								contrib/flake.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										61
									
								
								contrib/flake.lock
									
									
									
										generated
									
									
									
								
							@@ -1,61 +0,0 @@
 | 
			
		||||
{
 | 
			
		||||
  "nodes": {
 | 
			
		||||
    "flake-utils": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "systems": "systems"
 | 
			
		||||
      },
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1710146030,
 | 
			
		||||
        "narHash": "sha256-SZ5L6eA7HJ/nmkzGG7/ISclqe6oZdOZTNoesiInkXPQ=",
 | 
			
		||||
        "owner": "numtide",
 | 
			
		||||
        "repo": "flake-utils",
 | 
			
		||||
        "rev": "b1d9ab70662946ef0850d488da1c9019f3a9752a",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "numtide",
 | 
			
		||||
        "repo": "flake-utils",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "nixpkgs": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1713248628,
 | 
			
		||||
        "narHash": "sha256-NLznXB5AOnniUtZsyy/aPWOk8ussTuePp2acb9U+ISA=",
 | 
			
		||||
        "owner": "nixos",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "rev": "5672bc9dbf9d88246ddab5ac454e82318d094bb8",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "nixos",
 | 
			
		||||
        "ref": "nixos-unstable",
 | 
			
		||||
        "repo": "nixpkgs",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "root": {
 | 
			
		||||
      "inputs": {
 | 
			
		||||
        "flake-utils": "flake-utils",
 | 
			
		||||
        "nixpkgs": "nixpkgs"
 | 
			
		||||
      }
 | 
			
		||||
    },
 | 
			
		||||
    "systems": {
 | 
			
		||||
      "locked": {
 | 
			
		||||
        "lastModified": 1681028828,
 | 
			
		||||
        "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=",
 | 
			
		||||
        "owner": "nix-systems",
 | 
			
		||||
        "repo": "default",
 | 
			
		||||
        "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      },
 | 
			
		||||
      "original": {
 | 
			
		||||
        "owner": "nix-systems",
 | 
			
		||||
        "repo": "default",
 | 
			
		||||
        "type": "github"
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
  },
 | 
			
		||||
  "root": "root",
 | 
			
		||||
  "version": 7
 | 
			
		||||
}
 | 
			
		||||
@@ -1,164 +0,0 @@
 | 
			
		||||
{
 | 
			
		||||
  description = "Neovim flake";
 | 
			
		||||
 | 
			
		||||
  inputs = {
 | 
			
		||||
    nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable";
 | 
			
		||||
    flake-utils.url = "github:numtide/flake-utils";
 | 
			
		||||
  };
 | 
			
		||||
 | 
			
		||||
  outputs = { self, nixpkgs, flake-utils }:
 | 
			
		||||
    let
 | 
			
		||||
      inherit (builtins)
 | 
			
		||||
        elemAt
 | 
			
		||||
        foldl'
 | 
			
		||||
        mapAttrs
 | 
			
		||||
        match
 | 
			
		||||
        readFile
 | 
			
		||||
        ;
 | 
			
		||||
      inherit (nixpkgs.lib)
 | 
			
		||||
        const
 | 
			
		||||
        flip
 | 
			
		||||
        pipe
 | 
			
		||||
        remove
 | 
			
		||||
        splitString
 | 
			
		||||
        toLower
 | 
			
		||||
        ;
 | 
			
		||||
    in
 | 
			
		||||
    {
 | 
			
		||||
      overlay = final: prev: {
 | 
			
		||||
 | 
			
		||||
        neovim = (final.neovim-unwrapped.override {
 | 
			
		||||
          treesitter-parsers = pipe ../cmake.deps/deps.txt [
 | 
			
		||||
            readFile
 | 
			
		||||
            (splitString "\n")
 | 
			
		||||
            (map (match "TREESITTER_([A-Z_]+)_(URL|SHA256)[[:space:]]+([^[:space:]]+)[[:space:]]*"))
 | 
			
		||||
            (remove null)
 | 
			
		||||
            (flip foldl' { }
 | 
			
		||||
              (acc: matches:
 | 
			
		||||
                let
 | 
			
		||||
                  lang = toLower (elemAt matches 0);
 | 
			
		||||
                  type = toLower (elemAt matches 1);
 | 
			
		||||
                  value = elemAt matches 2;
 | 
			
		||||
                in
 | 
			
		||||
                acc // {
 | 
			
		||||
                  ${lang} = acc.${lang} or { } // {
 | 
			
		||||
                    ${type} = value;
 | 
			
		||||
                  };
 | 
			
		||||
                }))
 | 
			
		||||
            (mapAttrs (const final.fetchurl))
 | 
			
		||||
            (self: self // {
 | 
			
		||||
              markdown = final.stdenv.mkDerivation {
 | 
			
		||||
                inherit (self.markdown) name;
 | 
			
		||||
                src = self.markdown;
 | 
			
		||||
                installPhase = ''
 | 
			
		||||
                  mv tree-sitter-markdown $out
 | 
			
		||||
                '';
 | 
			
		||||
              };
 | 
			
		||||
            })
 | 
			
		||||
          ];
 | 
			
		||||
        }).overrideAttrs (oa: rec {
 | 
			
		||||
          version = self.shortRev or "dirty";
 | 
			
		||||
          src = ../.;
 | 
			
		||||
          preConfigure = oa.preConfigure or "" + ''
 | 
			
		||||
            sed -i cmake.config/versiondef.h.in -e 's/@NVIM_VERSION_PRERELEASE@/-dev-${version}/'
 | 
			
		||||
          '';
 | 
			
		||||
          nativeBuildInputs = oa.nativeBuildInputs ++ [
 | 
			
		||||
            final.libiconv
 | 
			
		||||
          ];
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        # a development binary to help debug issues
 | 
			
		||||
        neovim-debug = let
 | 
			
		||||
          stdenv = if final.stdenv.isLinux then
 | 
			
		||||
            final.llvmPackages_latest.stdenv
 | 
			
		||||
          else
 | 
			
		||||
            final.stdenv;
 | 
			
		||||
        in (final.neovim.override {
 | 
			
		||||
          lua = final.luajit;
 | 
			
		||||
          inherit stdenv;
 | 
			
		||||
        }).overrideAttrs (oa: {
 | 
			
		||||
 | 
			
		||||
          dontStrip = true;
 | 
			
		||||
          NIX_CFLAGS_COMPILE = " -ggdb -Og";
 | 
			
		||||
 | 
			
		||||
          cmakeBuildType = "Debug";
 | 
			
		||||
 | 
			
		||||
          disallowedReferences = [ ];
 | 
			
		||||
        });
 | 
			
		||||
 | 
			
		||||
        # for neovim developers, beware of the slow binary
 | 
			
		||||
        neovim-developer = let inherit (final.luaPackages) luacheck;
 | 
			
		||||
        in final.neovim-debug.overrideAttrs (oa: {
 | 
			
		||||
          cmakeFlags = oa.cmakeFlags ++ [
 | 
			
		||||
            "-DLUACHECK_PRG=${luacheck}/bin/luacheck"
 | 
			
		||||
            "-DENABLE_LTO=OFF"
 | 
			
		||||
          ] ++ final.lib.optionals final.stdenv.isLinux [
 | 
			
		||||
            # https://github.com/google/sanitizers/wiki/AddressSanitizerFlags
 | 
			
		||||
            # https://clang.llvm.org/docs/AddressSanitizer.html#symbolizing-the-reports
 | 
			
		||||
            "-DENABLE_ASAN_UBSAN=ON"
 | 
			
		||||
          ];
 | 
			
		||||
          doCheck = final.stdenv.isLinux;
 | 
			
		||||
        });
 | 
			
		||||
      };
 | 
			
		||||
    } // flake-utils.lib.eachDefaultSystem (system:
 | 
			
		||||
      let
 | 
			
		||||
        pkgs = import nixpkgs {
 | 
			
		||||
          overlays = [ self.overlay ];
 | 
			
		||||
          inherit system;
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        lua = pkgs.lua5_1;
 | 
			
		||||
 | 
			
		||||
        pythonEnv = pkgs.python3.withPackages (ps: [
 | 
			
		||||
          ps.msgpack
 | 
			
		||||
        ]);
 | 
			
		||||
      in {
 | 
			
		||||
        packages = with pkgs; {
 | 
			
		||||
          default = neovim;
 | 
			
		||||
          inherit neovim neovim-debug neovim-developer;
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        checks = {
 | 
			
		||||
          shlint = pkgs.runCommand "shlint" {
 | 
			
		||||
            nativeBuildInputs = [ pkgs.shellcheck ];
 | 
			
		||||
            preferLocalBuild = true;
 | 
			
		||||
          } "make -C ${./..} shlint > $out";
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        # kept for backwards-compatibility
 | 
			
		||||
        defaultPackage = pkgs.neovim;
 | 
			
		||||
 | 
			
		||||
        devShells = {
 | 
			
		||||
          default = pkgs.neovim-developer.overrideAttrs (oa: {
 | 
			
		||||
 | 
			
		||||
            buildInputs = with pkgs;
 | 
			
		||||
              oa.buildInputs ++ [
 | 
			
		||||
                lua.pkgs.luacheck
 | 
			
		||||
                sumneko-lua-language-server
 | 
			
		||||
                pythonEnv
 | 
			
		||||
                include-what-you-use # for scripts/check-includes.py
 | 
			
		||||
                jq # jq for scripts/vim-patch.sh -r
 | 
			
		||||
                shellcheck # for `make shlint`
 | 
			
		||||
              ];
 | 
			
		||||
 | 
			
		||||
            nativeBuildInputs = with pkgs;
 | 
			
		||||
              oa.nativeBuildInputs ++ [
 | 
			
		||||
                clang-tools # for clangd to find the correct headers
 | 
			
		||||
              ];
 | 
			
		||||
 | 
			
		||||
            shellHook = oa.shellHook + ''
 | 
			
		||||
              export NVIM_PYTHON_LOG_LEVEL=DEBUG
 | 
			
		||||
              export NVIM_LOG_FILE=/tmp/nvim.log
 | 
			
		||||
              export ASAN_SYMBOLIZER_PATH=${pkgs.llvm_18}/bin/llvm-symbolizer
 | 
			
		||||
 | 
			
		||||
              # ASAN_OPTIONS=detect_leaks=1
 | 
			
		||||
              export ASAN_OPTIONS="log_path=./test.log:abort_on_error=1"
 | 
			
		||||
 | 
			
		||||
              # for treesitter functionaltests
 | 
			
		||||
              mkdir -p runtime/parser
 | 
			
		||||
              cp -f ${pkgs.vimPlugins.nvim-treesitter.builtGrammars.c}/parser runtime/parser/c.so
 | 
			
		||||
            '';
 | 
			
		||||
          });
 | 
			
		||||
        };
 | 
			
		||||
      });
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user