build(nix): change the pkgs to final, add new version of libvterm (#20410)

This commit is contained in:
Philipp Herzog
2022-09-30 19:25:12 +02:00
committed by GitHub
parent 4396c3ef2c
commit 47e60da721

View File

@@ -8,61 +8,63 @@
outputs = { self, nixpkgs, flake-utils }: outputs = { self, nixpkgs, flake-utils }:
{ {
overlay = final: prev: overlay = final: prev: rec {
let neovim-unwrapped = prev.neovim-unwrapped.override ({
pkgs = nixpkgs.legacyPackages.${prev.system}; libvterm-neovim = prev.libvterm-neovim.overrideAttrs (old: {
in version = "0.3";
rec { src = builtins.fetchTarball {
neovim = pkgs.neovim-unwrapped.overrideAttrs (oa: { url = "https://www.leonerd.org.uk/code/libvterm/libvterm-0.3.tar.gz";
version = "master"; sha256 = "0zg6sn5brwrnqaab883pdj0l2swk5askbbwbdam0zq55ikbrzgar";
src = ../.; };
buildInputs = oa.buildInputs ++ pkgs.lib.optionals pkgs.stdenv.isDarwin (with pkgs.darwin.apple_sdk.frameworks; [
CoreServices
]);
}); });
});
# a development binary to help debug issues neovim = final.neovim-unwrapped.overrideAttrs (oa: {
neovim-debug = version = "master";
let src = ../.;
stdenv = if pkgs.stdenv.isLinux then pkgs.llvmPackages_latest.stdenv else pkgs.stdenv;
in
((neovim.override {
lua = pkgs.luajit;
inherit stdenv;
}).overrideAttrs (oa: {
dontStrip = true; buildInputs = oa.buildInputs
NIX_CFLAGS_COMPILE = " -ggdb -Og"; ++ final.lib.optionals final.stdenv.isDarwin
(with final.darwin.apple_sdk.frameworks; [ CoreServices ]);
});
cmakeBuildType = "Debug"; # a development binary to help debug issues
cmakeFlags = oa.cmakeFlags ++ [ neovim-debug = let
"-DMIN_LOG_LEVEL=0" stdenv = if final.stdenv.isLinux then
]; final.llvmPackages_latest.stdenv
else
final.stdenv;
in ((neovim.override {
lua = final.luajit;
inherit stdenv;
}).overrideAttrs (oa: {
disallowedReferences = [ ]; dontStrip = true;
})); NIX_CFLAGS_COMPILE = " -ggdb -Og";
# for neovim developers, beware of the slow binary cmakeBuildType = "Debug";
neovim-developer = cmakeFlags = oa.cmakeFlags ++ [ "-DMIN_LOG_LEVEL=0" ];
let
lib = nixpkgs.lib; disallowedReferences = [ ];
luacheck = pkgs.luaPackages.luacheck; }));
in
(neovim-debug.override ({ doCheck = pkgs.stdenv.isLinux; })).overrideAttrs (oa: { # for neovim developers, beware of the slow binary
cmakeFlags = oa.cmakeFlags ++ [ neovim-developer = let luacheck = final.luaPackages.luacheck;
"-DLUACHECK_PRG=${luacheck}/bin/luacheck" in (neovim-debug.override ({
"-DMIN_LOG_LEVEL=0" doCheck = final.stdenv.isLinux;
"-DENABLE_LTO=OFF" })).overrideAttrs (oa: {
] ++ pkgs.lib.optionals pkgs.stdenv.isLinux [ cmakeFlags = oa.cmakeFlags ++ [
# https://github.com/google/sanitizers/wiki/AddressSanitizerFlags "-DLUACHECK_PRG=${luacheck}/bin/luacheck"
# https://clang.llvm.org/docs/AddressSanitizer.html#symbolizing-the-reports "-DMIN_LOG_LEVEL=0"
"-DCLANG_ASAN_UBSAN=ON" "-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
} // "-DCLANG_ASAN_UBSAN=ON"
flake-utils.lib.eachDefaultSystem (system: ];
});
};
} // flake-utils.lib.eachDefaultSystem (system:
let let
pkgs = import nixpkgs { pkgs = import nixpkgs {
overlays = [ self.overlay ]; overlays = [ self.overlay ];
@@ -75,26 +77,22 @@
ps.msgpack ps.msgpack
ps.flake8 # for 'make pylint' ps.flake8 # for 'make pylint'
]); ]);
in in {
rec {
packages = with pkgs; { packages = with pkgs; {
default = neovim; default = neovim;
inherit neovim neovim-debug neovim-developer; inherit neovim neovim-debug neovim-developer;
}; };
checks = { checks = {
pylint = pkgs.runCommandNoCC "pylint" pylint = pkgs.runCommand "pylint" {
{ nativeBuildInputs = [ pythonEnv ];
nativeBuildInputs = [ pythonEnv ]; preferLocalBuild = true;
preferLocalBuild = true; } "make -C ${./..} pylint > $out";
} "make -C ${./..} pylint > $out";
shlint = pkgs.runCommandNoCC "shlint" shlint = pkgs.runCommand "shlint" {
{ nativeBuildInputs = [ pkgs.shellcheck ];
nativeBuildInputs = [ pkgs.shellcheck ]; preferLocalBuild = true;
preferLocalBuild = true; } "make -C ${./..} shlint > $out";
} "make -C ${./..} shlint > $out";
}; };
# kept for backwards-compatibility # kept for backwards-compatibility
@@ -103,17 +101,18 @@
devShells = { devShells = {
default = pkgs.neovim-developer.overrideAttrs (oa: { default = pkgs.neovim-developer.overrideAttrs (oa: {
buildInputs = with pkgs; oa.buildInputs ++ [ buildInputs = with pkgs;
cmake oa.buildInputs ++ [
lua.pkgs.luacheck cmake
sumneko-lua-language-server lua.pkgs.luacheck
pythonEnv sumneko-lua-language-server
include-what-you-use # for scripts/check-includes.py pythonEnv
jq # jq for scripts/vim-patch.sh -r include-what-you-use # for scripts/check-includes.py
shellcheck # for `make shlint` jq # jq for scripts/vim-patch.sh -r
doxygen # for script/gen_vimdoc.py shellcheck # for `make shlint`
clang-tools # for clangd to find the correct headers doxygen # for script/gen_vimdoc.py
]; clang-tools # for clangd to find the correct headers
];
shellHook = oa.shellHook + '' shellHook = oa.shellHook + ''
export NVIM_PYTHON_LOG_LEVEL=DEBUG export NVIM_PYTHON_LOG_LEVEL=DEBUG