From 60d879e2571b55c8c86def5448594e4b20f2c5ff Mon Sep 17 00:00:00 2001 From: Alejandro Sanchez Medina Date: Thu, 24 Aug 2023 18:10:59 +0200 Subject: doc manuals: add reference to nixos-render-docs --- doc/README.md | 1 + 1 file changed, 1 insertion(+) (limited to 'doc') diff --git a/doc/README.md b/doc/README.md index 03df6ad6113..2a46cfe943c 100644 --- a/doc/README.md +++ b/doc/README.md @@ -3,6 +3,7 @@ This directory houses the sources files for the Nixpkgs manual. You can find the [rendered documentation for Nixpkgs `unstable` on nixos.org](https://nixos.org/manual/nixpkgs/unstable/). +The rendering tool is [nixos-render-docs](https://github.com/NixOS/nixpkgs/tree/master/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs), sometimes abbreviated `nrd`. [Docs for Nixpkgs stable](https://nixos.org/manual/nixpkgs/stable/) are also available. -- cgit 1.4.1 From 4c3def1ae8335362147fd096a1d14e2b35c89786 Mon Sep 17 00:00:00 2001 From: Alejandro Sánchez Medina Date: Tue, 29 Aug 2023 16:07:41 +0200 Subject: doc manuals: change reference link to nixos-render-docs Co-authored-by: Silvan Mosberger --- doc/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/README.md b/doc/README.md index 2a46cfe943c..3f9aff1a38a 100644 --- a/doc/README.md +++ b/doc/README.md @@ -3,7 +3,7 @@ This directory houses the sources files for the Nixpkgs manual. You can find the [rendered documentation for Nixpkgs `unstable` on nixos.org](https://nixos.org/manual/nixpkgs/unstable/). -The rendering tool is [nixos-render-docs](https://github.com/NixOS/nixpkgs/tree/master/pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs), sometimes abbreviated `nrd`. +The rendering tool is [nixos-render-docs](../pkgs/tools/nix/nixos-render-docs/src/nixos_render_docs), sometimes abbreviated `nrd`. [Docs for Nixpkgs stable](https://nixos.org/manual/nixpkgs/stable/) are also available. -- cgit 1.4.1 From a4f9ea332a749a849525ea98c34939ef59ae6b8d Mon Sep 17 00:00:00 2001 From: maralorn Date: Wed, 20 Sep 2023 19:44:16 +0200 Subject: haskell-docs: Fix typo in function name --- doc/languages-frameworks/haskell.section.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/languages-frameworks/haskell.section.md b/doc/languages-frameworks/haskell.section.md index 60972331840..83155bd2461 100644 --- a/doc/languages-frameworks/haskell.section.md +++ b/doc/languages-frameworks/haskell.section.md @@ -1029,7 +1029,7 @@ ugly, and we may want to deprecate them at some point. --> `disableCabalFlag flag drv` : Makes sure that the Cabal flag `flag` is disabled in Cabal's configure step. -`appendBuildflags list drv` +`appendBuildFlags list drv` : Adds the strings in `list` to the `buildFlags` argument for `drv`. -- cgit 1.4.1 From 70aa345bec1135ea9524cd893aea1f6e3dd82387 Mon Sep 17 00:00:00 2001 From: Artturin Date: Sat, 23 Sep 2023 07:52:04 +0300 Subject: doc/python: use python3Packages instead of python3.pkgs Allows splicing to work correctly from issue 211340 >> 3: Discourage using package sets like python3.pkgs "directly" > I think about 8 years ago I introduced this and it has been a clear mistake. Since then this pattern was copied throughout. We should indeed go to pythonPackages and also move the helpers such as buildEnv and withPackages into the package set, like haskell already had before. - FRidh --- doc/languages-frameworks/python.section.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) (limited to 'doc') diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md index ca0513fbde8..5291fc300fa 100644 --- a/doc/languages-frameworks/python.section.md +++ b/doc/languages-frameworks/python.section.md @@ -282,11 +282,11 @@ specifying an interpreter version), like this: ```nix { lib -, python3 +, python3Packages , fetchPypi }: -python3.pkgs.buildPythonApplication rec { +python3Packages.buildPythonApplication rec { pname = "luigi"; version = "2.7.9"; pyproject = true; @@ -297,13 +297,13 @@ python3.pkgs.buildPythonApplication rec { }; nativeBuildInputs = [ - python3.pkgs.setuptools - python3.pkgs.wheel + python3Packages.setuptools + python3Packages.wheel ]; - propagatedBuildInputs = with python3.pkgs; [ - tornado - python-daemon + propagatedBuildInputs = [ + python3Packages.tornado + python3Packages.python-daemon ]; meta = with lib; { -- cgit 1.4.1 From 370097ce864f731c6e281ab3970cef1b39dfa06f Mon Sep 17 00:00:00 2001 From: Valentin Gagarin Date: Mon, 25 Sep 2023 16:23:01 +0200 Subject: remove the misleading warning on using `nix-env` for split outputs (#255947) The text was originally added [0] following an apparently incomplete research on how everything plays together. In fact, Nix propagates `outputs` to the corresponding nested derivations, and there is some messy behavior in Nixpkgs that only seems to propagate `meta.outputsToInstall` in `buildEnv`[1]. This change moves the hints on how to use NixOS specifics to NixOS module documentation (which is hopefully easier to find through search.nixos.org), describes the default behavior in Nixpkgs (updating a the link to the source), and removes the confusing mention of `nix-env`. the last of them should not be there to begin with. we don't want beginners to use `nix-env`, as this is known to run them into trouble eventually. [0]: https://github.com/NixOS/nixpkgs/pull/76794 [1]: https://github.com/NixOS/nixpkgs/blob/1774d07242995050d2d8a91cb4da0855eac2e472/pkgs/build-support/buildenv/default.nix#L66 --- doc/stdenv/multiple-output.chapter.md | 44 ++++------------------------------- nixos/modules/config/system-path.nix | 10 ++++++-- 2 files changed, 13 insertions(+), 41 deletions(-) (limited to 'doc') diff --git a/doc/stdenv/multiple-output.chapter.md b/doc/stdenv/multiple-output.chapter.md index c19d497ab61..1ee063c0c2f 100644 --- a/doc/stdenv/multiple-output.chapter.md +++ b/doc/stdenv/multiple-output.chapter.md @@ -1,7 +1,5 @@ # Multiple-output packages {#chap-multiple-output} -## Introduction {#sec-multiple-outputs-introduction} - The Nix language allows a derivation to produce multiple outputs, which is similar to what is utilized by other Linux distribution packaging systems. The outputs reside in separate Nix store paths, so they can be mostly handled independently of each other, including passing to build inputs, garbage collection or binary substitution. The exception is that building from source always produces all the outputs. The main motivation is to save disk space by reducing runtime closure sizes; consequently also sizes of substituted binaries get reduced. Splitting can be used to have more granular runtime dependencies, for example the typical reduction is to split away development-only files, as those are typically not needed during runtime. As a result, closure sizes of many packages can get reduced to a half or even much less. @@ -10,44 +8,12 @@ The main motivation is to save disk space by reducing runtime closure sizes; con The reduction effects could be instead achieved by building the parts in completely separate derivations. That would often additionally reduce build-time closures, but it tends to be much harder to write such derivations, as build systems typically assume all parts are being built at once. This compromise approach of single source package producing multiple binary packages is also utilized often by rpm and deb. ::: -A number of attributes can be used to work with a derivation with multiple outputs. The attribute `outputs` is a list of strings, which are the names of the outputs. For each of these names, an identically named attribute is created, corresponding to that output. The attribute `meta.outputsToInstall` is used to determine the default set of outputs to install when using the derivation name unqualified. - -## Installing a split package {#sec-multiple-outputs-installing} - -When installing a package with multiple outputs, the package’s `meta.outputsToInstall` attribute determines which outputs are actually installed. `meta.outputsToInstall` is a list whose [default installs binaries and the associated man pages](https://github.com/NixOS/nixpkgs/blob/f1680774340d5443a1409c3421ced84ac1163ba9/pkgs/stdenv/generic/make-derivation.nix#L310-L320). The following sections describe ways to install different outputs. - -### Selecting outputs to install via NixOS {#sec-multiple-outputs-installing-nixos} - -NixOS provides two ways to select the outputs to install for packages listed in `environment.systemPackages`: - -- The configuration option `environment.extraOutputsToInstall` is appended to each package’s `meta.outputsToInstall` attribute to determine the outputs to install. It can for example be used to install `info` documentation or debug symbols for all packages. - -- The outputs can be listed as packages in `environment.systemPackages`. For example, the `"out"` and `"info"` outputs for the `coreutils` package can be installed by including `coreutils` and `coreutils.info` in `environment.systemPackages`. - -### Selecting outputs to install via `nix-env` {#sec-multiple-outputs-installing-nix-env} - -`nix-env` lacks an easy way to select the outputs to install. When installing a package, `nix-env` always installs the outputs listed in `meta.outputsToInstall`, even when the user explicitly selects an output. +A number of attributes can be used to work with a derivation with multiple outputs. +The attribute `outputs` is a list of strings, which are the names of the outputs. +For each of these names, an identically named attribute is created, corresponding to that output. -::: {.warning} -`nix-env` silently disregards the outputs selected by the user, and instead installs the outputs from `meta.outputsToInstall`. For example, - -```ShellSession -$ nix-env -iA nixpkgs.coreutils.info -``` - -installs the `"out"` output (`coreutils.meta.outputsToInstall` is `[ "out" ]`) instead of the requested `"info"`. -::: - -The only recourse to select an output with `nix-env` is to override the package’s `meta.outputsToInstall`, using the functions described in [](#chap-overrides). For example, the following overlay adds the `"info"` output for the `coreutils` package: - -```nix -self: super: -{ - coreutils = super.coreutils.overrideAttrs (oldAttrs: { - meta = oldAttrs.meta // { outputsToInstall = oldAttrs.meta.outputsToInstall or [ "out" ] ++ [ "info" ]; }; - }); -} -``` +The attribute `meta.outputsToInstall` is used to determine the [default set of outputs to install](https://github.com/NixOS/nixpkgs/blob/08c3198f1c6fd89a09f8f0ea09b425028a34de3e/pkgs/stdenv/generic/check-meta.nix#L411-L426) when using the derivation name unqualified: +`bin`, or `out`, or the first specified output; as well as `man` if that is specified. ## Using a split package {#sec-multiple-outputs-using-split-packages} diff --git a/nixos/modules/config/system-path.nix b/nixos/modules/config/system-path.nix index e8bbeac4f72..222da3e02e8 100644 --- a/nixos/modules/config/system-path.nix +++ b/nixos/modules/config/system-path.nix @@ -116,8 +116,14 @@ in extraOutputsToInstall = mkOption { type = types.listOf types.str; default = [ ]; - example = [ "doc" "info" "devdoc" ]; - description = lib.mdDoc "List of additional package outputs to be symlinked into {file}`/run/current-system/sw`."; + example = [ "dev" "info" ]; + description = lib.mdDoc '' + Entries listed here will be appended to the `meta.outputsToInstall` attribute for each package in `environment.systemPackages`, and the files from the corresponding derivation outputs symlinked into {file}`/run/current-system/sw`. + + For example, this can be used to install the `dev` and `info` outputs for all packages in the system environment, if they are available. + + To use specific outputs instead of configuring them globally, select the corresponding attribute on the package derivation, e.g. `libxml2.dev` or `coreutils.info`. + ''; }; extraSetup = mkOption { -- cgit 1.4.1 From fba19509b1ebed5a341494d9e501cc4cf7a7fb59 Mon Sep 17 00:00:00 2001 From: Valentin Gagarin Date: Mon, 25 Sep 2023 17:00:55 +0200 Subject: use `nix-shell -p` for `dhall-to-nixpkgs` example --- doc/languages-frameworks/dhall.section.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) (limited to 'doc') diff --git a/doc/languages-frameworks/dhall.section.md b/doc/languages-frameworks/dhall.section.md index 1a209dbc068..7322a61687d 100644 --- a/doc/languages-frameworks/dhall.section.md +++ b/doc/languages-frameworks/dhall.section.md @@ -303,11 +303,8 @@ You can use the `dhall-to-nixpkgs` command-line utility to automate packaging Dhall code. For example: ```ShellSession -$ nix-env --install --attr haskellPackages.dhall-nixpkgs - -$ nix-env --install --attr nix-prefetch-git # Used by dhall-to-nixpkgs - -$ dhall-to-nixpkgs github https://github.com/Gabriella439/dhall-semver.git +$ nix-shell -p haskellPackages.dhall-nixpkgs nix-prefetch-git +[nix-shell]$ dhall-to-nixpkgs github https://github.com/Gabriella439/dhall-semver.git { buildDhallGitHubPackage, Prelude }: buildDhallGitHubPackage { name = "dhall-semver"; @@ -325,6 +322,10 @@ $ dhall-to-nixpkgs github https://github.com/Gabriella439/dhall-semver.git } ``` +:::{.note} +`nix-prefetch-git` has to be in `$PATH` for `dhall-to-nixpkgs` to work. +::: + The utility takes care of automatically detecting remote imports and converting them to package dependencies. You can also use the utility on local Dhall directories, too: -- cgit 1.4.1 From 8ac0795c1f54546caf49c759063a34e2a1e232a8 Mon Sep 17 00:00:00 2001 From: Felix Yan Date: Wed, 27 Sep 2023 13:11:26 +0300 Subject: doc: fix wrong flag in description of `bindnow` `-z bindnow` doesn't exist. The actual flag added is `-z now`. --- doc/stdenv/stdenv.chapter.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/stdenv/stdenv.chapter.md b/doc/stdenv/stdenv.chapter.md index 15cb081a04e..08ee0e349d0 100644 --- a/doc/stdenv/stdenv.chapter.md +++ b/doc/stdenv/stdenv.chapter.md @@ -1478,7 +1478,7 @@ This flag can break dynamic shared object loading. For instance, the module syst #### `bindnow` {#bindnow} -Adds the `-z bindnow` linker option. During program load, all dynamic symbols are resolved, allowing for the complete GOT to be marked read-only (due to `relro`). This prevents GOT overwrite attacks. For very large applications, this can incur some performance loss during initial load while symbols are resolved, but this shouldn’t be an issue for daemons. +Adds the `-z now` linker option. During program load, all dynamic symbols are resolved, allowing for the complete GOT to be marked read-only (due to `relro`). This prevents GOT overwrite attacks. For very large applications, this can incur some performance loss during initial load while symbols are resolved, but this shouldn’t be an issue for daemons. This flag can break dynamic shared object loading. For instance, the module systems of Xorg and PHP are incompatible with this flag. Programs incompatible with this flag often fail at runtime due to missing symbols, like: -- cgit 1.4.1 From 0ab2c9642991c787c38cc131e7c5c935bff9cd88 Mon Sep 17 00:00:00 2001 From: Matthieu Coudron <886074+teto@users.noreply.github.com> Date: Tue, 26 Sep 2023 20:31:31 +0200 Subject: vimUtils: buildVimPluginFrom2Nix renamed to buildVimPlugin the `from2Nix` suffix is a legacy from vim2nix but we dont use that anymore. It makes the name of the function unusual and long. --- doc/languages-frameworks/vim.section.md | 2 +- nixos/doc/manual/release-notes/rl-2311.section.md | 3 + .../editors/vim/plugins/build-vim-plugin.nix | 9 +- pkgs/applications/editors/vim/plugins/default.nix | 6 +- .../applications/editors/vim/plugins/generated.nix | 2676 ++++++++++---------- .../editors/vim/plugins/get-plugins.nix | 4 +- .../applications/editors/vim/plugins/overrides.nix | 38 +- pkgs/applications/editors/vim/plugins/update.py | 4 +- .../editors/vim/plugins/vim-clap/default.nix | 2 +- .../applications/editors/vim/plugins/vim-utils.nix | 3 +- .../editors/vim/plugins/vim2nix/autoload/nix.vim | 6 +- pkgs/test/vim/default.nix | 2 +- 12 files changed, 1377 insertions(+), 1378 deletions(-) (limited to 'doc') diff --git a/doc/languages-frameworks/vim.section.md b/doc/languages-frameworks/vim.section.md index bf0d663179b..5e25c1ed423 100644 --- a/doc/languages-frameworks/vim.section.md +++ b/doc/languages-frameworks/vim.section.md @@ -134,7 +134,7 @@ If one of your favourite plugins isn't packaged, you can package it yourself: { config, pkgs, ... }: let - easygrep = pkgs.vimUtils.buildVimPluginFrom2Nix { + easygrep = pkgs.vimUtils.buildVimPlugin { name = "vim-easygrep"; src = pkgs.fetchFromGitHub { owner = "dkprice"; diff --git a/nixos/doc/manual/release-notes/rl-2311.section.md b/nixos/doc/manual/release-notes/rl-2311.section.md index afc6c273224..1ffaa0c0b5d 100644 --- a/nixos/doc/manual/release-notes/rl-2311.section.md +++ b/nixos/doc/manual/release-notes/rl-2311.section.md @@ -119,6 +119,9 @@ - The `services.ananicy.extraRules` option now has the type of `listOf attrs` instead of `string`. +- `buildVimPluginFrom2Nix` has been renamed to `buildVimPlugin`, which now + now skips `configurePhase` and `buildPhase` + - JACK tools (`jack_*` except `jack_control`) have moved from the `jack2` package to `jack-example-tools` - The `matrix-synapse` package & module have undergone some significant internal changes, for most setups no intervention is needed, though: diff --git a/pkgs/applications/editors/vim/plugins/build-vim-plugin.nix b/pkgs/applications/editors/vim/plugins/build-vim-plugin.nix index 20641908115..1611adc97ee 100644 --- a/pkgs/applications/editors/vim/plugins/build-vim-plugin.nix +++ b/pkgs/applications/editors/vim/plugins/build-vim-plugin.nix @@ -16,8 +16,8 @@ rec { , namePrefix ? "vimplugin-" , src , unpackPhase ? "" - , configurePhase ? "" - , buildPhase ? "" + , configurePhase ? ":" + , buildPhase ? ":" , preInstall ? "" , postInstall ? "" , path ? "." @@ -48,9 +48,4 @@ rec { in addRtp (toVimPlugin drv); - buildVimPluginFrom2Nix = attrs: buildVimPlugin ({ - # vim plugins may override this - buildPhase = ":"; - configurePhase = ":"; - } // attrs); } diff --git a/pkgs/applications/editors/vim/plugins/default.nix b/pkgs/applications/editors/vim/plugins/default.nix index cf35e31736e..e557cd7effe 100644 --- a/pkgs/applications/editors/vim/plugins/default.nix +++ b/pkgs/applications/editors/vim/plugins/default.nix @@ -7,14 +7,14 @@ let inherit (vimUtils.override {inherit vim;}) - buildVimPluginFrom2Nix; + buildVimPlugin; inherit (lib) extends; initialPackages = self: { }; plugins = callPackage ./generated.nix { - inherit buildVimPluginFrom2Nix; + inherit buildVimPlugin; inherit (neovimUtils) buildNeovimPlugin; }; @@ -26,7 +26,7 @@ let # add to ./overrides.nix. overrides = callPackage ./overrides.nix { inherit (darwin.apple_sdk.frameworks) Cocoa CoreFoundation CoreServices; - inherit buildVimPluginFrom2Nix; + inherit buildVimPlugin; inherit llvmPackages luaPackages; }; diff --git a/pkgs/applications/editors/vim/plugins/generated.nix b/pkgs/applications/editors/vim/plugins/generated.nix index 40a7667ea1e..b2f489c0bbd 100644 --- a/pkgs/applications/editors/vim/plugins/generated.nix +++ b/pkgs/applications/editors/vim/plugins/generated.nix @@ -1,9 +1,9 @@ # GENERATED by ./pkgs/applications/editors/vim/plugins/update.py. Do not edit! -{ lib, buildVimPluginFrom2Nix, buildNeovimPlugin, fetchFromGitHub, fetchgit }: +{ lib, buildVimPlugin, buildNeovimPlugin, fetchFromGitHub, fetchgit }: final: prev: { - BetterLua-vim = buildVimPluginFrom2Nix { + BetterLua-vim = buildVimPlugin { pname = "BetterLua.vim"; version = "2020-08-14"; src = fetchFromGitHub { @@ -15,7 +15,7 @@ final: prev: meta.homepage = "https://github.com/euclidianAce/BetterLua.vim/"; }; - BufOnly-vim = buildVimPluginFrom2Nix { + BufOnly-vim = buildVimPlugin { pname = "BufOnly.vim"; version = "2010-10-18"; src = fetchFromGitHub { @@ -27,7 +27,7 @@ final: prev: meta.homepage = "https://github.com/vim-scripts/BufOnly.vim/"; }; - ChatGPT-nvim = buildVimPluginFrom2Nix { + ChatGPT-nvim = buildVimPlugin { pname = "ChatGPT.nvim"; version = "2023-09-14"; src = fetchFromGitHub { @@ -39,7 +39,7 @@ final: prev: meta.homepage = "https://github.com/jackMort/ChatGPT.nvim/"; }; - CheckAttach = buildVimPluginFrom2Nix { + CheckAttach = buildVimPlugin { pname = "CheckAttach"; version = "2019-05-08"; src = fetchFromGitHub { @@ -51,7 +51,7 @@ final: prev: meta.homepage = "https://github.com/chrisbra/CheckAttach/"; }; - Colour-Sampler-Pack = buildVimPluginFrom2Nix { + Colour-Sampler-Pack = buildVimPlugin { pname = "Colour-Sampler-Pack"; version = "2012-11-30"; src = fetchFromGitHub { @@ -63,7 +63,7 @@ final: prev: meta.homepage = "https://github.com/vim-scripts/Colour-Sampler-Pack/"; }; - Coqtail = buildVimPluginFrom2Nix { + Coqtail = buildVimPlugin { pname = "Coqtail"; version = "2023-08-05"; src = fetchFromGitHub { @@ -75,7 +75,7 @@ final: prev: meta.homepage = "https://github.com/whonore/Coqtail/"; }; - DoxygenToolkit-vim = buildVimPluginFrom2Nix { + DoxygenToolkit-vim = buildVimPlugin { pname = "DoxygenToolkit.vim"; version = "2010-11-06"; src = fetchFromGitHub { @@ -87,7 +87,7 @@ final: prev: meta.homepage = "https://github.com/vim-scripts/DoxygenToolkit.vim/"; }; - FTerm-nvim = buildVimPluginFrom2Nix { + FTerm-nvim = buildVimPlugin { pname = "FTerm.nvim"; version = "2022-11-13"; src = fetchFromGitHub { @@ -99,7 +99,7 @@ final: prev: meta.homepage = "https://github.com/numToStr/FTerm.nvim/"; }; - FixCursorHold-nvim = buildVimPluginFrom2Nix { + FixCursorHold-nvim = buildVimPlugin { pname = "FixCursorHold.nvim"; version = "2023-02-13"; src = fetchFromGitHub { @@ -111,7 +111,7 @@ final: prev: meta.homepage = "https://github.com/antoinemadec/FixCursorHold.nvim/"; }; - Improved-AnsiEsc = buildVimPluginFrom2Nix { + Improved-AnsiEsc = buildVimPlugin { pname = "Improved-AnsiEsc"; version = "2015-08-26"; src = fetchFromGitHub { @@ -123,7 +123,7 @@ final: prev: meta.homepage = "https://github.com/vim-scripts/Improved-AnsiEsc/"; }; - Ionide-vim = buildVimPluginFrom2Nix { + Ionide-vim = buildVimPlugin { pname = "Ionide-vim"; version = "2023-07-17"; src = fetchFromGitHub { @@ -135,7 +135,7 @@ final: prev: meta.homepage = "https://github.com/ionide/Ionide-vim/"; }; - Jenkinsfile-vim-syntax = buildVimPluginFrom2Nix { + Jenkinsfile-vim-syntax = buildVimPlugin { pname = "Jenkinsfile-vim-syntax"; version = "2021-01-26"; src = fetchFromGitHub { @@ -147,7 +147,7 @@ final: prev: meta.homepage = "https://github.com/martinda/Jenkinsfile-vim-syntax/"; }; - LanguageClient-neovim = buildVimPluginFrom2Nix { + LanguageClient-neovim = buildVimPlugin { pname = "LanguageClient-neovim"; version = "2022-06-07"; src = fetchFromGitHub { @@ -159,7 +159,7 @@ final: prev: meta.homepage = "https://github.com/autozimu/LanguageClient-neovim/"; }; - LanguageTool-nvim = buildVimPluginFrom2Nix { + LanguageTool-nvim = buildVimPlugin { pname = "LanguageTool.nvim"; version = "2020-10-19"; src = fetchFromGitHub { @@ -171,7 +171,7 @@ final: prev: meta.homepage = "https://github.com/vigoux/LanguageTool.nvim/"; }; - LazyVim = buildVimPluginFrom2Nix { + LazyVim = buildVimPlugin { pname = "LazyVim"; version = "2023-09-04"; src = fetchFromGitHub { @@ -183,7 +183,7 @@ final: prev: meta.homepage = "https://github.com/LazyVim/LazyVim/"; }; - LeaderF = buildVimPluginFrom2Nix { + LeaderF = buildVimPlugin { pname = "LeaderF"; version = "2023-09-15"; src = fetchFromGitHub { @@ -195,7 +195,7 @@ final: prev: meta.homepage = "https://github.com/Yggdroot/LeaderF/"; }; - MatchTagAlways = buildVimPluginFrom2Nix { + MatchTagAlways = buildVimPlugin { pname = "MatchTagAlways"; version = "2017-05-20"; src = fetchFromGitHub { @@ -207,7 +207,7 @@ final: prev: meta.homepage = "https://github.com/Valloric/MatchTagAlways/"; }; - Navigator-nvim = buildVimPluginFrom2Nix { + Navigator-nvim = buildVimPlugin { pname = "Navigator.nvim"; version = "2023-02-02"; src = fetchFromGitHub { @@ -219,7 +219,7 @@ final: prev: meta.homepage = "https://github.com/numToStr/Navigator.nvim/"; }; - NeoSolarized = buildVimPluginFrom2Nix { + NeoSolarized = buildVimPlugin { pname = "NeoSolarized"; version = "2020-08-07"; src = fetchFromGitHub { @@ -231,7 +231,7 @@ final: prev: meta.homepage = "https://github.com/overcache/NeoSolarized/"; }; - NrrwRgn = buildVimPluginFrom2Nix { + NrrwRgn = buildVimPlugin { pname = "NrrwRgn"; version = "2022-02-13"; src = fetchFromGitHub { @@ -243,7 +243,7 @@ final: prev: meta.homepage = "https://github.com/chrisbra/NrrwRgn/"; }; - PreserveNoEOL = buildVimPluginFrom2Nix { + PreserveNoEOL = buildVimPlugin { pname = "PreserveNoEOL"; version = "2013-06-14"; src = fetchFromGitHub { @@ -255,7 +255,7 @@ final: prev: meta.homepage = "https://github.com/vim-scripts/PreserveNoEOL/"; }; - QFEnter = buildVimPluginFrom2Nix { + QFEnter = buildVimPlugin { pname = "QFEnter"; version = "2022-10-15"; src = fetchFromGitHub { @@ -267,7 +267,7 @@ final: prev: meta.homepage = "https://github.com/yssl/QFEnter/"; }; - Recover-vim = buildVimPluginFrom2Nix { + Recover-vim = buildVimPlugin { pname = "Recover.vim"; version = "2022-09-07"; src = fetchFromGitHub { @@ -279,7 +279,7 @@ final: prev: meta.homepage = "https://github.com/chrisbra/Recover.vim/"; }; - Rename = buildVimPluginFrom2Nix { + Rename = buildVimPlugin { pname = "Rename"; version = "2011-08-31"; src = fetchFromGitHub { @@ -291,7 +291,7 @@ final: prev: meta.homepage = "https://github.com/vim-scripts/Rename/"; }; - ReplaceWithRegister = buildVimPluginFrom2Nix { + ReplaceWithRegister = buildVimPlugin { pname = "ReplaceWithRegister"; version = "2014-10-31"; src = fetchFromGitHub { @@ -303,7 +303,7 @@ final: prev: meta.homepage = "https://github.com/vim-scripts/ReplaceWithRegister/"; }; - SchemaStore-nvim = buildVimPluginFrom2Nix { + SchemaStore-nvim = buildVimPlugin { pname = "SchemaStore.nvim"; version = "2023-09-15"; src = fetchFromGitHub { @@ -315,7 +315,7 @@ final: prev: meta.homepage = "https://github.com/b0o/SchemaStore.nvim/"; }; - Shade-nvim = buildVimPluginFrom2Nix { + Shade-nvim = buildVimPlugin { pname = "Shade.nvim"; version = "2022-02-01"; src = fetchFromGitHub { @@ -327,7 +327,7 @@ final: prev: meta.homepage = "https://github.com/sunjon/Shade.nvim/"; }; - ShowMultiBase = buildVimPluginFrom2Nix { + ShowMultiBase = buildVimPlugin { pname = "ShowMultiBase"; version = "2010-10-18"; src = fetchFromGitHub { @@ -339,7 +339,7 @@ final: prev: meta.homepage = "https://github.com/vim-scripts/ShowMultiBase/"; }; - SimpylFold = buildVimPluginFrom2Nix { + SimpylFold = buildVimPlugin { pname = "SimpylFold"; version = "2022-05-02"; src = fetchFromGitHub { @@ -351,7 +351,7 @@ final: prev: meta.homepage = "https://github.com/tmhedberg/SimpylFold/"; }; - SmartCase = buildVimPluginFrom2Nix { + SmartCase = buildVimPlugin { pname = "SmartCase"; version = "2010-10-18"; src = fetchFromGitHub { @@ -363,7 +363,7 @@ final: prev: meta.homepage = "https://github.com/vim-scripts/SmartCase/"; }; - SpaceCamp = buildVimPluginFrom2Nix { + SpaceCamp = buildVimPlugin { pname = "SpaceCamp"; version = "2023-08-25"; src = fetchFromGitHub { @@ -375,7 +375,7 @@ final: prev: meta.homepage = "https://github.com/jaredgorski/SpaceCamp/"; }; - SpaceVim = buildVimPluginFrom2Nix { + SpaceVim = buildVimPlugin { pname = "SpaceVim"; version = "2023-09-16"; src = fetchFromGitHub { @@ -387,7 +387,7 @@ final: prev: meta.homepage = "https://github.com/SpaceVim/SpaceVim/"; }; - SudoEdit-vim = buildVimPluginFrom2Nix { + SudoEdit-vim = buildVimPlugin { pname = "SudoEdit.vim"; version = "2023-04-25"; src = fetchFromGitHub { @@ -399,7 +399,7 @@ final: prev: meta.homepage = "https://github.com/chrisbra/SudoEdit.vim/"; }; - VimOrganizer = buildVimPluginFrom2Nix { + VimOrganizer = buildVimPlugin { pname = "VimOrganizer"; version = "2020-12-15"; src = fetchFromGitHub { @@ -411,7 +411,7 @@ final: prev: meta.homepage = "https://github.com/hsitz/VimOrganizer/"; }; - Vundle-vim = buildVimPluginFrom2Nix { + Vundle-vim = buildVimPlugin { pname = "Vundle.vim"; version = "2023-08-19"; src = fetchFromGitHub { @@ -423,7 +423,7 @@ final: prev: meta.homepage = "https://github.com/VundleVim/Vundle.vim/"; }; - YUNOcommit-vim = buildVimPluginFrom2Nix { + YUNOcommit-vim = buildVimPlugin { pname = "YUNOcommit.vim"; version = "2014-11-26"; src = fetchFromGitHub { @@ -435,7 +435,7 @@ final: prev: meta.homepage = "https://github.com/esneider/YUNOcommit.vim/"; }; - YankRing-vim = buildVimPluginFrom2Nix { + YankRing-vim = buildVimPlugin { pname = "YankRing.vim"; version = "2015-07-29"; src = fetchFromGitHub { @@ -447,7 +447,7 @@ final: prev: meta.homepage = "https://github.com/vim-scripts/YankRing.vim/"; }; - YouCompleteMe = buildVimPluginFrom2Nix { + YouCompleteMe = buildVimPlugin { pname = "YouCompleteMe"; version = "2023-09-14"; src = fetchFromGitHub { @@ -460,7 +460,7 @@ final: prev: meta.homepage = "https://github.com/ycm-core/YouCompleteMe/"; }; - a-vim = buildVimPluginFrom2Nix { + a-vim = buildVimPlugin { pname = "a.vim"; version = "2010-11-06"; src = fetchFromGitHub { @@ -472,7 +472,7 @@ final: prev: meta.homepage = "https://github.com/vim-scripts/a.vim/"; }; - ack-vim = buildVimPluginFrom2Nix { + ack-vim = buildVimPlugin { pname = "ack.vim"; version = "2018-02-27"; src = fetchFromGitHub { @@ -484,7 +484,7 @@ final: prev: meta.homepage = "https://github.com/mileszs/ack.vim/"; }; - acp = buildVimPluginFrom2Nix { + acp = buildVimPlugin { pname = "acp"; version = "2013-02-05"; src = fetchFromGitHub { @@ -496,7 +496,7 @@ final: prev: meta.homepage = "https://github.com/eikenb/acp/"; }; - actions-preview-nvim = buildVimPluginFrom2Nix { + actions-preview-nvim = buildVimPlugin { pname = "actions-preview.nvim"; version = "2023-08-23"; src = fetchFromGitHub { @@ -508,7 +508,7 @@ final: prev: meta.homepage = "https://github.com/aznhe21/actions-preview.nvim/"; }; - adwaita-nvim = buildVimPluginFrom2Nix { + adwaita-nvim = buildVimPlugin { pname = "adwaita.nvim"; version = "2023-06-22"; src = fetchFromGitHub { @@ -520,7 +520,7 @@ final: prev: meta.homepage = "https://github.com/Mofiqul/adwaita.nvim/"; }; - aerial-nvim = buildVimPluginFrom2Nix { + aerial-nvim = buildVimPlugin { pname = "aerial.nvim"; version = "2023-09-16"; src = fetchFromGitHub { @@ -533,7 +533,7 @@ final: prev: meta.homepage = "https://github.com/stevearc/aerial.nvim/"; }; - ag-nvim = buildVimPluginFrom2Nix { + ag-nvim = buildVimPlugin { pname = "ag.nvim"; version = "2021-07-15"; src = fetchFromGitHub { @@ -545,7 +545,7 @@ final: prev: meta.homepage = "https://github.com/Numkil/ag.nvim/"; }; - agda-vim = buildVimPluginFrom2Nix { + agda-vim = buildVimPlugin { pname = "agda-vim"; version = "2021-10-28"; src = fetchFromGitHub { @@ -557,7 +557,7 @@ final: prev: meta.homepage = "https://github.com/derekelkins/agda-vim/"; }; - ai-vim = buildVimPluginFrom2Nix { + ai-vim = buildVimPlugin { pname = "ai.vim"; version = "2023-04-05"; src = fetchFromGitHub { @@ -569,7 +569,7 @@ final: prev: meta.homepage = "https://github.com/aduros/ai.vim/"; }; - alchemist-vim = buildVimPluginFrom2Nix { + alchemist-vim = buildVimPlugin { pname = "alchemist.vim"; version = "2023-09-01"; src = fetchFromGitHub { @@ -581,7 +581,7 @@ final: prev: meta.homepage = "https://github.com/slashmili/alchemist.vim/"; }; - ale = buildVimPluginFrom2Nix { + ale = buildVimPlugin { pname = "ale"; version = "2023-09-16"; src = fetchFromGitHub { @@ -593,7 +593,7 @@ final: prev: meta.homepage = "https://github.com/dense-analysis/ale/"; }; - align = buildVimPluginFrom2Nix { + align = buildVimPlugin { pname = "align"; version = "2012-08-08"; src = fetchFromGitHub { @@ -605,7 +605,7 @@ final: prev: meta.homepage = "https://github.com/vim-scripts/align/"; }; - alpha-nvim = buildVimPluginFrom2Nix { + alpha-nvim = buildVimPlugin { pname = "alpha-nvim"; version = "2023-09-14"; src = fetchFromGitHub { @@ -617,7 +617,7 @@ final: prev: meta.homepage = "https://github.com/goolord/alpha-nvim/"; }; - aniseed = buildVimPluginFrom2Nix { + aniseed = buildVimPlugin { pname = "aniseed"; version = "2023-07-06"; src = fetchFromGitHub { @@ -629,7 +629,7 @@ final: prev: meta.homepage = "https://github.com/Olical/aniseed/"; }; - ansible-vim = buildVimPluginFrom2Nix { + ansible-vim = buildVimPlugin { pname = "ansible-vim"; version = "2022-02-11"; src = fetchFromGitHub { @@ -641,7 +641,7 @@ final: prev: meta.homepage = "https://github.com/pearofducks/ansible-vim/"; }; - antonys-macro-repeater = buildVimPluginFrom2Nix { + antonys-macro-repeater = buildVimPlugin { pname = "antonys-macro-repeater"; version = "2017-09-10"; src = fetchFromGitHub { @@ -653,7 +653,7 @@ final: prev: meta.homepage = "https://github.com/ckarnell/antonys-macro-repeater/"; }; - arcanist-vim = buildVimPluginFrom2Nix { + arcanist-vim = buildVimPlugin { pname = "arcanist.vim"; version = "2016-05-27"; src = fetchFromGitHub { @@ -665,7 +665,7 @@ final: prev: meta.homepage = "https://github.com/solarnz/arcanist.vim/"; }; - argtextobj-vim = buildVimPluginFrom2Nix { + argtextobj-vim = buildVimPlugin { pname = "argtextobj.vim"; version = "2010-10-18"; src = fetchFromGitHub { @@ -677,7 +677,7 @@ final: prev: meta.homepage = "https://github.com/vim-scripts/argtextobj.vim/"; }; - async-vim = buildVimPluginFrom2Nix { + async-vim = buildVimPlugin { pname = "async.vim"; version = "2022-04-04"; src = fetchFromGitHub { @@ -689,7 +689,7 @@ final: prev: meta.homepage = "https://github.com/prabirshrestha/async.vim/"; }; - asyncomplete-buffer-vim = buildVimPluginFrom2Nix { + asyncomplete-buffer-vim = buildVimPlugin { pname = "asyncomplete-buffer.vim"; version = "2020-06-26"; src = fetchFromGitHub { @@ -701,7 +701,7 @@ final: prev: meta.homepage = "https://github.com/prabirshrestha/asyncomplete-buffer.vim/"; }; - asyncomplete-file-vim = buildVimPluginFrom2Nix { + asyncomplete-file-vim = buildVimPlugin { pname = "asyncomplete-file.vim"; version = "2022-07-11"; src = fetchFromGitHub { @@ -713,7 +713,7 @@ final: prev: meta.homepage = "https://github.com/prabirshrestha/asyncomplete-file.vim/"; }; - asyncomplete-lsp-vim = buildVimPluginFrom2Nix { + asyncomplete-lsp-vim = buildVimPlugin { pname = "asyncomplete-lsp.vim"; version = "2022-11-21"; src = fetchFromGitHub { @@ -725,7 +725,7 @@ final: prev: meta.homepage = "https://github.com/prabirshrestha/asyncomplete-lsp.vim/"; }; - asyncomplete-omni-vim = buildVimPluginFrom2Nix { + asyncomplete-omni-vim = buildVimPlugin { pname = "asyncomplete-omni.vim"; version = "2018-04-04"; src = fetchFromGitHub { @@ -737,7 +737,7 @@ final: prev: meta.homepage = "https://github.com/prabirshrestha/asyncomplete-omni.vim/"; }; - asyncomplete-tags-vim = buildVimPluginFrom2Nix { + asyncomplete-tags-vim = buildVimPlugin { pname = "asyncomplete-tags.vim"; version = "2021-04-29"; src = fetchFromGitHub { @@ -749,7 +749,7 @@ final: prev: meta.homepage = "https://github.com/prabirshrestha/asyncomplete-tags.vim/"; }; - asyncomplete-ultisnips-vim = buildVimPluginFrom2Nix { + asyncomplete-ultisnips-vim = buildVimPlugin { pname = "asyncomplete-ultisnips.vim"; version = "2023-01-13"; src = fetchFromGitHub { @@ -761,7 +761,7 @@ final: prev: meta.homepage = "https://github.com/prabirshrestha/asyncomplete-ultisnips.vim/"; }; - asyncomplete-vim = buildVimPluginFrom2Nix { + asyncomplete-vim = buildVimPlugin { pname = "asyncomplete.vim"; version = "2023-04-11"; src = fetchFromGitHub { @@ -773,7 +773,7 @@ final: prev: meta.homepage = "https://github.com/prabirshrestha/asyncomplete.vim/"; }; - asyncrun-vim = buildVimPluginFrom2Nix { + asyncrun-vim = buildVimPlugin { pname = "asyncrun.vim"; version = "2023-08-20"; src = fetchFromGitHub { @@ -785,7 +785,7 @@ final: prev: meta.homepage = "https://github.com/skywind3000/asyncrun.vim/"; }; - asynctasks-vim = buildVimPluginFrom2Nix { + asynctasks-vim = buildVimPlugin { pname = "asynctasks.vim"; version = "2023-09-16"; src = fetchFromGitHub { @@ -797,7 +797,7 @@ final: prev: meta.homepage = "https://github.com/skywind3000/asynctasks.vim/"; }; - ats-vim = buildVimPluginFrom2Nix { + ats-vim = buildVimPlugin { pname = "ats-vim"; version = "2020-09-04"; src = fetchFromGitHub { @@ -809,7 +809,7 @@ final: prev: meta.homepage = "https://github.com/vmchale/ats-vim/"; }; - aurora = buildVimPluginFrom2Nix { + aurora = buildVimPlugin { pname = "aurora"; version = "2023-09-09"; src = fetchFromGitHub { @@ -821,7 +821,7 @@ final: prev: meta.homepage = "https://github.com/ray-x/aurora/"; }; - auto-git-diff = buildVimPluginFrom2Nix { + auto-git-diff = buildVimPlugin { pname = "auto-git-diff"; version = "2022-10-29"; src = fetchFromGitHub { @@ -833,7 +833,7 @@ final: prev: meta.homepage = "https://github.com/hotwatermorning/auto-git-diff/"; }; - auto-hlsearch-nvim = buildVimPluginFrom2Nix { + auto-hlsearch-nvim = buildVimPlugin { pname = "auto-hlsearch.nvim"; version = "2023-03-04"; src = fetchFromGitHub { @@ -845,7 +845,7 @@ final: prev: meta.homepage = "https://github.com/asiryk/auto-hlsearch.nvim/"; }; - auto-pairs = buildVimPluginFrom2Nix { + auto-pairs = buildVimPlugin { pname = "auto-pairs"; version = "2019-02-27"; src = fetchFromGitHub { @@ -857,7 +857,7 @@ final: prev: meta.homepage = "https://github.com/jiangmiao/auto-pairs/"; }; - auto-save-nvim = buildVimPluginFrom2Nix { + auto-save-nvim = buildVimPlugin { pname = "auto-save.nvim"; version = "2022-11-01"; src = fetchFromGitHub { @@ -869,7 +869,7 @@ final: prev: meta.homepage = "https://github.com/pocco81/auto-save.nvim/"; }; - auto-session = buildVimPluginFrom2Nix { + auto-session = buildVimPlugin { pname = "auto-session"; version = "2023-08-29"; src = fetchFromGitHub { @@ -881,7 +881,7 @@ final: prev: meta.homepage = "https://github.com/rmagatti/auto-session/"; }; - autoclose-nvim = buildVimPluginFrom2Nix { + autoclose-nvim = buildVimPlugin { pname = "autoclose.nvim"; version = "2023-09-16"; src = fetchFromGitHub { @@ -893,7 +893,7 @@ final: prev: meta.homepage = "https://github.com/m4xshen/autoclose.nvim/"; }; - autoload_cscope-vim = buildVimPluginFrom2Nix { + autoload_cscope-vim = buildVimPlugin { pname = "autoload_cscope.vim"; version = "2011-01-28"; src = fetchFromGitHub { @@ -905,7 +905,7 @@ final: prev: meta.homepage = "https://github.com/vim-scripts/autoload_cscope.vim/"; }; - autosave-nvim = buildVimPluginFrom2Nix { + autosave-nvim = buildVimPlugin { pname = "autosave.nvim"; version = "2022-10-13"; src = fetchFromGitHub { @@ -917,7 +917,7 @@ final: prev: meta.homepage = "https://github.com/nullishamy/autosave.nvim/"; }; - awesome-vim-colorschemes = buildVimPluginFrom2Nix { + awesome-vim-colorschemes = buildVimPlugin { pname = "awesome-vim-colorschemes"; version = "2023-05-06"; src = fetchFromGitHub { @@ -929,7 +929,7 @@ final: prev: meta.homepage = "https://github.com/rafi/awesome-vim-colorschemes/"; }; - ayu-vim = buildVimPluginFrom2Nix { + ayu-vim = buildVimPlugin { pname = "ayu-vim"; version = "2020-05-29"; src = fetchFromGitHub { @@ -941,7 +941,7 @@ final: prev: meta.homepage = "https://github.com/ayu-theme/ayu-vim/"; }; - b64-nvim = buildVimPluginFrom2Nix { + b64-nvim = buildVimPlugin { pname = "b64.nvim"; version = "2023-04-12"; src = fetchFromGitHub { @@ -953,7 +953,7 @@ final: prev: meta.homepage = "https://github.com/taybart/b64.nvim/"; }; - barbar-nvim = buildVimPluginFrom2Nix { + barbar-nvim = buildVimPlugin { pname = "barbar.nvim"; version = "2023-09-14"; src = fetchFromGitHub { @@ -965,7 +965,7 @@ final: prev: meta.homepage = "https://github.com/romgrk/barbar.nvim/"; }; - barbecue-nvim = buildVimPluginFrom2Nix { + barbecue-nvim = buildVimPlugin { pname = "barbecue.nvim"; version = "2023-09-13"; src = fetchFromGitHub { @@ -977,7 +977,7 @@ final: prev: meta.homepage = "https://github.com/utilyre/barbecue.nvim/"; }; - base16-vim = buildVimPluginFrom2Nix { + base16-vim = buildVimPlugin { pname = "base16-vim"; version = "2022-09-20"; src = fetchFromGitHub { @@ -989,7 +989,7 @@ final: prev: meta.homepage = "https://github.com/chriskempson/base16-vim/"; }; - base46 = buildVimPluginFrom2Nix { + base46 = buildVimPlugin { pname = "base46"; version = "2023-09-14"; src = fetchFromGitHub { @@ -1001,7 +1001,7 @@ final: prev: meta.homepage = "https://github.com/nvchad/base46/"; }; - bat-vim = buildVimPluginFrom2Nix { + bat-vim = buildVimPlugin { pname = "bat.vim"; version = "2022-11-14"; src = fetchFromGitHub { @@ -1013,7 +1013,7 @@ final: prev: meta.homepage = "https://github.com/jamespwilliams/bat.vim/"; }; - bats-vim = buildVimPluginFrom2Nix { + bats-vim = buildVimPlugin { pname = "bats.vim"; version = "2013-07-03"; src = fetchFromGitHub { @@ -1025,7 +1025,7 @@ final: prev: meta.homepage = "https://github.com/vim-scripts/bats.vim/"; }; - bclose-vim = buildVimPluginFrom2Nix { + bclose-vim = buildVimPlugin { pname = "bclose.vim"; version = "2018-10-10"; src = fetchFromGitHub { @@ -1037,7 +1037,7 @@ final: prev: meta.homepage = "https://github.com/rbgrouleff/bclose.vim/"; }; - better-escape-nvim = buildVimPluginFrom2Nix { + better-escape-nvim = buildVimPlugin { pname = "better-escape.nvim"; version = "2023-05-02"; src = fetchFromGitHub { @@ -1049,7 +1049,7 @@ final: prev: meta.homepage = "https://github.com/max397574/better-escape.nvim/"; }; - bigfile-nvim = buildVimPluginFrom2Nix { + bigfile-nvim = buildVimPlugin { pname = "bigfile.nvim"; version = "2023-06-28"; src = fetchFromGitHub { @@ -1061,7 +1061,7 @@ final: prev: meta.homepage = "https://github.com/LunarVim/bigfile.nvim/"; }; - blamer-nvim = buildVimPluginFrom2Nix { + blamer-nvim = buildVimPlugin { pname = "blamer.nvim"; version = "2021-11-17"; src = fetchFromGitHub { @@ -1073,7 +1073,7 @@ final: prev: meta.homepage = "https://github.com/APZelos/blamer.nvim/"; }; - block-nvim = buildVimPluginFrom2Nix { + block-nvim = buildVimPlugin { pname = "block.nvim"; version = "2023-06-22"; src = fetchFromGitHub { @@ -1085,7 +1085,7 @@ final: prev: meta.homepage = "https://github.com/HampusHauffman/block.nvim/"; }; - blueballs-neovim = buildVimPluginFrom2Nix { + blueballs-neovim = buildVimPlugin { pname = "blueballs-neovim"; version = "2021-11-28"; src = fetchFromGitHub { @@ -1097,7 +1097,7 @@ final: prev: meta.homepage = "https://github.com/blueballs-theme/blueballs-neovim/"; }; - boole-nvim = buildVimPluginFrom2Nix { + boole-nvim = buildVimPlugin { pname = "boole.nvim"; version = "2023-07-08"; src = fetchFromGitHub { @@ -1109,7 +1109,7 @@ final: prev: meta.homepage = "https://github.com/nat-418/boole.nvim/"; }; - bracey-vim = buildVimPluginFrom2Nix { + bracey-vim = buildVimPlugin { pname = "bracey.vim"; version = "2021-08-20"; src = fetchFromGitHub { @@ -1121,7 +1121,7 @@ final: prev: meta.homepage = "https://github.com/turbio/bracey.vim/"; }; - brainfuck-vim = buildVimPluginFrom2Nix { + brainfuck-vim = buildVimPlugin { pname = "brainfuck-vim"; version = "2021-01-28"; src = fetchFromGitHub { @@ -1133,7 +1133,7 @@ final: prev: meta.homepage = "https://github.com/fruit-in/brainfuck-vim/"; }; - bufdelete-nvim = buildVimPluginFrom2Nix { + bufdelete-nvim = buildVimPlugin { pname = "bufdelete.nvim"; version = "2023-06-29"; src = fetchFromGitHub { @@ -1145,7 +1145,7 @@ final: prev: meta.homepage = "https://github.com/famiu/bufdelete.nvim/"; }; - bufexplorer = buildVimPluginFrom2Nix { + bufexplorer = buildVimPlugin { pname = "bufexplorer"; version = "2023-05-02"; src = fetchFromGitHub { @@ -1157,7 +1157,7 @@ final: prev: meta.homepage = "https://github.com/jlanzarotta/bufexplorer/"; }; - bufferize-vim = buildVimPluginFrom2Nix { + bufferize-vim = buildVimPlugin { pname = "bufferize.vim"; version = "2023-02-25"; src = fetchFromGitHub { @@ -1169,7 +1169,7 @@ final: prev: meta.homepage = "https://github.com/AndrewRadev/bufferize.vim/"; }; - bufferline-nvim = buildVimPluginFrom2Nix { + bufferline-nvim = buildVimPlugin { pname = "bufferline.nvim"; version = "2023-08-29"; src = fetchFromGitHub { @@ -1181,7 +1181,7 @@ final: prev: meta.homepage = "https://github.com/akinsho/bufferline.nvim/"; }; - bufjump-nvim = buildVimPluginFrom2Nix { + bufjump-nvim = buildVimPlugin { pname = "bufjump.nvim"; version = "2021-12-05"; src = fetchFromGitHub { @@ -1193,7 +1193,7 @@ final: prev: meta.homepage = "https://github.com/kwkarlwang/bufjump.nvim/"; }; - bullets-vim = buildVimPluginFrom2Nix { + bullets-vim = buildVimPlugin { pname = "bullets.vim"; version = "2022-10-10"; src = fetchFromGitHub { @@ -1205,7 +1205,7 @@ final: prev: meta.homepage = "https://github.com/dkarter/bullets.vim/"; }; - calendar-vim = buildVimPluginFrom2Nix { + calendar-vim = buildVimPlugin { pname = "calendar.vim"; version = "2023-03-02"; src = fetchFromGitHub { @@ -1217,7 +1217,7 @@ final: prev: meta.homepage = "https://github.com/itchyny/calendar.vim/"; }; - camelcasemotion = buildVimPluginFrom2Nix { + camelcasemotion = buildVimPlugin { pname = "camelcasemotion"; version = "2019-12-02"; src = fetchFromGitHub { @@ -1229,7 +1229,7 @@ final: prev: meta.homepage = "https://github.com/bkad/camelcasemotion/"; }; - caw-vim = buildVimPluginFrom2Nix { + caw-vim = buildVimPlugin { pname = "caw.vim"; version = "2023-03-16"; src = fetchFromGitHub { @@ -1241,7 +1241,7 @@ final: prev: meta.homepage = "https://github.com/tyru/caw.vim/"; }; - ccc-nvim = buildVimPluginFrom2Nix { + ccc-nvim = buildVimPlugin { pname = "ccc.nvim"; version = "2023-06-12"; src = fetchFromGitHub { @@ -1253,7 +1253,7 @@ final: prev: meta.homepage = "https://github.com/uga-rosa/ccc.nvim/"; }; - chadtree = buildVimPluginFrom2Nix { + chadtree = buildVimPlugin { pname = "chadtree"; version = "2023-09-05"; src = fetchFromGitHub { @@ -1265,7 +1265,7 @@ final: prev: meta.homepage = "https://github.com/ms-jpq/chadtree/"; }; - changeColorScheme-vim = buildVimPluginFrom2Nix { + changeColorScheme-vim = buildVimPlugin { pname = "changeColorScheme.vim"; version = "2010-10-18"; src = fetchFromGitHub { @@ -1277,7 +1277,7 @@ final: prev: meta.homepage = "https://github.com/vim-scripts/changeColorScheme.vim/"; }; - cheatsheet-nvim = buildVimPluginFrom2Nix { + cheatsheet-nvim = buildVimPlugin { pname = "cheatsheet.nvim"; version = "2021-12-23"; src = fetchFromGitHub { @@ -1289,7 +1289,7 @@ final: prev: meta.homepage = "https://github.com/sudormrfbin/cheatsheet.nvim/"; }; - ci_dark = buildVimPluginFrom2Nix { + ci_dark = buildVimPlugin { pname = "ci_dark"; version = "2022-03-27"; src = fetchFromGitHub { @@ -1301,7 +1301,7 @@ final: prev: meta.homepage = "https://github.com/yunlingz/ci_dark/"; }; - circles-nvim = buildVimPluginFrom2Nix { + circles-nvim = buildVimPlugin { pname = "circles.nvim"; version = "2023-04-08"; src = fetchFromGitHub { @@ -1313,7 +1313,7 @@ final: prev: meta.homepage = "https://github.com/projekt0n/circles.nvim/"; }; - clang_complete = buildVimPluginFrom2Nix { + clang_complete = buildVimPlugin { pname = "clang_complete"; version = "2022-11-30"; src = fetchFromGitHub { @@ -1325,7 +1325,7 @@ final: prev: meta.homepage = "https://github.com/xavierd/clang_complete/"; }; - clangd_extensions-nvim = buildVimPluginFrom2Nix { + clangd_extensions-nvim = buildVimPlugin { pname = "clangd_extensions.nvim"; version = "2023-09-08"; src = fetchFromGitHub { @@ -1337,7 +1337,7 @@ final: prev: meta.homepage = "https://github.com/p00f/clangd_extensions.nvim/"; }; - clever-f-vim = buildVimPluginFrom2Nix { + clever-f-vim = buildVimPlugin { pname = "clever-f.vim"; version = "2022-10-15"; src = fetchFromGitHub { @@ -1349,7 +1349,7 @@ final: prev: meta.homepage = "https://github.com/rhysd/clever-f.vim/"; }; - clighter8 = buildVimPluginFrom2Nix { + clighter8 = buildVimPlugin { pname = "clighter8"; version = "2018-07-25"; src = fetchFromGitHub { @@ -1361,7 +1361,7 @@ final: prev: meta.homepage = "https://github.com/bbchung/clighter8/"; }; - clipboard-image-nvim = buildVimPluginFrom2Nix { + clipboard-image-nvim = buildVimPlugin { pname = "clipboard-image.nvim"; version = "2022-11-10"; src = fetchFromGitHub { @@ -1373,7 +1373,7 @@ final: prev: meta.homepage = "https://github.com/ekickx/clipboard-image.nvim/"; }; - close-buffers-vim = buildVimPluginFrom2Nix { + close-buffers-vim = buildVimPlugin { pname = "close-buffers.vim"; version = "2020-09-23"; src = fetchFromGitHub { @@ -1385,7 +1385,7 @@ final: prev: meta.homepage = "https://github.com/asheq/close-buffers.vim/"; }; - cmd-parser-nvim = buildVimPluginFrom2Nix { + cmd-parser-nvim = buildVimPlugin { pname = "cmd-parser.nvim"; version = "2022-02-23"; src = fetchFromGitHub { @@ -1397,7 +1397,7 @@ final: prev: meta.homepage = "https://github.com/winston0410/cmd-parser.nvim/"; }; - cmp-async-path = buildVimPluginFrom2Nix { + cmp-async-path = buildVimPlugin { pname = "cmp-async-path"; version = "2023-01-16"; src = fetchFromGitHub { @@ -1409,7 +1409,7 @@ final: prev: meta.homepage = "https://github.com/FelipeLema/cmp-async-path/"; }; - cmp-beancount = buildVimPluginFrom2Nix { + cmp-beancount = buildVimPlugin { pname = "cmp-beancount"; version = "2022-11-27"; src = fetchFromGitHub { @@ -1421,7 +1421,7 @@ final: prev: meta.homepage = "https://github.com/crispgm/cmp-beancount/"; }; - cmp-buffer = buildVimPluginFrom2Nix { + cmp-buffer = buildVimPlugin { pname = "cmp-buffer"; version = "2022-08-10"; src = fetchFromGitHub { @@ -1433,7 +1433,7 @@ final: prev: meta.homepage = "https://github.com/hrsh7th/cmp-buffer/"; }; - cmp-calc = buildVimPluginFrom2Nix { + cmp-calc = buildVimPlugin { pname = "cmp-calc"; version = "2023-08-18"; src = fetchFromGitHub { @@ -1445,7 +1445,7 @@ final: prev: meta.homepage = "https://github.com/hrsh7th/cmp-calc/"; }; - cmp-clippy = buildVimPluginFrom2Nix { + cmp-clippy = buildVimPlugin { pname = "cmp-clippy"; version = "2023-02-08"; src = fetchFromGitHub { @@ -1457,7 +1457,7 @@ final: prev: meta.homepage = "https://github.com/vappolinario/cmp-clippy/"; }; - cmp-cmdline = buildVimPluginFrom2Nix { + cmp-cmdline = buildVimPlugin { pname = "cmp-cmdline"; version = "2023-06-08"; src = fetchFromGitHub { @@ -1469,7 +1469,7 @@ final: prev: meta.homepage = "https://github.com/hrsh7th/cmp-cmdline/"; }; - cmp-cmdline-history = buildVimPluginFrom2Nix { + cmp-cmdline-history = buildVimPlugin { pname = "cmp-cmdline-history"; version = "2022-05-04"; src = fetchFromGitHub { @@ -1481,7 +1481,7 @@ final: prev: meta.homepage = "https://github.com/dmitmel/cmp-cmdline-history/"; }; - cmp-conjure = buildVimPluginFrom2Nix { + cmp-conjure = buildVimPlugin { pname = "cmp-conjure"; version = "2023-06-22"; src = fetchFromGitHub { @@ -1493,7 +1493,7 @@ final: prev: meta.homepage = "https://github.com/PaterJason/cmp-conjure/"; }; - cmp-conventionalcommits = buildVimPluginFrom2Nix { + cmp-conventionalcommits = buildVimPlugin { pname = "cmp-conventionalcommits"; version = "2022-10-16"; src = fetchFromGitHub { @@ -1505,7 +1505,7 @@ final: prev: meta.homepage = "https://github.com/davidsierradz/cmp-conventionalcommits/"; }; - cmp-copilot = buildVimPluginFrom2Nix { + cmp-copilot = buildVimPlugin { pname = "cmp-copilot"; version = "2022-04-11"; src = fetchFromGitHub { @@ -1517,7 +1517,7 @@ final: prev: meta.homepage = "https://github.com/hrsh7th/cmp-copilot/"; }; - cmp-dap = buildVimPluginFrom2Nix { + cmp-dap = buildVimPlugin { pname = "cmp-dap"; version = "2022-11-13"; src = fetchFromGitHub { @@ -1529,7 +1529,7 @@ final: prev: meta.homepage = "https://github.com/rcarriga/cmp-dap/"; }; - cmp-dictionary = buildVimPluginFrom2Nix { + cmp-dictionary = buildVimPlugin { pname = "cmp-dictionary"; version = "2023-08-30"; src = fetchFromGitHub { @@ -1541,7 +1541,7 @@ final: prev: meta.homepage = "https://github.com/uga-rosa/cmp-dictionary/"; }; - cmp-digraphs = buildVimPluginFrom2Nix { + cmp-digraphs = buildVimPlugin { pname = "cmp-digraphs"; version = "2021-12-13"; src = fetchFromGitHub { @@ -1553,7 +1553,7 @@ final: prev: meta.homepage = "https://github.com/dmitmel/cmp-digraphs/"; }; - cmp-emoji = buildVimPluginFrom2Nix { + cmp-emoji = buildVimPlugin { pname = "cmp-emoji"; version = "2021-09-28"; src = fetchFromGitHub { @@ -1565,7 +1565,7 @@ final: prev: meta.homepage = "https://github.com/hrsh7th/cmp-emoji/"; }; - cmp-fish = buildVimPluginFrom2Nix { + cmp-fish = buildVimPlugin { pname = "cmp-fish"; version = "2022-09-01"; src = fetchFromGitHub { @@ -1577,7 +1577,7 @@ final: prev: meta.homepage = "https://github.com/mtoohey31/cmp-fish/"; }; - cmp-fuzzy-buffer = buildVimPluginFrom2Nix { + cmp-fuzzy-buffer = buildVimPlugin { pname = "cmp-fuzzy-buffer"; version = "2023-04-02"; src = fetchFromGitHub { @@ -1589,7 +1589,7 @@ final: prev: meta.homepage = "https://github.com/tzachar/cmp-fuzzy-buffer/"; }; - cmp-fuzzy-path = buildVimPluginFrom2Nix { + cmp-fuzzy-path = buildVimPlugin { pname = "cmp-fuzzy-path"; version = "2023-06-18"; src = fetchFromGitHub { @@ -1601,7 +1601,7 @@ final: prev: meta.homepage = "https://github.com/tzachar/cmp-fuzzy-path/"; }; - cmp-git = buildVimPluginFrom2Nix { + cmp-git = buildVimPlugin { pname = "cmp-git"; version = "2023-05-30"; src = fetchFromGitHub { @@ -1613,7 +1613,7 @@ final: prev: meta.homepage = "https://github.com/petertriho/cmp-git/"; }; - cmp-greek = buildVimPluginFrom2Nix { + cmp-greek = buildVimPlugin { pname = "cmp-greek"; version = "2022-01-10"; src = fetchFromGitHub { @@ -1625,7 +1625,7 @@ final: prev: meta.homepage = "https://github.com/max397574/cmp-greek/"; }; - cmp-latex-symbols = buildVimPluginFrom2Nix { + cmp-latex-symbols = buildVimPlugin { pname = "cmp-latex-symbols"; version = "2023-01-23"; src = fetchFromGitHub { @@ -1637,7 +1637,7 @@ final: prev: meta.homepage = "https://github.com/kdheepak/cmp-latex-symbols/"; }; - cmp-look = buildVimPluginFrom2Nix { + cmp-look = buildVimPlugin { pname = "cmp-look"; version = "2022-06-26"; src = fetchFromGitHub { @@ -1649,7 +1649,7 @@ final: prev: meta.homepage = "https://github.com/octaltree/cmp-look/"; }; - cmp-neosnippet = buildVimPluginFrom2Nix { + cmp-neosnippet = buildVimPlugin { pname = "cmp-neosnippet"; version = "2022-01-06"; src = fetchFromGitHub { @@ -1661,7 +1661,7 @@ final: prev: meta.homepage = "https://github.com/notomo/cmp-neosnippet/"; }; - cmp-npm = buildVimPluginFrom2Nix { + cmp-npm = buildVimPlugin { pname = "cmp-npm"; version = "2023-06-12"; src = fetchFromGitHub { @@ -1673,7 +1673,7 @@ final: prev: meta.homepage = "https://github.com/David-Kunz/cmp-npm/"; }; - cmp-nvim-lsp = buildVimPluginFrom2Nix { + cmp-nvim-lsp = buildVimPlugin { pname = "cmp-nvim-lsp"; version = "2023-06-23"; src = fetchFromGitHub { @@ -1685,7 +1685,7 @@ final: prev: meta.homepage = "https://github.com/hrsh7th/cmp-nvim-lsp/"; }; - cmp-nvim-lsp-document-symbol = buildVimPluginFrom2Nix { + cmp-nvim-lsp-document-symbol = buildVimPlugin { pname = "cmp-nvim-lsp-document-symbol"; version = "2023-04-01"; src = fetchFromGitHub { @@ -1697,7 +1697,7 @@ final: prev: meta.homepage = "https://github.com/hrsh7th/cmp-nvim-lsp-document-symbol/"; }; - cmp-nvim-lsp-signature-help = buildVimPluginFrom2Nix { + cmp-nvim-lsp-signature-help = buildVimPlugin { pname = "cmp-nvim-lsp-signature-help"; version = "2023-02-03"; src = fetchFromGitHub { @@ -1709,7 +1709,7 @@ final: prev: meta.homepage = "https://github.com/hrsh7th/cmp-nvim-lsp-signature-help/"; }; - cmp-nvim-lua = buildVimPluginFrom2Nix { + cmp-nvim-lua = buildVimPlugin { pname = "cmp-nvim-lua"; version = "2023-04-14"; src = fetchFromGitHub { @@ -1721,7 +1721,7 @@ final: prev: meta.homepage = "https://github.com/hrsh7th/cmp-nvim-lua/"; }; - cmp-nvim-tags = buildVimPluginFrom2Nix { + cmp-nvim-tags = buildVimPlugin { pname = "cmp-nvim-tags"; version = "2023-05-10"; src = fetchFromGitHub { @@ -1733,7 +1733,7 @@ final: prev: meta.homepage = "https://github.com/quangnguyen30192/cmp-nvim-tags/"; }; - cmp-nvim-ultisnips = buildVimPluginFrom2Nix { + cmp-nvim-ultisnips = buildVimPlugin { pname = "cmp-nvim-ultisnips"; version = "2023-07-05"; src = fetchFromGitHub { @@ -1745,7 +1745,7 @@ final: prev: meta.homepage = "https://github.com/quangnguyen30192/cmp-nvim-ultisnips/"; }; - cmp-omni = buildVimPluginFrom2Nix { + cmp-omni = buildVimPlugin { pname = "cmp-omni"; version = "2023-05-25"; src = fetchFromGitHub { @@ -1757,7 +1757,7 @@ final: prev: meta.homepage = "https://github.com/hrsh7th/cmp-omni/"; }; - cmp-pandoc-references = buildVimPluginFrom2Nix { + cmp-pandoc-references = buildVimPlugin { pname = "cmp-pandoc-references"; version = "2022-04-20"; src = fetchFromGitHub { @@ -1769,7 +1769,7 @@ final: prev: meta.homepage = "https://github.com/jc-doyle/cmp-pandoc-references/"; }; - cmp-pandoc-nvim = buildVimPluginFrom2Nix { + cmp-pandoc-nvim = buildVimPlugin { pname = "cmp-pandoc.nvim"; version = "2023-03-03"; src = fetchFromGitHub { @@ -1781,7 +1781,7 @@ final: prev: meta.homepage = "https://github.com/aspeddro/cmp-pandoc.nvim/"; }; - cmp-path = buildVimPluginFrom2Nix { + cmp-path = buildVimPlugin { pname = "cmp-path"; version = "2022-10-03"; src = fetchFromGitHub { @@ -1793,7 +1793,7 @@ final: prev: meta.homepage = "https://github.com/hrsh7th/cmp-path/"; }; - cmp-rg = buildVimPluginFrom2Nix { + cmp-rg = buildVimPlugin { pname = "cmp-rg"; version = "2023-09-01"; src = fetchFromGitHub { @@ -1805,7 +1805,7 @@ final: prev: meta.homepage = "https://github.com/lukas-reineke/cmp-rg/"; }; - cmp-snippy = buildVimPluginFrom2Nix { + cmp-snippy = buildVimPlugin { pname = "cmp-snippy"; version = "2023-06-15"; src = fetchFromGitHub { @@ -1817,7 +1817,7 @@ final: prev: meta.homepage = "https://github.com/dcampos/cmp-snippy/"; }; - cmp-spell = buildVimPluginFrom2Nix { + cmp-spell = buildVimPlugin { pname = "cmp-spell"; version = "2022-10-10"; src = fetchFromGitHub { @@ -1829,7 +1829,7 @@ final: prev: meta.homepage = "https://github.com/f3fora/cmp-spell/"; }; - cmp-tabnine = buildVimPluginFrom2Nix { + cmp-tabnine = buildVimPlugin { pname = "cmp-tabnine"; version = "2023-05-09"; src = fetchFromGitHub { @@ -1841,7 +1841,7 @@ final: prev: meta.homepage = "https://github.com/tzachar/cmp-tabnine/"; }; - cmp-tmux = buildVimPluginFrom2Nix { + cmp-tmux = buildVimPlugin { pname = "cmp-tmux"; version = "2023-09-02"; src = fetchFromGitHub { @@ -1853,7 +1853,7 @@ final: prev: meta.homepage = "https://github.com/andersevenrud/cmp-tmux/"; }; - cmp-treesitter = buildVimPluginFrom2Nix { + cmp-treesitter = buildVimPlugin { pname = "cmp-treesitter"; version = "2023-04-06"; src = fetchFromGitHub { @@ -1865,7 +1865,7 @@ final: prev: meta.homepage = "https://github.com/ray-x/cmp-treesitter/"; }; - cmp-under-comparator = buildVimPluginFrom2Nix { + cmp-under-comparator = buildVimPlugin { pname = "cmp-under-comparator"; version = "2021-11-11"; src = fetchFromGitHub { @@ -1877,7 +1877,7 @@ final: prev: meta.homepage = "https://github.com/lukas-reineke/cmp-under-comparator/"; }; - cmp-vim-lsp = buildVimPluginFrom2Nix { + cmp-vim-lsp = buildVimPlugin { pname = "cmp-vim-lsp"; version = "2021-10-26"; src = fetchFromGitHub { @@ -1889,7 +1889,7 @@ final: prev: meta.homepage = "https://github.com/dmitmel/cmp-vim-lsp/"; }; - cmp-vimwiki-tags = buildVimPluginFrom2Nix { + cmp-vimwiki-tags = buildVimPlugin { pname = "cmp-vimwiki-tags"; version = "2022-04-25"; src = fetchFromGitHub { @@ -1901,7 +1901,7 @@ final: prev: meta.homepage = "https://github.com/pontusk/cmp-vimwiki-tags/"; }; - cmp-vsnip = buildVimPluginFrom2Nix { + cmp-vsnip = buildVimPlugin { pname = "cmp-vsnip"; version = "2022-11-22"; src = fetchFromGitHub { @@ -1913,7 +1913,7 @@ final: prev: meta.homepage = "https://github.com/hrsh7th/cmp-vsnip/"; }; - cmp-zsh = buildVimPluginFrom2Nix { + cmp-zsh = buildVimPlugin { pname = "cmp-zsh"; version = "2022-10-03"; src = fetchFromGitHub { @@ -1925,7 +1925,7 @@ final: prev: meta.homepage = "https://github.com/tamago324/cmp-zsh/"; }; - cmp_luasnip = buildVimPluginFrom2Nix { + cmp_luasnip = buildVimPlugin { pname = "cmp_luasnip"; version = "2022-10-28"; src = fetchFromGitHub { @@ -1937,7 +1937,7 @@ final: prev: meta.homepage = "https://github.com/saadparwaiz1/cmp_luasnip/"; }; - coc-clap = buildVimPluginFrom2Nix { + coc-clap = buildVimPlugin { pname = "coc-clap"; version = "2021-09-18"; src = fetchFromGitHub { @@ -1949,7 +1949,7 @@ final: prev: meta.homepage = "https://github.com/vn-ki/coc-clap/"; }; - coc-denite = buildVimPluginFrom2Nix { + coc-denite = buildVimPlugin { pname = "coc-denite"; version = "2021-02-24"; src = fetchFromGitHub { @@ -1961,7 +1961,7 @@ final: prev: meta.homepage = "https://github.com/neoclide/coc-denite/"; }; - coc-fzf = buildVimPluginFrom2Nix { + coc-fzf = buildVimPlugin { pname = "coc-fzf"; version = "2023-01-30"; src = fetchFromGitHub { @@ -1973,7 +1973,7 @@ final: prev: meta.homepage = "https://github.com/antoinemadec/coc-fzf/"; }; - coc-lua = buildVimPluginFrom2Nix { + coc-lua = buildVimPlugin { pname = "coc-lua"; version = "2023-02-22"; src = fetchFromGitHub { @@ -1985,7 +1985,7 @@ final: prev: meta.homepage = "https://github.com/josa42/coc-lua/"; }; - coc-neco = buildVimPluginFrom2Nix { + coc-neco = buildVimPlugin { pname = "coc-neco"; version = "2020-04-07"; src = fetchFromGitHub { @@ -1997,7 +1997,7 @@ final: prev: meta.homepage = "https://github.com/neoclide/coc-neco/"; }; - coc-svelte = buildVimPluginFrom2Nix { + coc-svelte = buildVimPlugin { pname = "coc-svelte"; version = "2022-03-14"; src = fetchFromGitHub { @@ -2009,7 +2009,7 @@ final: prev: meta.homepage = "https://github.com/coc-extensions/coc-svelte/"; }; - coc-tailwindcss = buildVimPluginFrom2Nix { + coc-tailwindcss = buildVimPlugin { pname = "coc-tailwindcss"; version = "2020-08-19"; src = fetchFromGitHub { @@ -2021,7 +2021,7 @@ final: prev: meta.homepage = "https://github.com/iamcco/coc-tailwindcss/"; }; - coc-nvim = buildVimPluginFrom2Nix { + coc-nvim = buildVimPlugin { pname = "coc.nvim"; version = "2023-09-15"; src = fetchFromGitHub { @@ -2033,7 +2033,7 @@ final: prev: meta.homepage = "https://github.com/neoclide/coc.nvim/"; }; - coconut-vim = buildVimPluginFrom2Nix { + coconut-vim = buildVimPlugin { pname = "coconut.vim"; version = "2017-10-10"; src = fetchFromGitHub { @@ -2045,7 +2045,7 @@ final: prev: meta.homepage = "https://github.com/manicmaniac/coconut.vim/"; }; - codeium-vim = buildVimPluginFrom2Nix { + codeium-vim = buildVimPlugin { pname = "codeium.vim"; version = "2023-09-15"; src = fetchFromGitHub { @@ -2057,7 +2057,7 @@ final: prev: meta.homepage = "https://github.com/Exafunction/codeium.vim/"; }; - codewindow-nvim = buildVimPluginFrom2Nix { + codewindow-nvim = buildVimPlugin { pname = "codewindow.nvim"; version = "2023-07-23"; src = fetchFromGitHub { @@ -2069,7 +2069,7 @@ final: prev: meta.homepage = "https://github.com/gorbit99/codewindow.nvim/"; }; - codi-vim = buildVimPluginFrom2Nix { + codi-vim = buildVimPlugin { pname = "codi.vim"; version = "2023-02-28"; src = fetchFromGitHub { @@ -2081,7 +2081,7 @@ final: prev: meta.homepage = "https://github.com/metakirby5/codi.vim/"; }; - colorbuddy-nvim = buildVimPluginFrom2Nix { + colorbuddy-nvim = buildVimPlugin { pname = "colorbuddy.nvim"; version = "2022-02-28"; src = fetchFromGitHub { @@ -2093,7 +2093,7 @@ final: prev: meta.homepage = "https://github.com/tjdevries/colorbuddy.nvim/"; }; - colorizer = buildVimPluginFrom2Nix { + colorizer = buildVimPlugin { pname = "colorizer"; version = "2022-01-03"; src = fetchFromGitHub { @@ -2105,7 +2105,7 @@ final: prev: meta.homepage = "https://github.com/lilydjwg/colorizer/"; }; - com-cloudedmountain-ide-neovim = buildVimPluginFrom2Nix { + com-cloudedmountain-ide-neovim = buildVimPlugin { pname = "com.cloudedmountain.ide.neovim"; version = "2023-01-07"; src = fetchFromGitHub { @@ -2117,7 +2117,7 @@ final: prev: meta.homepage = "https://github.com/Domeee/com.cloudedmountain.ide.neovim/"; }; - command-t = buildVimPluginFrom2Nix { + command-t = buildVimPlugin { pname = "command-t"; version = "2023-08-07"; src = fetchFromGitHub { @@ -2129,7 +2129,7 @@ final: prev: meta.homepage = "https://github.com/wincent/command-t/"; }; - comment-nvim = buildVimPluginFrom2Nix { + comment-nvim = buildVimPlugin { pname = "comment.nvim"; version = "2023-08-07"; src = fetchFromGitHub { @@ -2141,7 +2141,7 @@ final: prev: meta.homepage = "https://github.com/numtostr/comment.nvim/"; }; - committia-vim = buildVimPluginFrom2Nix { + committia-vim = buildVimPlugin { pname = "committia.vim"; version = "2021-11-24"; src = fetchFromGitHub { @@ -2153,7 +2153,7 @@ final: prev: meta.homepage = "https://github.com/rhysd/committia.vim/"; }; - compe-conjure = buildVimPluginFrom2Nix { + compe-conjure = buildVimPlugin { pname = "compe-conjure"; version = "2020-12-06"; src = fetchFromGitHub { @@ -2165,7 +2165,7 @@ final: prev: meta.homepage = "https://github.com/hrsh7th/compe-conjure/"; }; - compe-latex-symbols = buildVimPluginFrom2Nix { + compe-latex-symbols = buildVimPlugin { pname = "compe-latex-symbols"; version = "2021-05-14"; src = fetchFromGitHub { @@ -2177,7 +2177,7 @@ final: prev: meta.homepage = "https://github.com/GoldsteinE/compe-latex-symbols/"; }; - compe-tabnine = buildVimPluginFrom2Nix { + compe-tabnine = buildVimPlugin { pname = "compe-tabnine"; version = "2021-09-14"; src = fetchFromGitHub { @@ -2189,7 +2189,7 @@ final: prev: meta.homepage = "https://github.com/tzachar/compe-tabnine/"; }; - compe-zsh = buildVimPluginFrom2Nix { + compe-zsh = buildVimPlugin { pname = "compe-zsh"; version = "2021-04-03"; src = fetchFromGitHub { @@ -2201,7 +2201,7 @@ final: prev: meta.homepage = "https://github.com/tamago324/compe-zsh/"; }; - compiler-explorer-nvim = buildVimPluginFrom2Nix { + compiler-explorer-nvim = buildVimPlugin { pname = "compiler-explorer.nvim"; version = "2023-05-29"; src = fetchFromGitHub { @@ -2213,7 +2213,7 @@ final: prev: meta.homepage = "https://github.com/krady21/compiler-explorer.nvim/"; }; - completion-buffers = buildVimPluginFrom2Nix { + completion-buffers = buildVimPlugin { pname = "completion-buffers"; version = "2021-01-17"; src = fetchFromGitHub { @@ -2225,7 +2225,7 @@ final: prev: meta.homepage = "https://github.com/steelsojka/completion-buffers/"; }; - completion-nvim = buildVimPluginFrom2Nix { + completion-nvim = buildVimPlugin { pname = "completion-nvim"; version = "2021-10-12"; src = fetchFromGitHub { @@ -2237,7 +2237,7 @@ final: prev: meta.homepage = "https://github.com/nvim-lua/completion-nvim/"; }; - completion-tabnine = buildVimPluginFrom2Nix { + completion-tabnine = buildVimPlugin { pname = "completion-tabnine"; version = "2021-09-27"; src = fetchFromGitHub { @@ -2249,7 +2249,7 @@ final: prev: meta.homepage = "https://github.com/aca/completion-tabnine/"; }; - completion-treesitter = buildVimPluginFrom2Nix { + completion-treesitter = buildVimPlugin { pname = "completion-treesitter"; version = "2020-06-26"; src = fetchFromGitHub { @@ -2261,7 +2261,7 @@ final: prev: meta.homepage = "https://github.com/nvim-treesitter/completion-treesitter/"; }; - concealedyank-vim = buildVimPluginFrom2Nix { + concealedyank-vim = buildVimPlugin { pname = "concealedyank.vim"; version = "2013-03-24"; src = fetchFromGitHub { @@ -2273,7 +2273,7 @@ final: prev: meta.homepage = "https://github.com/chikatoike/concealedyank.vim/"; }; - conflict-marker-vim = buildVimPluginFrom2Nix { + conflict-marker-vim = buildVimPlugin { pname = "conflict-marker.vim"; version = "2022-11-01"; src = fetchFromGitHub { @@ -2285,7 +2285,7 @@ final: prev: meta.homepage = "https://github.com/rhysd/conflict-marker.vim/"; }; - conjure = buildVimPluginFrom2Nix { + conjure = buildVimPlugin { pname = "conjure"; version = "2023-08-27"; src = fetchFromGitHub { @@ -2297,7 +2297,7 @@ final: prev: meta.homepage = "https://github.com/Olical/conjure/"; }; - context-vim = buildVimPluginFrom2Nix { + context-vim = buildVimPlugin { pname = "context.vim"; version = "2023-06-13"; src = fetchFromGitHub { @@ -2309,7 +2309,7 @@ final: prev: meta.homepage = "https://github.com/wellle/context.vim/"; }; - context_filetype-vim = buildVimPluginFrom2Nix { + context_filetype-vim = buildVimPlugin { pname = "context_filetype.vim"; version = "2023-07-23"; src = fetchFromGitHub { @@ -2321,7 +2321,7 @@ final: prev: meta.homepage = "https://github.com/Shougo/context_filetype.vim/"; }; - copilot-cmp = buildVimPluginFrom2Nix { + copilot-cmp = buildVimPlugin { pname = "copilot-cmp"; version = "2023-09-09"; src = fetchFromGitHub { @@ -2333,7 +2333,7 @@ final: prev: meta.homepage = "https://github.com/zbirenbaum/copilot-cmp/"; }; - copilot-lua = buildVimPluginFrom2Nix { + copilot-lua = buildVimPlugin { pname = "copilot.lua"; version = "2023-09-04"; src = fetchFromGitHub { @@ -2345,7 +2345,7 @@ final: prev: meta.homepage = "https://github.com/zbirenbaum/copilot.lua/"; }; - copilot-vim = buildVimPluginFrom2Nix { + copilot-vim = buildVimPlugin { pname = "copilot.vim"; version = "2023-09-02"; src = fetchFromGitHub { @@ -2357,7 +2357,7 @@ final: prev: meta.homepage = "https://github.com/github/copilot.vim/"; }; - coq-artifacts = buildVimPluginFrom2Nix { + coq-artifacts = buildVimPlugin { pname = "coq.artifacts"; version = "2023-09-07"; src = fetchFromGitHub { @@ -2369,7 +2369,7 @@ final: prev: meta.homepage = "https://github.com/ms-jpq/coq.artifacts/"; }; - coq-thirdparty = buildVimPluginFrom2Nix { + coq-thirdparty = buildVimPlugin { pname = "coq.thirdparty"; version = "2023-08-27"; src = fetchFromGitHub { @@ -2381,7 +2381,7 @@ final: prev: meta.homepage = "https://github.com/ms-jpq/coq.thirdparty/"; }; - coq-vim = buildVimPluginFrom2Nix { + coq-vim = buildVimPlugin { pname = "coq.vim"; version = "2013-01-16"; src = fetchFromGitHub { @@ -2393,7 +2393,7 @@ final: prev: meta.homepage = "https://github.com/jvoorhis/coq.vim/"; }; - coq_nvim = buildVimPluginFrom2Nix { + coq_nvim = buildVimPlugin { pname = "coq_nvim"; version = "2023-09-05"; src = fetchFromGitHub { @@ -2405,7 +2405,7 @@ final: prev: meta.homepage = "https://github.com/ms-jpq/coq_nvim/"; }; - cosco-vim = buildVimPluginFrom2Nix { + cosco-vim = buildVimPlugin { pname = "cosco.vim"; version = "2018-08-07"; src = fetchFromGitHub { @@ -2417,7 +2417,7 @@ final: prev: meta.homepage = "https://github.com/lfilho/cosco.vim/"; }; - cpsm = buildVimPluginFrom2Nix { + cpsm = buildVimPlugin { pname = "cpsm"; version = "2021-07-25"; src = fetchFromGitHub { @@ -2429,7 +2429,7 @@ final: prev: meta.homepage = "https://github.com/nixprime/cpsm/"; }; - crates-nvim = buildVimPluginFrom2Nix { + crates-nvim = buildVimPlugin { pname = "crates.nvim"; version = "2023-09-11"; src = fetchFromGitHub { @@ -2441,7 +2441,7 @@ final: prev: meta.homepage = "https://github.com/saecki/crates.nvim/"; }; - csapprox = buildVimPluginFrom2Nix { + csapprox = buildVimPlugin { pname = "csapprox"; version = "2013-07-27"; src = fetchFromGitHub { @@ -2453,7 +2453,7 @@ final: prev: meta.homepage = "https://github.com/godlygeek/csapprox/"; }; - csharpls-extended-lsp-nvim = buildVimPluginFrom2Nix { + csharpls-extended-lsp-nvim = buildVimPlugin { pname = "csharpls-extended-lsp.nvim"; version = "2022-07-15"; src = fetchFromGitHub { @@ -2465,7 +2465,7 @@ final: prev: meta.homepage = "https://github.com/Decodetalkers/csharpls-extended-lsp.nvim/"; }; - csv-vim = buildVimPluginFrom2Nix { + csv-vim = buildVimPlugin { pname = "csv.vim"; version = "2023-05-04"; src = fetchFromGitHub { @@ -2477,7 +2477,7 @@ final: prev: meta.homepage = "https://github.com/chrisbra/csv.vim/"; }; - ctrlp-cmatcher = buildVimPluginFrom2Nix { + ctrlp-cmatcher = buildVimPlugin { pname = "ctrlp-cmatcher"; version = "2015-10-15"; src = fetchFromGitHub { @@ -2489,7 +2489,7 @@ final: prev: meta.homepage = "https://github.com/JazzCore/ctrlp-cmatcher/"; }; - ctrlp-py-matcher = buildVimPluginFrom2Nix { + ctrlp-py-matcher = buildVimPlugin { pname = "ctrlp-py-matcher"; version = "2021-09-20"; src = fetchFromGitHub { @@ -2501,7 +2501,7 @@ final: prev: meta.homepage = "https://github.com/FelikZ/ctrlp-py-matcher/"; }; - ctrlp-z = buildVimPluginFrom2Nix { + ctrlp-z = buildVimPlugin { pname = "ctrlp-z"; version = "2015-10-17"; src = fetchFromGitHub { @@ -2513,7 +2513,7 @@ final: prev: meta.homepage = "https://github.com/amiorin/ctrlp-z/"; }; - ctrlp-vim = buildVimPluginFrom2Nix { + ctrlp-vim = buildVimPlugin { pname = "ctrlp.vim"; version = "2023-07-16"; src = fetchFromGitHub { @@ -2525,7 +2525,7 @@ final: prev: meta.homepage = "https://github.com/ctrlpvim/ctrlp.vim/"; }; - dart-vim-plugin = buildVimPluginFrom2Nix { + dart-vim-plugin = buildVimPlugin { pname = "dart-vim-plugin"; version = "2023-07-18"; src = fetchFromGitHub { @@ -2537,7 +2537,7 @@ final: prev: meta.homepage = "https://github.com/dart-lang/dart-vim-plugin/"; }; - dash-vim = buildVimPluginFrom2Nix { + dash-vim = buildVimPlugin { pname = "dash.vim"; version = "2017-09-12"; src = fetchFromGitHub { @@ -2549,7 +2549,7 @@ final: prev: meta.homepage = "https://github.com/rizzatti/dash.vim/"; }; - dashboard-nvim = buildVimPluginFrom2Nix { + dashboard-nvim = buildVimPlugin { pname = "dashboard-nvim"; version = "2023-09-09"; src = fetchFromGitHub { @@ -2561,7 +2561,7 @@ final: prev: meta.homepage = "https://github.com/nvimdev/dashboard-nvim/"; }; - defx-git = buildVimPluginFrom2Nix { + defx-git = buildVimPlugin { pname = "defx-git"; version = "2021-01-01"; src = fetchFromGitHub { @@ -2573,7 +2573,7 @@ final: prev: meta.homepage = "https://github.com/kristijanhusak/defx-git/"; }; - defx-icons = buildVimPluginFrom2Nix { + defx-icons = buildVimPlugin { pname = "defx-icons"; version = "2021-08-21"; src = fetchFromGitHub { @@ -2585,7 +2585,7 @@ final: prev: meta.homepage = "https://github.com/kristijanhusak/defx-icons/"; }; - defx-nvim = buildVimPluginFrom2Nix { + defx-nvim = buildVimPlugin { pname = "defx.nvim"; version = "2023-09-07"; src = fetchFromGitHub { @@ -2597,7 +2597,7 @@ final: prev: meta.homepage = "https://github.com/Shougo/defx.nvim/"; }; - delimitMate = buildVimPluginFrom2Nix { + delimitMate = buildVimPlugin { pname = "delimitMate"; version = "2020-12-14"; src = fetchFromGitHub { @@ -2609,7 +2609,7 @@ final: prev: meta.homepage = "https://github.com/Raimondi/delimitMate/"; }; - denite-extra = buildVimPluginFrom2Nix { + denite-extra = buildVimPlugin { pname = "denite-extra"; version = "2019-03-29"; src = fetchFromGitHub { @@ -2621,7 +2621,7 @@ final: prev: meta.homepage = "https://github.com/neoclide/denite-extra/"; }; - denite-git = buildVimPluginFrom2Nix { + denite-git = buildVimPlugin { pname = "denite-git"; version = "2021-01-25"; src = fetchFromGitHub { @@ -2633,7 +2633,7 @@ final: prev: meta.homepage = "https://github.com/neoclide/denite-git/"; }; - denite-nvim = buildVimPluginFrom2Nix { + denite-nvim = buildVimPlugin { pname = "denite.nvim"; version = "2023-04-22"; src = fetchFromGitHub { @@ -2645,7 +2645,7 @@ final: prev: meta.homepage = "https://github.com/Shougo/denite.nvim/"; }; - denops-vim = buildVimPluginFrom2Nix { + denops-vim = buildVimPlugin { pname = "denops.vim"; version = "2023-09-07"; src = fetchFromGitHub { @@ -2657,7 +2657,7 @@ final: prev: meta.homepage = "https://github.com/vim-denops/denops.vim/"; }; - deol-nvim = buildVimPluginFrom2Nix { + deol-nvim = buildVimPlugin { pname = "deol.nvim"; version = "2023-08-21"; src = fetchFromGitHub { @@ -2669,7 +2669,7 @@ final: prev: meta.homepage = "https://github.com/Shougo/deol.nvim/"; }; - deoplete-clang = buildVimPluginFrom2Nix { + deoplete-clang = buildVimPlugin { pname = "deoplete-clang"; version = "2019-11-10"; src = fetchFromGitHub { @@ -2682,7 +2682,7 @@ final: prev: meta.homepage = "https://github.com/deoplete-plugins/deoplete-clang/"; }; - deoplete-dictionary = buildVimPluginFrom2Nix { + deoplete-dictionary = buildVimPlugin { pname = "deoplete-dictionary"; version = "2019-04-16"; src = fetchFromGitHub { @@ -2694,7 +2694,7 @@ final: prev: meta.homepage = "https://github.com/deoplete-plugins/deoplete-dictionary/"; }; - deoplete-fish = buildVimPluginFrom2Nix { + deoplete-fish = buildVimPlugin { pname = "deoplete-fish"; version = "2020-04-04"; src = fetchFromGitHub { @@ -2706,7 +2706,7 @@ final: prev: meta.homepage = "https://github.com/ponko2/deoplete-fish/"; }; - deoplete-github = buildVimPluginFrom2Nix { + deoplete-github = buildVimPlugin { pname = "deoplete-github"; version = "2018-03-04"; src = fetchFromGitHub { @@ -2718,7 +2718,7 @@ final: prev: meta.homepage = "https://github.com/SevereOverfl0w/deoplete-github/"; }; - deoplete-go = buildVimPluginFrom2Nix { + deoplete-go = buildVimPlugin { pname = "deoplete-go"; version = "2021-03-30"; src = fetchFromGitHub { @@ -2731,7 +2731,7 @@ final: prev: meta.homepage = "https://github.com/deoplete-plugins/deoplete-go/"; }; - deoplete-greek = buildVimPluginFrom2Nix { + deoplete-greek = buildVimPlugin { pname = "deoplete-greek"; version = "2019-12-23"; src = fetchFromGitHub { @@ -2743,7 +2743,7 @@ final: prev: meta.homepage = "https://github.com/Inazuma110/deoplete-greek/"; }; - deoplete-jedi = buildVimPluginFrom2Nix { + deoplete-jedi = buildVimPlugin { pname = "deoplete-jedi"; version = "2022-11-15"; src = fetchFromGitHub { @@ -2755,7 +2755,7 @@ final: prev: meta.homepage = "https://github.com/deoplete-plugins/deoplete-jedi/"; }; - deoplete-julia = buildVimPluginFrom2Nix { + deoplete-julia = buildVimPlugin { pname = "deoplete-julia"; version = "2018-06-11"; src = fetchFromGitHub { @@ -2767,7 +2767,7 @@ final: prev: meta.homepage = "https://github.com/JuliaEditorSupport/deoplete-julia/"; }; - deoplete-khard = buildVimPluginFrom2Nix { + deoplete-khard = buildVimPlugin { pname = "deoplete-khard"; version = "2020-09-18"; src = fetchFromGitHub { @@ -2779,7 +2779,7 @@ final: prev: meta.homepage = "https://github.com/nicoe/deoplete-khard/"; }; - deoplete-lsp = buildVimPluginFrom2Nix { + deoplete-lsp = buildVimPlugin { pname = "deoplete-lsp"; version = "2022-12-13"; src = fetchFromGitHub { @@ -2791,7 +2791,7 @@ final: prev: meta.homepage = "https://github.com/deoplete-plugins/deoplete-lsp/"; }; - deoplete-notmuch = buildVimPluginFrom2Nix { + deoplete-notmuch = buildVimPlugin { pname = "deoplete-notmuch"; version = "2018-12-11"; src = fetchFromGitHub { @@ -2803,7 +2803,7 @@ final: prev: meta.homepage = "https://github.com/Valodim/deoplete-notmuch/"; }; - deoplete-phpactor = buildVimPluginFrom2Nix { + deoplete-phpactor = buildVimPlugin { pname = "deoplete-phpactor"; version = "2020-09-12"; src = fetchFromGitHub { @@ -2815,7 +2815,7 @@ final: prev: meta.homepage = "https://github.com/kristijanhusak/deoplete-phpactor/"; }; - deoplete-rust = buildVimPluginFrom2Nix { + deoplete-rust = buildVimPlugin { pname = "deoplete-rust"; version = "2017-07-18"; src = fetchFromGitHub { @@ -2827,7 +2827,7 @@ final: prev: meta.homepage = "https://github.com/sebastianmarkow/deoplete-rust/"; }; - deoplete-tabnine = buildVimPluginFrom2Nix { + deoplete-tabnine = buildVimPlugin { pname = "deoplete-tabnine"; version = "2023-08-06"; src = fetchFromGitHub { @@ -2839,7 +2839,7 @@ final: prev: meta.homepage = "https://github.com/tbodt/deoplete-tabnine/"; }; - deoplete-ternjs = buildVimPluginFrom2Nix { + deoplete-ternjs = buildVimPlugin { pname = "deoplete-ternjs"; version = "2019-12-19"; src = fetchFromGitHub { @@ -2851,7 +2851,7 @@ final: prev: meta.homepage = "https://github.com/carlitux/deoplete-ternjs/"; }; - deoplete-vim-lsp = buildVimPluginFrom2Nix { + deoplete-vim-lsp = buildVimPlugin { pname = "deoplete-vim-lsp"; version = "2021-02-22"; src = fetchFromGitHub { @@ -2863,7 +2863,7 @@ final: prev: meta.homepage = "https://github.com/lighttiger2505/deoplete-vim-lsp/"; }; - deoplete-zsh = buildVimPluginFrom2Nix { + deoplete-zsh = buildVimPlugin { pname = "deoplete-zsh"; version = "2019-11-10"; src = fetchFromGitHub { @@ -2875,7 +2875,7 @@ final: prev: meta.homepage = "https://github.com/deoplete-plugins/deoplete-zsh/"; }; - deoplete-nvim = buildVimPluginFrom2Nix { + deoplete-nvim = buildVimPlugin { pname = "deoplete.nvim"; version = "2023-08-06"; src = fetchFromGitHub { @@ -2887,7 +2887,7 @@ final: prev: meta.homepage = "https://github.com/Shougo/deoplete.nvim/"; }; - devdocs-vim = buildVimPluginFrom2Nix { + devdocs-vim = buildVimPlugin { pname = "devdocs.vim"; version = "2018-08-27"; src = fetchFromGitHub { @@ -2899,7 +2899,7 @@ final: prev: meta.homepage = "https://github.com/rhysd/devdocs.vim/"; }; - dhall-vim = buildVimPluginFrom2Nix { + dhall-vim = buildVimPlugin { pname = "dhall-vim"; version = "2021-06-05"; src = fetchFromGitHub { @@ -2911,7 +2911,7 @@ final: prev: meta.homepage = "https://github.com/vmchale/dhall-vim/"; }; - diaglist-nvim = buildVimPluginFrom2Nix { + diaglist-nvim = buildVimPlugin { pname = "diaglist.nvim"; version = "2022-09-01"; src = fetchFromGitHub { @@ -2923,7 +2923,7 @@ final: prev: meta.homepage = "https://github.com/onsails/diaglist.nvim/"; }; - diagnostic-nvim = buildVimPluginFrom2Nix { + diagnostic-nvim = buildVimPlugin { pname = "diagnostic-nvim"; version = "2020-11-13"; src = fetchFromGitHub { @@ -2935,7 +2935,7 @@ final: prev: meta.homepage = "https://github.com/nvim-lua/diagnostic-nvim/"; }; - dial-nvim = buildVimPluginFrom2Nix { + dial-nvim = buildVimPlugin { pname = "dial.nvim"; version = "2023-09-09"; src = fetchFromGitHub { @@ -2947,7 +2947,7 @@ final: prev: meta.homepage = "https://github.com/monaqa/dial.nvim/"; }; - diffview-nvim = buildVimPluginFrom2Nix { + diffview-nvim = buildVimPlugin { pname = "diffview.nvim"; version = "2023-08-21"; src = fetchFromGitHub { @@ -2959,7 +2959,7 @@ final: prev: meta.homepage = "https://github.com/sindrets/diffview.nvim/"; }; - dirbuf-nvim = buildVimPluginFrom2Nix { + dirbuf-nvim = buildVimPlugin { pname = "dirbuf.nvim"; version = "2022-08-28"; src = fetchFromGitHub { @@ -2971,7 +2971,7 @@ final: prev: meta.homepage = "https://github.com/elihunter173/dirbuf.nvim/"; }; - direnv-vim = buildVimPluginFrom2Nix { + direnv-vim = buildVimPlugin { pname = "direnv.vim"; version = "2023-06-26"; src = fetchFromGitHub { @@ -2983,7 +2983,7 @@ final: prev: meta.homepage = "https://github.com/direnv/direnv.vim/"; }; - distant-nvim = buildVimPluginFrom2Nix { + distant-nvim = buildVimPlugin { pname = "distant.nvim"; version = "2023-09-13"; src = fetchFromGitHub { @@ -2995,7 +2995,7 @@ final: prev: meta.homepage = "https://github.com/chipsenkbeil/distant.nvim/"; }; - doki-theme-vim = buildVimPluginFrom2Nix { + doki-theme-vim = buildVimPlugin { pname = "doki-theme-vim"; version = "2023-01-07"; src = fetchFromGitHub { @@ -3007,7 +3007,7 @@ final: prev: meta.homepage = "https://github.com/doki-theme/doki-theme-vim/"; }; - dracula-nvim = buildVimPluginFrom2Nix { + dracula-nvim = buildVimPlugin { pname = "dracula.nvim"; version = "2023-07-29"; src = fetchFromGitHub { @@ -3019,7 +3019,7 @@ final: prev: meta.homepage = "https://github.com/Mofiqul/dracula.nvim/"; }; - dressing-nvim = buildVimPluginFrom2Nix { + dressing-nvim = buildVimPlugin { pname = "dressing.nvim"; version = "2023-09-05"; src = fetchFromGitHub { @@ -3031,7 +3031,7 @@ final: prev: meta.homepage = "https://github.com/stevearc/dressing.nvim/"; }; - dropbar-nvim = buildVimPluginFrom2Nix { + dropbar-nvim = buildVimPlugin { pname = "dropbar.nvim"; version = "2023-09-05"; src = fetchFromGitHub { @@ -3043,7 +3043,7 @@ final: prev: meta.homepage = "https://github.com/Bekaboo/dropbar.nvim/"; }; - echodoc-vim = buildVimPluginFrom2Nix { + echodoc-vim = buildVimPlugin { pname = "echodoc.vim"; version = "2022-11-27"; src = fetchFromGitHub { @@ -3055,7 +3055,7 @@ final: prev: meta.homepage = "https://github.com/Shougo/echodoc.vim/"; }; - edge = buildVimPluginFrom2Nix { + edge = buildVimPlugin { pname = "edge"; version = "2023-08-07"; src = fetchFromGitHub { @@ -3067,7 +3067,7 @@ final: prev: meta.homepage = "https://github.com/sainnhe/edge/"; }; - edgedb-vim = buildVimPluginFrom2Nix { + edgedb-vim = buildVimPlugin { pname = "edgedb-vim"; version = "2023-05-26"; src = fetchFromGitHub { @@ -3079,7 +3079,7 @@ final: prev: meta.homepage = "https://github.com/edgedb/edgedb-vim/"; }; - edgy-nvim = buildVimPluginFrom2Nix { + edgy-nvim = buildVimPlugin { pname = "edgy.nvim"; version = "2023-07-25"; src = fetchFromGitHub { @@ -3091,7 +3091,7 @@ final: prev: meta.homepage = "https://github.com/folke/edgy.nvim/"; }; - editorconfig-vim = buildVimPluginFrom2Nix { + editorconfig-vim = buildVimPlugin { pname = "editorconfig-vim"; version = "2023-08-30"; src = fetchFromGitHub { @@ -3104,7 +3104,7 @@ final: prev: meta.homepage = "https://github.com/editorconfig/editorconfig-vim/"; }; - editorconfig-nvim = buildVimPluginFrom2Nix { + editorconfig-nvim = buildVimPlugin { pname = "editorconfig.nvim"; version = "2023-01-10"; src = fetchFromGitHub { @@ -3116,7 +3116,7 @@ final: prev: meta.homepage = "https://github.com/gpanders/editorconfig.nvim/"; }; - efmls-configs-nvim = buildVimPluginFrom2Nix { + efmls-configs-nvim = buildVimPlugin { pname = "efmls-configs-nvim"; version = "2023-09-16"; src = fetchFromGitHub { @@ -3128,7 +3128,7 @@ final: prev: meta.homepage = "https://github.com/creativenull/efmls-configs-nvim/"; }; - elixir-tools-nvim = buildVimPluginFrom2Nix { + elixir-tools-nvim = buildVimPlugin { pname = "elixir-tools.nvim"; version = "2023-09-15"; src = fetchFromGitHub { @@ -3140,7 +3140,7 @@ final: prev: meta.homepage = "https://github.com/elixir-tools/elixir-tools.nvim/"; }; - elm-vim = buildVimPluginFrom2Nix { + elm-vim = buildVimPlugin { pname = "elm-vim"; version = "2020-09-23"; src = fetchFromGitHub { @@ -3152,7 +3152,7 @@ final: prev: meta.homepage = "https://github.com/elmcast/elm-vim/"; }; - elvish-vim = buildVimPluginFrom2Nix { + elvish-vim = buildVimPlugin { pname = "elvish.vim"; version = "2022-04-04"; src = fetchFromGitHub { @@ -3164,7 +3164,7 @@ final: prev: meta.homepage = "https://github.com/dmix/elvish.vim/"; }; - emmet-vim = buildVimPluginFrom2Nix { + emmet-vim = buildVimPlugin { pname = "emmet-vim"; version = "2021-12-04"; src = fetchFromGitHub { @@ -3177,7 +3177,7 @@ final: prev: meta.homepage = "https://github.com/mattn/emmet-vim/"; }; - emodeline = buildVimPluginFrom2Nix { + emodeline = buildVimPlugin { pname = "emodeline"; version = "2010-10-18"; src = fetchFromGitHub { @@ -3189,7 +3189,7 @@ final: prev: meta.homepage = "https://github.com/vim-scripts/emodeline/"; }; - errormarker-vim = buildVimPluginFrom2Nix { + errormarker-vim = buildVimPlugin { pname = "errormarker.vim"; version = "2015-01-26"; src = fetchFromGitHub { @@ -3201,7 +3201,7 @@ final: prev: meta.homepage = "https://github.com/vim-scripts/errormarker.vim/"; }; - everforest = buildVimPluginFrom2Nix { + everforest = buildVimPlugin { pname = "everforest"; version = "2023-08-07"; src = fetchFromGitHub { @@ -3213,7 +3213,7 @@ final: prev: meta.homepage = "https://github.com/sainnhe/everforest/"; }; - executor-nvim = buildVimPluginFrom2Nix { + executor-nvim = buildVimPlugin { pname = "executor.nvim"; version = "2023-09-07"; src = fetchFromGitHub { @@ -3225,7 +3225,7 @@ final: prev: meta.homepage = "https://github.com/google/executor.nvim/"; }; - eyeliner-nvim = buildVimPluginFrom2Nix { + eyeliner-nvim = buildVimPlugin { pname = "eyeliner.nvim"; version = "2023-09-16"; src = fetchFromGitHub { @@ -3237,7 +3237,7 @@ final: prev: meta.homepage = "https://github.com/jinh0/eyeliner.nvim/"; }; - falcon = buildVimPluginFrom2Nix { + falcon = buildVimPlugin { pname = "falcon"; version = "2023-03-12"; src = fetchFromGitHub { @@ -3249,7 +3249,7 @@ final: prev: meta.homepage = "https://github.com/fenetikm/falcon/"; }; - far-vim = buildVimPluginFrom2Nix { + far-vim = buildVimPlugin { pname = "far.vim"; version = "2022-08-25"; src = fetchFromGitHub { @@ -3261,7 +3261,7 @@ final: prev: meta.homepage = "https://github.com/brooth/far.vim/"; }; - fastfold = buildVimPluginFrom2Nix { + fastfold = buildVimPlugin { pname = "fastfold"; version = "2023-03-21"; src = fetchFromGitHub { @@ -3273,7 +3273,7 @@ final: prev: meta.homepage = "https://github.com/konfekt/fastfold/"; }; - fcitx-vim = buildVimPluginFrom2Nix { + fcitx-vim = buildVimPlugin { pname = "fcitx.vim"; version = "2023-08-03"; src = fetchFromGitHub { @@ -3285,7 +3285,7 @@ final: prev: meta.homepage = "https://github.com/lilydjwg/fcitx.vim/"; }; - feline-nvim = buildVimPluginFrom2Nix { + feline-nvim = buildVimPlugin { pname = "feline.nvim"; version = "2023-06-19"; src = fetchFromGitHub { @@ -3297,7 +3297,7 @@ final: prev: meta.homepage = "https://github.com/freddiehaddad/feline.nvim/"; }; - fennel-vim = buildVimPluginFrom2Nix { + fennel-vim = buildVimPlugin { pname = "fennel.vim"; version = "2020-11-15"; src = fetchFromGitHub { @@ -3309,7 +3309,7 @@ final: prev: meta.homepage = "https://github.com/bakpakin/fennel.vim/"; }; - fern-vim = buildVimPluginFrom2Nix { + fern-vim = buildVimPlugin { pname = "fern.vim"; version = "2023-08-26"; src = fetchFromGitHub { @@ -3321,7 +3321,7 @@ final: prev: meta.homepage = "https://github.com/lambdalisue/fern.vim/"; }; - ferret = buildVimPluginFrom2Nix { + ferret = buildVimPlugin { pname = "ferret"; version = "2022-12-08"; src = fetchFromGitHub { @@ -3333,7 +3333,7 @@ final: prev: meta.homepage = "https://github.com/wincent/ferret/"; }; - fidget-nvim = buildVimPluginFrom2Nix { + fidget-nvim = buildVimPlugin { pname = "fidget.nvim"; version = "2023-06-10"; src = fetchFromGitHub { @@ -3345,7 +3345,7 @@ final: prev: meta.homepage = "https://github.com/j-hui/fidget.nvim/"; }; - file-line = buildVimPluginFrom2Nix { + file-line = buildVimPlugin { pname = "file-line"; version = "2016-10-21"; src = fetchFromGitHub { @@ -3357,7 +3357,7 @@ final: prev: meta.homepage = "https://github.com/bogado/file-line/"; }; - firenvim = buildVimPluginFrom2Nix { + firenvim = buildVimPlugin { pname = "firenvim"; version = "2023-08-18"; src = fetchFromGitHub { @@ -3369,7 +3369,7 @@ final: prev: meta.homepage = "https://github.com/glacambre/firenvim/"; }; - flake8-vim = buildVimPluginFrom2Nix { + flake8-vim = buildVimPlugin { pname = "flake8-vim"; version = "2020-10-20"; src = fetchFromGitHub { @@ -3382,7 +3382,7 @@ final: prev: meta.homepage = "https://github.com/andviro/flake8-vim/"; }; - flash-nvim = buildVimPluginFrom2Nix { + flash-nvim = buildVimPlugin { pname = "flash.nvim"; version = "2023-08-29"; src = fetchFromGitHub { @@ -3394,7 +3394,7 @@ final: prev: meta.homepage = "https://github.com/folke/flash.nvim/"; }; - flatten-nvim = buildVimPluginFrom2Nix { + flatten-nvim = buildVimPlugin { pname = "flatten.nvim"; version = "2023-09-15"; src = fetchFromGitHub { @@ -3406,7 +3406,7 @@ final: prev: meta.homepage = "https://github.com/willothy/flatten.nvim/"; }; - flit-nvim = buildVimPluginFrom2Nix { + flit-nvim = buildVimPlugin { pname = "flit.nvim"; version = "2023-07-13"; src = fetchFromGitHub { @@ -3418,7 +3418,7 @@ final: prev: meta.homepage = "https://github.com/ggandor/flit.nvim/"; }; - float-preview-nvim = buildVimPluginFrom2Nix { + float-preview-nvim = buildVimPlugin { pname = "float-preview.nvim"; version = "2023-07-04"; src = fetchFromGitHub { @@ -3430,7 +3430,7 @@ final: prev: meta.homepage = "https://github.com/ncm2/float-preview.nvim/"; }; - floating-input-nvim = buildVimPluginFrom2Nix { + floating-input-nvim = buildVimPlugin { pname = "floating-input.nvim"; version = "2023-05-26"; src = fetchFromGitHub { @@ -3442,7 +3442,7 @@ final: prev: meta.homepage = "https://github.com/liangxianzhe/floating-input.nvim/"; }; - floating-nvim = buildVimPluginFrom2Nix { + floating-nvim = buildVimPlugin { pname = "floating.nvim"; version = "2021-07-19"; src = fetchFromGitHub { @@ -3454,7 +3454,7 @@ final: prev: meta.homepage = "https://github.com/fhill2/floating.nvim/"; }; - floobits-neovim = buildVimPluginFrom2Nix { + floobits-neovim = buildVimPlugin { pname = "floobits-neovim"; version = "2021-10-18"; src = fetchFromGitHub { @@ -3466,7 +3466,7 @@ final: prev: meta.homepage = "https://github.com/floobits/floobits-neovim/"; }; - flutter-tools-nvim = buildVimPluginFrom2Nix { + flutter-tools-nvim = buildVimPlugin { pname = "flutter-tools.nvim"; version = "2023-09-13"; src = fetchFromGitHub { @@ -3478,7 +3478,7 @@ final: prev: meta.homepage = "https://github.com/akinsho/flutter-tools.nvim/"; }; - fold-preview-nvim = buildVimPluginFrom2Nix { + fold-preview-nvim = buildVimPlugin { pname = "fold-preview.nvim"; version = "2023-01-27"; src = fetchFromGitHub { @@ -3490,7 +3490,7 @@ final: prev: meta.homepage = "https://github.com/anuvyklack/fold-preview.nvim/"; }; - formatter-nvim = buildVimPluginFrom2Nix { + formatter-nvim = buildVimPlugin { pname = "formatter.nvim"; version = "2023-08-14"; src = fetchFromGitHub { @@ -3502,7 +3502,7 @@ final: prev: meta.homepage = "https://github.com/mhartington/formatter.nvim/"; }; - forms = buildVimPluginFrom2Nix { + forms = buildVimPlugin { pname = "forms"; version = "2012-11-28"; src = fetchFromGitHub { @@ -3514,7 +3514,7 @@ final: prev: meta.homepage = "https://github.com/megaannum/forms/"; }; - friendly-snippets = buildVimPluginFrom2Nix { + friendly-snippets = buildVimPlugin { pname = "friendly-snippets"; version = "2023-09-03"; src = fetchFromGitHub { @@ -3526,7 +3526,7 @@ final: prev: meta.homepage = "https://github.com/rafamadriz/friendly-snippets/"; }; - fruzzy = buildVimPluginFrom2Nix { + fruzzy = buildVimPlugin { pname = "fruzzy"; version = "2020-08-31"; src = fetchFromGitHub { @@ -3538,7 +3538,7 @@ final: prev: meta.homepage = "https://github.com/raghur/fruzzy/"; }; - fugitive-gitlab-vim = buildVimPluginFrom2Nix { + fugitive-gitlab-vim = buildVimPlugin { pname = "fugitive-gitlab.vim"; version = "2023-05-22"; src = fetchFromGitHub { @@ -3550,7 +3550,7 @@ final: prev: meta.homepage = "https://github.com/shumphrey/fugitive-gitlab.vim/"; }; - futhark-vim = buildVimPluginFrom2Nix { + futhark-vim = buildVimPlugin { pname = "futhark-vim"; version = "2021-08-24"; src = fetchFromGitHub { @@ -3562,7 +3562,7 @@ final: prev: meta.homepage = "https://github.com/BeneCollyridam/futhark-vim/"; }; - fuzzy-nvim = buildVimPluginFrom2Nix { + fuzzy-nvim = buildVimPlugin { pname = "fuzzy.nvim"; version = "2023-05-15"; src = fetchFromGitHub { @@ -3574,7 +3574,7 @@ final: prev: meta.homepage = "https://github.com/tzachar/fuzzy.nvim/"; }; - fwatch-nvim = buildVimPluginFrom2Nix { + fwatch-nvim = buildVimPlugin { pname = "fwatch.nvim"; version = "2022-07-04"; src = fetchFromGitHub { @@ -3586,7 +3586,7 @@ final: prev: meta.homepage = "https://github.com/rktjmp/fwatch.nvim/"; }; - fzf-checkout-vim = buildVimPluginFrom2Nix { + fzf-checkout-vim = buildVimPlugin { pname = "fzf-checkout.vim"; version = "2022-12-27"; src = fetchFromGitHub { @@ -3598,7 +3598,7 @@ final: prev: meta.homepage = "https://github.com/stsewd/fzf-checkout.vim/"; }; - fzf-hoogle-vim = buildVimPluginFrom2Nix { + fzf-hoogle-vim = buildVimPlugin { pname = "fzf-hoogle.vim"; version = "2022-05-01"; src = fetchFromGitHub { @@ -3610,7 +3610,7 @@ final: prev: meta.homepage = "https://github.com/monkoose/fzf-hoogle.vim/"; }; - fzf-lsp-nvim = buildVimPluginFrom2Nix { + fzf-lsp-nvim = buildVimPlugin { pname = "fzf-lsp.nvim"; version = "2023-02-02"; src = fetchFromGitHub { @@ -3622,7 +3622,7 @@ final: prev: meta.homepage = "https://github.com/gfanto/fzf-lsp.nvim/"; }; - fzf-lua = buildVimPluginFrom2Nix { + fzf-lua = buildVimPlugin { pname = "fzf-lua"; version = "2023-09-16"; src = fetchFromGitHub { @@ -3634,7 +3634,7 @@ final: prev: meta.homepage = "https://github.com/ibhagwan/fzf-lua/"; }; - fzf-vim = buildVimPluginFrom2Nix { + fzf-vim = buildVimPlugin { pname = "fzf.vim"; version = "2023-09-16"; src = fetchFromGitHub { @@ -3646,7 +3646,7 @@ final: prev: meta.homepage = "https://github.com/junegunn/fzf.vim/"; }; - galaxyline-nvim = buildVimPluginFrom2Nix { + galaxyline-nvim = buildVimPlugin { pname = "galaxyline.nvim"; version = "2022-01-21"; src = fetchFromGitHub { @@ -3658,7 +3658,7 @@ final: prev: meta.homepage = "https://github.com/NTBBloodbath/galaxyline.nvim/"; }; - gen_tags-vim = buildVimPluginFrom2Nix { + gen_tags-vim = buildVimPlugin { pname = "gen_tags.vim"; version = "2023-03-06"; src = fetchFromGitHub { @@ -3670,7 +3670,7 @@ final: prev: meta.homepage = "https://github.com/jsfaint/gen_tags.vim/"; }; - gentoo-syntax = buildVimPluginFrom2Nix { + gentoo-syntax = buildVimPlugin { pname = "gentoo-syntax"; version = "2023-06-14"; src = fetchFromGitHub { @@ -3682,7 +3682,7 @@ final: prev: meta.homepage = "https://github.com/gentoo/gentoo-syntax/"; }; - ghcid = buildVimPluginFrom2Nix { + ghcid = buildVimPlugin { pname = "ghcid"; version = "2023-07-02"; src = fetchFromGitHub { @@ -3694,7 +3694,7 @@ final: prev: meta.homepage = "https://github.com/ndmitchell/ghcid/"; }; - ghcmod-vim = buildVimPluginFrom2Nix { + ghcmod-vim = buildVimPlugin { pname = "ghcmod-vim"; version = "2016-06-19"; src = fetchFromGitHub { @@ -3706,7 +3706,7 @@ final: prev: meta.homepage = "https://github.com/eagletmt/ghcmod-vim/"; }; - gina-vim = buildVimPluginFrom2Nix { + gina-vim = buildVimPlugin { pname = "gina.vim"; version = "2022-03-30"; src = fetchFromGitHub { @@ -3718,7 +3718,7 @@ final: prev: meta.homepage = "https://github.com/lambdalisue/gina.vim/"; }; - git-blame-nvim = buildVimPluginFrom2Nix { + git-blame-nvim = buildVimPlugin { pname = "git-blame.nvim"; version = "2023-09-14"; src = fetchFromGitHub { @@ -3730,7 +3730,7 @@ final: prev: meta.homepage = "https://github.com/f-person/git-blame.nvim/"; }; - git-conflict-nvim = buildVimPluginFrom2Nix { + git-conflict-nvim = buildVimPlugin { pname = "git-conflict.nvim"; version = "2023-09-13"; src = fetchFromGitHub { @@ -3742,7 +3742,7 @@ final: prev: meta.homepage = "https://github.com/akinsho/git-conflict.nvim/"; }; - git-messenger-vim = buildVimPluginFrom2Nix { + git-messenger-vim = buildVimPlugin { pname = "git-messenger.vim"; version = "2022-08-30"; src = fetchFromGitHub { @@ -3754,7 +3754,7 @@ final: prev: meta.homepage = "https://github.com/rhysd/git-messenger.vim/"; }; - git-worktree-nvim = buildVimPluginFrom2Nix { + git-worktree-nvim = buildVimPlugin { pname = "git-worktree.nvim"; version = "2021-12-24"; src = fetchFromGitHub { @@ -3766,7 +3766,7 @@ final: prev: meta.homepage = "https://github.com/ThePrimeagen/git-worktree.nvim/"; }; - gitignore-vim = buildVimPluginFrom2Nix { + gitignore-vim = buildVimPlugin { pname = "gitignore.vim"; version = "2014-03-16"; src = fetchFromGitHub { @@ -3778,7 +3778,7 @@ final: prev: meta.homepage = "https://github.com/vim-scripts/gitignore.vim/"; }; - gitlinker-nvim = buildVimPluginFrom2Nix { + gitlinker-nvim = buildVimPlugin { pname = "gitlinker.nvim"; version = "2023-02-03"; src = fetchFromGitHub { @@ -3802,7 +3802,7 @@ final: prev: meta.homepage = "https://github.com/lewis6991/gitsigns.nvim/"; }; - gitv = buildVimPluginFrom2Nix { + gitv = buildVimPlugin { pname = "gitv"; version = "2019-08-22"; src = fetchFromGitHub { @@ -3814,7 +3814,7 @@ final: prev: meta.homepage = "https://github.com/gregsexton/gitv/"; }; - glance-nvim = buildVimPluginFrom2Nix { + glance-nvim = buildVimPlugin { pname = "glance.nvim"; version = "2023-08-26"; src = fetchFromGitHub { @@ -3826,7 +3826,7 @@ final: prev: meta.homepage = "https://github.com/DNLHC/glance.nvim/"; }; - gleam-vim = buildVimPluginFrom2Nix { + gleam-vim = buildVimPlugin { pname = "gleam.vim"; version = "2020-06-24"; src = fetchFromGitHub { @@ -3838,7 +3838,7 @@ final: prev: meta.homepage = "https://github.com/gleam-lang/gleam.vim/"; }; - glow-nvim = buildVimPluginFrom2Nix { + glow-nvim = buildVimPlugin { pname = "glow.nvim"; version = "2023-08-28"; src = fetchFromGitHub { @@ -3850,7 +3850,7 @@ final: prev: meta.homepage = "https://github.com/ellisonleao/glow.nvim/"; }; - go-nvim = buildVimPluginFrom2Nix { + go-nvim = buildVimPlugin { pname = "go.nvim"; version = "2023-09-07"; src = fetchFromGitHub { @@ -3862,7 +3862,7 @@ final: prev: meta.homepage = "https://github.com/ray-x/go.nvim/"; }; - godbolt-nvim = buildVimPluginFrom2Nix { + godbolt-nvim = buildVimPlugin { pname = "godbolt.nvim"; version = "2023-09-07"; src = fetchFromGitHub { @@ -3874,7 +3874,7 @@ final: prev: meta.homepage = "https://github.com/p00f/godbolt.nvim/"; }; - golden-ratio = buildVimPluginFrom2Nix { + golden-ratio = buildVimPlugin { pname = "golden-ratio"; version = "2022-06-28"; src = fetchFromGitHub { @@ -3886,7 +3886,7 @@ final: prev: meta.homepage = "https://github.com/roman/golden-ratio/"; }; - gotests-vim = buildVimPluginFrom2Nix { + gotests-vim = buildVimPlugin { pname = "gotests-vim"; version = "2022-07-12"; src = fetchFromGitHub { @@ -3898,7 +3898,7 @@ final: prev: meta.homepage = "https://github.com/buoto/gotests-vim/"; }; - goto-preview = buildVimPluginFrom2Nix { + goto-preview = buildVimPlugin { pname = "goto-preview"; version = "2023-07-19"; src = fetchFromGitHub { @@ -3910,7 +3910,7 @@ final: prev: meta.homepage = "https://github.com/rmagatti/goto-preview/"; }; - goyo-vim = buildVimPluginFrom2Nix { + goyo-vim = buildVimPlugin { pname = "goyo.vim"; version = "2023-03-04"; src = fetchFromGitHub { @@ -3922,7 +3922,7 @@ final: prev: meta.homepage = "https://github.com/junegunn/goyo.vim/"; }; - grammar-guard-nvim = buildVimPluginFrom2Nix { + grammar-guard-nvim = buildVimPlugin { pname = "grammar-guard.nvim"; version = "2023-08-12"; src = fetchFromGitHub { @@ -3934,7 +3934,7 @@ final: prev: meta.homepage = "https://github.com/brymer-meneses/grammar-guard.nvim/"; }; - graphviz-vim = buildVimPluginFrom2Nix { + graphviz-vim = buildVimPlugin { pname = "graphviz.vim"; version = "2022-12-11"; src = fetchFromGitHub { @@ -3946,7 +3946,7 @@ final: prev: meta.homepage = "https://github.com/liuchengxu/graphviz.vim/"; }; - gruvbox = buildVimPluginFrom2Nix { + gruvbox = buildVimPlugin { pname = "gruvbox"; version = "2023-08-14"; src = fetchFromGitHub { @@ -3958,7 +3958,7 @@ final: prev: meta.homepage = "https://github.com/morhetz/gruvbox/"; }; - gruvbox-flat-nvim = buildVimPluginFrom2Nix { + gruvbox-flat-nvim = buildVimPlugin { pname = "gruvbox-flat.nvim"; version = "2023-05-27"; src = fetchFromGitHub { @@ -3970,7 +3970,7 @@ final: prev: meta.homepage = "https://github.com/eddyekofo94/gruvbox-flat.nvim/"; }; - gruvbox-material = buildVimPluginFrom2Nix { + gruvbox-material = buildVimPlugin { pname = "gruvbox-material"; version = "2023-08-07"; src = fetchFromGitHub { @@ -3982,7 +3982,7 @@ final: prev: meta.homepage = "https://github.com/sainnhe/gruvbox-material/"; }; - gruvbox-nvim = buildVimPluginFrom2Nix { + gruvbox-nvim = buildVimPlugin { pname = "gruvbox.nvim"; version = "2023-08-29"; src = fetchFromGitHub { @@ -3994,7 +3994,7 @@ final: prev: meta.homepage = "https://github.com/ellisonleao/gruvbox.nvim/"; }; - guess-indent-nvim = buildVimPluginFrom2Nix { + guess-indent-nvim = buildVimPlugin { pname = "guess-indent.nvim"; version = "2023-04-03"; src = fetchFromGitHub { @@ -4006,7 +4006,7 @@ final: prev: meta.homepage = "https://github.com/nmac427/guess-indent.nvim/"; }; - gundo-vim = buildVimPluginFrom2Nix { + gundo-vim = buildVimPlugin { pname = "gundo.vim"; version = "2021-02-21"; src = fetchFromGitHub { @@ -4018,7 +4018,7 @@ final: prev: meta.homepage = "https://github.com/sjl/gundo.vim/"; }; - gv-vim = buildVimPluginFrom2Nix { + gv-vim = buildVimPlugin { pname = "gv.vim"; version = "2022-10-25"; src = fetchFromGitHub { @@ -4030,7 +4030,7 @@ final: prev: meta.homepage = "https://github.com/junegunn/gv.vim/"; }; - hardtime-nvim = buildVimPluginFrom2Nix { + hardtime-nvim = buildVimPlugin { pname = "hardtime.nvim"; version = "2023-09-11"; src = fetchFromGitHub { @@ -4042,7 +4042,7 @@ final: prev: meta.homepage = "https://github.com/m4xshen/hardtime.nvim/"; }; - hare-vim = buildVimPluginFrom2Nix { + hare-vim = buildVimPlugin { pname = "hare.vim"; version = "2023-09-09"; src = fetchgit { @@ -4053,7 +4053,7 @@ final: prev: meta.homepage = "https://git.sr.ht/~sircmpwn/hare.vim"; }; - harpoon = buildVimPluginFrom2Nix { + harpoon = buildVimPlugin { pname = "harpoon"; version = "2023-05-28"; src = fetchFromGitHub { @@ -4077,7 +4077,7 @@ final: prev: meta.homepage = "https://github.com/MrcJkb/haskell-tools.nvim/"; }; - haskell-vim = buildVimPluginFrom2Nix { + haskell-vim = buildVimPlugin { pname = "haskell-vim"; version = "2021-01-19"; src = fetchFromGitHub { @@ -4089,7 +4089,7 @@ final: prev: meta.homepage = "https://github.com/neovimhaskell/haskell-vim/"; }; - haskell-with-unicode-vim = buildVimPluginFrom2Nix { + haskell-with-unicode-vim = buildVimPlugin { pname = "haskell-with-unicode.vim"; version = "2022-09-11"; src = fetchFromGitHub { @@ -4101,7 +4101,7 @@ final: prev: meta.homepage = "https://github.com/wenzel-hoffman/haskell-with-unicode.vim/"; }; - hasksyn = buildVimPluginFrom2Nix { + hasksyn = buildVimPlugin { pname = "hasksyn"; version = "2014-09-04"; src = fetchFromGitHub { @@ -4113,7 +4113,7 @@ final: prev: meta.homepage = "https://github.com/travitch/hasksyn/"; }; - headlines-nvim = buildVimPluginFrom2Nix { + headlines-nvim = buildVimPlugin { pname = "headlines.nvim"; version = "2023-07-27"; src = fetchFromGitHub { @@ -4125,7 +4125,7 @@ final: prev: meta.homepage = "https://github.com/lukas-reineke/headlines.nvim/"; }; - heirline-nvim = buildVimPluginFrom2Nix { + heirline-nvim = buildVimPlugin { pname = "heirline.nvim"; version = "2023-09-03"; src = fetchFromGitHub { @@ -4137,7 +4137,7 @@ final: prev: meta.homepage = "https://github.com/rebelot/heirline.nvim/"; }; - hex-nvim = buildVimPluginFrom2Nix { + hex-nvim = buildVimPlugin { pname = "hex.nvim"; version = "2023-09-09"; src = fetchFromGitHub { @@ -4149,7 +4149,7 @@ final: prev: meta.homepage = "https://github.com/RaafatTurki/hex.nvim/"; }; - hiPairs = buildVimPluginFrom2Nix { + hiPairs = buildVimPlugin { pname = "hiPairs"; version = "2020-12-10"; src = fetchFromGitHub { @@ -4161,7 +4161,7 @@ final: prev: meta.homepage = "https://github.com/Yggdroot/hiPairs/"; }; - highlight-undo-nvim = buildVimPluginFrom2Nix { + highlight-undo-nvim = buildVimPlugin { pname = "highlight-undo.nvim"; version = "2023-08-17"; src = fetchFromGitHub { @@ -4173,7 +4173,7 @@ final: prev: meta.homepage = "https://github.com/tzachar/highlight-undo.nvim/"; }; - himalaya-vim = buildVimPluginFrom2Nix { + himalaya-vim = buildVimPlugin { pname = "himalaya-vim"; version = "2023-09-14"; src = fetchgit { @@ -4184,7 +4184,7 @@ final: prev: meta.homepage = "https://git.sr.ht/~soywod/himalaya-vim"; }; - hlint-refactor-vim = buildVimPluginFrom2Nix { + hlint-refactor-vim = buildVimPlugin { pname = "hlint-refactor-vim"; version = "2015-12-05"; src = fetchFromGitHub { @@ -4196,7 +4196,7 @@ final: prev: meta.homepage = "https://github.com/mpickering/hlint-refactor-vim/"; }; - hmts-nvim = buildVimPluginFrom2Nix { + hmts-nvim = buildVimPlugin { pname = "hmts.nvim"; version = "2023-08-28"; src = fetchFromGitHub { @@ -4208,7 +4208,7 @@ final: prev: meta.homepage = "https://github.com/calops/hmts.nvim/"; }; - hologram-nvim = buildVimPluginFrom2Nix { + hologram-nvim = buildVimPlugin { pname = "hologram.nvim"; version = "2022-10-09"; src = fetchFromGitHub { @@ -4220,7 +4220,7 @@ final: prev: meta.homepage = "https://github.com/edluffy/hologram.nvim/"; }; - hoon-vim = buildVimPluginFrom2Nix { + hoon-vim = buildVimPlugin { pname = "hoon.vim"; version = "2023-05-04"; src = fetchFromGitHub { @@ -4232,7 +4232,7 @@ final: prev: meta.homepage = "https://github.com/urbit/hoon.vim/"; }; - hop-nvim = buildVimPluginFrom2Nix { + hop-nvim = buildVimPlugin { pname = "hop.nvim"; version = "2023-09-09"; src = fetchFromGitHub { @@ -4244,7 +4244,7 @@ final: prev: meta.homepage = "https://github.com/phaazon/hop.nvim/"; }; - hotpot-nvim = buildVimPluginFrom2Nix { + hotpot-nvim = buildVimPlugin { pname = "hotpot.nvim"; version = "2023-09-14"; src = fetchFromGitHub { @@ -4256,7 +4256,7 @@ final: prev: meta.homepage = "https://github.com/rktjmp/hotpot.nvim/"; }; - hover-nvim = buildVimPluginFrom2Nix { + hover-nvim = buildVimPlugin { pname = "hover.nvim"; version = "2023-09-10"; src = fetchFromGitHub { @@ -4268,7 +4268,7 @@ final: prev: meta.homepage = "https://github.com/lewis6991/hover.nvim/"; }; - html5-vim = buildVimPluginFrom2Nix { + html5-vim = buildVimPlugin { pname = "html5.vim"; version = "2020-08-22"; src = fetchFromGitHub { @@ -4280,7 +4280,7 @@ final: prev: meta.homepage = "https://github.com/othree/html5.vim/"; }; - hydra-nvim = buildVimPluginFrom2Nix { + hydra-nvim = buildVimPlugin { pname = "hydra.nvim"; version = "2023-02-06"; src = fetchFromGitHub { @@ -4292,7 +4292,7 @@ final: prev: meta.homepage = "https://github.com/anuvyklack/hydra.nvim/"; }; - i3config-vim = buildVimPluginFrom2Nix { + i3config-vim = buildVimPlugin { pname = "i3config.vim"; version = "2021-06-23"; src = fetchFromGitHub { @@ -4304,7 +4304,7 @@ final: prev: meta.homepage = "https://github.com/mboughaba/i3config.vim/"; }; - iceberg-vim = buildVimPluginFrom2Nix { + iceberg-vim = buildVimPlugin { pname = "iceberg.vim"; version = "2022-11-23"; src = fetchFromGitHub { @@ -4316,7 +4316,7 @@ final: prev: meta.homepage = "https://github.com/cocopon/iceberg.vim/"; }; - idris-vim = buildVimPluginFrom2Nix { + idris-vim = buildVimPlugin { pname = "idris-vim"; version = "2017-12-04"; src = fetchFromGitHub { @@ -4328,7 +4328,7 @@ final: prev: meta.homepage = "https://github.com/idris-hackers/idris-vim/"; }; - idris2-vim = buildVimPluginFrom2Nix { + idris2-vim = buildVimPlugin { pname = "idris2-vim"; version = "2020-11-26"; src = fetchFromGitHub { @@ -4340,7 +4340,7 @@ final: prev: meta.homepage = "https://github.com/edwinb/idris2-vim/"; }; - image-nvim = buildVimPluginFrom2Nix { + image-nvim = buildVimPlugin { pname = "image.nvim"; version = "2023-09-02"; src = fetchFromGitHub { @@ -4352,7 +4352,7 @@ final: prev: meta.homepage = "https://github.com/3rd/image.nvim/"; }; - impatient-nvim = buildVimPluginFrom2Nix { + impatient-nvim = buildVimPlugin { pname = "impatient.nvim"; version = "2023-05-05"; src = fetchFromGitHub { @@ -4364,7 +4364,7 @@ final: prev: meta.homepage = "https://github.com/lewis6991/impatient.nvim/"; }; - inc-rename-nvim = buildVimPluginFrom2Nix { + inc-rename-nvim = buildVimPlugin { pname = "inc-rename.nvim"; version = "2023-06-03"; src = fetchFromGitHub { @@ -4376,7 +4376,7 @@ final: prev: meta.homepage = "https://github.com/smjonas/inc-rename.nvim/"; }; - increment-activator = buildVimPluginFrom2Nix { + increment-activator = buildVimPlugin { pname = "increment-activator"; version = "2021-09-16"; src = fetchFromGitHub { @@ -4388,7 +4388,7 @@ final: prev: meta.homepage = "https://github.com/nishigori/increment-activator/"; }; - incsearch-easymotion-vim = buildVimPluginFrom2Nix { + incsearch-easymotion-vim = buildVimPlugin { pname = "incsearch-easymotion.vim"; version = "2016-01-18"; src = fetchFromGitHub { @@ -4400,7 +4400,7 @@ final: prev: meta.homepage = "https://github.com/haya14busa/incsearch-easymotion.vim/"; }; - incsearch-vim = buildVimPluginFrom2Nix { + incsearch-vim = buildVimPlugin { pname = "incsearch.vim"; version = "2022-05-13"; src = fetchFromGitHub { @@ -4412,7 +4412,7 @@ final: prev: meta.homepage = "https://github.com/haya14busa/incsearch.vim/"; }; - indent-blankline-nvim = buildVimPluginFrom2Nix { + indent-blankline-nvim = buildVimPlugin { pname = "indent-blankline.nvim"; version = "2023-08-22"; src = fetchFromGitHub { @@ -4424,7 +4424,7 @@ final: prev: meta.homepage = "https://github.com/lukas-reineke/indent-blankline.nvim/"; }; - indent-o-matic = buildVimPluginFrom2Nix { + indent-o-matic = buildVimPlugin { pname = "indent-o-matic"; version = "2023-06-03"; src = fetchFromGitHub { @@ -4436,7 +4436,7 @@ final: prev: meta.homepage = "https://github.com/Darazaki/indent-o-matic/"; }; - indentLine = buildVimPluginFrom2Nix { + indentLine = buildVimPlugin { pname = "indentLine"; version = "2023-07-14"; src = fetchFromGitHub { @@ -4448,7 +4448,7 @@ final: prev: meta.homepage = "https://github.com/Yggdroot/indentLine/"; }; - inkpot = buildVimPluginFrom2Nix { + inkpot = buildVimPlugin { pname = "inkpot"; version = "2013-02-10"; src = fetchFromGitHub { @@ -4460,7 +4460,7 @@ final: prev: meta.homepage = "https://github.com/ciaranm/inkpot/"; }; - instant-nvim = buildVimPluginFrom2Nix { + instant-nvim = buildVimPlugin { pname = "instant.nvim"; version = "2022-06-25"; src = fetchFromGitHub { @@ -4472,7 +4472,7 @@ final: prev: meta.homepage = "https://github.com/jbyuki/instant.nvim/"; }; - intellitab-nvim = buildVimPluginFrom2Nix { + intellitab-nvim = buildVimPlugin { pname = "intellitab.nvim"; version = "2021-11-13"; src = fetchFromGitHub { @@ -4484,7 +4484,7 @@ final: prev: meta.homepage = "https://github.com/pta2002/intellitab.nvim/"; }; - intero-neovim = buildVimPluginFrom2Nix { + intero-neovim = buildVimPlugin { pname = "intero-neovim"; version = "2019-11-15"; src = fetchFromGitHub { @@ -4496,7 +4496,7 @@ final: prev: meta.homepage = "https://github.com/parsonsmatt/intero-neovim/"; }; - investigate-vim = buildVimPluginFrom2Nix { + investigate-vim = buildVimPlugin { pname = "investigate.vim"; version = "2020-02-29"; src = fetchFromGitHub { @@ -4508,7 +4508,7 @@ final: prev: meta.homepage = "https://github.com/keith/investigate.vim/"; }; - iosvkem = buildVimPluginFrom2Nix { + iosvkem = buildVimPlugin { pname = "iosvkem"; version = "2021-03-26"; src = fetchFromGitHub { @@ -4520,7 +4520,7 @@ final: prev: meta.homepage = "https://github.com/neutaaaaan/iosvkem/"; }; - ir_black = buildVimPluginFrom2Nix { + ir_black = buildVimPlugin { pname = "ir_black"; version = "2012-03-05"; src = fetchFromGitHub { @@ -4532,7 +4532,7 @@ final: prev: meta.homepage = "https://github.com/twerth/ir_black/"; }; - iron-nvim = buildVimPluginFrom2Nix { + iron-nvim = buildVimPlugin { pname = "iron.nvim"; version = "2023-07-13"; src = fetchFromGitHub { @@ -4544,7 +4544,7 @@ final: prev: meta.homepage = "https://github.com/Vigemus/iron.nvim/"; }; - is-vim = buildVimPluginFrom2Nix { + is-vim = buildVimPlugin { pname = "is.vim"; version = "2020-10-27"; src = fetchFromGitHub { @@ -4556,7 +4556,7 @@ final: prev: meta.homepage = "https://github.com/haya14busa/is.vim/"; }; - jdaddy-vim = buildVimPluginFrom2Nix { + jdaddy-vim = buildVimPlugin { pname = "jdaddy.vim"; version = "2014-02-22"; src = fetchFromGitHub { @@ -4568,7 +4568,7 @@ final: prev: meta.homepage = "https://github.com/vim-scripts/jdaddy.vim/"; }; - jedi-vim = buildVimPluginFrom2Nix { + jedi-vim = buildVimPlugin { pname = "jedi-vim"; version = "2023-07-31"; src = fetchFromGitHub { @@ -4581,7 +4581,7 @@ final: prev: meta.homepage = "https://github.com/davidhalter/jedi-vim/"; }; - jellybeans-nvim = buildVimPluginFrom2Nix { + jellybeans-nvim = buildVimPlugin { pname = "jellybeans-nvim"; version = "2022-03-21"; src = fetchFromGitHub { @@ -4593,7 +4593,7 @@ final: prev: meta.homepage = "https://github.com/metalelf0/jellybeans-nvim/"; }; - jellybeans-vim = buildVimPluginFrom2Nix { + jellybeans-vim = buildVimPlugin { pname = "jellybeans.vim"; version = "2019-06-22"; src = fetchFromGitHub { @@ -4605,7 +4605,7 @@ final: prev: meta.homepage = "https://github.com/nanotech/jellybeans.vim/"; }; - jinja-vim = buildVimPluginFrom2Nix { + jinja-vim = buildVimPlugin { pname = "jinja.vim"; version = "2020-06-18"; src = fetchFromGitHub { @@ -4617,7 +4617,7 @@ final: prev: meta.homepage = "https://github.com/HiPhish/jinja.vim/"; }; - jq-vim = buildVimPluginFrom2Nix { + jq-vim = buildVimPlugin { pname = "jq.vim"; version = "2022-11-26"; src = fetchFromGitHub { @@ -4629,7 +4629,7 @@ final: prev: meta.homepage = "https://github.com/vito-c/jq.vim/"; }; - jsonc-vim = buildVimPluginFrom2Nix { + jsonc-vim = buildVimPlugin { pname = "jsonc.vim"; version = "2022-10-31"; src = fetchFromGitHub { @@ -4641,7 +4641,7 @@ final: prev: meta.homepage = "https://github.com/neoclide/jsonc.vim/"; }; - julia-vim = buildVimPluginFrom2Nix { + julia-vim = buildVimPlugin { pname = "julia-vim"; version = "2023-07-05"; src = fetchFromGitHub { @@ -4653,7 +4653,7 @@ final: prev: meta.homepage = "https://github.com/JuliaEditorSupport/julia-vim/"; }; - kanagawa-nvim = buildVimPluginFrom2Nix { + kanagawa-nvim = buildVimPlugin { pname = "kanagawa.nvim"; version = "2023-09-13"; src = fetchFromGitHub { @@ -4665,7 +4665,7 @@ final: prev: meta.homepage = "https://github.com/rebelot/kanagawa.nvim/"; }; - keymap-layer-nvim = buildVimPluginFrom2Nix { + keymap-layer-nvim = buildVimPlugin { pname = "keymap-layer.nvim"; version = "2022-07-16"; src = fetchFromGitHub { @@ -4677,7 +4677,7 @@ final: prev: meta.homepage = "https://github.com/anuvyklack/keymap-layer.nvim/"; }; - kmonad-vim = buildVimPluginFrom2Nix { + kmonad-vim = buildVimPlugin { pname = "kmonad-vim"; version = "2022-03-20"; src = fetchFromGitHub { @@ -4689,7 +4689,7 @@ final: prev: meta.homepage = "https://github.com/kmonad/kmonad-vim/"; }; - knap = buildVimPluginFrom2Nix { + knap = buildVimPlugin { pname = "knap"; version = "2023-07-25"; src = fetchFromGitHub { @@ -4701,7 +4701,7 @@ final: prev: meta.homepage = "https://github.com/frabjous/knap/"; }; - kommentary = buildVimPluginFrom2Nix { + kommentary = buildVimPlugin { pname = "kommentary"; version = "2023-01-06"; src = fetchFromGitHub { @@ -4713,7 +4713,7 @@ final: prev: meta.homepage = "https://github.com/b3nj5m1n/kommentary/"; }; - kotlin-vim = buildVimPluginFrom2Nix { + kotlin-vim = buildVimPlugin { pname = "kotlin-vim"; version = "2022-12-30"; src = fetchFromGitHub { @@ -4725,7 +4725,7 @@ final: prev: meta.homepage = "https://github.com/udalov/kotlin-vim/"; }; - lalrpop-vim = buildVimPluginFrom2Nix { + lalrpop-vim = buildVimPlugin { pname = "lalrpop.vim"; version = "2017-11-22"; src = fetchFromGitHub { @@ -4737,7 +4737,7 @@ final: prev: meta.homepage = "https://github.com/qnighy/lalrpop.vim/"; }; - last256 = buildVimPluginFrom2Nix { + last256 = buildVimPlugin { pname = "last256"; version = "2020-12-09"; src = fetchFromGitHub { @@ -4749,7 +4749,7 @@ final: prev: meta.homepage = "https://github.com/sk1418/last256/"; }; - latex-box = buildVimPluginFrom2Nix { + latex-box = buildVimPlugin { pname = "latex-box"; version = "2015-06-01"; src = fetchFromGitHub { @@ -4761,7 +4761,7 @@ final: prev: meta.homepage = "https://github.com/latex-box-team/latex-box/"; }; - lazy-lsp-nvim = buildVimPluginFrom2Nix { + lazy-lsp-nvim = buildVimPlugin { pname = "lazy-lsp.nvim"; version = "2023-09-13"; src = fetchFromGitHub { @@ -4773,7 +4773,7 @@ final: prev: meta.homepage = "https://github.com/dundalek/lazy-lsp.nvim/"; }; - lazy-nvim = buildVimPluginFrom2Nix { + lazy-nvim = buildVimPlugin { pname = "lazy.nvim"; version = "2023-08-26"; src = fetchFromGitHub { @@ -4785,7 +4785,7 @@ final: prev: meta.homepage = "https://github.com/folke/lazy.nvim/"; }; - lazygit-nvim = buildVimPluginFrom2Nix { + lazygit-nvim = buildVimPlugin { pname = "lazygit.nvim"; version = "2023-09-05"; src = fetchFromGitHub { @@ -4797,7 +4797,7 @@ final: prev: meta.homepage = "https://github.com/kdheepak/lazygit.nvim/"; }; - lean-nvim = buildVimPluginFrom2Nix { + lean-nvim = buildVimPlugin { pname = "lean.nvim"; version = "2023-09-14"; src = fetchFromGitHub { @@ -4809,7 +4809,7 @@ final: prev: meta.homepage = "https://github.com/Julian/lean.nvim/"; }; - lean-vim = buildVimPluginFrom2Nix { + lean-vim = buildVimPlugin { pname = "lean.vim"; version = "2021-09-29"; src = fetchFromGitHub { @@ -4821,7 +4821,7 @@ final: prev: meta.homepage = "https://github.com/leanprover/lean.vim/"; }; - leap-ast-nvim = buildVimPluginFrom2Nix { + leap-ast-nvim = buildVimPlugin { pname = "leap-ast.nvim"; version = "2022-10-10"; src = fetchFromGitHub { @@ -4833,7 +4833,7 @@ final: prev: meta.homepage = "https://github.com/ggandor/leap-ast.nvim/"; }; - leap-nvim = buildVimPluginFrom2Nix { + leap-nvim = buildVimPlugin { pname = "leap.nvim"; version = "2023-07-23"; src = fetchFromGitHub { @@ -4845,7 +4845,7 @@ final: prev: meta.homepage = "https://github.com/ggandor/leap.nvim/"; }; - legendary-nvim = buildVimPluginFrom2Nix { + legendary-nvim = buildVimPlugin { pname = "legendary.nvim"; version = "2023-07-08"; src = fetchFromGitHub { @@ -4857,7 +4857,7 @@ final: prev: meta.homepage = "https://github.com/mrjones2014/legendary.nvim/"; }; - lens-vim = buildVimPluginFrom2Nix { + lens-vim = buildVimPlugin { pname = "lens.vim"; version = "2021-05-30"; src = fetchFromGitHub { @@ -4869,7 +4869,7 @@ final: prev: meta.homepage = "https://github.com/camspiers/lens.vim/"; }; - lessspace-vim = buildVimPluginFrom2Nix { + lessspace-vim = buildVimPlugin { pname = "lessspace.vim"; version = "2023-02-13"; src = fetchFromGitHub { @@ -4881,7 +4881,7 @@ final: prev: meta.homepage = "https://github.com/thirtythreeforty/lessspace.vim/"; }; - lexima-vim = buildVimPluginFrom2Nix { + lexima-vim = buildVimPlugin { pname = "lexima.vim"; version = "2023-09-04"; src = fetchFromGitHub { @@ -4893,7 +4893,7 @@ final: prev: meta.homepage = "https://github.com/cohama/lexima.vim/"; }; - lf-vim = buildVimPluginFrom2Nix { + lf-vim = buildVimPlugin { pname = "lf.vim"; version = "2022-08-24"; src = fetchFromGitHub { @@ -4905,7 +4905,7 @@ final: prev: meta.homepage = "https://github.com/ptzz/lf.vim/"; }; - lh-brackets = buildVimPluginFrom2Nix { + lh-brackets = buildVimPlugin { pname = "lh-brackets"; version = "2023-05-16"; src = fetchFromGitHub { @@ -4917,7 +4917,7 @@ final: prev: meta.homepage = "https://github.com/LucHermitte/lh-brackets/"; }; - lh-vim-lib = buildVimPluginFrom2Nix { + lh-vim-lib = buildVimPlugin { pname = "lh-vim-lib"; version = "2023-05-16"; src = fetchFromGitHub { @@ -4929,7 +4929,7 @@ final: prev: meta.homepage = "https://github.com/LucHermitte/lh-vim-lib/"; }; - lightline-ale = buildVimPluginFrom2Nix { + lightline-ale = buildVimPlugin { pname = "lightline-ale"; version = "2021-06-09"; src = fetchFromGitHub { @@ -4941,7 +4941,7 @@ final: prev: meta.homepage = "https://github.com/maximbaz/lightline-ale/"; }; - lightline-bufferline = buildVimPluginFrom2Nix { + lightline-bufferline = buildVimPlugin { pname = "lightline-bufferline"; version = "2023-06-06"; src = fetchFromGitHub { @@ -4953,7 +4953,7 @@ final: prev: meta.homepage = "https://github.com/mengelbrecht/lightline-bufferline/"; }; - lightline-gruvbox-vim = buildVimPluginFrom2Nix { + lightline-gruvbox-vim = buildVimPlugin { pname = "lightline-gruvbox.vim"; version = "2023-04-02"; src = fetchFromGitHub { @@ -4965,7 +4965,7 @@ final: prev: meta.homepage = "https://github.com/shinchu/lightline-gruvbox.vim/"; }; - lightline-lsp = buildVimPluginFrom2Nix { + lightline-lsp = buildVimPlugin { pname = "lightline-lsp"; version = "2023-03-15"; src = fetchFromGitHub { @@ -4977,7 +4977,7 @@ final: prev: meta.homepage = "https://github.com/spywhere/lightline-lsp/"; }; - lightline-vim = buildVimPluginFrom2Nix { + lightline-vim = buildVimPlugin { pname = "lightline.vim"; version = "2023-09-03"; src = fetchFromGitHub { @@ -4989,7 +4989,7 @@ final: prev: meta.homepage = "https://github.com/itchyny/lightline.vim/"; }; - lightspeed-nvim = buildVimPluginFrom2Nix { + lightspeed-nvim = buildVimPlugin { pname = "lightspeed.nvim"; version = "2022-10-21"; src = fetchFromGitHub { @@ -5001,7 +5001,7 @@ final: prev: meta.homepage = "https://github.com/ggandor/lightspeed.nvim/"; }; - limelight-vim = buildVimPluginFrom2Nix { + limelight-vim = buildVimPlugin { pname = "limelight.vim"; version = "2022-08-03"; src = fetchFromGitHub { @@ -5013,7 +5013,7 @@ final: prev: meta.homepage = "https://github.com/junegunn/limelight.vim/"; }; - lingua-franca-vim = buildVimPluginFrom2Nix { + lingua-franca-vim = buildVimPlugin { pname = "lingua-franca.vim"; version = "2021-09-05"; src = fetchFromGitHub { @@ -5025,7 +5025,7 @@ final: prev: meta.homepage = "https://github.com/lf-lang/lingua-franca.vim/"; }; - lir-nvim = buildVimPluginFrom2Nix { + lir-nvim = buildVimPlugin { pname = "lir.nvim"; version = "2023-07-12"; src = fetchFromGitHub { @@ -5037,7 +5037,7 @@ final: prev: meta.homepage = "https://github.com/tamago324/lir.nvim/"; }; - lispdocs-nvim = buildVimPluginFrom2Nix { + lispdocs-nvim = buildVimPlugin { pname = "lispdocs.nvim"; version = "2022-07-05"; src = fetchFromGitHub { @@ -5049,7 +5049,7 @@ final: prev: meta.homepage = "https://github.com/kkharji/lispdocs.nvim/"; }; - litee-calltree-nvim = buildVimPluginFrom2Nix { + litee-calltree-nvim = buildVimPlugin { pname = "litee-calltree.nvim"; version = "2022-09-28"; src = fetchFromGitHub { @@ -5061,7 +5061,7 @@ final: prev: meta.homepage = "https://github.com/ldelossa/litee-calltree.nvim/"; }; - litee-filetree-nvim = buildVimPluginFrom2Nix { + litee-filetree-nvim = buildVimPlugin { pname = "litee-filetree.nvim"; version = "2022-09-27"; src = fetchFromGitHub { @@ -5073,7 +5073,7 @@ final: prev: meta.homepage = "https://github.com/ldelossa/litee-filetree.nvim/"; }; - litee-symboltree-nvim = buildVimPluginFrom2Nix { + litee-symboltree-nvim = buildVimPlugin { pname = "litee-symboltree.nvim"; version = "2022-09-28"; src = fetchFromGitHub { @@ -5085,7 +5085,7 @@ final: prev: meta.homepage = "https://github.com/ldelossa/litee-symboltree.nvim/"; }; - litee-nvim = buildVimPluginFrom2Nix { + litee-nvim = buildVimPlugin { pname = "litee.nvim"; version = "2022-12-11"; src = fetchFromGitHub { @@ -5097,7 +5097,7 @@ final: prev: meta.homepage = "https://github.com/ldelossa/litee.nvim/"; }; - live-command-nvim = buildVimPluginFrom2Nix { + live-command-nvim = buildVimPlugin { pname = "live-command.nvim"; version = "2023-06-05"; src = fetchFromGitHub { @@ -5109,7 +5109,7 @@ final: prev: meta.homepage = "https://github.com/smjonas/live-command.nvim/"; }; - lsp-colors-nvim = buildVimPluginFrom2Nix { + lsp-colors-nvim = buildVimPlugin { pname = "lsp-colors.nvim"; version = "2023-02-27"; src = fetchFromGitHub { @@ -5121,7 +5121,7 @@ final: prev: meta.homepage = "https://github.com/folke/lsp-colors.nvim/"; }; - lsp-format-nvim = buildVimPluginFrom2Nix { + lsp-format-nvim = buildVimPlugin { pname = "lsp-format.nvim"; version = "2023-09-13"; src = fetchFromGitHub { @@ -5133,7 +5133,7 @@ final: prev: meta.homepage = "https://github.com/lukas-reineke/lsp-format.nvim/"; }; - lsp-inlayhints-nvim = buildVimPluginFrom2Nix { + lsp-inlayhints-nvim = buildVimPlugin { pname = "lsp-inlayhints.nvim"; version = "2023-06-08"; src = fetchFromGitHub { @@ -5145,7 +5145,7 @@ final: prev: meta.homepage = "https://github.com/lvimuser/lsp-inlayhints.nvim/"; }; - lsp-overloads-nvim = buildVimPluginFrom2Nix { + lsp-overloads-nvim = buildVimPlugin { pname = "lsp-overloads.nvim"; version = "2023-08-13"; src = fetchFromGitHub { @@ -5157,7 +5157,7 @@ final: prev: meta.homepage = "https://github.com/Issafalcon/lsp-overloads.nvim/"; }; - lsp-rooter-nvim = buildVimPluginFrom2Nix { + lsp-rooter-nvim = buildVimPlugin { pname = "lsp-rooter.nvim"; version = "2021-08-13"; src = fetchFromGitHub { @@ -5169,7 +5169,7 @@ final: prev: meta.homepage = "https://github.com/ahmedkhalf/lsp-rooter.nvim/"; }; - lsp-status-nvim = buildVimPluginFrom2Nix { + lsp-status-nvim = buildVimPlugin { pname = "lsp-status.nvim"; version = "2022-08-03"; src = fetchFromGitHub { @@ -5181,7 +5181,7 @@ final: prev: meta.homepage = "https://github.com/nvim-lua/lsp-status.nvim/"; }; - lsp-zero-nvim = buildVimPluginFrom2Nix { + lsp-zero-nvim = buildVimPlugin { pname = "lsp-zero.nvim"; version = "2023-08-23"; src = fetchFromGitHub { @@ -5193,7 +5193,7 @@ final: prev: meta.homepage = "https://github.com/VonHeikemen/lsp-zero.nvim/"; }; - lsp_extensions-nvim = buildVimPluginFrom2Nix { + lsp_extensions-nvim = buildVimPlugin { pname = "lsp_extensions.nvim"; version = "2022-07-07"; src = fetchFromGitHub { @@ -5205,7 +5205,7 @@ final: prev: meta.homepage = "https://github.com/nvim-lua/lsp_extensions.nvim/"; }; - lsp_lines-nvim = buildVimPluginFrom2Nix { + lsp_lines-nvim = buildVimPlugin { pname = "lsp_lines.nvim"; version = "2023-05-15"; src = fetchgit { @@ -5216,7 +5216,7 @@ final: prev: meta.homepage = "https://git.sr.ht/~whynothugo/lsp_lines.nvim"; }; - lsp_signature-nvim = buildVimPluginFrom2Nix { + lsp_signature-nvim = buildVimPlugin { pname = "lsp_signature.nvim"; version = "2023-09-11"; src = fetchFromGitHub { @@ -5228,7 +5228,7 @@ final: prev: meta.homepage = "https://github.com/ray-x/lsp_signature.nvim/"; }; - lspcontainers-nvim = buildVimPluginFrom2Nix { + lspcontainers-nvim = buildVimPlugin { pname = "lspcontainers.nvim"; version = "2023-06-03"; src = fetchFromGitHub { @@ -5240,7 +5240,7 @@ final: prev: meta.homepage = "https://github.com/lspcontainers/lspcontainers.nvim/"; }; - lspkind-nvim = buildVimPluginFrom2Nix { + lspkind-nvim = buildVimPlugin { pname = "lspkind-nvim"; version = "2023-05-05"; src = fetchFromGitHub { @@ -5252,7 +5252,7 @@ final: prev: meta.homepage = "https://github.com/onsails/lspkind.nvim/"; }; - lspsaga-nvim = buildVimPluginFrom2Nix { + lspsaga-nvim = buildVimPlugin { pname = "lspsaga.nvim"; version = "2023-09-15"; src = fetchFromGitHub { @@ -5264,7 +5264,7 @@ final: prev: meta.homepage = "https://github.com/nvimdev/lspsaga.nvim/"; }; - ltex_extra-nvim = buildVimPluginFrom2Nix { + ltex_extra-nvim = buildVimPlugin { pname = "ltex_extra.nvim"; version = "2023-07-28"; src = fetchFromGitHub { @@ -5276,7 +5276,7 @@ final: prev: meta.homepage = "https://github.com/barreiroleo/ltex_extra.nvim/"; }; - lualine-lsp-progress = buildVimPluginFrom2Nix { + lualine-lsp-progress = buildVimPlugin { pname = "lualine-lsp-progress"; version = "2021-10-23"; src = fetchFromGitHub { @@ -5288,7 +5288,7 @@ final: prev: meta.homepage = "https://github.com/arkav/lualine-lsp-progress/"; }; - lualine-nvim = buildVimPluginFrom2Nix { + lualine-nvim = buildVimPlugin { pname = "lualine.nvim"; version = "2023-08-03"; src = fetchFromGitHub { @@ -5300,7 +5300,7 @@ final: prev: meta.homepage = "https://github.com/nvim-lualine/lualine.nvim/"; }; - luasnip = buildVimPluginFrom2Nix { + luasnip = buildVimPlugin { pname = "luasnip"; version = "2023-08-31"; src = fetchFromGitHub { @@ -5313,7 +5313,7 @@ final: prev: meta.homepage = "https://github.com/l3mon4d3/luasnip/"; }; - luatab-nvim = buildVimPluginFrom2Nix { + luatab-nvim = buildVimPlugin { pname = "luatab.nvim"; version = "2021-12-05"; src = fetchFromGitHub { @@ -5337,7 +5337,7 @@ final: prev: meta.homepage = "https://github.com/rktjmp/lush.nvim/"; }; - lushtags = buildVimPluginFrom2Nix { + lushtags = buildVimPlugin { pname = "lushtags"; version = "2017-04-19"; src = fetchFromGitHub { @@ -5349,7 +5349,7 @@ final: prev: meta.homepage = "https://github.com/mkasa/lushtags/"; }; - magma-nvim-goose = buildVimPluginFrom2Nix { + magma-nvim-goose = buildVimPlugin { pname = "magma-nvim-goose"; version = "2023-07-04"; src = fetchFromGitHub { @@ -5361,7 +5361,7 @@ final: prev: meta.homepage = "https://github.com/WhiteBlackGoose/magma-nvim-goose/"; }; - mark-radar-nvim = buildVimPluginFrom2Nix { + mark-radar-nvim = buildVimPlugin { pname = "mark-radar.nvim"; version = "2021-06-22"; src = fetchFromGitHub { @@ -5373,7 +5373,7 @@ final: prev: meta.homepage = "https://github.com/winston0410/mark-radar.nvim/"; }; - markdown-preview-nvim = buildVimPluginFrom2Nix { + markdown-preview-nvim = buildVimPlugin { pname = "markdown-preview.nvim"; version = "2022-05-13"; src = fetchFromGitHub { @@ -5385,7 +5385,7 @@ final: prev: meta.homepage = "https://github.com/iamcco/markdown-preview.nvim/"; }; - markid = buildVimPluginFrom2Nix { + markid = buildVimPlugin { pname = "markid"; version = "2023-07-01"; src = fetchFromGitHub { @@ -5397,7 +5397,7 @@ final: prev: meta.homepage = "https://github.com/David-Kunz/markid/"; }; - marks-nvim = buildVimPluginFrom2Nix { + marks-nvim = buildVimPlugin { pname = "marks.nvim"; version = "2023-02-25"; src = fetchFromGitHub { @@ -5409,7 +5409,7 @@ final: prev: meta.homepage = "https://github.com/chentoast/marks.nvim/"; }; - mason-lspconfig-nvim = buildVimPluginFrom2Nix { + mason-lspconfig-nvim = buildVimPlugin { pname = "mason-lspconfig.nvim"; version = "2023-09-14"; src = fetchFromGitHub { @@ -5421,7 +5421,7 @@ final: prev: meta.homepage = "https://github.com/williamboman/mason-lspconfig.nvim/"; }; - mason-tool-installer-nvim = buildVimPluginFrom2Nix { + mason-tool-installer-nvim = buildVimPlugin { pname = "mason-tool-installer.nvim"; version = "2023-07-13"; src = fetchFromGitHub { @@ -5433,7 +5433,7 @@ final: prev: meta.homepage = "https://github.com/WhoIsSethDaniel/mason-tool-installer.nvim/"; }; - mason-nvim = buildVimPluginFrom2Nix { + mason-nvim = buildVimPlugin { pname = "mason.nvim"; version = "2023-09-10"; src = fetchFromGitHub { @@ -5445,7 +5445,7 @@ final: prev: meta.homepage = "https://github.com/williamboman/mason.nvim/"; }; - matchit-zip = buildVimPluginFrom2Nix { + matchit-zip = buildVimPlugin { pname = "matchit.zip"; version = "2010-10-18"; src = fetchFromGitHub { @@ -5457,7 +5457,7 @@ final: prev: meta.homepage = "https://github.com/vim-scripts/matchit.zip/"; }; - material-nvim = buildVimPluginFrom2Nix { + material-nvim = buildVimPlugin { pname = "material.nvim"; version = "2023-07-11"; src = fetchFromGitHub { @@ -5469,7 +5469,7 @@ final: prev: meta.homepage = "https://github.com/marko-cerovac/material.nvim/"; }; - material-vim = buildVimPluginFrom2Nix { + material-vim = buildVimPlugin { pname = "material.vim"; version = "2023-02-09"; src = fetchFromGitHub { @@ -5481,7 +5481,7 @@ final: prev: meta.homepage = "https://github.com/kaicataldo/material.vim/"; }; - mayansmoke = buildVimPluginFrom2Nix { + mayansmoke = buildVimPlugin { pname = "mayansmoke"; version = "2010-10-18"; src = fetchFromGitHub { @@ -5493,7 +5493,7 @@ final: prev: meta.homepage = "https://github.com/vim-scripts/mayansmoke/"; }; - mediawiki-vim = buildVimPluginFrom2Nix { + mediawiki-vim = buildVimPlugin { pname = "mediawiki.vim"; version = "2015-11-15"; src = fetchFromGitHub { @@ -5505,7 +5505,7 @@ final: prev: meta.homepage = "https://github.com/chikamichi/mediawiki.vim/"; }; - melange-nvim = buildVimPluginFrom2Nix { + melange-nvim = buildVimPlugin { pname = "melange-nvim"; version = "2023-08-11"; src = fetchFromGitHub { @@ -5517,7 +5517,7 @@ final: prev: meta.homepage = "https://github.com/savq/melange-nvim/"; }; - mind-nvim = buildVimPluginFrom2Nix { + mind-nvim = buildVimPlugin { pname = "mind.nvim"; version = "2023-03-22"; src = fetchFromGitHub { @@ -5529,7 +5529,7 @@ final: prev: meta.homepage = "https://github.com/phaazon/mind.nvim/"; }; - mini-nvim = buildVimPluginFrom2Nix { + mini-nvim = buildVimPlugin { pname = "mini.nvim"; version = "2023-09-14"; src = fetchFromGitHub { @@ -5541,7 +5541,7 @@ final: prev: meta.homepage = "https://github.com/echasnovski/mini.nvim/"; }; - minimap-vim = buildVimPluginFrom2Nix { + minimap-vim = buildVimPlugin { pname = "minimap.vim"; version = "2023-07-25"; src = fetchFromGitHub { @@ -5553,7 +5553,7 @@ final: prev: meta.homepage = "https://github.com/wfxr/minimap.vim/"; }; - mkdir-nvim = buildVimPluginFrom2Nix { + mkdir-nvim = buildVimPlugin { pname = "mkdir.nvim"; version = "2022-07-23"; src = fetchFromGitHub { @@ -5565,7 +5565,7 @@ final: prev: meta.homepage = "https://github.com/jghauser/mkdir.nvim/"; }; - mkdnflow-nvim = buildVimPluginFrom2Nix { + mkdnflow-nvim = buildVimPlugin { pname = "mkdnflow.nvim"; version = "2023-07-05"; src = fetchFromGitHub { @@ -5577,7 +5577,7 @@ final: prev: meta.homepage = "https://github.com/jakewvincent/mkdnflow.nvim/"; }; - mkdx = buildVimPluginFrom2Nix { + mkdx = buildVimPlugin { pname = "mkdx"; version = "2023-08-23"; src = fetchFromGitHub { @@ -5589,7 +5589,7 @@ final: prev: meta.homepage = "https://github.com/SidOfc/mkdx/"; }; - modicator-nvim = buildVimPluginFrom2Nix { + modicator-nvim = buildVimPlugin { pname = "modicator.nvim"; version = "2023-08-25"; src = fetchFromGitHub { @@ -5601,7 +5601,7 @@ final: prev: meta.homepage = "https://github.com/mawkler/modicator.nvim/"; }; - molokai = buildVimPluginFrom2Nix { + molokai = buildVimPlugin { pname = "molokai"; version = "2015-11-11"; src = fetchFromGitHub { @@ -5613,7 +5613,7 @@ final: prev: meta.homepage = "https://github.com/tomasr/molokai/"; }; - monokai-pro-nvim = buildVimPluginFrom2Nix { + monokai-pro-nvim = buildVimPlugin { pname = "monokai-pro.nvim"; version = "2023-09-05"; src = fetchFromGitHub { @@ -5625,7 +5625,7 @@ final: prev: meta.homepage = "https://github.com/loctvl842/monokai-pro.nvim/"; }; - moonscript-vim = buildVimPluginFrom2Nix { + moonscript-vim = buildVimPlugin { pname = "moonscript-vim"; version = "2016-11-22"; src = fetchFromGitHub { @@ -5637,7 +5637,7 @@ final: prev: meta.homepage = "https://github.com/leafo/moonscript-vim/"; }; - mru = buildVimPluginFrom2Nix { + mru = buildVimPlugin { pname = "mru"; version = "2023-05-27"; src = fetchFromGitHub { @@ -5649,7 +5649,7 @@ final: prev: meta.homepage = "https://github.com/yegappan/mru/"; }; - multicursors-nvim = buildVimPluginFrom2Nix { + multicursors-nvim = buildVimPlugin { pname = "multicursors.nvim"; version = "2023-09-16"; src = fetchFromGitHub { @@ -5661,7 +5661,7 @@ final: prev: meta.homepage = "https://github.com/smoka7/multicursors.nvim/"; }; - nabla-nvim = buildVimPluginFrom2Nix { + nabla-nvim = buildVimPlugin { pname = "nabla.nvim"; version = "2023-04-22"; src = fetchFromGitHub { @@ -5673,7 +5673,7 @@ final: prev: meta.homepage = "https://github.com/jbyuki/nabla.nvim/"; }; - ncm2 = buildVimPluginFrom2Nix { + ncm2 = buildVimPlugin { pname = "ncm2"; version = "2022-03-17"; src = fetchFromGitHub { @@ -5685,7 +5685,7 @@ final: prev: meta.homepage = "https://github.com/ncm2/ncm2/"; }; - ncm2-bufword = buildVimPluginFrom2Nix { + ncm2-bufword = buildVimPlugin { pname = "ncm2-bufword"; version = "2019-01-19"; src = fetchFromGitHub { @@ -5697,7 +5697,7 @@ final: prev: meta.homepage = "https://github.com/ncm2/ncm2-bufword/"; }; - ncm2-cssomni = buildVimPluginFrom2Nix { + ncm2-cssomni = buildVimPlugin { pname = "ncm2-cssomni"; version = "2018-07-09"; src = fetchFromGitHub { @@ -5709,7 +5709,7 @@ final: prev: meta.homepage = "https://github.com/ncm2/ncm2-cssomni/"; }; - ncm2-dictionary = buildVimPluginFrom2Nix { + ncm2-dictionary = buildVimPlugin { pname = "ncm2-dictionary"; version = "2018-11-15"; src = fetchFromGitHub { @@ -5721,7 +5721,7 @@ final: prev: meta.homepage = "https://github.com/yuki-yano/ncm2-dictionary/"; }; - ncm2-github = buildVimPluginFrom2Nix { + ncm2-github = buildVimPlugin { pname = "ncm2-github"; version = "2018-08-01"; src = fetchFromGitHub { @@ -5733,7 +5733,7 @@ final: prev: meta.homepage = "https://github.com/ncm2/ncm2-github/"; }; - ncm2-html-subscope = buildVimPluginFrom2Nix { + ncm2-html-subscope = buildVimPlugin { pname = "ncm2-html-subscope"; version = "2018-07-01"; src = fetchFromGitHub { @@ -5745,7 +5745,7 @@ final: prev: meta.homepage = "https://github.com/ncm2/ncm2-html-subscope/"; }; - ncm2-jedi = buildVimPluginFrom2Nix { + ncm2-jedi = buildVimPlugin { pname = "ncm2-jedi"; version = "2021-01-05"; src = fetchFromGitHub { @@ -5757,7 +5757,7 @@ final: prev: meta.homepage = "https://github.com/ncm2/ncm2-jedi/"; }; - ncm2-markdown-subscope = buildVimPluginFrom2Nix { + ncm2-markdown-subscope = buildVimPlugin { pname = "ncm2-markdown-subscope"; version = "2020-03-09"; src = fetchFromGitHub { @@ -5769,7 +5769,7 @@ final: prev: meta.homepage = "https://github.com/ncm2/ncm2-markdown-subscope/"; }; - ncm2-neoinclude = buildVimPluginFrom2Nix { + ncm2-neoinclude = buildVimPlugin { pname = "ncm2-neoinclude"; version = "2020-07-19"; src = fetchFromGitHub { @@ -5781,7 +5781,7 @@ final: prev: meta.homepage = "https://github.com/ncm2/ncm2-neoinclude/"; }; - ncm2-neosnippet = buildVimPluginFrom2Nix { + ncm2-neosnippet = buildVimPlugin { pname = "ncm2-neosnippet"; version = "2021-10-08"; src = fetchFromGitHub { @@ -5793,7 +5793,7 @@ final: prev: meta.homepage = "https://github.com/ncm2/ncm2-neosnippet/"; }; - ncm2-path = buildVimPluginFrom2Nix { + ncm2-path = buildVimPlugin { pname = "ncm2-path"; version = "2019-02-20"; src = fetchFromGitHub { @@ -5805,7 +5805,7 @@ final: prev: meta.homepage = "https://github.com/ncm2/ncm2-path/"; }; - ncm2-syntax = buildVimPluginFrom2Nix { + ncm2-syntax = buildVimPlugin { pname = "ncm2-syntax"; version = "2020-07-19"; src = fetchFromGitHub { @@ -5817,7 +5817,7 @@ final: prev: meta.homepage = "https://github.com/ncm2/ncm2-syntax/"; }; - ncm2-tagprefix = buildVimPluginFrom2Nix { + ncm2-tagprefix = buildVimPlugin { pname = "ncm2-tagprefix"; version = "2018-11-08"; src = fetchFromGitHub { @@ -5829,7 +5829,7 @@ final: prev: meta.homepage = "https://github.com/ncm2/ncm2-tagprefix/"; }; - ncm2-tmux = buildVimPluginFrom2Nix { + ncm2-tmux = buildVimPlugin { pname = "ncm2-tmux"; version = "2019-01-11"; src = fetchFromGitHub { @@ -5841,7 +5841,7 @@ final: prev: meta.homepage = "https://github.com/ncm2/ncm2-tmux/"; }; - ncm2-ultisnips = buildVimPluginFrom2Nix { + ncm2-ultisnips = buildVimPlugin { pname = "ncm2-ultisnips"; version = "2019-01-26"; src = fetchFromGitHub { @@ -5853,7 +5853,7 @@ final: prev: meta.homepage = "https://github.com/ncm2/ncm2-ultisnips/"; }; - ncm2-vim = buildVimPluginFrom2Nix { + ncm2-vim = buildVimPlugin { pname = "ncm2-vim"; version = "2020-07-19"; src = fetchFromGitHub { @@ -5865,7 +5865,7 @@ final: prev: meta.homepage = "https://github.com/ncm2/ncm2-vim/"; }; - neco-ghc = buildVimPluginFrom2Nix { + neco-ghc = buildVimPlugin { pname = "neco-ghc"; version = "2021-02-22"; src = fetchFromGitHub { @@ -5877,7 +5877,7 @@ final: prev: meta.homepage = "https://github.com/eagletmt/neco-ghc/"; }; - neco-look = buildVimPluginFrom2Nix { + neco-look = buildVimPlugin { pname = "neco-look"; version = "2021-07-26"; src = fetchFromGitHub { @@ -5889,7 +5889,7 @@ final: prev: meta.homepage = "https://github.com/ujihisa/neco-look/"; }; - neco-syntax = buildVimPluginFrom2Nix { + neco-syntax = buildVimPlugin { pname = "neco-syntax"; version = "2020-09-13"; src = fetchFromGitHub { @@ -5901,7 +5901,7 @@ final: prev: meta.homepage = "https://github.com/Shougo/neco-syntax/"; }; - neco-vim = buildVimPluginFrom2Nix { + neco-vim = buildVimPlugin { pname = "neco-vim"; version = "2023-08-15"; src = fetchFromGitHub { @@ -5913,7 +5913,7 @@ final: prev: meta.homepage = "https://github.com/Shougo/neco-vim/"; }; - neo-tree-nvim = buildVimPluginFrom2Nix { + neo-tree-nvim = buildVimPlugin { pname = "neo-tree.nvim"; version = "2023-09-16"; src = fetchFromGitHub { @@ -5925,7 +5925,7 @@ final: prev: meta.homepage = "https://github.com/nvim-neo-tree/neo-tree.nvim/"; }; - neocomplete-vim = buildVimPluginFrom2Nix { + neocomplete-vim = buildVimPlugin { pname = "neocomplete.vim"; version = "2023-05-18"; src = fetchFromGitHub { @@ -5937,7 +5937,7 @@ final: prev: meta.homepage = "https://github.com/Shougo/neocomplete.vim/"; }; - neoconf-nvim = buildVimPluginFrom2Nix { + neoconf-nvim = buildVimPlugin { pname = "neoconf.nvim"; version = "2023-09-16"; src = fetchFromGitHub { @@ -5949,7 +5949,7 @@ final: prev: meta.homepage = "https://github.com/folke/neoconf.nvim/"; }; - neodark-vim = buildVimPluginFrom2Nix { + neodark-vim = buildVimPlugin { pname = "neodark.vim"; version = "2023-07-15"; src = fetchFromGitHub { @@ -5961,7 +5961,7 @@ final: prev: meta.homepage = "https://github.com/KeitaNakamura/neodark.vim/"; }; - neodev-nvim = buildVimPluginFrom2Nix { + neodev-nvim = buildVimPlugin { pname = "neodev.nvim"; version = "2023-09-15"; src = fetchFromGitHub { @@ -5973,7 +5973,7 @@ final: prev: meta.homepage = "https://github.com/folke/neodev.nvim/"; }; - neoformat = buildVimPluginFrom2Nix { + neoformat = buildVimPlugin { pname = "neoformat"; version = "2023-08-20"; src = fetchFromGitHub { @@ -5985,7 +5985,7 @@ final: prev: meta.homepage = "https://github.com/sbdchd/neoformat/"; }; - neogen = buildVimPluginFrom2Nix { + neogen = buildVimPlugin { pname = "neogen"; version = "2023-09-09"; src = fetchFromGitHub { @@ -5997,7 +5997,7 @@ final: prev: meta.homepage = "https://github.com/danymat/neogen/"; }; - neogit = buildVimPluginFrom2Nix { + neogit = buildVimPlugin { pname = "neogit"; version = "2023-09-15"; src = fetchFromGitHub { @@ -6009,7 +6009,7 @@ final: prev: meta.homepage = "https://github.com/NeogitOrg/neogit/"; }; - neoinclude-vim = buildVimPluginFrom2Nix { + neoinclude-vim = buildVimPlugin { pname = "neoinclude.vim"; version = "2020-09-13"; src = fetchFromGitHub { @@ -6021,7 +6021,7 @@ final: prev: meta.homepage = "https://github.com/Shougo/neoinclude.vim/"; }; - neomake = buildVimPluginFrom2Nix { + neomake = buildVimPlugin { pname = "neomake"; version = "2023-02-20"; src = fetchFromGitHub { @@ -6033,7 +6033,7 @@ final: prev: meta.homepage = "https://github.com/neomake/neomake/"; }; - neomru-vim = buildVimPluginFrom2Nix { + neomru-vim = buildVimPlugin { pname = "neomru.vim"; version = "2020-02-05"; src = fetchFromGitHub { @@ -6045,7 +6045,7 @@ final: prev: meta.homepage = "https://github.com/Shougo/neomru.vim/"; }; - neon = buildVimPluginFrom2Nix { + neon = buildVimPlugin { pname = "neon"; version = "2022-11-27"; src = fetchFromGitHub { @@ -6057,7 +6057,7 @@ final: prev: meta.homepage = "https://github.com/rafamadriz/neon/"; }; - neorepl-nvim = buildVimPluginFrom2Nix { + neorepl-nvim = buildVimPlugin { pname = "neorepl.nvim"; version = "2022-11-07"; src = fetchFromGitHub { @@ -6069,7 +6069,7 @@ final: prev: meta.homepage = "https://github.com/ii14/neorepl.nvim/"; }; - neorg = buildVimPluginFrom2Nix { + neorg = buildVimPlugin { pname = "neorg"; version = "2023-09-15"; src = fetchFromGitHub { @@ -6081,7 +6081,7 @@ final: prev: meta.homepage = "https://github.com/nvim-neorg/neorg/"; }; - neorg-telescope = buildVimPluginFrom2Nix { + neorg-telescope = buildVimPlugin { pname = "neorg-telescope"; version = "2023-08-06"; src = fetchFromGitHub { @@ -6093,7 +6093,7 @@ final: prev: meta.homepage = "https://github.com/nvim-neorg/neorg-telescope/"; }; - neoscroll-nvim = buildVimPluginFrom2Nix { + neoscroll-nvim = buildVimPlugin { pname = "neoscroll.nvim"; version = "2023-08-10"; src = fetchFromGitHub { @@ -6105,7 +6105,7 @@ final: prev: meta.homepage = "https://github.com/karb94/neoscroll.nvim/"; }; - neosnippet-snippets = buildVimPluginFrom2Nix { + neosnippet-snippets = buildVimPlugin { pname = "neosnippet-snippets"; version = "2022-04-01"; src = fetchFromGitHub { @@ -6117,7 +6117,7 @@ final: prev: meta.homepage = "https://github.com/Shougo/neosnippet-snippets/"; }; - neosnippet-vim = buildVimPluginFrom2Nix { + neosnippet-vim = buildVimPlugin { pname = "neosnippet.vim"; version = "2023-07-23"; src = fetchFromGitHub { @@ -6129,7 +6129,7 @@ final: prev: meta.homepage = "https://github.com/Shougo/neosnippet.vim/"; }; - neoterm = buildVimPluginFrom2Nix { + neoterm = buildVimPlugin { pname = "neoterm"; version = "2023-03-09"; src = fetchFromGitHub { @@ -6141,7 +6141,7 @@ final: prev: meta.homepage = "https://github.com/kassio/neoterm/"; }; - neotest = buildVimPluginFrom2Nix { + neotest = buildVimPlugin { pname = "neotest"; version = "2023-09-10"; src = fetchFromGitHub { @@ -6153,7 +6153,7 @@ final: prev: meta.homepage = "https://github.com/nvim-neotest/neotest/"; }; - neotest-dart = buildVimPluginFrom2Nix { + neotest-dart = buildVimPlugin { pname = "neotest-dart"; version = "2023-08-27"; src = fetchFromGitHub { @@ -6165,7 +6165,7 @@ final: prev: meta.homepage = "https://github.com/sidlatau/neotest-dart/"; }; - neotest-deno = buildVimPluginFrom2Nix { + neotest-deno = buildVimPlugin { pname = "neotest-deno"; version = "2022-12-09"; src = fetchFromGitHub { @@ -6177,7 +6177,7 @@ final: prev: meta.homepage = "https://github.com/MarkEmmons/neotest-deno/"; }; - neotest-dotnet = buildVimPluginFrom2Nix { + neotest-dotnet = buildVimPlugin { pname = "neotest-dotnet"; version = "2023-08-13"; src = fetchFromGitHub { @@ -6189,7 +6189,7 @@ final: prev: meta.homepage = "https://github.com/Issafalcon/neotest-dotnet/"; }; - neotest-elixir = buildVimPluginFrom2Nix { + neotest-elixir = buildVimPlugin { pname = "neotest-elixir"; version = "2023-08-23"; src = fetchFromGitHub { @@ -6202,7 +6202,7 @@ final: prev: meta.homepage = "https://github.com/jfpedroza/neotest-elixir/"; }; - neotest-go = buildVimPluginFrom2Nix { + neotest-go = buildVimPlugin { pname = "neotest-go"; version = "2023-09-10"; src = fetchFromGitHub { @@ -6214,7 +6214,7 @@ final: prev: meta.homepage = "https://github.com/nvim-neotest/neotest-go/"; }; - neotest-haskell = buildVimPluginFrom2Nix { + neotest-haskell = buildVimPlugin { pname = "neotest-haskell"; version = "2023-09-11"; src = fetchFromGitHub { @@ -6226,7 +6226,7 @@ final: prev: meta.homepage = "https://github.com/MrcJkb/neotest-haskell/"; }; - neotest-jest = buildVimPluginFrom2Nix { + neotest-jest = buildVimPlugin { pname = "neotest-jest"; version = "2023-09-03"; src = fetchFromGitHub { @@ -6238,7 +6238,7 @@ final: prev: meta.homepage = "https://github.com/nvim-neotest/neotest-jest/"; }; - neotest-pest = buildVimPluginFrom2Nix { + neotest-pest = buildVimPlugin { pname = "neotest-pest"; version = "2022-11-24"; src = fetchFromGitHub { @@ -6250,7 +6250,7 @@ final: prev: meta.homepage = "https://github.com/theutz/neotest-pest/"; }; - neotest-phpunit = buildVimPluginFrom2Nix { + neotest-phpunit = buildVimPlugin { pname = "neotest-phpunit"; version = "2023-06-04"; src = fetchFromGitHub { @@ -6262,7 +6262,7 @@ final: prev: meta.homepage = "https://github.com/olimorris/neotest-phpunit/"; }; - neotest-plenary = buildVimPluginFrom2Nix { + neotest-plenary = buildVimPlugin { pname = "neotest-plenary"; version = "2023-04-27"; src = fetchFromGitHub { @@ -6274,7 +6274,7 @@ final: prev: meta.homepage = "https://github.com/nvim-neotest/neotest-plenary/"; }; - neotest-python = buildVimPluginFrom2Nix { + neotest-python = buildVimPlugin { pname = "neotest-python"; version = "2023-08-25"; src = fetchFromGitHub { @@ -6286,7 +6286,7 @@ final: prev: meta.homepage = "https://github.com/nvim-neotest/neotest-python/"; }; - neotest-rspec = buildVimPluginFrom2Nix { + neotest-rspec = buildVimPlugin { pname = "neotest-rspec"; version = "2023-08-25"; src = fetchFromGitHub { @@ -6298,7 +6298,7 @@ final: prev: meta.homepage = "https://github.com/olimorris/neotest-rspec/"; }; - neotest-rust = buildVimPluginFrom2Nix { + neotest-rust = buildVimPlugin { pname = "neotest-rust"; version = "2023-09-16"; src = fetchFromGitHub { @@ -6310,7 +6310,7 @@ final: prev: meta.homepage = "https://github.com/rouge8/neotest-rust/"; }; - neotest-scala = buildVimPluginFrom2Nix { + neotest-scala = buildVimPlugin { pname = "neotest-scala"; version = "2022-10-15"; src = fetchFromGitHub { @@ -6322,7 +6322,7 @@ final: prev: meta.homepage = "https://github.com/stevanmilic/neotest-scala/"; }; - neotest-testthat = buildVimPluginFrom2Nix { + neotest-testthat = buildVimPlugin { pname = "neotest-testthat"; version = "2022-07-04"; src = fetchFromGitHub { @@ -6334,7 +6334,7 @@ final: prev: meta.homepage = "https://github.com/shunsambongi/neotest-testthat/"; }; - neotest-vitest = buildVimPluginFrom2Nix { + neotest-vitest = buildVimPlugin { pname = "neotest-vitest"; version = "2023-06-23"; src = fetchFromGitHub { @@ -6346,7 +6346,7 @@ final: prev: meta.homepage = "https://github.com/marilari88/neotest-vitest/"; }; - neovim-ayu = buildVimPluginFrom2Nix { + neovim-ayu = buildVimPlugin { pname = "neovim-ayu"; version = "2023-06-29"; src = fetchFromGitHub { @@ -6358,7 +6358,7 @@ final: prev: meta.homepage = "https://github.com/Shatur/neovim-ayu/"; }; - neovim-fuzzy = buildVimPluginFrom2Nix { + neovim-fuzzy = buildVimPlugin { pname = "neovim-fuzzy"; version = "2023-01-25"; src = fetchFromGitHub { @@ -6370,7 +6370,7 @@ final: prev: meta.homepage = "https://github.com/cloudhead/neovim-fuzzy/"; }; - neovim-sensible = buildVimPluginFrom2Nix { + neovim-sensible = buildVimPlugin { pname = "neovim-sensible"; version = "2017-09-20"; src = fetchFromGitHub { @@ -6382,7 +6382,7 @@ final: prev: meta.homepage = "https://github.com/jeffkreeftmeijer/neovim-sensible/"; }; - neoyank-vim = buildVimPluginFrom2Nix { + neoyank-vim = buildVimPlugin { pname = "neoyank.vim"; version = "2020-12-20"; src = fetchFromGitHub { @@ -6394,7 +6394,7 @@ final: prev: meta.homepage = "https://github.com/Shougo/neoyank.vim/"; }; - nerdcommenter = buildVimPluginFrom2Nix { + nerdcommenter = buildVimPlugin { pname = "nerdcommenter"; version = "2023-08-12"; src = fetchFromGitHub { @@ -6406,7 +6406,7 @@ final: prev: meta.homepage = "https://github.com/preservim/nerdcommenter/"; }; - nerdtree = buildVimPluginFrom2Nix { + nerdtree = buildVimPlugin { pname = "nerdtree"; version = "2023-09-04"; src = fetchFromGitHub { @@ -6418,7 +6418,7 @@ final: prev: meta.homepage = "https://github.com/preservim/nerdtree/"; }; - nerdtree-git-plugin = buildVimPluginFrom2Nix { + nerdtree-git-plugin = buildVimPlugin { pname = "nerdtree-git-plugin"; version = "2021-08-18"; src = fetchFromGitHub { @@ -6430,7 +6430,7 @@ final: prev: meta.homepage = "https://github.com/Xuyuanp/nerdtree-git-plugin/"; }; - netman-nvim = buildVimPluginFrom2Nix { + netman-nvim = buildVimPlugin { pname = "netman.nvim"; version = "2023-04-19"; src = fetchFromGitHub { @@ -6442,7 +6442,7 @@ final: prev: meta.homepage = "https://github.com/miversen33/netman.nvim/"; }; - neuron-nvim = buildVimPluginFrom2Nix { + neuron-nvim = buildVimPlugin { pname = "neuron.nvim"; version = "2022-02-27"; src = fetchFromGitHub { @@ -6454,7 +6454,7 @@ final: prev: meta.homepage = "https://github.com/oberblastmeister/neuron.nvim/"; }; - neuron-vim = buildVimPluginFrom2Nix { + neuron-vim = buildVimPlugin { pname = "neuron.vim"; version = "2023-07-06"; src = fetchFromGitHub { @@ -6466,7 +6466,7 @@ final: prev: meta.homepage = "https://github.com/fiatjaf/neuron.vim/"; }; - nginx-vim = buildVimPluginFrom2Nix { + nginx-vim = buildVimPlugin { pname = "nginx.vim"; version = "2023-01-25"; src = fetchFromGitHub { @@ -6478,7 +6478,7 @@ final: prev: meta.homepage = "https://github.com/chr4/nginx.vim/"; }; - nightfox-nvim = buildVimPluginFrom2Nix { + nightfox-nvim = buildVimPlugin { pname = "nightfox.nvim"; version = "2023-09-05"; src = fetchFromGitHub { @@ -6490,7 +6490,7 @@ final: prev: meta.homepage = "https://github.com/EdenEast/nightfox.nvim/"; }; - nim-vim = buildVimPluginFrom2Nix { + nim-vim = buildVimPlugin { pname = "nim.vim"; version = "2021-11-11"; src = fetchFromGitHub { @@ -6502,7 +6502,7 @@ final: prev: meta.homepage = "https://github.com/zah/nim.vim/"; }; - nix-develop-nvim = buildVimPluginFrom2Nix { + nix-develop-nvim = buildVimPlugin { pname = "nix-develop.nvim"; version = "2023-07-23"; src = fetchFromGitHub { @@ -6514,7 +6514,7 @@ final: prev: meta.homepage = "https://github.com/figsoda/nix-develop.nvim/"; }; - nlsp-settings-nvim = buildVimPluginFrom2Nix { + nlsp-settings-nvim = buildVimPlugin { pname = "nlsp-settings.nvim"; version = "2023-08-23"; src = fetchFromGitHub { @@ -6526,7 +6526,7 @@ final: prev: meta.homepage = "https://github.com/tamago324/nlsp-settings.nvim/"; }; - nlua-nvim = buildVimPluginFrom2Nix { + nlua-nvim = buildVimPlugin { pname = "nlua.nvim"; version = "2022-12-20"; src = fetchFromGitHub { @@ -6538,7 +6538,7 @@ final: prev: meta.homepage = "https://github.com/tjdevries/nlua.nvim/"; }; - nnn-vim = buildVimPluginFrom2Nix { + nnn-vim = buildVimPlugin { pname = "nnn.vim"; version = "2023-05-23"; src = fetchFromGitHub { @@ -6550,7 +6550,7 @@ final: prev: meta.homepage = "https://github.com/mcchrish/nnn.vim/"; }; - no-neck-pain-nvim = buildVimPluginFrom2Nix { + no-neck-pain-nvim = buildVimPlugin { pname = "no-neck-pain.nvim"; version = "2023-06-24"; src = fetchFromGitHub { @@ -6562,7 +6562,7 @@ final: prev: meta.homepage = "https://github.com/shortcuts/no-neck-pain.nvim/"; }; - noice-nvim = buildVimPluginFrom2Nix { + noice-nvim = buildVimPlugin { pname = "noice.nvim"; version = "2023-08-30"; src = fetchFromGitHub { @@ -6574,7 +6574,7 @@ final: prev: meta.homepage = "https://github.com/folke/noice.nvim/"; }; - nord-nvim = buildVimPluginFrom2Nix { + nord-nvim = buildVimPlugin { pname = "nord.nvim"; version = "2023-08-30"; src = fetchFromGitHub { @@ -6586,7 +6586,7 @@ final: prev: meta.homepage = "https://github.com/shaunsingh/nord.nvim/"; }; - nordic-nvim = buildVimPluginFrom2Nix { + nordic-nvim = buildVimPlugin { pname = "nordic.nvim"; version = "2022-12-08"; src = fetchFromGitHub { @@ -6598,7 +6598,7 @@ final: prev: meta.homepage = "https://github.com/andersevenrud/nordic.nvim/"; }; - notifier-nvim = buildVimPluginFrom2Nix { + notifier-nvim = buildVimPlugin { pname = "notifier.nvim"; version = "2023-06-09"; src = fetchFromGitHub { @@ -6610,7 +6610,7 @@ final: prev: meta.homepage = "https://github.com/vigoux/notifier.nvim/"; }; - nterm-nvim = buildVimPluginFrom2Nix { + nterm-nvim = buildVimPlugin { pname = "nterm.nvim"; version = "2022-05-10"; src = fetchFromGitHub { @@ -6622,7 +6622,7 @@ final: prev: meta.homepage = "https://github.com/jlesquembre/nterm.nvim/"; }; - nui-nvim = buildVimPluginFrom2Nix { + nui-nvim = buildVimPlugin { pname = "nui.nvim"; version = "2023-09-06"; src = fetchFromGitHub { @@ -6634,7 +6634,7 @@ final: prev: meta.homepage = "https://github.com/MunifTanjim/nui.nvim/"; }; - null-ls-nvim = buildVimPluginFrom2Nix { + null-ls-nvim = buildVimPlugin { pname = "null-ls.nvim"; version = "2023-08-12"; src = fetchFromGitHub { @@ -6646,7 +6646,7 @@ final: prev: meta.homepage = "https://github.com/jose-elias-alvarez/null-ls.nvim/"; }; - numb-nvim = buildVimPluginFrom2Nix { + numb-nvim = buildVimPlugin { pname = "numb.nvim"; version = "2023-08-25"; src = fetchFromGitHub { @@ -6658,7 +6658,7 @@ final: prev: meta.homepage = "https://github.com/nacro90/numb.nvim/"; }; - nvchad = buildVimPluginFrom2Nix { + nvchad = buildVimPlugin { pname = "nvchad"; version = "2023-09-16"; src = fetchFromGitHub { @@ -6670,7 +6670,7 @@ final: prev: meta.homepage = "https://github.com/nvchad/nvchad/"; }; - nvcode-color-schemes-vim = buildVimPluginFrom2Nix { + nvcode-color-schemes-vim = buildVimPlugin { pname = "nvcode-color-schemes.vim"; version = "2021-07-03"; src = fetchFromGitHub { @@ -6682,7 +6682,7 @@ final: prev: meta.homepage = "https://github.com/ChristianChiarulli/nvcode-color-schemes.vim/"; }; - nvim-FeMaco-lua = buildVimPluginFrom2Nix { + nvim-FeMaco-lua = buildVimPlugin { pname = "nvim-FeMaco.lua"; version = "2023-08-28"; src = fetchFromGitHub { @@ -6694,7 +6694,7 @@ final: prev: meta.homepage = "https://github.com/AckslD/nvim-FeMaco.lua/"; }; - nvim-ale-diagnostic = buildVimPluginFrom2Nix { + nvim-ale-diagnostic = buildVimPlugin { pname = "nvim-ale-diagnostic"; version = "2021-11-06"; src = fetchFromGitHub { @@ -6706,7 +6706,7 @@ final: prev: meta.homepage = "https://github.com/nathanmsmith/nvim-ale-diagnostic/"; }; - nvim-autopairs = buildVimPluginFrom2Nix { + nvim-autopairs = buildVimPlugin { pname = "nvim-autopairs"; version = "2023-09-08"; src = fetchFromGitHub { @@ -6718,7 +6718,7 @@ final: prev: meta.homepage = "https://github.com/windwp/nvim-autopairs/"; }; - nvim-base16 = buildVimPluginFrom2Nix { + nvim-base16 = buildVimPlugin { pname = "nvim-base16"; version = "2023-09-12"; src = fetchFromGitHub { @@ -6730,7 +6730,7 @@ final: prev: meta.homepage = "https://github.com/RRethy/nvim-base16/"; }; - nvim-biscuits = buildVimPluginFrom2Nix { + nvim-biscuits = buildVimPlugin { pname = "nvim-biscuits"; version = "2023-03-28"; src = fetchFromGitHub { @@ -6742,7 +6742,7 @@ final: prev: meta.homepage = "https://github.com/code-biscuits/nvim-biscuits/"; }; - nvim-bqf = buildVimPluginFrom2Nix { + nvim-bqf = buildVimPlugin { pname = "nvim-bqf"; version = "2023-09-12"; src = fetchFromGitHub { @@ -6754,7 +6754,7 @@ final: prev: meta.homepage = "https://github.com/kevinhwang91/nvim-bqf/"; }; - nvim-bufdel = buildVimPluginFrom2Nix { + nvim-bufdel = buildVimPlugin { pname = "nvim-bufdel"; version = "2023-04-13"; src = fetchFromGitHub { @@ -6766,7 +6766,7 @@ final: prev: meta.homepage = "https://github.com/ojroques/nvim-bufdel/"; }; - nvim-cm-racer = buildVimPluginFrom2Nix { + nvim-cm-racer = buildVimPlugin { pname = "nvim-cm-racer"; version = "2017-07-27"; src = fetchFromGitHub { @@ -6790,7 +6790,7 @@ final: prev: meta.homepage = "https://github.com/hrsh7th/nvim-cmp/"; }; - nvim-code-action-menu = buildVimPluginFrom2Nix { + nvim-code-action-menu = buildVimPlugin { pname = "nvim-code-action-menu"; version = "2022-12-20"; src = fetchFromGitHub { @@ -6802,7 +6802,7 @@ final: prev: meta.homepage = "https://github.com/weilbith/nvim-code-action-menu/"; }; - nvim-cokeline = buildVimPluginFrom2Nix { + nvim-cokeline = buildVimPlugin { pname = "nvim-cokeline"; version = "2023-09-08"; src = fetchFromGitHub { @@ -6814,7 +6814,7 @@ final: prev: meta.homepage = "https://github.com/willothy/nvim-cokeline/"; }; - nvim-colorizer-lua = buildVimPluginFrom2Nix { + nvim-colorizer-lua = buildVimPlugin { pname = "nvim-colorizer.lua"; version = "2023-02-27"; src = fetchFromGitHub { @@ -6826,7 +6826,7 @@ final: prev: meta.homepage = "https://github.com/nvchad/nvim-colorizer.lua/"; }; - nvim-comment = buildVimPluginFrom2Nix { + nvim-comment = buildVimPlugin { pname = "nvim-comment"; version = "2022-08-09"; src = fetchFromGitHub { @@ -6838,7 +6838,7 @@ final: prev: meta.homepage = "https://github.com/terrortylor/nvim-comment/"; }; - nvim-compe = buildVimPluginFrom2Nix { + nvim-compe = buildVimPlugin { pname = "nvim-compe"; version = "2021-10-02"; src = fetchFromGitHub { @@ -6850,7 +6850,7 @@ final: prev: meta.homepage = "https://github.com/hrsh7th/nvim-compe/"; }; - nvim-completion-manager = buildVimPluginFrom2Nix { + nvim-completion-manager = buildVimPlugin { pname = "nvim-completion-manager"; version = "2018-07-27"; src = fetchFromGitHub { @@ -6862,7 +6862,7 @@ final: prev: meta.homepage = "https://github.com/roxma/nvim-completion-manager/"; }; - nvim-config-local = buildVimPluginFrom2Nix { + nvim-config-local = buildVimPlugin { pname = "nvim-config-local"; version = "2023-06-15"; src = fetchFromGitHub { @@ -6874,7 +6874,7 @@ final: prev: meta.homepage = "https://github.com/klen/nvim-config-local/"; }; - nvim-coverage = buildVimPluginFrom2Nix { + nvim-coverage = buildVimPlugin { pname = "nvim-coverage"; version = "2023-07-20"; src = fetchFromGitHub { @@ -6886,7 +6886,7 @@ final: prev: meta.homepage = "https://github.com/andythigpen/nvim-coverage/"; }; - nvim-cursorline = buildVimPluginFrom2Nix { + nvim-cursorline = buildVimPlugin { pname = "nvim-cursorline"; version = "2022-04-15"; src = fetchFromGitHub { @@ -6898,7 +6898,7 @@ final: prev: meta.homepage = "https://github.com/yamatsum/nvim-cursorline/"; }; - nvim-dap = buildVimPluginFrom2Nix { + nvim-dap = buildVimPlugin { pname = "nvim-dap"; version = "2023-09-14"; src = fetchFromGitHub { @@ -6910,7 +6910,7 @@ final: prev: meta.homepage = "https://github.com/mfussenegger/nvim-dap/"; }; - nvim-dap-go = buildVimPluginFrom2Nix { + nvim-dap-go = buildVimPlugin { pname = "nvim-dap-go"; version = "2023-08-23"; src = fetchFromGitHub { @@ -6922,7 +6922,7 @@ final: prev: meta.homepage = "https://github.com/leoluz/nvim-dap-go/"; }; - nvim-dap-python = buildVimPluginFrom2Nix { + nvim-dap-python = buildVimPlugin { pname = "nvim-dap-python"; version = "2023-05-23"; src = fetchFromGitHub { @@ -6934,7 +6934,7 @@ final: prev: meta.homepage = "https://github.com/mfussenegger/nvim-dap-python/"; }; - nvim-dap-ui = buildVimPluginFrom2Nix { + nvim-dap-ui = buildVimPlugin { pname = "nvim-dap-ui"; version = "2023-09-10"; src = fetchFromGitHub { @@ -6946,7 +6946,7 @@ final: prev: meta.homepage = "https://github.com/rcarriga/nvim-dap-ui/"; }; - nvim-dap-virtual-text = buildVimPluginFrom2Nix { + nvim-dap-virtual-text = buildVimPlugin { pname = "nvim-dap-virtual-text"; version = "2023-05-25"; src = fetchFromGitHub { @@ -6958,7 +6958,7 @@ final: prev: meta.homepage = "https://github.com/theHamsta/nvim-dap-virtual-text/"; }; - nvim-expand-expr = buildVimPluginFrom2Nix { + nvim-expand-expr = buildVimPlugin { pname = "nvim-expand-expr"; version = "2021-08-14"; src = fetchFromGitHub { @@ -6970,7 +6970,7 @@ final: prev: meta.homepage = "https://github.com/allendang/nvim-expand-expr/"; }; - nvim-fzf = buildVimPluginFrom2Nix { + nvim-fzf = buildVimPlugin { pname = "nvim-fzf"; version = "2023-09-05"; src = fetchFromGitHub { @@ -6982,7 +6982,7 @@ final: prev: meta.homepage = "https://github.com/vijaymarupudi/nvim-fzf/"; }; - nvim-fzf-commands = buildVimPluginFrom2Nix { + nvim-fzf-commands = buildVimPlugin { pname = "nvim-fzf-commands"; version = "2022-12-20"; src = fetchFromGitHub { @@ -6994,7 +6994,7 @@ final: prev: meta.homepage = "https://github.com/vijaymarupudi/nvim-fzf-commands/"; }; - nvim-gdb = buildVimPluginFrom2Nix { + nvim-gdb = buildVimPlugin { pname = "nvim-gdb"; version = "2023-08-16"; src = fetchFromGitHub { @@ -7006,7 +7006,7 @@ final: prev: meta.homepage = "https://github.com/sakhnik/nvim-gdb/"; }; - nvim-gps = buildVimPluginFrom2Nix { + nvim-gps = buildVimPlugin { pname = "nvim-gps"; version = "2022-07-05"; src = fetchFromGitHub { @@ -7018,7 +7018,7 @@ final: prev: meta.homepage = "https://github.com/smiteshp/nvim-gps/"; }; - nvim-highlight-colors = buildVimPluginFrom2Nix { + nvim-highlight-colors = buildVimPlugin { pname = "nvim-highlight-colors"; version = "2023-07-27"; src = fetchFromGitHub { @@ -7030,7 +7030,7 @@ final: prev: meta.homepage = "https://github.com/brenoprata10/nvim-highlight-colors/"; }; - nvim-highlite = buildVimPluginFrom2Nix { + nvim-highlite = buildVimPlugin { pname = "nvim-highlite"; version = "2023-08-29"; src = fetchFromGitHub { @@ -7042,7 +7042,7 @@ final: prev: meta.homepage = "https://github.com/Iron-E/nvim-highlite/"; }; - nvim-hlslens = buildVimPluginFrom2Nix { + nvim-hlslens = buildVimPlugin { pname = "nvim-hlslens"; version = "2023-08-06"; src = fetchFromGitHub { @@ -7054,7 +7054,7 @@ final: prev: meta.homepage = "https://github.com/kevinhwang91/nvim-hlslens/"; }; - nvim-hs-vim = buildVimPluginFrom2Nix { + nvim-hs-vim = buildVimPlugin { pname = "nvim-hs.vim"; version = "2022-01-30"; src = fetchFromGitHub { @@ -7066,7 +7066,7 @@ final: prev: meta.homepage = "https://github.com/neovimhaskell/nvim-hs.vim/"; }; - nvim-jdtls = buildVimPluginFrom2Nix { + nvim-jdtls = buildVimPlugin { pname = "nvim-jdtls"; version = "2023-09-14"; src = fetchFromGitHub { @@ -7078,7 +7078,7 @@ final: prev: meta.homepage = "https://github.com/mfussenegger/nvim-jdtls/"; }; - nvim-jqx = buildVimPluginFrom2Nix { + nvim-jqx = buildVimPlugin { pname = "nvim-jqx"; version = "2023-02-28"; src = fetchFromGitHub { @@ -7090,7 +7090,7 @@ final: prev: meta.homepage = "https://github.com/gennaro-tedesco/nvim-jqx/"; }; - nvim-julia-autotest = buildVimPluginFrom2Nix { + nvim-julia-autotest = buildVimPlugin { pname = "nvim-julia-autotest"; version = "2022-10-31"; src = fetchgit { @@ -7101,7 +7101,7 @@ final: prev: meta.homepage = "https://gitlab.com/usmcamp0811/nvim-julia-autotest"; }; - nvim-lastplace = buildVimPluginFrom2Nix { + nvim-lastplace = buildVimPlugin { pname = "nvim-lastplace"; version = "2023-07-27"; src = fetchFromGitHub { @@ -7113,7 +7113,7 @@ final: prev: meta.homepage = "https://github.com/ethanholz/nvim-lastplace/"; }; - nvim-lightbulb = buildVimPluginFrom2Nix { + nvim-lightbulb = buildVimPlugin { pname = "nvim-lightbulb"; version = "2023-07-20"; src = fetchFromGitHub { @@ -7125,7 +7125,7 @@ final: prev: meta.homepage = "https://github.com/kosayoda/nvim-lightbulb/"; }; - nvim-lightline-lsp = buildVimPluginFrom2Nix { + nvim-lightline-lsp = buildVimPlugin { pname = "nvim-lightline-lsp"; version = "2022-05-30"; src = fetchFromGitHub { @@ -7137,7 +7137,7 @@ final: prev: meta.homepage = "https://github.com/josa42/nvim-lightline-lsp/"; }; - nvim-lilypond-suite = buildVimPluginFrom2Nix { + nvim-lilypond-suite = buildVimPlugin { pname = "nvim-lilypond-suite"; version = "2023-09-15"; src = fetchFromGitHub { @@ -7149,7 +7149,7 @@ final: prev: meta.homepage = "https://github.com/martineausimon/nvim-lilypond-suite/"; }; - nvim-lint = buildVimPluginFrom2Nix { + nvim-lint = buildVimPlugin { pname = "nvim-lint"; version = "2023-09-14"; src = fetchFromGitHub { @@ -7161,7 +7161,7 @@ final: prev: meta.homepage = "https://github.com/mfussenegger/nvim-lint/"; }; - nvim-lsp-notify = buildVimPluginFrom2Nix { + nvim-lsp-notify = buildVimPlugin { pname = "nvim-lsp-notify"; version = "2023-03-19"; src = fetchFromGitHub { @@ -7173,7 +7173,7 @@ final: prev: meta.homepage = "https://github.com/mrded/nvim-lsp-notify/"; }; - nvim-lsp-ts-utils = buildVimPluginFrom2Nix { + nvim-lsp-ts-utils = buildVimPlugin { pname = "nvim-lsp-ts-utils"; version = "2022-07-17"; src = fetchFromGitHub { @@ -7185,7 +7185,7 @@ final: prev: meta.homepage = "https://github.com/jose-elias-alvarez/nvim-lsp-ts-utils/"; }; - nvim-lspconfig = buildVimPluginFrom2Nix { + nvim-lspconfig = buildVimPlugin { pname = "nvim-lspconfig"; version = "2023-09-15"; src = fetchFromGitHub { @@ -7197,7 +7197,7 @@ final: prev: meta.homepage = "https://github.com/neovim/nvim-lspconfig/"; }; - nvim-lsputils = buildVimPluginFrom2Nix { + nvim-lsputils = buildVimPlugin { pname = "nvim-lsputils"; version = "2022-01-29"; src = fetchFromGitHub { @@ -7209,7 +7209,7 @@ final: prev: meta.homepage = "https://github.com/RishabhRD/nvim-lsputils/"; }; - nvim-lua-gf = buildVimPluginFrom2Nix { + nvim-lua-gf = buildVimPlugin { pname = "nvim-lua-gf"; version = "2022-07-31"; src = fetchFromGitHub { @@ -7221,7 +7221,7 @@ final: prev: meta.homepage = "https://github.com/sam4llis/nvim-lua-gf/"; }; - nvim-luadev = buildVimPluginFrom2Nix { + nvim-luadev = buildVimPlugin { pname = "nvim-luadev"; version = "2023-03-13"; src = fetchFromGitHub { @@ -7233,7 +7233,7 @@ final: prev: meta.homepage = "https://github.com/bfredl/nvim-luadev/"; }; - nvim-luapad = buildVimPluginFrom2Nix { + nvim-luapad = buildVimPlugin { pname = "nvim-luapad"; version = "2022-12-11"; src = fetchFromGitHub { @@ -7245,7 +7245,7 @@ final: prev: meta.homepage = "https://github.com/rafcamlet/nvim-luapad/"; }; - nvim-metals = buildVimPluginFrom2Nix { + nvim-metals = buildVimPlugin { pname = "nvim-metals"; version = "2023-08-17"; src = fetchFromGitHub { @@ -7257,7 +7257,7 @@ final: prev: meta.homepage = "https://github.com/scalameta/nvim-metals/"; }; - nvim-moonwalk = buildVimPluginFrom2Nix { + nvim-moonwalk = buildVimPlugin { pname = "nvim-moonwalk"; version = "2022-04-12"; src = fetchFromGitHub { @@ -7269,7 +7269,7 @@ final: prev: meta.homepage = "https://github.com/gpanders/nvim-moonwalk/"; }; - nvim-navbuddy = buildVimPluginFrom2Nix { + nvim-navbuddy = buildVimPlugin { pname = "nvim-navbuddy"; version = "2023-09-14"; src = fetchFromGitHub { @@ -7281,7 +7281,7 @@ final: prev: meta.homepage = "https://github.com/SmiteshP/nvim-navbuddy/"; }; - nvim-navic = buildVimPluginFrom2Nix { + nvim-navic = buildVimPlugin { pname = "nvim-navic"; version = "2023-07-21"; src = fetchFromGitHub { @@ -7293,7 +7293,7 @@ final: prev: meta.homepage = "https://github.com/smiteshp/nvim-navic/"; }; - nvim-neoclip-lua = buildVimPluginFrom2Nix { + nvim-neoclip-lua = buildVimPlugin { pname = "nvim-neoclip.lua"; version = "2023-05-16"; src = fetchFromGitHub { @@ -7305,7 +7305,7 @@ final: prev: meta.homepage = "https://github.com/AckslD/nvim-neoclip.lua/"; }; - nvim-nonicons = buildVimPluginFrom2Nix { + nvim-nonicons = buildVimPlugin { pname = "nvim-nonicons"; version = "2023-02-04"; src = fetchFromGitHub { @@ -7317,7 +7317,7 @@ final: prev: meta.homepage = "https://github.com/yamatsum/nvim-nonicons/"; }; - nvim-notify = buildVimPluginFrom2Nix { + nvim-notify = buildVimPlugin { pname = "nvim-notify"; version = "2023-09-10"; src = fetchFromGitHub { @@ -7329,7 +7329,7 @@ final: prev: meta.homepage = "https://github.com/rcarriga/nvim-notify/"; }; - nvim-nu = buildVimPluginFrom2Nix { + nvim-nu = buildVimPlugin { pname = "nvim-nu"; version = "2023-03-07"; src = fetchFromGitHub { @@ -7341,7 +7341,7 @@ final: prev: meta.homepage = "https://github.com/LhKipp/nvim-nu/"; }; - nvim-osc52 = buildVimPluginFrom2Nix { + nvim-osc52 = buildVimPlugin { pname = "nvim-osc52"; version = "2023-05-15"; src = fetchFromGitHub { @@ -7353,7 +7353,7 @@ final: prev: meta.homepage = "https://github.com/ojroques/nvim-osc52/"; }; - nvim-peekup = buildVimPluginFrom2Nix { + nvim-peekup = buildVimPlugin { pname = "nvim-peekup"; version = "2023-02-23"; src = fetchFromGitHub { @@ -7365,7 +7365,7 @@ final: prev: meta.homepage = "https://github.com/gennaro-tedesco/nvim-peekup/"; }; - nvim-pqf = buildVimPluginFrom2Nix { + nvim-pqf = buildVimPlugin { pname = "nvim-pqf"; version = "2023-07-24"; src = fetchFromGitHub { @@ -7377,7 +7377,7 @@ final: prev: meta.homepage = "https://github.com/yorickpeterse/nvim-pqf/"; }; - nvim-remote-containers = buildVimPluginFrom2Nix { + nvim-remote-containers = buildVimPlugin { pname = "nvim-remote-containers"; version = "2023-08-01"; src = fetchFromGitHub { @@ -7389,7 +7389,7 @@ final: prev: meta.homepage = "https://github.com/jamestthompson3/nvim-remote-containers/"; }; - nvim-rename-state = buildVimPluginFrom2Nix { + nvim-rename-state = buildVimPlugin { pname = "nvim-rename-state"; version = "2023-01-30"; src = fetchFromGitHub { @@ -7401,7 +7401,7 @@ final: prev: meta.homepage = "https://github.com/olrtg/nvim-rename-state/"; }; - nvim-scrollbar = buildVimPluginFrom2Nix { + nvim-scrollbar = buildVimPlugin { pname = "nvim-scrollbar"; version = "2023-05-23"; src = fetchFromGitHub { @@ -7413,7 +7413,7 @@ final: prev: meta.homepage = "https://github.com/petertriho/nvim-scrollbar/"; }; - nvim-scrollview = buildVimPluginFrom2Nix { + nvim-scrollview = buildVimPlugin { pname = "nvim-scrollview"; version = "2023-09-03"; src = fetchFromGitHub { @@ -7425,7 +7425,7 @@ final: prev: meta.homepage = "https://github.com/dstein64/nvim-scrollview/"; }; - nvim-search-and-replace = buildVimPluginFrom2Nix { + nvim-search-and-replace = buildVimPlugin { pname = "nvim-search-and-replace"; version = "2022-09-06"; src = fetchFromGitHub { @@ -7437,7 +7437,7 @@ final: prev: meta.homepage = "https://github.com/s1n7ax/nvim-search-and-replace/"; }; - nvim-snippy = buildVimPluginFrom2Nix { + nvim-snippy = buildVimPlugin { pname = "nvim-snippy"; version = "2023-09-09"; src = fetchFromGitHub { @@ -7449,7 +7449,7 @@ final: prev: meta.homepage = "https://github.com/dcampos/nvim-snippy/"; }; - nvim-solarized-lua = buildVimPluginFrom2Nix { + nvim-solarized-lua = buildVimPlugin { pname = "nvim-solarized-lua"; version = "2022-11-19"; src = fetchFromGitHub { @@ -7461,7 +7461,7 @@ final: prev: meta.homepage = "https://github.com/ishan9299/nvim-solarized-lua/"; }; - nvim-spectre = buildVimPluginFrom2Nix { + nvim-spectre = buildVimPlugin { pname = "nvim-spectre"; version = "2023-09-13"; src = fetchFromGitHub { @@ -7473,7 +7473,7 @@ final: prev: meta.homepage = "https://github.com/nvim-pack/nvim-spectre/"; }; - nvim-spider = buildVimPluginFrom2Nix { + nvim-spider = buildVimPlugin { pname = "nvim-spider"; version = "2023-09-14"; src = fetchFromGitHub { @@ -7485,7 +7485,7 @@ final: prev: meta.homepage = "https://github.com/chrisgrieser/nvim-spider/"; }; - nvim-surround = buildVimPluginFrom2Nix { + nvim-surround = buildVimPlugin { pname = "nvim-surround"; version = "2023-08-18"; src = fetchFromGitHub { @@ -7497,7 +7497,7 @@ final: prev: meta.homepage = "https://github.com/kylechui/nvim-surround/"; }; - nvim-teal-maker = buildVimPluginFrom2Nix { + nvim-teal-maker = buildVimPlugin { pname = "nvim-teal-maker"; version = "2022-04-09"; src = fetchFromGitHub { @@ -7509,7 +7509,7 @@ final: prev: meta.homepage = "https://github.com/svermeulen/nvim-teal-maker/"; }; - nvim-terminal-lua = buildVimPluginFrom2Nix { + nvim-terminal-lua = buildVimPlugin { pname = "nvim-terminal.lua"; version = "2019-10-17"; src = fetchFromGitHub { @@ -7521,7 +7521,7 @@ final: prev: meta.homepage = "https://github.com/norcalli/nvim-terminal.lua/"; }; - nvim-test = buildVimPluginFrom2Nix { + nvim-test = buildVimPlugin { pname = "nvim-test"; version = "2023-05-02"; src = fetchFromGitHub { @@ -7533,7 +7533,7 @@ final: prev: meta.homepage = "https://github.com/klen/nvim-test/"; }; - nvim-tree-lua = buildVimPluginFrom2Nix { + nvim-tree-lua = buildVimPlugin { pname = "nvim-tree.lua"; version = "2023-09-16"; src = fetchFromGitHub { @@ -7545,7 +7545,7 @@ final: prev: meta.homepage = "https://github.com/nvim-tree/nvim-tree.lua/"; }; - nvim-treesitter = buildVimPluginFrom2Nix { + nvim-treesitter = buildVimPlugin { pname = "nvim-treesitter"; version = "2023-09-16"; src = fetchFromGitHub { @@ -7557,7 +7557,7 @@ final: prev: meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/"; }; - nvim-treesitter-context = buildVimPluginFrom2Nix { + nvim-treesitter-context = buildVimPlugin { pname = "nvim-treesitter-context"; version = "2023-09-06"; src = fetchFromGitHub { @@ -7569,7 +7569,7 @@ final: prev: meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-context/"; }; - nvim-treesitter-endwise = buildVimPluginFrom2Nix { + nvim-treesitter-endwise = buildVimPlugin { pname = "nvim-treesitter-endwise"; version = "2023-06-28"; src = fetchFromGitHub { @@ -7581,7 +7581,7 @@ final: prev: meta.homepage = "https://github.com/RRethy/nvim-treesitter-endwise/"; }; - nvim-treesitter-pyfold = buildVimPluginFrom2Nix { + nvim-treesitter-pyfold = buildVimPlugin { pname = "nvim-treesitter-pyfold"; version = "2023-04-11"; src = fetchFromGitHub { @@ -7593,7 +7593,7 @@ final: prev: meta.homepage = "https://github.com/eddiebergman/nvim-treesitter-pyfold/"; }; - nvim-treesitter-refactor = buildVimPluginFrom2Nix { + nvim-treesitter-refactor = buildVimPlugin { pname = "nvim-treesitter-refactor"; version = "2023-04-04"; src = fetchFromGitHub { @@ -7605,7 +7605,7 @@ final: prev: meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-refactor/"; }; - nvim-treesitter-textobjects = buildVimPluginFrom2Nix { + nvim-treesitter-textobjects = buildVimPlugin { pname = "nvim-treesitter-textobjects"; version = "2023-08-29"; src = fetchFromGitHub { @@ -7617,7 +7617,7 @@ final: prev: meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects/"; }; - nvim-treesitter-textsubjects = buildVimPluginFrom2Nix { + nvim-treesitter-textsubjects = buildVimPlugin { pname = "nvim-treesitter-textsubjects"; version = "2023-08-03"; src = fetchFromGitHub { @@ -7629,7 +7629,7 @@ final: prev: meta.homepage = "https://github.com/RRethy/nvim-treesitter-textsubjects/"; }; - nvim-ts-autotag = buildVimPluginFrom2Nix { + nvim-ts-autotag = buildVimPlugin { pname = "nvim-ts-autotag"; version = "2023-06-16"; src = fetchFromGitHub { @@ -7641,7 +7641,7 @@ final: prev: meta.homepage = "https://github.com/windwp/nvim-ts-autotag/"; }; - nvim-ts-context-commentstring = buildVimPluginFrom2Nix { + nvim-ts-context-commentstring = buildVimPlugin { pname = "nvim-ts-context-commentstring"; version = "2023-09-14"; src = fetchFromGitHub { @@ -7653,7 +7653,7 @@ final: prev: meta.homepage = "https://github.com/joosepalviste/nvim-ts-context-commentstring/"; }; - nvim-ts-rainbow = buildVimPluginFrom2Nix { + nvim-ts-rainbow = buildVimPlugin { pname = "nvim-ts-rainbow"; version = "2023-06-07"; src = fetchFromGitHub { @@ -7665,7 +7665,7 @@ final: prev: meta.homepage = "https://github.com/mrjones2014/nvim-ts-rainbow/"; }; - nvim-ts-rainbow2 = buildVimPluginFrom2Nix { + nvim-ts-rainbow2 = buildVimPlugin { pname = "nvim-ts-rainbow2"; version = "2023-07-12"; src = fetchgit { @@ -7676,7 +7676,7 @@ final: prev: meta.homepage = "https://gitlab.com/HiPhish/nvim-ts-rainbow2"; }; - nvim-ufo = buildVimPluginFrom2Nix { + nvim-ufo = buildVimPlugin { pname = "nvim-ufo"; version = "2023-09-13"; src = fetchFromGitHub { @@ -7688,7 +7688,7 @@ final: prev: meta.homepage = "https://github.com/kevinhwang91/nvim-ufo/"; }; - nvim-unception = buildVimPluginFrom2Nix { + nvim-unception = buildVimPlugin { pname = "nvim-unception"; version = "2023-04-11"; src = fetchFromGitHub { @@ -7700,7 +7700,7 @@ final: prev: meta.homepage = "https://github.com/samjwill/nvim-unception/"; }; - nvim-web-devicons = buildVimPluginFrom2Nix { + nvim-web-devicons = buildVimPlugin { pname = "nvim-web-devicons"; version = "2023-09-15"; src = fetchFromGitHub { @@ -7712,7 +7712,7 @@ final: prev: meta.homepage = "https://github.com/nvim-tree/nvim-web-devicons/"; }; - nvim-whichkey-setup-lua = buildVimPluginFrom2Nix { + nvim-whichkey-setup-lua = buildVimPlugin { pname = "nvim-whichkey-setup.lua"; version = "2021-04-16"; src = fetchFromGitHub { @@ -7724,7 +7724,7 @@ final: prev: meta.homepage = "https://github.com/AckslD/nvim-whichkey-setup.lua/"; }; - nvim-window-picker = buildVimPluginFrom2Nix { + nvim-window-picker = buildVimPlugin { pname = "nvim-window-picker"; version = "2023-07-29"; src = fetchFromGitHub { @@ -7736,7 +7736,7 @@ final: prev: meta.homepage = "https://github.com/s1n7ax/nvim-window-picker/"; }; - nvim-yarp = buildVimPluginFrom2Nix { + nvim-yarp = buildVimPlugin { pname = "nvim-yarp"; version = "2022-06-08"; src = fetchFromGitHub { @@ -7748,7 +7748,7 @@ final: prev: meta.homepage = "https://github.com/roxma/nvim-yarp/"; }; - nvim_context_vt = buildVimPluginFrom2Nix { + nvim_context_vt = buildVimPlugin { pname = "nvim_context_vt"; version = "2023-08-26"; src = fetchFromGitHub { @@ -7760,7 +7760,7 @@ final: prev: meta.homepage = "https://github.com/andersevenrud/nvim_context_vt/"; }; - nvimdev-nvim = buildVimPluginFrom2Nix { + nvimdev-nvim = buildVimPlugin { pname = "nvimdev.nvim"; version = "2023-09-05"; src = fetchFromGitHub { @@ -7772,7 +7772,7 @@ final: prev: meta.homepage = "https://github.com/neovim/nvimdev.nvim/"; }; - nvterm = buildVimPluginFrom2Nix { + nvterm = buildVimPlugin { pname = "nvterm"; version = "2023-09-09"; src = fetchFromGitHub { @@ -7784,7 +7784,7 @@ final: prev: meta.homepage = "https://github.com/nvchad/nvterm/"; }; - oceanic-material = buildVimPluginFrom2Nix { + oceanic-material = buildVimPlugin { pname = "oceanic-material"; version = "2023-06-22"; src = fetchFromGitHub { @@ -7796,7 +7796,7 @@ final: prev: meta.homepage = "https://github.com/nvimdev/oceanic-material/"; }; - oceanic-next = buildVimPluginFrom2Nix { + oceanic-next = buildVimPlugin { pname = "oceanic-next"; version = "2023-05-01"; src = fetchFromGitHub { @@ -7808,7 +7808,7 @@ final: prev: meta.homepage = "https://github.com/mhartington/oceanic-next/"; }; - octo-nvim = buildVimPluginFrom2Nix { + octo-nvim = buildVimPlugin { pname = "octo.nvim"; version = "2023-08-28"; src = fetchFromGitHub { @@ -7820,7 +7820,7 @@ final: prev: meta.homepage = "https://github.com/pwntester/octo.nvim/"; }; - oil-nvim = buildVimPluginFrom2Nix { + oil-nvim = buildVimPlugin { pname = "oil.nvim"; version = "2023-09-12"; src = fetchFromGitHub { @@ -7833,7 +7833,7 @@ final: prev: meta.homepage = "https://github.com/stevearc/oil.nvim/"; }; - omnisharp-extended-lsp-nvim = buildVimPluginFrom2Nix { + omnisharp-extended-lsp-nvim = buildVimPlugin { pname = "omnisharp-extended-lsp.nvim"; version = "2023-04-14"; src = fetchFromGitHub { @@ -7845,7 +7845,7 @@ final: prev: meta.homepage = "https://github.com/Hoffs/omnisharp-extended-lsp.nvim/"; }; - one-nvim = buildVimPluginFrom2Nix { + one-nvim = buildVimPlugin { pname = "one-nvim"; version = "2021-06-10"; src = fetchFromGitHub { @@ -7857,7 +7857,7 @@ final: prev: meta.homepage = "https://github.com/Th3Whit3Wolf/one-nvim/"; }; - onedark-nvim = buildVimPluginFrom2Nix { + onedark-nvim = buildVimPlugin { pname = "onedark.nvim"; version = "2023-09-04"; src = fetchFromGitHub { @@ -7869,7 +7869,7 @@ final: prev: meta.homepage = "https://github.com/navarasu/onedark.nvim/"; }; - onedark-vim = buildVimPluginFrom2Nix { + onedark-vim = buildVimPlugin { pname = "onedark.vim"; version = "2023-07-19"; src = fetchFromGitHub { @@ -7881,7 +7881,7 @@ final: prev: meta.homepage = "https://github.com/joshdick/onedark.vim/"; }; - onedarkpro-nvim = buildVimPluginFrom2Nix { + onedarkpro-nvim = buildVimPlugin { pname = "onedarkpro.nvim"; version = "2023-09-16"; src = fetchFromGitHub { @@ -7893,7 +7893,7 @@ final: prev: meta.homepage = "https://github.com/olimorris/onedarkpro.nvim/"; }; - onehalf = buildVimPluginFrom2Nix { + onehalf = buildVimPlugin { pname = "onehalf"; version = "2022-08-02"; src = fetchFromGitHub { @@ -7905,7 +7905,7 @@ final: prev: meta.homepage = "https://github.com/sonph/onehalf/"; }; - onenord-nvim = buildVimPluginFrom2Nix { + onenord-nvim = buildVimPlugin { pname = "onenord.nvim"; version = "2023-09-11"; src = fetchFromGitHub { @@ -7917,7 +7917,7 @@ final: prev: meta.homepage = "https://github.com/rmehri01/onenord.nvim/"; }; - open-browser-github-vim = buildVimPluginFrom2Nix { + open-browser-github-vim = buildVimPlugin { pname = "open-browser-github.vim"; version = "2021-03-21"; src = fetchFromGitHub { @@ -7929,7 +7929,7 @@ final: prev: meta.homepage = "https://github.com/tyru/open-browser-github.vim/"; }; - open-browser-vim = buildVimPluginFrom2Nix { + open-browser-vim = buildVimPlugin { pname = "open-browser.vim"; version = "2022-10-08"; src = fetchFromGitHub { @@ -7941,7 +7941,7 @@ final: prev: meta.homepage = "https://github.com/tyru/open-browser.vim/"; }; - openingh-nvim = buildVimPluginFrom2Nix { + openingh-nvim = buildVimPlugin { pname = "openingh.nvim"; version = "2023-08-28"; src = fetchFromGitHub { @@ -7953,7 +7953,7 @@ final: prev: meta.homepage = "https://github.com/Almo7aya/openingh.nvim/"; }; - openscad-nvim = buildVimPluginFrom2Nix { + openscad-nvim = buildVimPlugin { pname = "openscad.nvim"; version = "2023-06-19"; src = fetchFromGitHub { @@ -7965,7 +7965,7 @@ final: prev: meta.homepage = "https://github.com/salkin-mada/openscad.nvim/"; }; - orgmode = buildVimPluginFrom2Nix { + orgmode = buildVimPlugin { pname = "orgmode"; version = "2023-09-15"; src = fetchFromGitHub { @@ -7977,7 +7977,7 @@ final: prev: meta.homepage = "https://github.com/nvim-orgmode/orgmode/"; }; - other-nvim = buildVimPluginFrom2Nix { + other-nvim = buildVimPlugin { pname = "other.nvim"; version = "2023-08-02"; src = fetchFromGitHub { @@ -7989,7 +7989,7 @@ final: prev: meta.homepage = "https://github.com/rgroli/other.nvim/"; }; - otter-nvim = buildVimPluginFrom2Nix { + otter-nvim = buildVimPlugin { pname = "otter.nvim"; version = "2023-09-16"; src = fetchFromGitHub { @@ -8001,7 +8001,7 @@ final: prev: meta.homepage = "https://github.com/jmbuhr/otter.nvim/"; }; - overseer-nvim = buildVimPluginFrom2Nix { + overseer-nvim = buildVimPlugin { pname = "overseer.nvim"; version = "2023-09-14"; src = fetchFromGitHub { @@ -8014,7 +8014,7 @@ final: prev: meta.homepage = "https://github.com/stevearc/overseer.nvim/"; }; - oxocarbon-nvim = buildVimPluginFrom2Nix { + oxocarbon-nvim = buildVimPlugin { pname = "oxocarbon.nvim"; version = "2023-08-30"; src = fetchFromGitHub { @@ -8026,7 +8026,7 @@ final: prev: meta.homepage = "https://github.com/nyoom-engineering/oxocarbon.nvim/"; }; - package-info-nvim = buildVimPluginFrom2Nix { + package-info-nvim = buildVimPlugin { pname = "package-info.nvim"; version = "2023-03-28"; src = fetchFromGitHub { @@ -8038,7 +8038,7 @@ final: prev: meta.homepage = "https://github.com/vuki656/package-info.nvim/"; }; - packer-nvim = buildVimPluginFrom2Nix { + packer-nvim = buildVimPlugin { pname = "packer.nvim"; version = "2023-08-24"; src = fetchFromGitHub { @@ -8050,7 +8050,7 @@ final: prev: meta.homepage = "https://github.com/wbthomason/packer.nvim/"; }; - palenight-vim = buildVimPluginFrom2Nix { + palenight-vim = buildVimPlugin { pname = "palenight.vim"; version = "2023-04-27"; src = fetchFromGitHub { @@ -8062,7 +8062,7 @@ final: prev: meta.homepage = "https://github.com/drewtempelmeyer/palenight.vim/"; }; - papercolor-theme = buildVimPluginFrom2Nix { + papercolor-theme = buildVimPlugin { pname = "papercolor-theme"; version = "2022-06-08"; src = fetchFromGitHub { @@ -8074,7 +8074,7 @@ final: prev: meta.homepage = "https://github.com/NLKNguyen/papercolor-theme/"; }; - pear-tree = buildVimPluginFrom2Nix { + pear-tree = buildVimPlugin { pname = "pear-tree"; version = "2019-12-08"; src = fetchFromGitHub { @@ -8086,7 +8086,7 @@ final: prev: meta.homepage = "https://github.com/tmsvg/pear-tree/"; }; - pears-nvim = buildVimPluginFrom2Nix { + pears-nvim = buildVimPlugin { pname = "pears.nvim"; version = "2021-05-27"; src = fetchFromGitHub { @@ -8098,7 +8098,7 @@ final: prev: meta.homepage = "https://github.com/steelsojka/pears.nvim/"; }; - persistence-nvim = buildVimPluginFrom2Nix { + persistence-nvim = buildVimPlugin { pname = "persistence.nvim"; version = "2023-05-22"; src = fetchFromGitHub { @@ -8110,7 +8110,7 @@ final: prev: meta.homepage = "https://github.com/folke/persistence.nvim/"; }; - peskcolor-vim = buildVimPluginFrom2Nix { + peskcolor-vim = buildVimPlugin { pname = "peskcolor.vim"; version = "2016-06-11"; src = fetchFromGitHub { @@ -8122,7 +8122,7 @@ final: prev: meta.homepage = "https://github.com/andsild/peskcolor.vim/"; }; - pest-vim = buildVimPluginFrom2Nix { + pest-vim = buildVimPlugin { pname = "pest.vim"; version = "2023-06-16"; src = fetchFromGitHub { @@ -8134,7 +8134,7 @@ final: prev: meta.homepage = "https://github.com/pest-parser/pest.vim/"; }; - pgsql-vim = buildVimPluginFrom2Nix { + pgsql-vim = buildVimPlugin { pname = "pgsql.vim"; version = "2021-12-08"; src = fetchFromGitHub { @@ -8146,7 +8146,7 @@ final: prev: meta.homepage = "https://github.com/lifepillar/pgsql.vim/"; }; - pig-vim = buildVimPluginFrom2Nix { + pig-vim = buildVimPlugin { pname = "pig.vim"; version = "2017-06-08"; src = fetchFromGitHub { @@ -8158,7 +8158,7 @@ final: prev: meta.homepage = "https://github.com/motus/pig.vim/"; }; - plantuml-previewer-vim = buildVimPluginFrom2Nix { + plantuml-previewer-vim = buildVimPlugin { pname = "plantuml-previewer.vim"; version = "2023-03-07"; src = fetchFromGitHub { @@ -8170,7 +8170,7 @@ final: prev: meta.homepage = "https://github.com/weirongxu/plantuml-previewer.vim/"; }; - plantuml-syntax = buildVimPluginFrom2Nix { + plantuml-syntax = buildVimPlugin { pname = "plantuml-syntax"; version = "2022-08-26"; src = fetchFromGitHub { @@ -8182,7 +8182,7 @@ final: prev: meta.homepage = "https://github.com/aklt/plantuml-syntax/"; }; - playground = buildVimPluginFrom2Nix { + playground = buildVimPlugin { pname = "playground"; version = "2023-09-15"; src = fetchFromGitHub { @@ -8206,7 +8206,7 @@ final: prev: meta.homepage = "https://github.com/nvim-lua/plenary.nvim/"; }; - poimandres-nvim = buildVimPluginFrom2Nix { + poimandres-nvim = buildVimPlugin { pname = "poimandres.nvim"; version = "2023-08-16"; src = fetchFromGitHub { @@ -8218,7 +8218,7 @@ final: prev: meta.homepage = "https://github.com/olivercederborg/poimandres.nvim/"; }; - pony-vim-syntax = buildVimPluginFrom2Nix { + pony-vim-syntax = buildVimPlugin { pname = "pony-vim-syntax"; version = "2017-09-26"; src = fetchFromGitHub { @@ -8230,7 +8230,7 @@ final: prev: meta.homepage = "https://github.com/dleonard0/pony-vim-syntax/"; }; - popfix = buildVimPluginFrom2Nix { + popfix = buildVimPlugin { pname = "popfix"; version = "2022-07-04"; src = fetchFromGitHub { @@ -8243,7 +8243,7 @@ final: prev: meta.homepage = "https://github.com/RishabhRD/popfix/"; }; - popup-nvim = buildVimPluginFrom2Nix { + popup-nvim = buildVimPlugin { pname = "popup.nvim"; version = "2021-11-18"; src = fetchFromGitHub { @@ -8255,7 +8255,7 @@ final: prev: meta.homepage = "https://github.com/nvim-lua/popup.nvim/"; }; - presence-nvim = buildVimPluginFrom2Nix { + presence-nvim = buildVimPlugin { pname = "presence.nvim"; version = "2023-01-29"; src = fetchFromGitHub { @@ -8267,7 +8267,7 @@ final: prev: meta.homepage = "https://github.com/andweeb/presence.nvim/"; }; - presenting-vim = buildVimPluginFrom2Nix { + presenting-vim = buildVimPlugin { pname = "presenting.vim"; version = "2022-03-27"; src = fetchFromGitHub { @@ -8279,7 +8279,7 @@ final: prev: meta.homepage = "https://github.com/sotte/presenting.vim/"; }; - preto = buildVimPluginFrom2Nix { + preto = buildVimPlugin { pname = "preto"; version = "2023-02-10"; src = fetchFromGitHub { @@ -8291,7 +8291,7 @@ final: prev: meta.homepage = "https://github.com/ewilazarus/preto/"; }; - pretty-fold-nvim = buildVimPluginFrom2Nix { + pretty-fold-nvim = buildVimPlugin { pname = "pretty-fold.nvim"; version = "2022-07-20"; src = fetchFromGitHub { @@ -8303,7 +8303,7 @@ final: prev: meta.homepage = "https://github.com/anuvyklack/pretty-fold.nvim/"; }; - prev_indent = buildVimPluginFrom2Nix { + prev_indent = buildVimPlugin { pname = "prev_indent"; version = "2014-03-08"; src = fetchFromGitHub { @@ -8315,7 +8315,7 @@ final: prev: meta.homepage = "https://github.com/vim-scripts/prev_indent/"; }; - project-nvim = buildVimPluginFrom2Nix { + project-nvim = buildVimPlugin { pname = "project.nvim"; version = "2023-04-04"; src = fetchFromGitHub { @@ -8327,7 +8327,7 @@ final: prev: meta.homepage = "https://github.com/ahmedkhalf/project.nvim/"; }; - promise-async = buildVimPluginFrom2Nix { + promise-async = buildVimPlugin { pname = "promise-async"; version = "2023-04-09"; src = fetchFromGitHub { @@ -8339,7 +8339,7 @@ final: prev: meta.homepage = "https://github.com/kevinhwang91/promise-async/"; }; - psc-ide-vim = buildVimPluginFrom2Nix { + psc-ide-vim = buildVimPlugin { pname = "psc-ide-vim"; version = "2021-05-31"; src = fetchFromGitHub { @@ -8351,7 +8351,7 @@ final: prev: meta.homepage = "https://github.com/frigoeu/psc-ide-vim/"; }; - purescript-vim = buildVimPluginFrom2Nix { + purescript-vim = buildVimPlugin { pname = "purescript-vim"; version = "2023-02-06"; src = fetchFromGitHub { @@ -8363,7 +8363,7 @@ final: prev: meta.homepage = "https://github.com/purescript-contrib/purescript-vim/"; }; - python-mode = buildVimPluginFrom2Nix { + python-mode = buildVimPlugin { pname = "python-mode"; version = "2023-07-03"; src = fetchFromGitHub { @@ -8376,7 +8376,7 @@ final: prev: meta.homepage = "https://github.com/python-mode/python-mode/"; }; - python-syntax = buildVimPluginFrom2Nix { + python-syntax = buildVimPlugin { pname = "python-syntax"; version = "2020-12-14"; src = fetchFromGitHub { @@ -8388,7 +8388,7 @@ final: prev: meta.homepage = "https://github.com/vim-python/python-syntax/"; }; - pywal-nvim = buildVimPluginFrom2Nix { + pywal-nvim = buildVimPlugin { pname = "pywal.nvim"; version = "2022-11-03"; src = fetchFromGitHub { @@ -8400,7 +8400,7 @@ final: prev: meta.homepage = "https://github.com/AlphaTechnolog/pywal.nvim/"; }; - quarto-nvim = buildVimPluginFrom2Nix { + quarto-nvim = buildVimPlugin { pname = "quarto-nvim"; version = "2023-09-08"; src = fetchFromGitHub { @@ -8412,7 +8412,7 @@ final: prev: meta.homepage = "https://github.com/quarto-dev/quarto-nvim/"; }; - quick-scope = buildVimPluginFrom2Nix { + quick-scope = buildVimPlugin { pname = "quick-scope"; version = "2023-08-08"; src = fetchFromGitHub { @@ -8424,7 +8424,7 @@ final: prev: meta.homepage = "https://github.com/unblevable/quick-scope/"; }; - quickfix-reflector-vim = buildVimPluginFrom2Nix { + quickfix-reflector-vim = buildVimPlugin { pname = "quickfix-reflector.vim"; version = "2022-02-02"; src = fetchFromGitHub { @@ -8436,7 +8436,7 @@ final: prev: meta.homepage = "https://github.com/stefandtw/quickfix-reflector.vim/"; }; - quickfixstatus = buildVimPluginFrom2Nix { + quickfixstatus = buildVimPlugin { pname = "quickfixstatus"; version = "2011-09-03"; src = fetchFromGitHub { @@ -8448,7 +8448,7 @@ final: prev: meta.homepage = "https://github.com/dannyob/quickfixstatus/"; }; - quickmath-nvim = buildVimPluginFrom2Nix { + quickmath-nvim = buildVimPlugin { pname = "quickmath.nvim"; version = "2023-03-12"; src = fetchFromGitHub { @@ -8460,7 +8460,7 @@ final: prev: meta.homepage = "https://github.com/jbyuki/quickmath.nvim/"; }; - rainbow = buildVimPluginFrom2Nix { + rainbow = buildVimPlugin { pname = "rainbow"; version = "2022-10-08"; src = fetchFromGitHub { @@ -8472,7 +8472,7 @@ final: prev: meta.homepage = "https://github.com/luochen1990/rainbow/"; }; - rainbow-delimiters-nvim = buildVimPluginFrom2Nix { + rainbow-delimiters-nvim = buildVimPlugin { pname = "rainbow-delimiters.nvim"; version = "2023-08-26"; src = fetchgit { @@ -8483,7 +8483,7 @@ final: prev: meta.homepage = "https://gitlab.com/HiPhish/rainbow-delimiters.nvim"; }; - rainbow_parentheses-vim = buildVimPluginFrom2Nix { + rainbow_parentheses-vim = buildVimPlugin { pname = "rainbow_parentheses.vim"; version = "2013-03-05"; src = fetchFromGitHub { @@ -8495,7 +8495,7 @@ final: prev: meta.homepage = "https://github.com/kien/rainbow_parentheses.vim/"; }; - random-vim = buildVimPluginFrom2Nix { + random-vim = buildVimPlugin { pname = "random.vim"; version = "2010-10-18"; src = fetchFromGitHub { @@ -8507,7 +8507,7 @@ final: prev: meta.homepage = "https://github.com/vim-scripts/random.vim/"; }; - range-highlight-nvim = buildVimPluginFrom2Nix { + range-highlight-nvim = buildVimPlugin { pname = "range-highlight.nvim"; version = "2021-08-03"; src = fetchFromGitHub { @@ -8519,7 +8519,7 @@ final: prev: meta.homepage = "https://github.com/winston0410/range-highlight.nvim/"; }; - ranger-vim = buildVimPluginFrom2Nix { + ranger-vim = buildVimPlugin { pname = "ranger.vim"; version = "2021-12-13"; src = fetchFromGitHub { @@ -8531,7 +8531,7 @@ final: prev: meta.homepage = "https://github.com/rafaqz/ranger.vim/"; }; - rcshell-vim = buildVimPluginFrom2Nix { + rcshell-vim = buildVimPlugin { pname = "rcshell.vim"; version = "2014-12-29"; src = fetchFromGitHub { @@ -8543,7 +8543,7 @@ final: prev: meta.homepage = "https://github.com/vim-scripts/rcshell.vim/"; }; - readline-vim = buildVimPluginFrom2Nix { + readline-vim = buildVimPlugin { pname = "readline.vim"; version = "2023-03-09"; src = fetchFromGitHub { @@ -8555,7 +8555,7 @@ final: prev: meta.homepage = "https://github.com/ryvnf/readline.vim/"; }; - refactoring-nvim = buildVimPluginFrom2Nix { + refactoring-nvim = buildVimPlugin { pname = "refactoring.nvim"; version = "2023-08-31"; src = fetchFromGitHub { @@ -8567,7 +8567,7 @@ final: prev: meta.homepage = "https://github.com/theprimeagen/refactoring.nvim/"; }; - registers-nvim = buildVimPluginFrom2Nix { + registers-nvim = buildVimPlugin { pname = "registers.nvim"; version = "2023-09-05"; src = fetchFromGitHub { @@ -8579,7 +8579,7 @@ final: prev: meta.homepage = "https://github.com/tversteeg/registers.nvim/"; }; - remember-nvim = buildVimPluginFrom2Nix { + remember-nvim = buildVimPlugin { pname = "remember.nvim"; version = "2023-06-12"; src = fetchFromGitHub { @@ -8591,7 +8591,7 @@ final: prev: meta.homepage = "https://github.com/vladdoster/remember.nvim/"; }; - renamer-nvim = buildVimPluginFrom2Nix { + renamer-nvim = buildVimPlugin { pname = "renamer.nvim"; version = "2022-08-29"; src = fetchFromGitHub { @@ -8603,7 +8603,7 @@ final: prev: meta.homepage = "https://github.com/filipdutescu/renamer.nvim/"; }; - replacer-nvim = buildVimPluginFrom2Nix { + replacer-nvim = buildVimPlugin { pname = "replacer.nvim"; version = "2023-07-29"; src = fetchFromGitHub { @@ -8627,7 +8627,7 @@ final: prev: meta.homepage = "https://github.com/rest-nvim/rest.nvim/"; }; - riv-vim = buildVimPluginFrom2Nix { + riv-vim = buildVimPlugin { pname = "riv.vim"; version = "2021-08-09"; src = fetchFromGitHub { @@ -8639,7 +8639,7 @@ final: prev: meta.homepage = "https://github.com/gu-fan/riv.vim/"; }; - rnvimr = buildVimPluginFrom2Nix { + rnvimr = buildVimPlugin { pname = "rnvimr"; version = "2023-08-06"; src = fetchFromGitHub { @@ -8651,7 +8651,7 @@ final: prev: meta.homepage = "https://github.com/kevinhwang91/rnvimr/"; }; - robotframework-vim = buildVimPluginFrom2Nix { + robotframework-vim = buildVimPlugin { pname = "robotframework-vim"; version = "2017-04-14"; src = fetchFromGitHub { @@ -8663,7 +8663,7 @@ final: prev: meta.homepage = "https://github.com/mfukar/robotframework-vim/"; }; - ron-vim = buildVimPluginFrom2Nix { + ron-vim = buildVimPlugin { pname = "ron.vim"; version = "2022-08-19"; src = fetchFromGitHub { @@ -8675,7 +8675,7 @@ final: prev: meta.homepage = "https://github.com/ron-rs/ron.vim/"; }; - rspec-vim = buildVimPluginFrom2Nix { + rspec-vim = buildVimPlugin { pname = "rspec.vim"; version = "2020-08-20"; src = fetchFromGitHub { @@ -8687,7 +8687,7 @@ final: prev: meta.homepage = "https://github.com/keith/rspec.vim/"; }; - rtorrent-syntax-file = buildVimPluginFrom2Nix { + rtorrent-syntax-file = buildVimPlugin { pname = "rtorrent-syntax-file"; version = "2016-03-19"; src = fetchFromGitHub { @@ -8699,7 +8699,7 @@ final: prev: meta.homepage = "https://github.com/ccarpita/rtorrent-syntax-file/"; }; - rust-tools-nvim = buildVimPluginFrom2Nix { + rust-tools-nvim = buildVimPlugin { pname = "rust-tools.nvim"; version = "2023-07-10"; src = fetchFromGitHub { @@ -8711,7 +8711,7 @@ final: prev: meta.homepage = "https://github.com/simrat39/rust-tools.nvim/"; }; - rust-vim = buildVimPluginFrom2Nix { + rust-vim = buildVimPlugin { pname = "rust.vim"; version = "2022-11-27"; src = fetchFromGitHub { @@ -8723,7 +8723,7 @@ final: prev: meta.homepage = "https://github.com/rust-lang/rust.vim/"; }; - sad-vim = buildVimPluginFrom2Nix { + sad-vim = buildVimPlugin { pname = "sad.vim"; version = "2019-02-18"; src = fetchFromGitHub { @@ -8735,7 +8735,7 @@ final: prev: meta.homepage = "https://github.com/hauleth/sad.vim/"; }; - salt-vim = buildVimPluginFrom2Nix { + salt-vim = buildVimPlugin { pname = "salt-vim"; version = "2017-07-01"; src = fetchFromGitHub { @@ -8747,7 +8747,7 @@ final: prev: meta.homepage = "https://github.com/vmware-archive/salt-vim/"; }; - satellite-nvim = buildVimPluginFrom2Nix { + satellite-nvim = buildVimPlugin { pname = "satellite.nvim"; version = "2023-07-31"; src = fetchFromGitHub { @@ -8759,7 +8759,7 @@ final: prev: meta.homepage = "https://github.com/lewis6991/satellite.nvim/"; }; - scnvim = buildVimPluginFrom2Nix { + scnvim = buildVimPlugin { pname = "scnvim"; version = "2023-09-11"; src = fetchFromGitHub { @@ -8771,7 +8771,7 @@ final: prev: meta.homepage = "https://github.com/davidgranstrom/scnvim/"; }; - scope-nvim = buildVimPluginFrom2Nix { + scope-nvim = buildVimPlugin { pname = "scope.nvim"; version = "2023-09-10"; src = fetchFromGitHub { @@ -8783,7 +8783,7 @@ final: prev: meta.homepage = "https://github.com/tiagovla/scope.nvim/"; }; - scrollbar-nvim = buildVimPluginFrom2Nix { + scrollbar-nvim = buildVimPlugin { pname = "scrollbar.nvim"; version = "2022-06-16"; src = fetchFromGitHub { @@ -8795,7 +8795,7 @@ final: prev: meta.homepage = "https://github.com/Xuyuanp/scrollbar.nvim/"; }; - scss-syntax-vim = buildVimPluginFrom2Nix { + scss-syntax-vim = buildVimPlugin { pname = "scss-syntax.vim"; version = "2019-06-30"; src = fetchFromGitHub { @@ -8807,7 +8807,7 @@ final: prev: meta.homepage = "https://github.com/cakebaker/scss-syntax.vim/"; }; - searchbox-nvim = buildVimPluginFrom2Nix { + searchbox-nvim = buildVimPlugin { pname = "searchbox.nvim"; version = "2022-10-31"; src = fetchFromGitHub { @@ -8819,7 +8819,7 @@ final: prev: meta.homepage = "https://github.com/VonHeikemen/searchbox.nvim/"; }; - securemodelines = buildVimPluginFrom2Nix { + securemodelines = buildVimPlugin { pname = "securemodelines"; version = "2019-02-09"; src = fetchFromGitHub { @@ -8831,7 +8831,7 @@ final: prev: meta.homepage = "https://github.com/RobertAudi/securemodelines/"; }; - self = buildVimPluginFrom2Nix { + self = buildVimPlugin { pname = "self"; version = "2014-05-28"; src = fetchFromGitHub { @@ -8843,7 +8843,7 @@ final: prev: meta.homepage = "https://github.com/megaannum/self/"; }; - semantic-highlight-vim = buildVimPluginFrom2Nix { + semantic-highlight-vim = buildVimPlugin { pname = "semantic-highlight.vim"; version = "2020-09-11"; src = fetchFromGitHub { @@ -8855,7 +8855,7 @@ final: prev: meta.homepage = "https://github.com/jaxbot/semantic-highlight.vim/"; }; - semshi = buildVimPluginFrom2Nix { + semshi = buildVimPlugin { pname = "semshi"; version = "2021-07-24"; src = fetchFromGitHub { @@ -8867,7 +8867,7 @@ final: prev: meta.homepage = "https://github.com/numirias/semshi/"; }; - seoul256-vim = buildVimPluginFrom2Nix { + seoul256-vim = buildVimPlugin { pname = "seoul256.vim"; version = "2023-05-03"; src = fetchFromGitHub { @@ -8879,7 +8879,7 @@ final: prev: meta.homepage = "https://github.com/junegunn/seoul256.vim/"; }; - sg-nvim = buildVimPluginFrom2Nix { + sg-nvim = buildVimPlugin { pname = "sg.nvim"; version = "2023-09-12"; src = fetchFromGitHub { @@ -8891,7 +8891,7 @@ final: prev: meta.homepage = "https://github.com/sourcegraph/sg.nvim/"; }; - shabadou-vim = buildVimPluginFrom2Nix { + shabadou-vim = buildVimPlugin { pname = "shabadou.vim"; version = "2016-07-19"; src = fetchFromGitHub { @@ -8903,7 +8903,7 @@ final: prev: meta.homepage = "https://github.com/osyo-manga/shabadou.vim/"; }; - sideways-vim = buildVimPluginFrom2Nix { + sideways-vim = buildVimPlugin { pname = "sideways.vim"; version = "2023-02-25"; src = fetchFromGitHub { @@ -8916,7 +8916,7 @@ final: prev: meta.homepage = "https://github.com/AndrewRadev/sideways.vim/"; }; - skim-vim = buildVimPluginFrom2Nix { + skim-vim = buildVimPlugin { pname = "skim.vim"; version = "2023-05-25"; src = fetchFromGitHub { @@ -8928,7 +8928,7 @@ final: prev: meta.homepage = "https://github.com/lotabout/skim.vim/"; }; - sky-color-clock-vim = buildVimPluginFrom2Nix { + sky-color-clock-vim = buildVimPlugin { pname = "sky-color-clock.vim"; version = "2018-11-03"; src = fetchFromGitHub { @@ -8940,7 +8940,7 @@ final: prev: meta.homepage = "https://github.com/mopp/sky-color-clock.vim/"; }; - slimv = buildVimPluginFrom2Nix { + slimv = buildVimPlugin { pname = "slimv"; version = "2023-07-01"; src = fetchFromGitHub { @@ -8952,7 +8952,7 @@ final: prev: meta.homepage = "https://github.com/kovisoft/slimv/"; }; - smart-splits-nvim = buildVimPluginFrom2Nix { + smart-splits-nvim = buildVimPlugin { pname = "smart-splits.nvim"; version = "2023-09-12"; src = fetchFromGitHub { @@ -8964,7 +8964,7 @@ final: prev: meta.homepage = "https://github.com/mrjones2014/smart-splits.nvim/"; }; - smartcolumn-nvim = buildVimPluginFrom2Nix { + smartcolumn-nvim = buildVimPlugin { pname = "smartcolumn.nvim"; version = "2023-09-12"; src = fetchFromGitHub { @@ -8976,7 +8976,7 @@ final: prev: meta.homepage = "https://github.com/m4xshen/smartcolumn.nvim/"; }; - smartpairs-vim = buildVimPluginFrom2Nix { + smartpairs-vim = buildVimPlugin { pname = "smartpairs.vim"; version = "2018-01-01"; src = fetchFromGitHub { @@ -8988,7 +8988,7 @@ final: prev: meta.homepage = "https://github.com/gorkunov/smartpairs.vim/"; }; - smartyank-nvim = buildVimPluginFrom2Nix { + smartyank-nvim = buildVimPlugin { pname = "smartyank.nvim"; version = "2023-02-25"; src = fetchFromGitHub { @@ -9000,7 +9000,7 @@ final: prev: meta.homepage = "https://github.com/ibhagwan/smartyank.nvim/"; }; - snap = buildVimPluginFrom2Nix { + snap = buildVimPlugin { pname = "snap"; version = "2022-08-03"; src = fetchFromGitHub { @@ -9012,7 +9012,7 @@ final: prev: meta.homepage = "https://github.com/camspiers/snap/"; }; - snippets-nvim = buildVimPluginFrom2Nix { + snippets-nvim = buildVimPlugin { pname = "snippets.nvim"; version = "2020-09-09"; src = fetchFromGitHub { @@ -9024,7 +9024,7 @@ final: prev: meta.homepage = "https://github.com/norcalli/snippets.nvim/"; }; - solarized-nvim = buildVimPluginFrom2Nix { + solarized-nvim = buildVimPlugin { pname = "solarized.nvim"; version = "2023-02-09"; src = fetchFromGitHub { @@ -9036,7 +9036,7 @@ final: prev: meta.homepage = "https://github.com/shaunsingh/solarized.nvim/"; }; - sonokai = buildVimPluginFrom2Nix { + sonokai = buildVimPlugin { pname = "sonokai"; version = "2023-08-07"; src = fetchFromGitHub { @@ -9048,7 +9048,7 @@ final: prev: meta.homepage = "https://github.com/sainnhe/sonokai/"; }; - sort-nvim = buildVimPluginFrom2Nix { + sort-nvim = buildVimPlugin { pname = "sort.nvim"; version = "2023-04-12"; src = fetchFromGitHub { @@ -9060,7 +9060,7 @@ final: prev: meta.homepage = "https://github.com/sQVe/sort.nvim/"; }; - sourcemap-vim = buildVimPluginFrom2Nix { + sourcemap-vim = buildVimPlugin { pname = "sourcemap.vim"; version = "2012-09-19"; src = fetchFromGitHub { @@ -9072,7 +9072,7 @@ final: prev: meta.homepage = "https://github.com/chikatoike/sourcemap.vim/"; }; - space-vim = buildVimPluginFrom2Nix { + space-vim = buildVimPlugin { pname = "space-vim"; version = "2023-04-17"; src = fetchFromGitHub { @@ -9084,7 +9084,7 @@ final: prev: meta.homepage = "https://github.com/liuchengxu/space-vim/"; }; - spacevim = buildVimPluginFrom2Nix { + spacevim = buildVimPlugin { pname = "spacevim"; version = "2018-03-29"; src = fetchFromGitHub { @@ -9096,7 +9096,7 @@ final: prev: meta.homepage = "https://github.com/ctjhoa/spacevim/"; }; - sparkup = buildVimPluginFrom2Nix { + sparkup = buildVimPlugin { pname = "sparkup"; version = "2012-06-11"; src = fetchFromGitHub { @@ -9108,7 +9108,7 @@ final: prev: meta.homepage = "https://github.com/chrisgeo/sparkup/"; }; - specs-nvim = buildVimPluginFrom2Nix { + specs-nvim = buildVimPlugin { pname = "specs.nvim"; version = "2022-09-20"; src = fetchFromGitHub { @@ -9120,7 +9120,7 @@ final: prev: meta.homepage = "https://github.com/edluffy/specs.nvim/"; }; - spellsitter-nvim = buildVimPluginFrom2Nix { + spellsitter-nvim = buildVimPlugin { pname = "spellsitter.nvim"; version = "2022-09-06"; src = fetchFromGitHub { @@ -9132,7 +9132,7 @@ final: prev: meta.homepage = "https://github.com/lewis6991/spellsitter.nvim/"; }; - sphinx-nvim = buildVimPluginFrom2Nix { + sphinx-nvim = buildVimPlugin { pname = "sphinx.nvim"; version = "2023-08-25"; src = fetchFromGitHub { @@ -9144,7 +9144,7 @@ final: prev: meta.homepage = "https://github.com/stsewd/sphinx.nvim/"; }; - splice-vim = buildVimPluginFrom2Nix { + splice-vim = buildVimPlugin { pname = "splice.vim"; version = "2020-01-15"; src = fetchFromGitHub { @@ -9156,7 +9156,7 @@ final: prev: meta.homepage = "https://github.com/sjl/splice.vim/"; }; - split-term-vim = buildVimPluginFrom2Nix { + split-term-vim = buildVimPlugin { pname = "split-term.vim"; version = "2018-09-30"; src = fetchFromGitHub { @@ -9168,7 +9168,7 @@ final: prev: meta.homepage = "https://github.com/vimlab/split-term.vim/"; }; - splitjoin-vim = buildVimPluginFrom2Nix { + splitjoin-vim = buildVimPlugin { pname = "splitjoin.vim"; version = "2023-09-02"; src = fetchFromGitHub { @@ -9181,7 +9181,7 @@ final: prev: meta.homepage = "https://github.com/AndrewRadev/splitjoin.vim/"; }; - sqlite-lua = buildVimPluginFrom2Nix { + sqlite-lua = buildVimPlugin { pname = "sqlite.lua"; version = "2023-04-19"; src = fetchFromGitHub { @@ -9193,7 +9193,7 @@ final: prev: meta.homepage = "https://github.com/kkharji/sqlite.lua/"; }; - srcery-vim = buildVimPluginFrom2Nix { + srcery-vim = buildVimPlugin { pname = "srcery-vim"; version = "2023-09-04"; src = fetchFromGitHub { @@ -9205,7 +9205,7 @@ final: prev: meta.homepage = "https://github.com/srcery-colors/srcery-vim/"; }; - sslsecure-vim = buildVimPluginFrom2Nix { + sslsecure-vim = buildVimPlugin { pname = "sslsecure.vim"; version = "2017-07-27"; src = fetchFromGitHub { @@ -9217,7 +9217,7 @@ final: prev: meta.homepage = "https://github.com/chr4/sslsecure.vim/"; }; - ssr-nvim = buildVimPluginFrom2Nix { + ssr-nvim = buildVimPlugin { pname = "ssr.nvim"; version = "2023-08-20"; src = fetchFromGitHub { @@ -9229,7 +9229,7 @@ final: prev: meta.homepage = "https://github.com/cshuaimin/ssr.nvim/"; }; - stabilize-nvim = buildVimPluginFrom2Nix { + stabilize-nvim = buildVimPlugin { pname = "stabilize.nvim"; version = "2023-04-14"; src = fetchFromGitHub { @@ -9241,7 +9241,7 @@ final: prev: meta.homepage = "https://github.com/luukvbaal/stabilize.nvim/"; }; - stan-vim = buildVimPluginFrom2Nix { + stan-vim = buildVimPlugin { pname = "stan-vim"; version = "2021-05-28"; src = fetchFromGitHub { @@ -9253,7 +9253,7 @@ final: prev: meta.homepage = "https://github.com/eigenfoo/stan-vim/"; }; - starrynight = buildVimPluginFrom2Nix { + starrynight = buildVimPlugin { pname = "starrynight"; version = "2021-09-09"; src = fetchFromGitHub { @@ -9265,7 +9265,7 @@ final: prev: meta.homepage = "https://github.com/josegamez82/starrynight/"; }; - starsearch-vim = buildVimPluginFrom2Nix { + starsearch-vim = buildVimPlugin { pname = "starsearch.vim"; version = "2014-09-21"; src = fetchFromGitHub { @@ -9277,7 +9277,7 @@ final: prev: meta.homepage = "https://github.com/darfink/starsearch.vim/"; }; - statuscol-nvim = buildVimPluginFrom2Nix { + statuscol-nvim = buildVimPlugin { pname = "statuscol.nvim"; version = "2023-08-27"; src = fetchFromGitHub { @@ -9289,7 +9289,7 @@ final: prev: meta.homepage = "https://github.com/luukvbaal/statuscol.nvim/"; }; - stylish-nvim = buildVimPluginFrom2Nix { + stylish-nvim = buildVimPlugin { pname = "stylish.nvim"; version = "2022-02-01"; src = fetchFromGitHub { @@ -9301,7 +9301,7 @@ final: prev: meta.homepage = "https://github.com/teto/stylish.nvim/"; }; - substitute-nvim = buildVimPluginFrom2Nix { + substitute-nvim = buildVimPlugin { pname = "substitute.nvim"; version = "2023-07-20"; src = fetchFromGitHub { @@ -9313,7 +9313,7 @@ final: prev: meta.homepage = "https://github.com/gbprod/substitute.nvim/"; }; - substrata-nvim = buildVimPluginFrom2Nix { + substrata-nvim = buildVimPlugin { pname = "substrata.nvim"; version = "2022-10-07"; src = fetchFromGitHub { @@ -9325,7 +9325,7 @@ final: prev: meta.homepage = "https://github.com/kvrohit/substrata.nvim/"; }; - suda-vim = buildVimPluginFrom2Nix { + suda-vim = buildVimPlugin { pname = "suda.vim"; version = "2023-06-27"; src = fetchFromGitHub { @@ -9337,7 +9337,7 @@ final: prev: meta.homepage = "https://github.com/lambdalisue/suda.vim/"; }; - supertab = buildVimPluginFrom2Nix { + supertab = buildVimPlugin { pname = "supertab"; version = "2021-04-30"; src = fetchFromGitHub { @@ -9349,7 +9349,7 @@ final: prev: meta.homepage = "https://github.com/ervandew/supertab/"; }; - surround-nvim = buildVimPluginFrom2Nix { + surround-nvim = buildVimPlugin { pname = "surround.nvim"; version = "2022-10-10"; src = fetchFromGitHub { @@ -9361,7 +9361,7 @@ final: prev: meta.homepage = "https://github.com/ur4ltz/surround.nvim/"; }; - sved = buildVimPluginFrom2Nix { + sved = buildVimPlugin { pname = "sved"; version = "2022-08-11"; src = fetchFromGitHub { @@ -9373,7 +9373,7 @@ final: prev: meta.homepage = "https://github.com/peterbjorgensen/sved/"; }; - swayconfig-vim = buildVimPluginFrom2Nix { + swayconfig-vim = buildVimPlugin { pname = "swayconfig.vim"; version = "2023-08-26"; src = fetchFromGitHub { @@ -9385,7 +9385,7 @@ final: prev: meta.homepage = "https://github.com/jamespeapen/swayconfig.vim/"; }; - swift-vim = buildVimPluginFrom2Nix { + swift-vim = buildVimPlugin { pname = "swift.vim"; version = "2023-08-02"; src = fetchFromGitHub { @@ -9397,7 +9397,7 @@ final: prev: meta.homepage = "https://github.com/keith/swift.vim/"; }; - switch-vim = buildVimPluginFrom2Nix { + switch-vim = buildVimPlugin { pname = "switch.vim"; version = "2023-08-22"; src = fetchFromGitHub { @@ -9410,7 +9410,7 @@ final: prev: meta.homepage = "https://github.com/AndrewRadev/switch.vim/"; }; - symbols-outline-nvim = buildVimPluginFrom2Nix { + symbols-outline-nvim = buildVimPlugin { pname = "symbols-outline.nvim"; version = "2023-01-25"; src = fetchFromGitHub { @@ -9422,7 +9422,7 @@ final: prev: meta.homepage = "https://github.com/simrat39/symbols-outline.nvim/"; }; - syntastic = buildVimPluginFrom2Nix { + syntastic = buildVimPlugin { pname = "syntastic"; version = "2022-07-10"; src = fetchFromGitHub { @@ -9434,7 +9434,7 @@ final: prev: meta.homepage = "https://github.com/vim-syntastic/syntastic/"; }; - tabby-nvim = buildVimPluginFrom2Nix { + tabby-nvim = buildVimPlugin { pname = "tabby.nvim"; version = "2023-08-30"; src = fetchFromGitHub { @@ -9446,7 +9446,7 @@ final: prev: meta.homepage = "https://github.com/nanozuki/tabby.nvim/"; }; - tabline-nvim = buildVimPluginFrom2Nix { + tabline-nvim = buildVimPlugin { pname = "tabline.nvim"; version = "2023-07-24"; src = fetchFromGitHub { @@ -9458,7 +9458,7 @@ final: prev: meta.homepage = "https://github.com/kdheepak/tabline.nvim/"; }; - tabmerge = buildVimPluginFrom2Nix { + tabmerge = buildVimPlugin { pname = "tabmerge"; version = "2010-10-18"; src = fetchFromGitHub { @@ -9470,7 +9470,7 @@ final: prev: meta.homepage = "https://github.com/vim-scripts/tabmerge/"; }; - tabnine-vim = buildVimPluginFrom2Nix { + tabnine-vim = buildVimPlugin { pname = "tabnine-vim"; version = "2023-01-01"; src = fetchFromGitHub { @@ -9483,7 +9483,7 @@ final: prev: meta.homepage = "https://github.com/codota/tabnine-vim/"; }; - taboo-vim = buildVimPluginFrom2Nix { + taboo-vim = buildVimPlugin { pname = "taboo.vim"; version = "2019-08-27"; src = fetchFromGitHub { @@ -9495,7 +9495,7 @@ final: prev: meta.homepage = "https://github.com/gcmt/taboo.vim/"; }; - tabout-nvim = buildVimPluginFrom2Nix { + tabout-nvim = buildVimPlugin { pname = "tabout.nvim"; version = "2023-03-29"; src = fetchFromGitHub { @@ -9507,7 +9507,7 @@ final: prev: meta.homepage = "https://github.com/abecodes/tabout.nvim/"; }; - tabpagebuffer-vim = buildVimPluginFrom2Nix { + tabpagebuffer-vim = buildVimPlugin { pname = "tabpagebuffer.vim"; version = "2014-09-30"; src = fetchFromGitHub { @@ -9519,7 +9519,7 @@ final: prev: meta.homepage = "https://github.com/Shougo/tabpagebuffer.vim/"; }; - tabular = buildVimPluginFrom2Nix { + tabular = buildVimPlugin { pname = "tabular"; version = "2019-02-19"; src = fetchFromGitHub { @@ -9531,7 +9531,7 @@ final: prev: meta.homepage = "https://github.com/godlygeek/tabular/"; }; - tagalong-vim = buildVimPluginFrom2Nix { + tagalong-vim = buildVimPlugin { pname = "tagalong.vim"; version = "2023-09-07"; src = fetchFromGitHub { @@ -9543,7 +9543,7 @@ final: prev: meta.homepage = "https://github.com/AndrewRadev/tagalong.vim/"; }; - tagbar = buildVimPluginFrom2Nix { + tagbar = buildVimPlugin { pname = "tagbar"; version = "2023-08-15"; src = fetchFromGitHub { @@ -9555,7 +9555,7 @@ final: prev: meta.homepage = "https://github.com/preservim/tagbar/"; }; - taglist-vim = buildVimPluginFrom2Nix { + taglist-vim = buildVimPlugin { pname = "taglist.vim"; version = "2010-10-18"; src = fetchFromGitHub { @@ -9567,7 +9567,7 @@ final: prev: meta.homepage = "https://github.com/vim-scripts/taglist.vim/"; }; - targets-vim = buildVimPluginFrom2Nix { + targets-vim = buildVimPlugin { pname = "targets.vim"; version = "2023-02-22"; src = fetchFromGitHub { @@ -9579,7 +9579,7 @@ final: prev: meta.homepage = "https://github.com/wellle/targets.vim/"; }; - taskwiki = buildVimPluginFrom2Nix { + taskwiki = buildVimPlugin { pname = "taskwiki"; version = "2022-12-14"; src = fetchFromGitHub { @@ -9591,7 +9591,7 @@ final: prev: meta.homepage = "https://github.com/tools-life/taskwiki/"; }; - tcomment_vim = buildVimPluginFrom2Nix { + tcomment_vim = buildVimPlugin { pname = "tcomment_vim"; version = "2022-12-17"; src = fetchFromGitHub { @@ -9603,7 +9603,7 @@ final: prev: meta.homepage = "https://github.com/tomtom/tcomment_vim/"; }; - telekasten-nvim = buildVimPluginFrom2Nix { + telekasten-nvim = buildVimPlugin { pname = "telekasten.nvim"; version = "2023-09-08"; src = fetchFromGitHub { @@ -9616,7 +9616,7 @@ final: prev: meta.homepage = "https://github.com/renerocksai/telekasten.nvim/"; }; - telescope-asynctasks-nvim = buildVimPluginFrom2Nix { + telescope-asynctasks-nvim = buildVimPlugin { pname = "telescope-asynctasks.nvim"; version = "2022-04-09"; src = fetchFromGitHub { @@ -9628,7 +9628,7 @@ final: prev: meta.homepage = "https://github.com/GustavoKatel/telescope-asynctasks.nvim/"; }; - telescope-cheat-nvim = buildVimPluginFrom2Nix { + telescope-cheat-nvim = buildVimPlugin { pname = "telescope-cheat.nvim"; version = "2023-02-19"; src = fetchFromGitHub { @@ -9640,7 +9640,7 @@ final: prev: meta.homepage = "https://github.com/nvim-telescope/telescope-cheat.nvim/"; }; - telescope-coc-nvim = buildVimPluginFrom2Nix { + telescope-coc-nvim = buildVimPlugin { pname = "telescope-coc.nvim"; version = "2023-02-16"; src = fetchFromGitHub { @@ -9652,7 +9652,7 @@ final: prev: meta.homepage = "https://github.com/fannheyward/telescope-coc.nvim/"; }; - telescope-dap-nvim = buildVimPluginFrom2Nix { + telescope-dap-nvim = buildVimPlugin { pname = "telescope-dap.nvim"; version = "2023-09-10"; src = fetchFromGitHub { @@ -9664,7 +9664,7 @@ final: prev: meta.homepage = "https://github.com/nvim-telescope/telescope-dap.nvim/"; }; - telescope-file-browser-nvim = buildVimPluginFrom2Nix { + telescope-file-browser-nvim = buildVimPlugin { pname = "telescope-file-browser.nvim"; version = "2023-09-15"; src = fetchFromGitHub { @@ -9676,7 +9676,7 @@ final: prev: meta.homepage = "https://github.com/nvim-telescope/telescope-file-browser.nvim/"; }; - telescope-frecency-nvim = buildVimPluginFrom2Nix { + telescope-frecency-nvim = buildVimPlugin { pname = "telescope-frecency.nvim"; version = "2023-08-27"; src = fetchFromGitHub { @@ -9688,7 +9688,7 @@ final: prev: meta.homepage = "https://github.com/nvim-telescope/telescope-frecency.nvim/"; }; - telescope-fzf-native-nvim = buildVimPluginFrom2Nix { + telescope-fzf-native-nvim = buildVimPlugin { pname = "telescope-fzf-native.nvim"; version = "2023-09-10"; src = fetchFromGitHub { @@ -9700,7 +9700,7 @@ final: prev: meta.homepage = "https://github.com/nvim-telescope/telescope-fzf-native.nvim/"; }; - telescope-fzf-writer-nvim = buildVimPluginFrom2Nix { + telescope-fzf-writer-nvim = buildVimPlugin { pname = "telescope-fzf-writer.nvim"; version = "2021-04-16"; src = fetchFromGitHub { @@ -9712,7 +9712,7 @@ final: prev: meta.homepage = "https://github.com/nvim-telescope/telescope-fzf-writer.nvim/"; }; - telescope-fzy-native-nvim = buildVimPluginFrom2Nix { + telescope-fzy-native-nvim = buildVimPlugin { pname = "telescope-fzy-native.nvim"; version = "2022-09-11"; src = fetchFromGitHub { @@ -9725,7 +9725,7 @@ final: prev: meta.homepage = "https://github.com/nvim-telescope/telescope-fzy-native.nvim/"; }; - telescope-github-nvim = buildVimPluginFrom2Nix { + telescope-github-nvim = buildVimPlugin { pname = "telescope-github.nvim"; version = "2022-04-22"; src = fetchFromGitHub { @@ -9737,7 +9737,7 @@ final: prev: meta.homepage = "https://github.com/nvim-telescope/telescope-github.nvim/"; }; - telescope-live-grep-args-nvim = buildVimPluginFrom2Nix { + telescope-live-grep-args-nvim = buildVimPlugin { pname = "telescope-live-grep-args.nvim"; version = "2023-08-28"; src = fetchFromGitHub { @@ -9749,7 +9749,7 @@ final: prev: meta.homepage = "https://github.com/nvim-telescope/telescope-live-grep-args.nvim/"; }; - telescope-lsp-handlers-nvim = buildVimPluginFrom2Nix { + telescope-lsp-handlers-nvim = buildVimPlugin { pname = "telescope-lsp-handlers.nvim"; version = "2023-03-04"; src = fetchFromGitHub { @@ -9773,7 +9773,7 @@ final: prev: meta.homepage = "https://github.com/MrcJkb/telescope-manix/"; }; - telescope-media-files-nvim = buildVimPluginFrom2Nix { + telescope-media-files-nvim = buildVimPlugin { pname = "telescope-media-files.nvim"; version = "2023-02-19"; src = fetchFromGitHub { @@ -9785,7 +9785,7 @@ final: prev: meta.homepage = "https://github.com/nvim-telescope/telescope-media-files.nvim/"; }; - telescope-project-nvim = buildVimPluginFrom2Nix { + telescope-project-nvim = buildVimPlugin { pname = "telescope-project.nvim"; version = "2023-04-27"; src = fetchFromGitHub { @@ -9797,7 +9797,7 @@ final: prev: meta.homepage = "https://github.com/nvim-telescope/telescope-project.nvim/"; }; - telescope-sg = buildVimPluginFrom2Nix { + telescope-sg = buildVimPlugin { pname = "telescope-sg"; version = "2023-08-09"; src = fetchFromGitHub { @@ -9809,7 +9809,7 @@ final: prev: meta.homepage = "https://github.com/Marskey/telescope-sg/"; }; - telescope-symbols-nvim = buildVimPluginFrom2Nix { + telescope-symbols-nvim = buildVimPlugin { pname = "telescope-symbols.nvim"; version = "2023-02-19"; src = fetchFromGitHub { @@ -9821,7 +9821,7 @@ final: prev: meta.homepage = "https://github.com/nvim-telescope/telescope-symbols.nvim/"; }; - telescope-ui-select-nvim = buildVimPluginFrom2Nix { + telescope-ui-select-nvim = buildVimPlugin { pname = "telescope-ui-select.nvim"; version = "2022-04-30"; src = fetchFromGitHub { @@ -9833,7 +9833,7 @@ final: prev: meta.homepage = "https://github.com/nvim-telescope/telescope-ui-select.nvim/"; }; - telescope-ultisnips-nvim = buildVimPluginFrom2Nix { + telescope-ultisnips-nvim = buildVimPlugin { pname = "telescope-ultisnips.nvim"; version = "2021-09-26"; src = fetchFromGitHub { @@ -9845,7 +9845,7 @@ final: prev: meta.homepage = "https://github.com/fhill2/telescope-ultisnips.nvim/"; }; - telescope-undo-nvim = buildVimPluginFrom2Nix { + telescope-undo-nvim = buildVimPlugin { pname = "telescope-undo.nvim"; version = "2023-06-03"; src = fetchFromGitHub { @@ -9857,7 +9857,7 @@ final: prev: meta.homepage = "https://github.com/debugloop/telescope-undo.nvim/"; }; - telescope-vim-bookmarks-nvim = buildVimPluginFrom2Nix { + telescope-vim-bookmarks-nvim = buildVimPlugin { pname = "telescope-vim-bookmarks.nvim"; version = "2022-07-17"; src = fetchFromGitHub { @@ -9869,7 +9869,7 @@ final: prev: meta.homepage = "https://github.com/tom-anders/telescope-vim-bookmarks.nvim/"; }; - telescope-z-nvim = buildVimPluginFrom2Nix { + telescope-z-nvim = buildVimPlugin { pname = "telescope-z.nvim"; version = "2023-08-17"; src = fetchFromGitHub { @@ -9881,7 +9881,7 @@ final: prev: meta.homepage = "https://github.com/nvim-telescope/telescope-z.nvim/"; }; - telescope-zf-native-nvim = buildVimPluginFrom2Nix { + telescope-zf-native-nvim = buildVimPlugin { pname = "telescope-zf-native.nvim"; version = "2023-03-15"; src = fetchFromGitHub { @@ -9894,7 +9894,7 @@ final: prev: meta.homepage = "https://github.com/natecraddock/telescope-zf-native.nvim/"; }; - telescope-zoxide = buildVimPluginFrom2Nix { + telescope-zoxide = buildVimPlugin { pname = "telescope-zoxide"; version = "2023-02-08"; src = fetchFromGitHub { @@ -9918,7 +9918,7 @@ final: prev: meta.homepage = "https://github.com/nvim-telescope/telescope.nvim/"; }; - telescope_hoogle = buildVimPluginFrom2Nix { + telescope_hoogle = buildVimPlugin { pname = "telescope_hoogle"; version = "2022-10-27"; src = fetchFromGitHub { @@ -9930,7 +9930,7 @@ final: prev: meta.homepage = "https://github.com/luc-tielen/telescope_hoogle/"; }; - template-string-nvim = buildVimPluginFrom2Nix { + template-string-nvim = buildVimPlugin { pname = "template-string.nvim"; version = "2023-09-11"; src = fetchFromGitHub { @@ -9942,7 +9942,7 @@ final: prev: meta.homepage = "https://github.com/axelvc/template-string.nvim/"; }; - tender-vim = buildVimPluginFrom2Nix { + tender-vim = buildVimPlugin { pname = "tender.vim"; version = "2021-05-24"; src = fetchFromGitHub { @@ -9954,7 +9954,7 @@ final: prev: meta.homepage = "https://github.com/jacoborus/tender.vim/"; }; - term-edit-nvim = buildVimPluginFrom2Nix { + term-edit-nvim = buildVimPlugin { pname = "term-edit.nvim"; version = "2023-07-30"; src = fetchFromGitHub { @@ -9966,7 +9966,7 @@ final: prev: meta.homepage = "https://github.com/chomosuke/term-edit.nvim/"; }; - terminus = buildVimPluginFrom2Nix { + terminus = buildVimPlugin { pname = "terminus"; version = "2021-12-28"; src = fetchFromGitHub { @@ -9978,7 +9978,7 @@ final: prev: meta.homepage = "https://github.com/wincent/terminus/"; }; - termwrapper-nvim = buildVimPluginFrom2Nix { + termwrapper-nvim = buildVimPlugin { pname = "termwrapper.nvim"; version = "2021-03-28"; src = fetchFromGitHub { @@ -9990,7 +9990,7 @@ final: prev: meta.homepage = "https://github.com/oberblastmeister/termwrapper.nvim/"; }; - tern_for_vim = buildVimPluginFrom2Nix { + tern_for_vim = buildVimPlugin { pname = "tern_for_vim"; version = "2019-01-23"; src = fetchFromGitHub { @@ -10002,7 +10002,7 @@ final: prev: meta.homepage = "https://github.com/ternjs/tern_for_vim/"; }; - tex-conceal-vim = buildVimPluginFrom2Nix { + tex-conceal-vim = buildVimPlugin { pname = "tex-conceal.vim"; version = "2022-01-15"; src = fetchFromGitHub { @@ -10014,7 +10014,7 @@ final: prev: meta.homepage = "https://github.com/KeitaNakamura/tex-conceal.vim/"; }; - text-case-nvim = buildVimPluginFrom2Nix { + text-case-nvim = buildVimPlugin { pname = "text-case.nvim"; version = "2023-09-03"; src = fetchFromGitHub { @@ -10026,7 +10026,7 @@ final: prev: meta.homepage = "https://github.com/johmsalas/text-case.nvim/"; }; - thesaurus_query-vim = buildVimPluginFrom2Nix { + thesaurus_query-vim = buildVimPlugin { pname = "thesaurus_query.vim"; version = "2022-12-11"; src = fetchFromGitHub { @@ -10038,7 +10038,7 @@ final: prev: meta.homepage = "https://github.com/ron89/thesaurus_query.vim/"; }; - thumbnail-vim = buildVimPluginFrom2Nix { + thumbnail-vim = buildVimPlugin { pname = "thumbnail.vim"; version = "2022-03-21"; src = fetchFromGitHub { @@ -10050,7 +10050,7 @@ final: prev: meta.homepage = "https://github.com/itchyny/thumbnail.vim/"; }; - timestamp-vim = buildVimPluginFrom2Nix { + timestamp-vim = buildVimPlugin { pname = "timestamp.vim"; version = "2010-11-06"; src = fetchFromGitHub { @@ -10062,7 +10062,7 @@ final: prev: meta.homepage = "https://github.com/vim-scripts/timestamp.vim/"; }; - tint-nvim = buildVimPluginFrom2Nix { + tint-nvim = buildVimPlugin { pname = "tint.nvim"; version = "2023-08-28"; src = fetchFromGitHub { @@ -10074,7 +10074,7 @@ final: prev: meta.homepage = "https://github.com/levouh/tint.nvim/"; }; - tlib_vim = buildVimPluginFrom2Nix { + tlib_vim = buildVimPlugin { pname = "tlib_vim"; version = "2022-07-22"; src = fetchFromGitHub { @@ -10086,7 +10086,7 @@ final: prev: meta.homepage = "https://github.com/tomtom/tlib_vim/"; }; - tmux-complete-vim = buildVimPluginFrom2Nix { + tmux-complete-vim = buildVimPlugin { pname = "tmux-complete.vim"; version = "2021-03-26"; src = fetchFromGitHub { @@ -10098,7 +10098,7 @@ final: prev: meta.homepage = "https://github.com/wellle/tmux-complete.vim/"; }; - tmux-nvim = buildVimPluginFrom2Nix { + tmux-nvim = buildVimPlugin { pname = "tmux.nvim"; version = "2023-09-06"; src = fetchFromGitHub { @@ -10110,7 +10110,7 @@ final: prev: meta.homepage = "https://github.com/aserowy/tmux.nvim/"; }; - tmuxline-vim = buildVimPluginFrom2Nix { + tmuxline-vim = buildVimPlugin { pname = "tmuxline.vim"; version = "2021-07-20"; src = fetchFromGitHub { @@ -10122,7 +10122,7 @@ final: prev: meta.homepage = "https://github.com/edkolev/tmuxline.vim/"; }; - todo-comments-nvim = buildVimPluginFrom2Nix { + todo-comments-nvim = buildVimPlugin { pname = "todo-comments.nvim"; version = "2023-07-28"; src = fetchFromGitHub { @@ -10134,7 +10134,7 @@ final: prev: meta.homepage = "https://github.com/folke/todo-comments.nvim/"; }; - todo-txt-vim = buildVimPluginFrom2Nix { + todo-txt-vim = buildVimPlugin { pname = "todo.txt-vim"; version = "2021-03-20"; src = fetchFromGitHub { @@ -10147,7 +10147,7 @@ final: prev: meta.homepage = "https://github.com/freitass/todo.txt-vim/"; }; - toggleterm-nvim = buildVimPluginFrom2Nix { + toggleterm-nvim = buildVimPlugin { pname = "toggleterm.nvim"; version = "2023-09-11"; src = fetchFromGitHub { @@ -10159,7 +10159,7 @@ final: prev: meta.homepage = "https://github.com/akinsho/toggleterm.nvim/"; }; - tokyonight-nvim = buildVimPluginFrom2Nix { + tokyonight-nvim = buildVimPlugin { pname = "tokyonight.nvim"; version = "2023-08-29"; src = fetchFromGitHub { @@ -10171,7 +10171,7 @@ final: prev: meta.homepage = "https://github.com/folke/tokyonight.nvim/"; }; - traces-vim = buildVimPluginFrom2Nix { + traces-vim = buildVimPlugin { pname = "traces.vim"; version = "2022-04-11"; src = fetchFromGitHub { @@ -10183,7 +10183,7 @@ final: prev: meta.homepage = "https://github.com/markonm/traces.vim/"; }; - train-nvim = buildVimPluginFrom2Nix { + train-nvim = buildVimPlugin { pname = "train.nvim"; version = "2023-07-31"; src = fetchFromGitHub { @@ -10195,7 +10195,7 @@ final: prev: meta.homepage = "https://github.com/tjdevries/train.nvim/"; }; - treesj = buildVimPluginFrom2Nix { + treesj = buildVimPlugin { pname = "treesj"; version = "2023-08-25"; src = fetchFromGitHub { @@ -10207,7 +10207,7 @@ final: prev: meta.homepage = "https://github.com/Wansmer/treesj/"; }; - tremor-vim = buildVimPluginFrom2Nix { + tremor-vim = buildVimPlugin { pname = "tremor-vim"; version = "2021-09-07"; src = fetchFromGitHub { @@ -10219,7 +10219,7 @@ final: prev: meta.homepage = "https://github.com/tremor-rs/tremor-vim/"; }; - trim-nvim = buildVimPluginFrom2Nix { + trim-nvim = buildVimPlugin { pname = "trim.nvim"; version = "2023-03-22"; src = fetchFromGitHub { @@ -10231,7 +10231,7 @@ final: prev: meta.homepage = "https://github.com/cappyzawa/trim.nvim/"; }; - trouble-nvim = buildVimPluginFrom2Nix { + trouble-nvim = buildVimPlugin { pname = "trouble.nvim"; version = "2023-08-30"; src = fetchFromGitHub { @@ -10243,7 +10243,7 @@ final: prev: meta.homepage = "https://github.com/folke/trouble.nvim/"; }; - true-zen-nvim = buildVimPluginFrom2Nix { + true-zen-nvim = buildVimPlugin { pname = "true-zen.nvim"; version = "2023-06-09"; src = fetchFromGitHub { @@ -10255,7 +10255,7 @@ final: prev: meta.homepage = "https://github.com/Pocco81/true-zen.nvim/"; }; - tslime-vim = buildVimPluginFrom2Nix { + tslime-vim = buildVimPlugin { pname = "tslime.vim"; version = "2020-09-09"; src = fetchFromGitHub { @@ -10267,7 +10267,7 @@ final: prev: meta.homepage = "https://github.com/jgdavey/tslime.vim/"; }; - tsuquyomi = buildVimPluginFrom2Nix { + tsuquyomi = buildVimPlugin { pname = "tsuquyomi"; version = "2022-04-12"; src = fetchFromGitHub { @@ -10279,7 +10279,7 @@ final: prev: meta.homepage = "https://github.com/Quramy/tsuquyomi/"; }; - twilight-nvim = buildVimPluginFrom2Nix { + twilight-nvim = buildVimPlugin { pname = "twilight.nvim"; version = "2023-05-22"; src = fetchFromGitHub { @@ -10291,7 +10291,7 @@ final: prev: meta.homepage = "https://github.com/folke/twilight.nvim/"; }; - typescript-vim = buildVimPluginFrom2Nix { + typescript-vim = buildVimPlugin { pname = "typescript-vim"; version = "2023-05-11"; src = fetchFromGitHub { @@ -10303,7 +10303,7 @@ final: prev: meta.homepage = "https://github.com/leafgarland/typescript-vim/"; }; - typescript-nvim = buildVimPluginFrom2Nix { + typescript-nvim = buildVimPlugin { pname = "typescript.nvim"; version = "2023-08-12"; src = fetchFromGitHub { @@ -10315,7 +10315,7 @@ final: prev: meta.homepage = "https://github.com/jose-elias-alvarez/typescript.nvim/"; }; - typst-vim = buildVimPluginFrom2Nix { + typst-vim = buildVimPlugin { pname = "typst.vim"; version = "2023-09-11"; src = fetchFromGitHub { @@ -10327,7 +10327,7 @@ final: prev: meta.homepage = "https://github.com/kaarmu/typst.vim/"; }; - ultisnips = buildVimPluginFrom2Nix { + ultisnips = buildVimPlugin { pname = "ultisnips"; version = "2023-08-05"; src = fetchFromGitHub { @@ -10339,7 +10339,7 @@ final: prev: meta.homepage = "https://github.com/SirVer/ultisnips/"; }; - undotree = buildVimPluginFrom2Nix { + undotree = buildVimPlugin { pname = "undotree"; version = "2023-07-07"; src = fetchFromGitHub { @@ -10351,7 +10351,7 @@ final: prev: meta.homepage = "https://github.com/mbbill/undotree/"; }; - unicode-vim = buildVimPluginFrom2Nix { + unicode-vim = buildVimPlugin { pname = "unicode.vim"; version = "2023-03-19"; src = fetchFromGitHub { @@ -10363,7 +10363,7 @@ final: prev: meta.homepage = "https://github.com/chrisbra/unicode.vim/"; }; - unison = buildVimPluginFrom2Nix { + unison = buildVimPlugin { pname = "unison"; version = "2023-09-14"; src = fetchFromGitHub { @@ -10375,7 +10375,7 @@ final: prev: meta.homepage = "https://github.com/unisonweb/unison/"; }; - unite-vim = buildVimPluginFrom2Nix { + unite-vim = buildVimPlugin { pname = "unite.vim"; version = "2023-05-18"; src = fetchFromGitHub { @@ -10387,7 +10387,7 @@ final: prev: meta.homepage = "https://github.com/Shougo/unite.vim/"; }; - urlview-nvim = buildVimPluginFrom2Nix { + urlview-nvim = buildVimPlugin { pname = "urlview.nvim"; version = "2023-05-23"; src = fetchFromGitHub { @@ -10399,7 +10399,7 @@ final: prev: meta.homepage = "https://github.com/axieax/urlview.nvim/"; }; - utl-vim = buildVimPluginFrom2Nix { + utl-vim = buildVimPlugin { pname = "utl.vim"; version = "2010-10-18"; src = fetchFromGitHub { @@ -10411,7 +10411,7 @@ final: prev: meta.homepage = "https://github.com/vim-scripts/utl.vim/"; }; - vCoolor-vim = buildVimPluginFrom2Nix { + vCoolor-vim = buildVimPlugin { pname = "vCoolor.vim"; version = "2020-10-14"; src = fetchFromGitHub { @@ -10423,7 +10423,7 @@ final: prev: meta.homepage = "https://github.com/KabbAmine/vCoolor.vim/"; }; - vader-vim = buildVimPluginFrom2Nix { + vader-vim = buildVimPlugin { pname = "vader.vim"; version = "2020-02-13"; src = fetchFromGitHub { @@ -10435,7 +10435,7 @@ final: prev: meta.homepage = "https://github.com/junegunn/vader.vim/"; }; - venn-nvim = buildVimPluginFrom2Nix { + venn-nvim = buildVimPlugin { pname = "venn.nvim"; version = "2022-11-22"; src = fetchFromGitHub { @@ -10447,7 +10447,7 @@ final: prev: meta.homepage = "https://github.com/jbyuki/venn.nvim/"; }; - verilog_systemverilog-vim = buildVimPluginFrom2Nix { + verilog_systemverilog-vim = buildVimPlugin { pname = "verilog_systemverilog.vim"; version = "2023-08-11"; src = fetchFromGitHub { @@ -10459,7 +10459,7 @@ final: prev: meta.homepage = "https://github.com/vhda/verilog_systemverilog.vim/"; }; - vifm-vim = buildVimPluginFrom2Nix { + vifm-vim = buildVimPlugin { pname = "vifm.vim"; version = "2023-08-24"; src = fetchFromGitHub { @@ -10471,7 +10471,7 @@ final: prev: meta.homepage = "https://github.com/vifm/vifm.vim/"; }; - vim-CtrlXA = buildVimPluginFrom2Nix { + vim-CtrlXA = buildVimPlugin { pname = "vim-CtrlXA"; version = "2023-05-17"; src = fetchFromGitHub { @@ -10483,7 +10483,7 @@ final: prev: meta.homepage = "https://github.com/Konfekt/vim-CtrlXA/"; }; - vim-DetectSpellLang = buildVimPluginFrom2Nix { + vim-DetectSpellLang = buildVimPlugin { pname = "vim-DetectSpellLang"; version = "2022-03-15"; src = fetchFromGitHub { @@ -10495,7 +10495,7 @@ final: prev: meta.homepage = "https://github.com/konfekt/vim-DetectSpellLang/"; }; - vim-LanguageTool = buildVimPluginFrom2Nix { + vim-LanguageTool = buildVimPlugin { pname = "vim-LanguageTool"; version = "2021-02-08"; src = fetchFromGitHub { @@ -10507,7 +10507,7 @@ final: prev: meta.homepage = "https://github.com/dpelle/vim-LanguageTool/"; }; - vim-ReplaceWithRegister = buildVimPluginFrom2Nix { + vim-ReplaceWithRegister = buildVimPlugin { pname = "vim-ReplaceWithRegister"; version = "2021-07-05"; src = fetchFromGitHub { @@ -10519,7 +10519,7 @@ final: prev: meta.homepage = "https://github.com/inkarkat/vim-ReplaceWithRegister/"; }; - vim-ReplaceWithSameIndentRegister = buildVimPluginFrom2Nix { + vim-ReplaceWithSameIndentRegister = buildVimPlugin { pname = "vim-ReplaceWithSameIndentRegister"; version = "2020-06-17"; src = fetchFromGitHub { @@ -10531,7 +10531,7 @@ final: prev: meta.homepage = "https://github.com/inkarkat/vim-ReplaceWithSameIndentRegister/"; }; - vim-SyntaxRange = buildVimPluginFrom2Nix { + vim-SyntaxRange = buildVimPlugin { pname = "vim-SyntaxRange"; version = "2021-01-16"; src = fetchFromGitHub { @@ -10543,7 +10543,7 @@ final: prev: meta.homepage = "https://github.com/inkarkat/vim-SyntaxRange/"; }; - vim-abolish = buildVimPluginFrom2Nix { + vim-abolish = buildVimPlugin { pname = "vim-abolish"; version = "2023-04-10"; src = fetchFromGitHub { @@ -10555,7 +10555,7 @@ final: prev: meta.homepage = "https://github.com/tpope/vim-abolish/"; }; - vim-addon-actions = buildVimPluginFrom2Nix { + vim-addon-actions = buildVimPlugin { pname = "vim-addon-actions"; version = "2023-02-15"; src = fetchFromGitHub { @@ -10567,7 +10567,7 @@ final: prev: meta.homepage = "https://github.com/MarcWeber/vim-addon-actions/"; }; - vim-addon-async = buildVimPluginFrom2Nix { + vim-addon-async = buildVimPlugin { pname = "vim-addon-async"; version = "2017-03-20"; src = fetchFromGitHub { @@ -10579,7 +10579,7 @@ final: prev: meta.homepage = "https://github.com/MarcWeber/vim-addon-async/"; }; - vim-addon-background-cmd = buildVimPluginFrom2Nix { + vim-addon-background-cmd = buildVimPlugin { pname = "vim-addon-background-cmd"; version = "2015-12-11"; src = fetchFromGitHub { @@ -10591,7 +10591,7 @@ final: prev: meta.homepage = "https://github.com/MarcWeber/vim-addon-background-cmd/"; }; - vim-addon-commenting = buildVimPluginFrom2Nix { + vim-addon-commenting = buildVimPlugin { pname = "vim-addon-commenting"; version = "2013-06-10"; src = fetchFromGitHub { @@ -10603,7 +10603,7 @@ final: prev: meta.homepage = "https://github.com/MarcWeber/vim-addon-commenting/"; }; - vim-addon-completion = buildVimPluginFrom2Nix { + vim-addon-completion = buildVimPlugin { pname = "vim-addon-completion"; version = "2015-02-10"; src = fetchFromGitHub { @@ -10615,7 +10615,7 @@ final: prev: meta.homepage = "https://github.com/MarcWeber/vim-addon-completion/"; }; - vim-addon-errorformats = buildVimPluginFrom2Nix { + vim-addon-errorformats = buildVimPlugin { pname = "vim-addon-errorformats"; version = "2022-08-28"; src = fetchFromGitHub { @@ -10627,7 +10627,7 @@ final: prev: meta.homepage = "https://github.com/MarcWeber/vim-addon-errorformats/"; }; - vim-addon-goto-thing-at-cursor = buildVimPluginFrom2Nix { + vim-addon-goto-thing-at-cursor = buildVimPlugin { pname = "vim-addon-goto-thing-at-cursor"; version = "2020-02-07"; src = fetchFromGitHub { @@ -10639,7 +10639,7 @@ final: prev: meta.homepage = "https://github.com/MarcWeber/vim-addon-goto-thing-at-cursor/"; }; - vim-addon-local-vimrc = buildVimPluginFrom2Nix { + vim-addon-local-vimrc = buildVimPlugin { pname = "vim-addon-local-vimrc"; version = "2023-02-28"; src = fetchFromGitHub { @@ -10651,7 +10651,7 @@ final: prev: meta.homepage = "https://github.com/MarcWeber/vim-addon-local-vimrc/"; }; - vim-addon-manager = buildVimPluginFrom2Nix { + vim-addon-manager = buildVimPlugin { pname = "vim-addon-manager"; version = "2023-02-13"; src = fetchFromGitHub { @@ -10663,7 +10663,7 @@ final: prev: meta.homepage = "https://github.com/MarcWeber/vim-addon-manager/"; }; - vim-addon-mru = buildVimPluginFrom2Nix { + vim-addon-mru = buildVimPlugin { pname = "vim-addon-mru"; version = "2013-08-08"; src = fetchFromGitHub { @@ -10675,7 +10675,7 @@ final: prev: meta.homepage = "https://github.com/MarcWeber/vim-addon-mru/"; }; - vim-addon-mw-utils = buildVimPluginFrom2Nix { + vim-addon-mw-utils = buildVimPlugin { pname = "vim-addon-mw-utils"; version = "2020-02-07"; src = fetchFromGitHub { @@ -10687,7 +10687,7 @@ final: prev: meta.homepage = "https://github.com/MarcWeber/vim-addon-mw-utils/"; }; - vim-addon-nix = buildVimPluginFrom2Nix { + vim-addon-nix = buildVimPlugin { pname = "vim-addon-nix"; version = "2017-09-11"; src = fetchFromGitHub { @@ -10699,7 +10699,7 @@ final: prev: meta.homepage = "https://github.com/MarcWeber/vim-addon-nix/"; }; - vim-addon-other = buildVimPluginFrom2Nix { + vim-addon-other = buildVimPlugin { pname = "vim-addon-other"; version = "2021-10-06"; src = fetchFromGitHub { @@ -10711,7 +10711,7 @@ final: prev: meta.homepage = "https://github.com/MarcWeber/vim-addon-other/"; }; - vim-addon-php-manual = buildVimPluginFrom2Nix { + vim-addon-php-manual = buildVimPlugin { pname = "vim-addon-php-manual"; version = "2015-01-01"; src = fetchFromGitHub { @@ -10723,7 +10723,7 @@ final: prev: meta.homepage = "https://github.com/MarcWeber/vim-addon-php-manual/"; }; - vim-addon-signs = buildVimPluginFrom2Nix { + vim-addon-signs = buildVimPlugin { pname = "vim-addon-signs"; version = "2013-04-19"; src = fetchFromGitHub { @@ -10735,7 +10735,7 @@ final: prev: meta.homepage = "https://github.com/MarcWeber/vim-addon-signs/"; }; - vim-addon-sql = buildVimPluginFrom2Nix { + vim-addon-sql = buildVimPlugin { pname = "vim-addon-sql"; version = "2017-02-11"; src = fetchFromGitHub { @@ -10747,7 +10747,7 @@ final: prev: meta.homepage = "https://github.com/MarcWeber/vim-addon-sql/"; }; - vim-addon-syntax-checker = buildVimPluginFrom2Nix { + vim-addon-syntax-checker = buildVimPlugin { pname = "vim-addon-syntax-checker"; version = "2017-06-26"; src = fetchFromGitHub { @@ -10759,7 +10759,7 @@ final: prev: meta.homepage = "https://github.com/MarcWeber/vim-addon-syntax-checker/"; }; - vim-addon-toggle-buffer = buildVimPluginFrom2Nix { + vim-addon-toggle-buffer = buildVimPlugin { pname = "vim-addon-toggle-buffer"; version = "2012-01-13"; src = fetchFromGitHub { @@ -10771,7 +10771,7 @@ final: prev: meta.homepage = "https://github.com/MarcWeber/vim-addon-toggle-buffer/"; }; - vim-addon-xdebug = buildVimPluginFrom2Nix { + vim-addon-xdebug = buildVimPlugin { pname = "vim-addon-xdebug"; version = "2014-08-29"; src = fetchFromGitHub { @@ -10783,7 +10783,7 @@ final: prev: meta.homepage = "https://github.com/MarcWeber/vim-addon-xdebug/"; }; - vim-after-object = buildVimPluginFrom2Nix { + vim-after-object = buildVimPlugin { pname = "vim-after-object"; version = "2018-09-17"; src = fetchFromGitHub { @@ -10795,7 +10795,7 @@ final: prev: meta.homepage = "https://github.com/junegunn/vim-after-object/"; }; - vim-agda = buildVimPluginFrom2Nix { + vim-agda = buildVimPlugin { pname = "vim-agda"; version = "2022-03-01"; src = fetchFromGitHub { @@ -10807,7 +10807,7 @@ final: prev: meta.homepage = "https://github.com/msuperdock/vim-agda/"; }; - vim-airline = buildVimPluginFrom2Nix { + vim-airline = buildVimPlugin { pname = "vim-airline"; version = "2023-07-19"; src = fetchFromGitHub { @@ -10819,7 +10819,7 @@ final: prev: meta.homepage = "https://github.com/vim-airline/vim-airline/"; }; - vim-airline-clock = buildVimPluginFrom2Nix { + vim-airline-clock = buildVimPlugin { pname = "vim-airline-clock"; version = "2021-04-14"; src = fetchFromGitHub { @@ -10831,7 +10831,7 @@ final: prev: meta.homepage = "https://github.com/enricobacis/vim-airline-clock/"; }; - vim-airline-themes = buildVimPluginFrom2Nix { + vim-airline-themes = buildVimPlugin { pname = "vim-airline-themes"; version = "2022-11-08"; src = fetchFromGitHub { @@ -10843,7 +10843,7 @@ final: prev: meta.homepage = "https://github.com/vim-airline/vim-airline-themes/"; }; - vim-alias = buildVimPluginFrom2Nix { + vim-alias = buildVimPlugin { pname = "vim-alias"; version = "2021-05-25"; src = fetchFromGitHub { @@ -10855,7 +10855,7 @@ final: prev: meta.homepage = "https://github.com/Konfekt/vim-alias/"; }; - vim-android = buildVimPluginFrom2Nix { + vim-android = buildVimPlugin { pname = "vim-android"; version = "2023-08-24"; src = fetchFromGitHub { @@ -10867,7 +10867,7 @@ final: prev: meta.homepage = "https://github.com/hsanson/vim-android/"; }; - vim-anzu = buildVimPluginFrom2Nix { + vim-anzu = buildVimPlugin { pname = "vim-anzu"; version = "2022-12-18"; src = fetchFromGitHub { @@ -10879,7 +10879,7 @@ final: prev: meta.homepage = "https://github.com/osyo-manga/vim-anzu/"; }; - vim-apm = buildVimPluginFrom2Nix { + vim-apm = buildVimPlugin { pname = "vim-apm"; version = "2020-09-28"; src = fetchFromGitHub { @@ -10891,7 +10891,7 @@ final: prev: meta.homepage = "https://github.com/ThePrimeagen/vim-apm/"; }; - vim-argumentative = buildVimPluginFrom2Nix { + vim-argumentative = buildVimPlugin { pname = "vim-argumentative"; version = "2014-11-24"; src = fetchFromGitHub { @@ -10903,7 +10903,7 @@ final: prev: meta.homepage = "https://github.com/PeterRincker/vim-argumentative/"; }; - vim-argwrap = buildVimPluginFrom2Nix { + vim-argwrap = buildVimPlugin { pname = "vim-argwrap"; version = "2022-07-14"; src = fetchFromGitHub { @@ -10915,7 +10915,7 @@ final: prev: meta.homepage = "https://github.com/FooSoft/vim-argwrap/"; }; - vim-asterisk = buildVimPluginFrom2Nix { + vim-asterisk = buildVimPlugin { pname = "vim-asterisk"; version = "2020-02-03"; src = fetchFromGitHub { @@ -10927,7 +10927,7 @@ final: prev: meta.homepage = "https://github.com/haya14busa/vim-asterisk/"; }; - vim-astro = buildVimPluginFrom2Nix { + vim-astro = buildVimPlugin { pname = "vim-astro"; version = "2022-08-25"; src = fetchFromGitHub { @@ -10939,7 +10939,7 @@ final: prev: meta.homepage = "https://github.com/wuelnerdotexe/vim-astro/"; }; - vim-asymptote = buildVimPluginFrom2Nix { + vim-asymptote = buildVimPlugin { pname = "vim-asymptote"; version = "2014-06-26"; src = fetchFromGitHub { @@ -10951,7 +10951,7 @@ final: prev: meta.homepage = "https://github.com/hura/vim-asymptote/"; }; - vim-auto-save = buildVimPluginFrom2Nix { + vim-auto-save = buildVimPlugin { pname = "vim-auto-save"; version = "2022-08-08"; src = fetchFromGitHub { @@ -10963,7 +10963,7 @@ final: prev: meta.homepage = "https://github.com/907th/vim-auto-save/"; }; - vim-autoformat = buildVimPluginFrom2Nix { + vim-autoformat = buildVimPlugin { pname = "vim-autoformat"; version = "2023-08-26"; src = fetchFromGitHub { @@ -10975,7 +10975,7 @@ final: prev: meta.homepage = "https://github.com/vim-autoformat/vim-autoformat/"; }; - vim-automkdir = buildVimPluginFrom2Nix { + vim-automkdir = buildVimPlugin { pname = "vim-automkdir"; version = "2016-01-17"; src = fetchFromGitHub { @@ -10987,7 +10987,7 @@ final: prev: meta.homepage = "https://github.com/benizi/vim-automkdir/"; }; - vim-autosource = buildVimPluginFrom2Nix { + vim-autosource = buildVimPlugin { pname = "vim-autosource"; version = "2021-12-22"; src = fetchFromGitHub { @@ -10999,7 +10999,7 @@ final: prev: meta.homepage = "https://github.com/jenterkin/vim-autosource/"; }; - vim-autoswap = buildVimPluginFrom2Nix { + vim-autoswap = buildVimPlugin { pname = "vim-autoswap"; version = "2019-01-09"; src = fetchFromGitHub { @@ -11011,7 +11011,7 @@ final: prev: meta.homepage = "https://github.com/gioele/vim-autoswap/"; }; - vim-bazel = buildVimPluginFrom2Nix { + vim-bazel = buildVimPlugin { pname = "vim-bazel"; version = "2022-04-09"; src = fetchFromGitHub { @@ -11023,7 +11023,7 @@ final: prev: meta.homepage = "https://github.com/bazelbuild/vim-bazel/"; }; - vim-bbye = buildVimPluginFrom2Nix { + vim-bbye = buildVimPlugin { pname = "vim-bbye"; version = "2018-03-03"; src = fetchFromGitHub { @@ -11035,7 +11035,7 @@ final: prev: meta.homepage = "https://github.com/moll/vim-bbye/"; }; - vim-be-good = buildVimPluginFrom2Nix { + vim-be-good = buildVimPlugin { pname = "vim-be-good"; version = "2022-11-08"; src = fetchFromGitHub { @@ -11047,7 +11047,7 @@ final: prev: meta.homepage = "https://github.com/ThePrimeagen/vim-be-good/"; }; - vim-beancount = buildVimPluginFrom2Nix { + vim-beancount = buildVimPlugin { pname = "vim-beancount"; version = "2023-01-02"; src = fetchFromGitHub { @@ -11059,7 +11059,7 @@ final: prev: meta.homepage = "https://github.com/nathangrigg/vim-beancount/"; }; - vim-bepoptimist = buildVimPluginFrom2Nix { + vim-bepoptimist = buildVimPlugin { pname = "vim-bepoptimist"; version = "2022-06-24"; src = fetchFromGitHub { @@ -11071,7 +11071,7 @@ final: prev: meta.homepage = "https://github.com/sheoak/vim-bepoptimist/"; }; - vim-better-whitespace = buildVimPluginFrom2Nix { + vim-better-whitespace = buildVimPlugin { pname = "vim-better-whitespace"; version = "2022-06-30"; src = fetchFromGitHub { @@ -11083,7 +11083,7 @@ final: prev: meta.homepage = "https://github.com/ntpeters/vim-better-whitespace/"; }; - vim-bookmarks = buildVimPluginFrom2Nix { + vim-bookmarks = buildVimPlugin { pname = "vim-bookmarks"; version = "2021-08-22"; src = fetchFromGitHub { @@ -11095,7 +11095,7 @@ final: prev: meta.homepage = "https://github.com/MattesGroeger/vim-bookmarks/"; }; - vim-boxdraw = buildVimPluginFrom2Nix { + vim-boxdraw = buildVimPlugin { pname = "vim-boxdraw"; version = "2021-01-28"; src = fetchFromGitHub { @@ -11107,7 +11107,7 @@ final: prev: meta.homepage = "https://github.com/gyim/vim-boxdraw/"; }; - vim-bracketed-paste = buildVimPluginFrom2Nix { + vim-bracketed-paste = buildVimPlugin { pname = "vim-bracketed-paste"; version = "2022-03-21"; src = fetchFromGitHub { @@ -11119,7 +11119,7 @@ final: prev: meta.homepage = "https://github.com/ConradIrwin/vim-bracketed-paste/"; }; - vim-bsv = buildVimPluginFrom2Nix { + vim-bsv = buildVimPlugin { pname = "vim-bsv"; version = "2020-11-08"; src = fetchFromGitHub { @@ -11131,7 +11131,7 @@ final: prev: meta.homepage = "https://github.com/mtikekar/vim-bsv/"; }; - vim-buffergator = buildVimPluginFrom2Nix { + vim-buffergator = buildVimPlugin { pname = "vim-buffergator"; version = "2021-11-28"; src = fetchFromGitHub { @@ -11143,7 +11143,7 @@ final: prev: meta.homepage = "https://github.com/jeetsukumaran/vim-buffergator/"; }; - vim-bufferline = buildVimPluginFrom2Nix { + vim-bufferline = buildVimPlugin { pname = "vim-bufferline"; version = "2016-02-09"; src = fetchFromGitHub { @@ -11155,7 +11155,7 @@ final: prev: meta.homepage = "https://github.com/bling/vim-bufferline/"; }; - vim-bufkill = buildVimPluginFrom2Nix { + vim-bufkill = buildVimPlugin { pname = "vim-bufkill"; version = "2022-04-19"; src = fetchFromGitHub { @@ -11167,7 +11167,7 @@ final: prev: meta.homepage = "https://github.com/qpkorr/vim-bufkill/"; }; - vim-caddyfile = buildVimPluginFrom2Nix { + vim-caddyfile = buildVimPlugin { pname = "vim-caddyfile"; version = "2022-05-09"; src = fetchFromGitHub { @@ -11179,7 +11179,7 @@ final: prev: meta.homepage = "https://github.com/isobit/vim-caddyfile/"; }; - vim-capslock = buildVimPluginFrom2Nix { + vim-capslock = buildVimPlugin { pname = "vim-capslock"; version = "2023-04-26"; src = fetchFromGitHub { @@ -11191,7 +11191,7 @@ final: prev: meta.homepage = "https://github.com/tpope/vim-capslock/"; }; - vim-carbon-now-sh = buildVimPluginFrom2Nix { + vim-carbon-now-sh = buildVimPlugin { pname = "vim-carbon-now-sh"; version = "2022-08-11"; src = fetchFromGitHub { @@ -11203,7 +11203,7 @@ final: prev: meta.homepage = "https://github.com/kristijanhusak/vim-carbon-now-sh/"; }; - vim-ccls = buildVimPluginFrom2Nix { + vim-ccls = buildVimPlugin { pname = "vim-ccls"; version = "2022-04-23"; src = fetchFromGitHub { @@ -11215,7 +11215,7 @@ final: prev: meta.homepage = "https://github.com/m-pilia/vim-ccls/"; }; - vim-choosewin = buildVimPluginFrom2Nix { + vim-choosewin = buildVimPlugin { pname = "vim-choosewin"; version = "2021-04-22"; src = fetchFromGitHub { @@ -11227,7 +11227,7 @@ final: prev: meta.homepage = "https://github.com/t9md/vim-choosewin/"; }; - vim-clang-format = buildVimPluginFrom2Nix { + vim-clang-format = buildVimPlugin { pname = "vim-clang-format"; version = "2021-12-04"; src = fetchFromGitHub { @@ -11239,7 +11239,7 @@ final: prev: meta.homepage = "https://github.com/rhysd/vim-clang-format/"; }; - vim-clojure-highlight = buildVimPluginFrom2Nix { + vim-clojure-highlight = buildVimPlugin { pname = "vim-clojure-highlight"; version = "2015-07-05"; src = fetchFromGitHub { @@ -11251,7 +11251,7 @@ final: prev: meta.homepage = "https://github.com/guns/vim-clojure-highlight/"; }; - vim-clojure-static = buildVimPluginFrom2Nix { + vim-clojure-static = buildVimPlugin { pname = "vim-clojure-static"; version = "2017-10-23"; src = fetchFromGitHub { @@ -11263,7 +11263,7 @@ final: prev: meta.homepage = "https://github.com/guns/vim-clojure-static/"; }; - vim-closer = buildVimPluginFrom2Nix { + vim-closer = buildVimPlugin { pname = "vim-closer"; version = "2022-11-01"; src = fetchFromGitHub { @@ -11275,7 +11275,7 @@ final: prev: meta.homepage = "https://github.com/rstacruz/vim-closer/"; }; - vim-closetag = buildVimPluginFrom2Nix { + vim-closetag = buildVimPlugin { pname = "vim-closetag"; version = "2022-05-22"; src = fetchFromGitHub { @@ -11287,7 +11287,7 @@ final: prev: meta.homepage = "https://github.com/alvan/vim-closetag/"; }; - vim-cmake = buildVimPluginFrom2Nix { + vim-cmake = buildVimPlugin { pname = "vim-cmake"; version = "2021-06-25"; src = fetchFromGitHub { @@ -11299,7 +11299,7 @@ final: prev: meta.homepage = "https://github.com/vhdirk/vim-cmake/"; }; - vim-code-dark = buildVimPluginFrom2Nix { + vim-code-dark = buildVimPlugin { pname = "vim-code-dark"; version = "2023-07-18"; src = fetchFromGitHub { @@ -11311,7 +11311,7 @@ final: prev: meta.homepage = "https://github.com/tomasiser/vim-code-dark/"; }; - vim-codefmt = buildVimPluginFrom2Nix { + vim-codefmt = buildVimPlugin { pname = "vim-codefmt"; version = "2023-08-22"; src = fetchFromGitHub { @@ -11323,7 +11323,7 @@ final: prev: meta.homepage = "https://github.com/google/vim-codefmt/"; }; - vim-coffee-script = buildVimPluginFrom2Nix { + vim-coffee-script = buildVimPlugin { pname = "vim-coffee-script"; version = "2020-12-20"; src = fetchFromGitHub { @@ -11335,7 +11335,7 @@ final: prev: meta.homepage = "https://github.com/kchmck/vim-coffee-script/"; }; - vim-colemak = buildVimPluginFrom2Nix { + vim-colemak = buildVimPlugin { pname = "vim-colemak"; version = "2016-10-16"; src = fetchFromGitHub { @@ -11347,7 +11347,7 @@ final: prev: meta.homepage = "https://github.com/kalbasit/vim-colemak/"; }; - vim-colors-solarized = buildVimPluginFrom2Nix { + vim-colors-solarized = buildVimPlugin { pname = "vim-colors-solarized"; version = "2011-05-09"; src = fetchFromGitHub { @@ -11359,7 +11359,7 @@ final: prev: meta.homepage = "https://github.com/altercation/vim-colors-solarized/"; }; - vim-colorschemes = buildVimPluginFrom2Nix { + vim-colorschemes = buildVimPlugin { pname = "vim-colorschemes"; version = "2020-05-15"; src = fetchFromGitHub { @@ -11371,7 +11371,7 @@ final: prev: meta.homepage = "https://github.com/flazz/vim-colorschemes/"; }; - vim-colorstepper = buildVimPluginFrom2Nix { + vim-colorstepper = buildVimPlugin { pname = "vim-colorstepper"; version = "2016-01-28"; src = fetchFromGitHub { @@ -11383,7 +11383,7 @@ final: prev: meta.homepage = "https://github.com/jonbri/vim-colorstepper/"; }; - vim-commentary = buildVimPluginFrom2Nix { + vim-commentary = buildVimPlugin { pname = "vim-commentary"; version = "2022-10-31"; src = fetchFromGitHub { @@ -11395,7 +11395,7 @@ final: prev: meta.homepage = "https://github.com/tpope/vim-commentary/"; }; - vim-concourse = buildVimPluginFrom2Nix { + vim-concourse = buildVimPlugin { pname = "vim-concourse"; version = "2016-11-21"; src = fetchFromGitHub { @@ -11407,7 +11407,7 @@ final: prev: meta.homepage = "https://github.com/luan/vim-concourse/"; }; - vim-cool = buildVimPluginFrom2Nix { + vim-cool = buildVimPlugin { pname = "vim-cool"; version = "2023-09-06"; src = fetchFromGitHub { @@ -11419,7 +11419,7 @@ final: prev: meta.homepage = "https://github.com/romainl/vim-cool/"; }; - vim-cpp-enhanced-highlight = buildVimPluginFrom2Nix { + vim-cpp-enhanced-highlight = buildVimPlugin { pname = "vim-cpp-enhanced-highlight"; version = "2021-04-19"; src = fetchFromGitHub { @@ -11431,7 +11431,7 @@ final: prev: meta.homepage = "https://github.com/octol/vim-cpp-enhanced-highlight/"; }; - vim-crates = buildVimPluginFrom2Nix { + vim-crates = buildVimPlugin { pname = "vim-crates"; version = "2021-05-07"; src = fetchFromGitHub { @@ -11443,7 +11443,7 @@ final: prev: meta.homepage = "https://github.com/mhinz/vim-crates/"; }; - vim-crystal = buildVimPluginFrom2Nix { + vim-crystal = buildVimPlugin { pname = "vim-crystal"; version = "2023-03-15"; src = fetchFromGitHub { @@ -11455,7 +11455,7 @@ final: prev: meta.homepage = "https://github.com/vim-crystal/vim-crystal/"; }; - vim-csharp = buildVimPluginFrom2Nix { + vim-csharp = buildVimPlugin { pname = "vim-csharp"; version = "2017-03-29"; src = fetchFromGitHub { @@ -11467,7 +11467,7 @@ final: prev: meta.homepage = "https://github.com/OrangeT/vim-csharp/"; }; - vim-css-color = buildVimPluginFrom2Nix { + vim-css-color = buildVimPlugin { pname = "vim-css-color"; version = "2023-07-26"; src = fetchFromGitHub { @@ -11479,7 +11479,7 @@ final: prev: meta.homepage = "https://github.com/ap/vim-css-color/"; }; - vim-cue = buildVimPluginFrom2Nix { + vim-cue = buildVimPlugin { pname = "vim-cue"; version = "2021-06-18"; src = fetchFromGitHub { @@ -11491,7 +11491,7 @@ final: prev: meta.homepage = "https://github.com/jjo/vim-cue/"; }; - vim-cursorword = buildVimPluginFrom2Nix { + vim-cursorword = buildVimPlugin { pname = "vim-cursorword"; version = "2022-11-17"; src = fetchFromGitHub { @@ -11503,7 +11503,7 @@ final: prev: meta.homepage = "https://github.com/itchyny/vim-cursorword/"; }; - vim-cute-python = buildVimPluginFrom2Nix { + vim-cute-python = buildVimPlugin { pname = "vim-cute-python"; version = "2020-11-17"; src = fetchFromGitHub { @@ -11515,7 +11515,7 @@ final: prev: meta.homepage = "https://github.com/ehamberg/vim-cute-python/"; }; - vim-dadbod = buildVimPluginFrom2Nix { + vim-dadbod = buildVimPlugin { pname = "vim-dadbod"; version = "2023-05-22"; src = fetchFromGitHub { @@ -11527,7 +11527,7 @@ final: prev: meta.homepage = "https://github.com/tpope/vim-dadbod/"; }; - vim-dadbod-completion = buildVimPluginFrom2Nix { + vim-dadbod-completion = buildVimPlugin { pname = "vim-dadbod-completion"; version = "2023-04-25"; src = fetchFromGitHub { @@ -11539,7 +11539,7 @@ final: prev: meta.homepage = "https://github.com/kristijanhusak/vim-dadbod-completion/"; }; - vim-dadbod-ui = buildVimPluginFrom2Nix { + vim-dadbod-ui = buildVimPlugin { pname = "vim-dadbod-ui"; version = "2023-09-15"; src = fetchFromGitHub { @@ -11551,7 +11551,7 @@ final: prev: meta.homepage = "https://github.com/kristijanhusak/vim-dadbod-ui/"; }; - vim-dasht = buildVimPluginFrom2Nix { + vim-dasht = buildVimPlugin { pname = "vim-dasht"; version = "2023-01-31"; src = fetchFromGitHub { @@ -11563,7 +11563,7 @@ final: prev: meta.homepage = "https://github.com/sunaku/vim-dasht/"; }; - vim-deus = buildVimPluginFrom2Nix { + vim-deus = buildVimPlugin { pname = "vim-deus"; version = "2021-03-28"; src = fetchFromGitHub { @@ -11575,7 +11575,7 @@ final: prev: meta.homepage = "https://github.com/ajmwagar/vim-deus/"; }; - vim-devicons = buildVimPluginFrom2Nix { + vim-devicons = buildVimPlugin { pname = "vim-devicons"; version = "2022-10-01"; src = fetchFromGitHub { @@ -11587,7 +11587,7 @@ final: prev: meta.homepage = "https://github.com/ryanoasis/vim-devicons/"; }; - vim-dim = buildVimPluginFrom2Nix { + vim-dim = buildVimPlugin { pname = "vim-dim"; version = "2021-01-29"; src = fetchFromGitHub { @@ -11599,7 +11599,7 @@ final: prev: meta.homepage = "https://github.com/jeffkreeftmeijer/vim-dim/"; }; - vim-diminactive = buildVimPluginFrom2Nix { + vim-diminactive = buildVimPlugin { pname = "vim-diminactive"; version = "2017-08-27"; src = fetchFromGitHub { @@ -11611,7 +11611,7 @@ final: prev: meta.homepage = "https://github.com/blueyed/vim-diminactive/"; }; - vim-dirdiff = buildVimPluginFrom2Nix { + vim-dirdiff = buildVimPlugin { pname = "vim-dirdiff"; version = "2021-06-03"; src = fetchFromGitHub { @@ -11623,7 +11623,7 @@ final: prev: meta.homepage = "https://github.com/will133/vim-dirdiff/"; }; - vim-dirvish = buildVimPluginFrom2Nix { + vim-dirvish = buildVimPlugin { pname = "vim-dirvish"; version = "2023-06-18"; src = fetchFromGitHub { @@ -11635,7 +11635,7 @@ final: prev: meta.homepage = "https://github.com/justinmk/vim-dirvish/"; }; - vim-dirvish-git = buildVimPluginFrom2Nix { + vim-dirvish-git = buildVimPlugin { pname = "vim-dirvish-git"; version = "2021-05-22"; src = fetchFromGitHub { @@ -11647,7 +11647,7 @@ final: prev: meta.homepage = "https://github.com/kristijanhusak/vim-dirvish-git/"; }; - vim-dispatch = buildVimPluginFrom2Nix { + vim-dispatch = buildVimPlugin { pname = "vim-dispatch"; version = "2023-02-05"; src = fetchFromGitHub { @@ -11659,7 +11659,7 @@ final: prev: meta.homepage = "https://github.com/tpope/vim-dispatch/"; }; - vim-dispatch-neovim = buildVimPluginFrom2Nix { + vim-dispatch-neovim = buildVimPlugin { pname = "vim-dispatch-neovim"; version = "2017-01-18"; src = fetchFromGitHub { @@ -11671,7 +11671,7 @@ final: prev: meta.homepage = "https://github.com/radenling/vim-dispatch-neovim/"; }; - vim-docbk = buildVimPluginFrom2Nix { + vim-docbk = buildVimPlugin { pname = "vim-docbk"; version = "2015-04-01"; src = fetchFromGitHub { @@ -11683,7 +11683,7 @@ final: prev: meta.homepage = "https://github.com/jhradilek/vim-docbk/"; }; - vim-dotenv = buildVimPluginFrom2Nix { + vim-dotenv = buildVimPlugin { pname = "vim-dotenv"; version = "2022-05-15"; src = fetchFromGitHub { @@ -11695,7 +11695,7 @@ final: prev: meta.homepage = "https://github.com/tpope/vim-dotenv/"; }; - vim-easy-align = buildVimPluginFrom2Nix { + vim-easy-align = buildVimPlugin { pname = "vim-easy-align"; version = "2019-04-29"; src = fetchFromGitHub { @@ -11707,7 +11707,7 @@ final: prev: meta.homepage = "https://github.com/junegunn/vim-easy-align/"; }; - vim-easyescape = buildVimPluginFrom2Nix { + vim-easyescape = buildVimPlugin { pname = "vim-easyescape"; version = "2020-11-22"; src = fetchFromGitHub { @@ -11719,7 +11719,7 @@ final: prev: meta.homepage = "https://github.com/zhou13/vim-easyescape/"; }; - vim-easygit = buildVimPluginFrom2Nix { + vim-easygit = buildVimPlugin { pname = "vim-easygit"; version = "2018-07-08"; src = fetchFromGitHub { @@ -11731,7 +11731,7 @@ final: prev: meta.homepage = "https://github.com/neoclide/vim-easygit/"; }; - vim-easymotion = buildVimPluginFrom2Nix { + vim-easymotion = buildVimPlugin { pname = "vim-easymotion"; version = "2022-04-04"; src = fetchFromGitHub { @@ -11743,7 +11743,7 @@ final: prev: meta.homepage = "https://github.com/easymotion/vim-easymotion/"; }; - vim-easytags = buildVimPluginFrom2Nix { + vim-easytags = buildVimPlugin { pname = "vim-easytags"; version = "2015-07-01"; src = fetchFromGitHub { @@ -11755,7 +11755,7 @@ final: prev: meta.homepage = "https://github.com/xolox/vim-easytags/"; }; - vim-eighties = buildVimPluginFrom2Nix { + vim-eighties = buildVimPlugin { pname = "vim-eighties"; version = "2016-12-15"; src = fetchFromGitHub { @@ -11767,7 +11767,7 @@ final: prev: meta.homepage = "https://github.com/justincampbell/vim-eighties/"; }; - vim-elixir = buildVimPluginFrom2Nix { + vim-elixir = buildVimPlugin { pname = "vim-elixir"; version = "2022-06-25"; src = fetchFromGitHub { @@ -11779,7 +11779,7 @@ final: prev: meta.homepage = "https://github.com/elixir-editors/vim-elixir/"; }; - vim-elm-syntax = buildVimPluginFrom2Nix { + vim-elm-syntax = buildVimPlugin { pname = "vim-elm-syntax"; version = "2021-01-09"; src = fetchFromGitHub { @@ -11791,7 +11791,7 @@ final: prev: meta.homepage = "https://github.com/andys8/vim-elm-syntax/"; }; - vim-emoji = buildVimPluginFrom2Nix { + vim-emoji = buildVimPlugin { pname = "vim-emoji"; version = "2018-01-30"; src = fetchFromGitHub { @@ -11803,7 +11803,7 @@ final: prev: meta.homepage = "https://github.com/junegunn/vim-emoji/"; }; - vim-endwise = buildVimPluginFrom2Nix { + vim-endwise = buildVimPlugin { pname = "vim-endwise"; version = "2023-04-23"; src = fetchFromGitHub { @@ -11815,7 +11815,7 @@ final: prev: meta.homepage = "https://github.com/tpope/vim-endwise/"; }; - vim-enmasse = buildVimPluginFrom2Nix { + vim-enmasse = buildVimPlugin { pname = "vim-enmasse"; version = "2018-04-03"; src = fetchFromGitHub { @@ -11827,7 +11827,7 @@ final: prev: meta.homepage = "https://github.com/Olical/vim-enmasse/"; }; - vim-erlang-compiler = buildVimPluginFrom2Nix { + vim-erlang-compiler = buildVimPlugin { pname = "vim-erlang-compiler"; version = "2021-06-20"; src = fetchFromGitHub { @@ -11839,7 +11839,7 @@ final: prev: meta.homepage = "https://github.com/vim-erlang/vim-erlang-compiler/"; }; - vim-erlang-omnicomplete = buildVimPluginFrom2Nix { + vim-erlang-omnicomplete = buildVimPlugin { pname = "vim-erlang-omnicomplete"; version = "2021-07-03"; src = fetchFromGitHub { @@ -11851,7 +11851,7 @@ final: prev: meta.homepage = "https://github.com/vim-erlang/vim-erlang-omnicomplete/"; }; - vim-erlang-runtime = buildVimPluginFrom2Nix { + vim-erlang-runtime = buildVimPlugin { pname = "vim-erlang-runtime"; version = "2022-10-02"; src = fetchFromGitHub { @@ -11863,7 +11863,7 @@ final: prev: meta.homepage = "https://github.com/vim-erlang/vim-erlang-runtime/"; }; - vim-erlang-tags = buildVimPluginFrom2Nix { + vim-erlang-tags = buildVimPlugin { pname = "vim-erlang-tags"; version = "2022-04-02"; src = fetchFromGitHub { @@ -11875,7 +11875,7 @@ final: prev: meta.homepage = "https://github.com/vim-erlang/vim-erlang-tags/"; }; - vim-eunuch = buildVimPluginFrom2Nix { + vim-eunuch = buildVimPlugin { pname = "vim-eunuch"; version = "2023-06-28"; src = fetchFromGitHub { @@ -11887,7 +11887,7 @@ final: prev: meta.homepage = "https://github.com/tpope/vim-eunuch/"; }; - vim-exchange = buildVimPluginFrom2Nix { + vim-exchange = buildVimPlugin { pname = "vim-exchange"; version = "2021-10-21"; src = fetchFromGitHub { @@ -11899,7 +11899,7 @@ final: prev: meta.homepage = "https://github.com/tommcdo/vim-exchange/"; }; - vim-expand-region = buildVimPluginFrom2Nix { + vim-expand-region = buildVimPlugin { pname = "vim-expand-region"; version = "2013-08-19"; src = fetchFromGitHub { @@ -11911,7 +11911,7 @@ final: prev: meta.homepage = "https://github.com/terryma/vim-expand-region/"; }; - vim-extradite = buildVimPluginFrom2Nix { + vim-extradite = buildVimPlugin { pname = "vim-extradite"; version = "2022-04-15"; src = fetchFromGitHub { @@ -11923,7 +11923,7 @@ final: prev: meta.homepage = "https://github.com/int3/vim-extradite/"; }; - vim-fetch = buildVimPluginFrom2Nix { + vim-fetch = buildVimPlugin { pname = "vim-fetch"; version = "2023-05-29"; src = fetchFromGitHub { @@ -11935,7 +11935,7 @@ final: prev: meta.homepage = "https://github.com/wsdjeg/vim-fetch/"; }; - vim-figlet = buildVimPluginFrom2Nix { + vim-figlet = buildVimPlugin { pname = "vim-figlet"; version = "2022-12-08"; src = fetchFromGitHub { @@ -11947,7 +11947,7 @@ final: prev: meta.homepage = "https://github.com/fadein/vim-figlet/"; }; - vim-fireplace = buildVimPluginFrom2Nix { + vim-fireplace = buildVimPlugin { pname = "vim-fireplace"; version = "2023-03-26"; src = fetchFromGitHub { @@ -11959,7 +11959,7 @@ final: prev: meta.homepage = "https://github.com/tpope/vim-fireplace/"; }; - vim-fish = buildVimPluginFrom2Nix { + vim-fish = buildVimPlugin { pname = "vim-fish"; version = "2017-11-22"; src = fetchFromGitHub { @@ -11971,7 +11971,7 @@ final: prev: meta.homepage = "https://github.com/dag/vim-fish/"; }; - vim-flagship = buildVimPluginFrom2Nix { + vim-flagship = buildVimPlugin { pname = "vim-flagship"; version = "2023-08-26"; src = fetchFromGitHub { @@ -11983,7 +11983,7 @@ final: prev: meta.homepage = "https://github.com/tpope/vim-flagship/"; }; - vim-flake8 = buildVimPluginFrom2Nix { + vim-flake8 = buildVimPlugin { pname = "vim-flake8"; version = "2023-03-22"; src = fetchFromGitHub { @@ -11995,7 +11995,7 @@ final: prev: meta.homepage = "https://github.com/nvie/vim-flake8/"; }; - vim-flatbuffers = buildVimPluginFrom2Nix { + vim-flatbuffers = buildVimPlugin { pname = "vim-flatbuffers"; version = "2018-10-11"; src = fetchFromGitHub { @@ -12007,7 +12007,7 @@ final: prev: meta.homepage = "https://github.com/dcharbon/vim-flatbuffers/"; }; - vim-floaterm = buildVimPluginFrom2Nix { + vim-floaterm = buildVimPlugin { pname = "vim-floaterm"; version = "2023-09-02"; src = fetchFromGitHub { @@ -12019,7 +12019,7 @@ final: prev: meta.homepage = "https://github.com/voldikss/vim-floaterm/"; }; - vim-flog = buildVimPluginFrom2Nix { + vim-flog = buildVimPlugin { pname = "vim-flog"; version = "2023-09-02"; src = fetchFromGitHub { @@ -12031,7 +12031,7 @@ final: prev: meta.homepage = "https://github.com/rbong/vim-flog/"; }; - vim-flutter = buildVimPluginFrom2Nix { + vim-flutter = buildVimPlugin { pname = "vim-flutter"; version = "2023-06-07"; src = fetchFromGitHub { @@ -12043,7 +12043,7 @@ final: prev: meta.homepage = "https://github.com/thosakwe/vim-flutter/"; }; - vim-fsharp = buildVimPluginFrom2Nix { + vim-fsharp = buildVimPlugin { pname = "vim-fsharp"; version = "2018-11-13"; src = fetchFromGitHub { @@ -12055,7 +12055,7 @@ final: prev: meta.homepage = "https://github.com/fsharp/vim-fsharp/"; }; - vim-ft-diff_fold = buildVimPluginFrom2Nix { + vim-ft-diff_fold = buildVimPlugin { pname = "vim-ft-diff_fold"; version = "2013-02-10"; src = fetchFromGitHub { @@ -12067,7 +12067,7 @@ final: prev: meta.homepage = "https://github.com/thinca/vim-ft-diff_fold/"; }; - vim-fubitive = buildVimPluginFrom2Nix { + vim-fubitive = buildVimPlugin { pname = "vim-fubitive"; version = "2023-08-16"; src = fetchFromGitHub { @@ -12079,7 +12079,7 @@ final: prev: meta.homepage = "https://github.com/tommcdo/vim-fubitive/"; }; - vim-fugitive = buildVimPluginFrom2Nix { + vim-fugitive = buildVimPlugin { pname = "vim-fugitive"; version = "2023-09-08"; src = fetchFromGitHub { @@ -12091,7 +12091,7 @@ final: prev: meta.homepage = "https://github.com/tpope/vim-fugitive/"; }; - vim-fzf-coauthorship = buildVimPluginFrom2Nix { + vim-fzf-coauthorship = buildVimPlugin { pname = "vim-fzf-coauthorship"; version = "2021-07-14"; src = fetchFromGitHub { @@ -12103,7 +12103,7 @@ final: prev: meta.homepage = "https://github.com/maxjacobson/vim-fzf-coauthorship/"; }; - vim-gas = buildVimPluginFrom2Nix { + vim-gas = buildVimPlugin { pname = "vim-gas"; version = "2022-03-07"; src = fetchFromGitHub { @@ -12115,7 +12115,7 @@ final: prev: meta.homepage = "https://github.com/Shirk/vim-gas/"; }; - vim-gh-line = buildVimPluginFrom2Nix { + vim-gh-line = buildVimPlugin { pname = "vim-gh-line"; version = "2022-11-25"; src = fetchFromGitHub { @@ -12127,7 +12127,7 @@ final: prev: meta.homepage = "https://github.com/ruanyl/vim-gh-line/"; }; - vim-ghost = buildVimPluginFrom2Nix { + vim-ghost = buildVimPlugin { pname = "vim-ghost"; version = "2021-09-26"; src = fetchFromGitHub { @@ -12139,7 +12139,7 @@ final: prev: meta.homepage = "https://github.com/raghur/vim-ghost/"; }; - vim-gist = buildVimPluginFrom2Nix { + vim-gist = buildVimPlugin { pname = "vim-gist"; version = "2022-10-09"; src = fetchFromGitHub { @@ -12151,7 +12151,7 @@ final: prev: meta.homepage = "https://github.com/mattn/vim-gist/"; }; - vim-gista = buildVimPluginFrom2Nix { + vim-gista = buildVimPlugin { pname = "vim-gista"; version = "2020-09-19"; src = fetchFromGitHub { @@ -12163,7 +12163,7 @@ final: prev: meta.homepage = "https://github.com/lambdalisue/vim-gista/"; }; - vim-git = buildVimPluginFrom2Nix { + vim-git = buildVimPlugin { pname = "vim-git"; version = "2023-03-26"; src = fetchFromGitHub { @@ -12175,7 +12175,7 @@ final: prev: meta.homepage = "https://github.com/tpope/vim-git/"; }; - vim-gitbranch = buildVimPluginFrom2Nix { + vim-gitbranch = buildVimPlugin { pname = "vim-gitbranch"; version = "2021-08-20"; src = fetchFromGitHub { @@ -12187,7 +12187,7 @@ final: prev: meta.homepage = "https://github.com/itchyny/vim-gitbranch/"; }; - vim-gitgutter = buildVimPluginFrom2Nix { + vim-gitgutter = buildVimPlugin { pname = "vim-gitgutter"; version = "2023-09-01"; src = fetchFromGitHub { @@ -12199,7 +12199,7 @@ final: prev: meta.homepage = "https://github.com/airblade/vim-gitgutter/"; }; - vim-github-dashboard = buildVimPluginFrom2Nix { + vim-github-dashboard = buildVimPlugin { pname = "vim-github-dashboard"; version = "2022-01-27"; src = fetchFromGitHub { @@ -12211,7 +12211,7 @@ final: prev: meta.homepage = "https://github.com/junegunn/vim-github-dashboard/"; }; - vim-glsl = buildVimPluginFrom2Nix { + vim-glsl = buildVimPlugin { pname = "vim-glsl"; version = "2022-05-10"; src = fetchFromGitHub { @@ -12223,7 +12223,7 @@ final: prev: meta.homepage = "https://github.com/tikhomirov/vim-glsl/"; }; - vim-gnupg = buildVimPluginFrom2Nix { + vim-gnupg = buildVimPlugin { pname = "vim-gnupg"; version = "2022-05-19"; src = fetchFromGitHub { @@ -12235,7 +12235,7 @@ final: prev: meta.homepage = "https://github.com/jamessan/vim-gnupg/"; }; - vim-go = buildVimPluginFrom2Nix { + vim-go = buildVimPlugin { pname = "vim-go"; version = "2023-09-04"; src = fetchFromGitHub { @@ -12247,7 +12247,7 @@ final: prev: meta.homepage = "https://github.com/fatih/vim-go/"; }; - vim-grammarous = buildVimPluginFrom2Nix { + vim-grammarous = buildVimPlugin { pname = "vim-grammarous"; version = "2020-11-30"; src = fetchFromGitHub { @@ -12259,7 +12259,7 @@ final: prev: meta.homepage = "https://github.com/rhysd/vim-grammarous/"; }; - vim-graphql = buildVimPluginFrom2Nix { + vim-graphql = buildVimPlugin { pname = "vim-graphql"; version = "2023-09-11"; src = fetchFromGitHub { @@ -12271,7 +12271,7 @@ final: prev: meta.homepage = "https://github.com/jparise/vim-graphql/"; }; - vim-grepper = buildVimPluginFrom2Nix { + vim-grepper = buildVimPlugin { pname = "vim-grepper"; version = "2021-08-30"; src = fetchFromGitHub { @@ -12283,7 +12283,7 @@ final: prev: meta.homepage = "https://github.com/mhinz/vim-grepper/"; }; - vim-gruvbox8 = buildVimPluginFrom2Nix { + vim-gruvbox8 = buildVimPlugin { pname = "vim-gruvbox8"; version = "2023-08-04"; src = fetchFromGitHub { @@ -12295,7 +12295,7 @@ final: prev: meta.homepage = "https://github.com/lifepillar/vim-gruvbox8/"; }; - vim-gui-position = buildVimPluginFrom2Nix { + vim-gui-position = buildVimPlugin { pname = "vim-gui-position"; version = "2019-06-06"; src = fetchFromGitHub { @@ -12307,7 +12307,7 @@ final: prev: meta.homepage = "https://github.com/brennanfee/vim-gui-position/"; }; - vim-gutentags = buildVimPluginFrom2Nix { + vim-gutentags = buildVimPlugin { pname = "vim-gutentags"; version = "2023-04-14"; src = fetchFromGitHub { @@ -12319,7 +12319,7 @@ final: prev: meta.homepage = "https://github.com/ludovicchabant/vim-gutentags/"; }; - vim-hardtime = buildVimPluginFrom2Nix { + vim-hardtime = buildVimPlugin { pname = "vim-hardtime"; version = "2022-05-06"; src = fetchFromGitHub { @@ -12331,7 +12331,7 @@ final: prev: meta.homepage = "https://github.com/takac/vim-hardtime/"; }; - vim-haskell-module-name = buildVimPluginFrom2Nix { + vim-haskell-module-name = buildVimPlugin { pname = "vim-haskell-module-name"; version = "2020-01-20"; src = fetchFromGitHub { @@ -12343,7 +12343,7 @@ final: prev: meta.homepage = "https://github.com/chkno/vim-haskell-module-name/"; }; - vim-haskellConcealPlus = buildVimPluginFrom2Nix { + vim-haskellConcealPlus = buildVimPlugin { pname = "vim-haskellConcealPlus"; version = "2020-01-21"; src = fetchFromGitHub { @@ -12355,7 +12355,7 @@ final: prev: meta.homepage = "https://github.com/enomsg/vim-haskellConcealPlus/"; }; - vim-haskellconceal = buildVimPluginFrom2Nix { + vim-haskellconceal = buildVimPlugin { pname = "vim-haskellconceal"; version = "2017-06-15"; src = fetchFromGitHub { @@ -12367,7 +12367,7 @@ final: prev: meta.homepage = "https://github.com/twinside/vim-haskellconceal/"; }; - vim-hcl = buildVimPluginFrom2Nix { + vim-hcl = buildVimPlugin { pname = "vim-hcl"; version = "2022-02-25"; src = fetchFromGitHub { @@ -12379,7 +12379,7 @@ final: prev: meta.homepage = "https://github.com/jvirtanen/vim-hcl/"; }; - vim-hdevtools = buildVimPluginFrom2Nix { + vim-hdevtools = buildVimPlugin { pname = "vim-hdevtools"; version = "2018-11-19"; src = fetchFromGitHub { @@ -12391,7 +12391,7 @@ final: prev: meta.homepage = "https://github.com/bitc/vim-hdevtools/"; }; - vim-helm = buildVimPluginFrom2Nix { + vim-helm = buildVimPlugin { pname = "vim-helm"; version = "2022-08-22"; src = fetchFromGitHub { @@ -12403,7 +12403,7 @@ final: prev: meta.homepage = "https://github.com/towolf/vim-helm/"; }; - vim-hexokinase = buildVimPluginFrom2Nix { + vim-hexokinase = buildVimPlugin { pname = "vim-hexokinase"; version = "2021-04-25"; src = fetchFromGitHub { @@ -12416,7 +12416,7 @@ final: prev: meta.homepage = "https://github.com/RRethy/vim-hexokinase/"; }; - vim-hier = buildVimPluginFrom2Nix { + vim-hier = buildVimPlugin { pname = "vim-hier"; version = "2011-08-27"; src = fetchFromGitHub { @@ -12428,7 +12428,7 @@ final: prev: meta.homepage = "https://github.com/jceb/vim-hier/"; }; - vim-highlightedyank = buildVimPluginFrom2Nix { + vim-highlightedyank = buildVimPlugin { pname = "vim-highlightedyank"; version = "2023-03-19"; src = fetchFromGitHub { @@ -12440,7 +12440,7 @@ final: prev: meta.homepage = "https://github.com/machakann/vim-highlightedyank/"; }; - vim-hindent = buildVimPluginFrom2Nix { + vim-hindent = buildVimPlugin { pname = "vim-hindent"; version = "2018-07-31"; src = fetchFromGitHub { @@ -12452,7 +12452,7 @@ final: prev: meta.homepage = "https://github.com/alx741/vim-hindent/"; }; - vim-hocon = buildVimPluginFrom2Nix { + vim-hocon = buildVimPlugin { pname = "vim-hocon"; version = "2017-09-08"; src = fetchFromGitHub { @@ -12464,7 +12464,7 @@ final: prev: meta.homepage = "https://github.com/GEverding/vim-hocon/"; }; - vim-hoogle = buildVimPluginFrom2Nix { + vim-hoogle = buildVimPlugin { pname = "vim-hoogle"; version = "2018-03-04"; src = fetchFromGitHub { @@ -12476,7 +12476,7 @@ final: prev: meta.homepage = "https://github.com/Twinside/vim-hoogle/"; }; - vim-horizon = buildVimPluginFrom2Nix { + vim-horizon = buildVimPlugin { pname = "vim-horizon"; version = "2023-03-17"; src = fetchFromGitHub { @@ -12488,7 +12488,7 @@ final: prev: meta.homepage = "https://github.com/ntk148v/vim-horizon/"; }; - vim-html-template-literals = buildVimPluginFrom2Nix { + vim-html-template-literals = buildVimPlugin { pname = "vim-html-template-literals"; version = "2021-06-03"; src = fetchFromGitHub { @@ -12500,7 +12500,7 @@ final: prev: meta.homepage = "https://github.com/jonsmithers/vim-html-template-literals/"; }; - vim-husk = buildVimPluginFrom2Nix { + vim-husk = buildVimPlugin { pname = "vim-husk"; version = "2015-11-29"; src = fetchFromGitHub { @@ -12512,7 +12512,7 @@ final: prev: meta.homepage = "https://github.com/vim-utils/vim-husk/"; }; - vim-hybrid = buildVimPluginFrom2Nix { + vim-hybrid = buildVimPlugin { pname = "vim-hybrid"; version = "2016-01-05"; src = fetchFromGitHub { @@ -12524,7 +12524,7 @@ final: prev: meta.homepage = "https://github.com/w0ng/vim-hybrid/"; }; - vim-hybrid-material = buildVimPluginFrom2Nix { + vim-hybrid-material = buildVimPlugin { pname = "vim-hybrid-material"; version = "2020-06-16"; src = fetchFromGitHub { @@ -12536,7 +12536,7 @@ final: prev: meta.homepage = "https://github.com/kristijanhusak/vim-hybrid-material/"; }; - vim-iced-coffee-script = buildVimPluginFrom2Nix { + vim-iced-coffee-script = buildVimPlugin { pname = "vim-iced-coffee-script"; version = "2013-12-26"; src = fetchFromGitHub { @@ -12548,7 +12548,7 @@ final: prev: meta.homepage = "https://github.com/noc7c9/vim-iced-coffee-script/"; }; - vim-illuminate = buildVimPluginFrom2Nix { + vim-illuminate = buildVimPlugin { pname = "vim-illuminate"; version = "2023-09-12"; src = fetchFromGitHub { @@ -12560,7 +12560,7 @@ final: prev: meta.homepage = "https://github.com/RRethy/vim-illuminate/"; }; - vim-indent-guides = buildVimPluginFrom2Nix { + vim-indent-guides = buildVimPlugin { pname = "vim-indent-guides"; version = "2023-03-18"; src = fetchFromGitHub { @@ -12572,7 +12572,7 @@ final: prev: meta.homepage = "https://github.com/preservim/vim-indent-guides/"; }; - vim-indent-object = buildVimPluginFrom2Nix { + vim-indent-object = buildVimPlugin { pname = "vim-indent-object"; version = "2018-04-08"; src = fetchFromGitHub { @@ -12584,7 +12584,7 @@ final: prev: meta.homepage = "https://github.com/michaeljsmith/vim-indent-object/"; }; - vim-indentwise = buildVimPluginFrom2Nix { + vim-indentwise = buildVimPlugin { pname = "vim-indentwise"; version = "2015-06-07"; src = fetchFromGitHub { @@ -12596,7 +12596,7 @@ final: prev: meta.homepage = "https://github.com/jeetsukumaran/vim-indentwise/"; }; - vim-indexed-search = buildVimPluginFrom2Nix { + vim-indexed-search = buildVimPlugin { pname = "vim-indexed-search"; version = "2021-12-13"; src = fetchFromGitHub { @@ -12608,7 +12608,7 @@ final: prev: meta.homepage = "https://github.com/henrik/vim-indexed-search/"; }; - vim-ipython = buildVimPluginFrom2Nix { + vim-ipython = buildVimPlugin { pname = "vim-ipython"; version = "2015-06-23"; src = fetchFromGitHub { @@ -12620,7 +12620,7 @@ final: prev: meta.homepage = "https://github.com/ivanov/vim-ipython/"; }; - vim-isort = buildVimPluginFrom2Nix { + vim-isort = buildVimPlugin { pname = "vim-isort"; version = "2023-07-12"; src = fetchFromGitHub { @@ -12632,7 +12632,7 @@ final: prev: meta.homepage = "https://github.com/fisadev/vim-isort/"; }; - vim-jack-in = buildVimPluginFrom2Nix { + vim-jack-in = buildVimPlugin { pname = "vim-jack-in"; version = "2023-04-17"; src = fetchFromGitHub { @@ -12644,7 +12644,7 @@ final: prev: meta.homepage = "https://github.com/clojure-vim/vim-jack-in/"; }; - vim-janah = buildVimPluginFrom2Nix { + vim-janah = buildVimPlugin { pname = "vim-janah"; version = "2018-10-01"; src = fetchFromGitHub { @@ -12656,7 +12656,7 @@ final: prev: meta.homepage = "https://github.com/mhinz/vim-janah/"; }; - vim-javacomplete2 = buildVimPluginFrom2Nix { + vim-javacomplete2 = buildVimPlugin { pname = "vim-javacomplete2"; version = "2022-06-05"; src = fetchFromGitHub { @@ -12668,7 +12668,7 @@ final: prev: meta.homepage = "https://github.com/artur-shaik/vim-javacomplete2/"; }; - vim-javascript = buildVimPluginFrom2Nix { + vim-javascript = buildVimPlugin { pname = "vim-javascript"; version = "2022-08-15"; src = fetchFromGitHub { @@ -12680,7 +12680,7 @@ final: prev: meta.homepage = "https://github.com/pangloss/vim-javascript/"; }; - vim-javascript-syntax = buildVimPluginFrom2Nix { + vim-javascript-syntax = buildVimPlugin { pname = "vim-javascript-syntax"; version = "2020-09-27"; src = fetchFromGitHub { @@ -12692,7 +12692,7 @@ final: prev: meta.homepage = "https://github.com/jelera/vim-javascript-syntax/"; }; - vim-jinja = buildVimPluginFrom2Nix { + vim-jinja = buildVimPlugin { pname = "vim-jinja"; version = "2021-08-26"; src = fetchFromGitHub { @@ -12704,7 +12704,7 @@ final: prev: meta.homepage = "https://github.com/lepture/vim-jinja/"; }; - vim-jinja-languages = buildVimPluginFrom2Nix { + vim-jinja-languages = buildVimPlugin { pname = "vim-jinja-languages"; version = "2022-04-04"; src = fetchFromGitHub { @@ -12716,7 +12716,7 @@ final: prev: meta.homepage = "https://github.com/seirl/vim-jinja-languages/"; }; - vim-jsbeautify = buildVimPluginFrom2Nix { + vim-jsbeautify = buildVimPlugin { pname = "vim-jsbeautify"; version = "2020-12-11"; src = fetchFromGitHub { @@ -12729,7 +12729,7 @@ final: prev: meta.homepage = "https://github.com/maksimr/vim-jsbeautify/"; }; - vim-jsdoc = buildVimPluginFrom2Nix { + vim-jsdoc = buildVimPlugin { pname = "vim-jsdoc"; version = "2023-05-23"; src = fetchFromGitHub { @@ -12741,7 +12741,7 @@ final: prev: meta.homepage = "https://github.com/heavenshell/vim-jsdoc/"; }; - vim-json = buildVimPluginFrom2Nix { + vim-json = buildVimPlugin { pname = "vim-json"; version = "2018-01-10"; src = fetchFromGitHub { @@ -12753,7 +12753,7 @@ final: prev: meta.homepage = "https://github.com/elzr/vim-json/"; }; - vim-jsonnet = buildVimPluginFrom2Nix { + vim-jsonnet = buildVimPlugin { pname = "vim-jsonnet"; version = "2023-02-20"; src = fetchFromGitHub { @@ -12765,7 +12765,7 @@ final: prev: meta.homepage = "https://github.com/google/vim-jsonnet/"; }; - vim-jsonpath = buildVimPluginFrom2Nix { + vim-jsonpath = buildVimPlugin { pname = "vim-jsonpath"; version = "2020-06-16"; src = fetchFromGitHub { @@ -12777,7 +12777,7 @@ final: prev: meta.homepage = "https://github.com/mogelbrod/vim-jsonpath/"; }; - vim-jsx-pretty = buildVimPluginFrom2Nix { + vim-jsx-pretty = buildVimPlugin { pname = "vim-jsx-pretty"; version = "2021-01-12"; src = fetchFromGitHub { @@ -12789,7 +12789,7 @@ final: prev: meta.homepage = "https://github.com/MaxMEllon/vim-jsx-pretty/"; }; - vim-jsx-typescript = buildVimPluginFrom2Nix { + vim-jsx-typescript = buildVimPlugin { pname = "vim-jsx-typescript"; version = "2020-12-03"; src = fetchFromGitHub { @@ -12801,7 +12801,7 @@ final: prev: meta.homepage = "https://github.com/peitalin/vim-jsx-typescript/"; }; - vim-julia-cell = buildVimPluginFrom2Nix { + vim-julia-cell = buildVimPlugin { pname = "vim-julia-cell"; version = "2020-08-04"; src = fetchFromGitHub { @@ -12813,7 +12813,7 @@ final: prev: meta.homepage = "https://github.com/mroavi/vim-julia-cell/"; }; - vim-just = buildVimPluginFrom2Nix { + vim-just = buildVimPlugin { pname = "vim-just"; version = "2023-08-02"; src = fetchFromGitHub { @@ -12825,7 +12825,7 @@ final: prev: meta.homepage = "https://github.com/NoahTheDuke/vim-just/"; }; - vim-kitty-navigator = buildVimPluginFrom2Nix { + vim-kitty-navigator = buildVimPlugin { pname = "vim-kitty-navigator"; version = "2023-05-25"; src = fetchFromGitHub { @@ -12837,7 +12837,7 @@ final: prev: meta.homepage = "https://github.com/knubie/vim-kitty-navigator/"; }; - vim-lastplace = buildVimPluginFrom2Nix { + vim-lastplace = buildVimPlugin { pname = "vim-lastplace"; version = "2023-08-24"; src = fetchFromGitHub { @@ -12849,7 +12849,7 @@ final: prev: meta.homepage = "https://github.com/farmergreg/vim-lastplace/"; }; - vim-latex-live-preview = buildVimPluginFrom2Nix { + vim-latex-live-preview = buildVimPlugin { pname = "vim-latex-live-preview"; version = "2023-04-01"; src = fetchFromGitHub { @@ -12861,7 +12861,7 @@ final: prev: meta.homepage = "https://github.com/xuhdev/vim-latex-live-preview/"; }; - vim-lawrencium = buildVimPluginFrom2Nix { + vim-lawrencium = buildVimPlugin { pname = "vim-lawrencium"; version = "2022-01-19"; src = fetchFromGitHub { @@ -12873,7 +12873,7 @@ final: prev: meta.homepage = "https://github.com/ludovicchabant/vim-lawrencium/"; }; - vim-leader-guide = buildVimPluginFrom2Nix { + vim-leader-guide = buildVimPlugin { pname = "vim-leader-guide"; version = "2018-10-06"; src = fetchFromGitHub { @@ -12885,7 +12885,7 @@ final: prev: meta.homepage = "https://github.com/hecal3/vim-leader-guide/"; }; - vim-lean = buildVimPluginFrom2Nix { + vim-lean = buildVimPlugin { pname = "vim-lean"; version = "2017-07-29"; src = fetchFromGitHub { @@ -12897,7 +12897,7 @@ final: prev: meta.homepage = "https://github.com/mk12/vim-lean/"; }; - vim-ledger = buildVimPluginFrom2Nix { + vim-ledger = buildVimPlugin { pname = "vim-ledger"; version = "2023-02-23"; src = fetchFromGitHub { @@ -12909,7 +12909,7 @@ final: prev: meta.homepage = "https://github.com/ledger/vim-ledger/"; }; - vim-lexical = buildVimPluginFrom2Nix { + vim-lexical = buildVimPlugin { pname = "vim-lexical"; version = "2022-02-11"; src = fetchFromGitHub { @@ -12921,7 +12921,7 @@ final: prev: meta.homepage = "https://github.com/preservim/vim-lexical/"; }; - vim-lfe = buildVimPluginFrom2Nix { + vim-lfe = buildVimPlugin { pname = "vim-lfe"; version = "2018-04-30"; src = fetchFromGitHub { @@ -12933,7 +12933,7 @@ final: prev: meta.homepage = "https://github.com/lfe-support/vim-lfe/"; }; - vim-lightline-coc = buildVimPluginFrom2Nix { + vim-lightline-coc = buildVimPlugin { pname = "vim-lightline-coc"; version = "2021-03-03"; src = fetchFromGitHub { @@ -12945,7 +12945,7 @@ final: prev: meta.homepage = "https://github.com/josa42/vim-lightline-coc/"; }; - vim-lion = buildVimPluginFrom2Nix { + vim-lion = buildVimPlugin { pname = "vim-lion"; version = "2020-07-18"; src = fetchFromGitHub { @@ -12957,7 +12957,7 @@ final: prev: meta.homepage = "https://github.com/tommcdo/vim-lion/"; }; - vim-liquid = buildVimPluginFrom2Nix { + vim-liquid = buildVimPlugin { pname = "vim-liquid"; version = "2021-11-28"; src = fetchFromGitHub { @@ -12969,7 +12969,7 @@ final: prev: meta.homepage = "https://github.com/tpope/vim-liquid/"; }; - vim-llvm = buildVimPluginFrom2Nix { + vim-llvm = buildVimPlugin { pname = "vim-llvm"; version = "2023-05-31"; src = fetchFromGitHub { @@ -12981,7 +12981,7 @@ final: prev: meta.homepage = "https://github.com/rhysd/vim-llvm/"; }; - vim-localvimrc = buildVimPluginFrom2Nix { + vim-localvimrc = buildVimPlugin { pname = "vim-localvimrc"; version = "2023-06-08"; src = fetchFromGitHub { @@ -12993,7 +12993,7 @@ final: prev: meta.homepage = "https://github.com/embear/vim-localvimrc/"; }; - vim-logreview = buildVimPluginFrom2Nix { + vim-logreview = buildVimPlugin { pname = "vim-logreview"; version = "2022-02-28"; src = fetchFromGitHub { @@ -13005,7 +13005,7 @@ final: prev: meta.homepage = "https://github.com/andreshazard/vim-logreview/"; }; - vim-loves-dafny = buildVimPluginFrom2Nix { + vim-loves-dafny = buildVimPlugin { pname = "vim-loves-dafny"; version = "2018-09-25"; src = fetchFromGitHub { @@ -13017,7 +13017,7 @@ final: prev: meta.homepage = "https://github.com/mlr-msft/vim-loves-dafny/"; }; - vim-lsc = buildVimPluginFrom2Nix { + vim-lsc = buildVimPlugin { pname = "vim-lsc"; version = "2023-08-04"; src = fetchFromGitHub { @@ -13029,7 +13029,7 @@ final: prev: meta.homepage = "https://github.com/natebosch/vim-lsc/"; }; - vim-lsp = buildVimPluginFrom2Nix { + vim-lsp = buildVimPlugin { pname = "vim-lsp"; version = "2023-09-09"; src = fetchFromGitHub { @@ -13041,7 +13041,7 @@ final: prev: meta.homepage = "https://github.com/prabirshrestha/vim-lsp/"; }; - vim-lsp-ale = buildVimPluginFrom2Nix { + vim-lsp-ale = buildVimPlugin { pname = "vim-lsp-ale"; version = "2021-12-28"; src = fetchFromGitHub { @@ -13053,7 +13053,7 @@ final: prev: meta.homepage = "https://github.com/rhysd/vim-lsp-ale/"; }; - vim-lsp-cxx-highlight = buildVimPluginFrom2Nix { + vim-lsp-cxx-highlight = buildVimPlugin { pname = "vim-lsp-cxx-highlight"; version = "2021-10-20"; src = fetchFromGitHub { @@ -13065,7 +13065,7 @@ final: prev: meta.homepage = "https://github.com/jackguo380/vim-lsp-cxx-highlight/"; }; - vim-lsp-settings = buildVimPluginFrom2Nix { + vim-lsp-settings = buildVimPlugin { pname = "vim-lsp-settings"; version = "2023-09-03"; src = fetchFromGitHub { @@ -13077,7 +13077,7 @@ final: prev: meta.homepage = "https://github.com/mattn/vim-lsp-settings/"; }; - vim-lsp-snippets = buildVimPluginFrom2Nix { + vim-lsp-snippets = buildVimPlugin { pname = "vim-lsp-snippets"; version = "2020-01-15"; src = fetchFromGitHub { @@ -13089,7 +13089,7 @@ final: prev: meta.homepage = "https://github.com/thomasfaingnaert/vim-lsp-snippets/"; }; - vim-lsp-ultisnips = buildVimPluginFrom2Nix { + vim-lsp-ultisnips = buildVimPlugin { pname = "vim-lsp-ultisnips"; version = "2023-04-07"; src = fetchFromGitHub { @@ -13101,7 +13101,7 @@ final: prev: meta.homepage = "https://github.com/thomasfaingnaert/vim-lsp-ultisnips/"; }; - vim-lua = buildVimPluginFrom2Nix { + vim-lua = buildVimPlugin { pname = "vim-lua"; version = "2020-08-05"; src = fetchFromGitHub { @@ -13113,7 +13113,7 @@ final: prev: meta.homepage = "https://github.com/tbastos/vim-lua/"; }; - vim-maktaba = buildVimPluginFrom2Nix { + vim-maktaba = buildVimPlugin { pname = "vim-maktaba"; version = "2023-03-21"; src = fetchFromGitHub { @@ -13125,7 +13125,7 @@ final: prev: meta.homepage = "https://github.com/google/vim-maktaba/"; }; - vim-manpager = buildVimPluginFrom2Nix { + vim-manpager = buildVimPlugin { pname = "vim-manpager"; version = "2022-07-23"; src = fetchFromGitHub { @@ -13137,7 +13137,7 @@ final: prev: meta.homepage = "https://github.com/lambdalisue/vim-manpager/"; }; - vim-markbar = buildVimPluginFrom2Nix { + vim-markbar = buildVimPlugin { pname = "vim-markbar"; version = "2023-08-24"; src = fetchFromGitHub { @@ -13149,7 +13149,7 @@ final: prev: meta.homepage = "https://github.com/Yilin-Yang/vim-markbar/"; }; - vim-markdown = buildVimPluginFrom2Nix { + vim-markdown = buildVimPlugin { pname = "vim-markdown"; version = "2023-04-08"; src = fetchFromGitHub { @@ -13161,7 +13161,7 @@ final: prev: meta.homepage = "https://github.com/preservim/vim-markdown/"; }; - vim-markdown-composer = buildVimPluginFrom2Nix { + vim-markdown-composer = buildVimPlugin { pname = "vim-markdown-composer"; version = "2022-06-14"; src = fetchFromGitHub { @@ -13174,7 +13174,7 @@ final: prev: meta.homepage = "https://github.com/euclio/vim-markdown-composer/"; }; - vim-markdown-toc = buildVimPluginFrom2Nix { + vim-markdown-toc = buildVimPlugin { pname = "vim-markdown-toc"; version = "2022-08-29"; src = fetchFromGitHub { @@ -13186,7 +13186,7 @@ final: prev: meta.homepage = "https://github.com/mzlogin/vim-markdown-toc/"; }; - vim-matchup = buildVimPluginFrom2Nix { + vim-matchup = buildVimPlugin { pname = "vim-matchup"; version = "2023-09-02"; src = fetchFromGitHub { @@ -13198,7 +13198,7 @@ final: prev: meta.homepage = "https://github.com/andymass/vim-matchup/"; }; - vim-mediawiki-editor = buildVimPluginFrom2Nix { + vim-mediawiki-editor = buildVimPlugin { pname = "vim-mediawiki-editor"; version = "2022-10-29"; src = fetchFromGitHub { @@ -13210,7 +13210,7 @@ final: prev: meta.homepage = "https://github.com/aquach/vim-mediawiki-editor/"; }; - vim-mergetool = buildVimPluginFrom2Nix { + vim-mergetool = buildVimPlugin { pname = "vim-mergetool"; version = "2019-06-22"; src = fetchFromGitHub { @@ -13222,7 +13222,7 @@ final: prev: meta.homepage = "https://github.com/samoshkin/vim-mergetool/"; }; - vim-merginal = buildVimPluginFrom2Nix { + vim-merginal = buildVimPlugin { pname = "vim-merginal"; version = "2023-08-27"; src = fetchFromGitHub { @@ -13234,7 +13234,7 @@ final: prev: meta.homepage = "https://github.com/idanarye/vim-merginal/"; }; - vim-metamath = buildVimPluginFrom2Nix { + vim-metamath = buildVimPlugin { pname = "vim-metamath"; version = "2017-02-10"; src = fetchFromGitHub { @@ -13246,7 +13246,7 @@ final: prev: meta.homepage = "https://github.com/david-a-wheeler/vim-metamath/"; }; - vim-misc = buildVimPluginFrom2Nix { + vim-misc = buildVimPlugin { pname = "vim-misc"; version = "2015-05-21"; src = fetchFromGitHub { @@ -13258,7 +13258,7 @@ final: prev: meta.homepage = "https://github.com/xolox/vim-misc/"; }; - vim-molokai-delroth = buildVimPluginFrom2Nix { + vim-molokai-delroth = buildVimPlugin { pname = "vim-molokai-delroth"; version = "2023-05-30"; src = fetchFromGitHub { @@ -13270,7 +13270,7 @@ final: prev: meta.homepage = "https://github.com/delroth/vim-molokai-delroth/"; }; - vim-monokai = buildVimPluginFrom2Nix { + vim-monokai = buildVimPlugin { pname = "vim-monokai"; version = "2022-12-09"; src = fetchFromGitHub { @@ -13282,7 +13282,7 @@ final: prev: meta.homepage = "https://github.com/crusoexia/vim-monokai/"; }; - vim-monokai-pro = buildVimPluginFrom2Nix { + vim-monokai-pro = buildVimPlugin { pname = "vim-monokai-pro"; version = "2022-06-25"; src = fetchFromGitHub { @@ -13294,7 +13294,7 @@ final: prev: meta.homepage = "https://github.com/phanviet/vim-monokai-pro/"; }; - vim-monokai-tasty = buildVimPluginFrom2Nix { + vim-monokai-tasty = buildVimPlugin { pname = "vim-monokai-tasty"; version = "2023-09-12"; src = fetchFromGitHub { @@ -13306,7 +13306,7 @@ final: prev: meta.homepage = "https://github.com/patstockwell/vim-monokai-tasty/"; }; - vim-move = buildVimPluginFrom2Nix { + vim-move = buildVimPlugin { pname = "vim-move"; version = "2023-05-11"; src = fetchFromGitHub { @@ -13318,7 +13318,7 @@ final: prev: meta.homepage = "https://github.com/matze/vim-move/"; }; - vim-mucomplete = buildVimPluginFrom2Nix { + vim-mucomplete = buildVimPlugin { pname = "vim-mucomplete"; version = "2022-09-28"; src = fetchFromGitHub { @@ -13330,7 +13330,7 @@ final: prev: meta.homepage = "https://github.com/lifepillar/vim-mucomplete/"; }; - vim-multiple-cursors = buildVimPluginFrom2Nix { + vim-multiple-cursors = buildVimPlugin { pname = "vim-multiple-cursors"; version = "2020-07-30"; src = fetchFromGitHub { @@ -13342,7 +13342,7 @@ final: prev: meta.homepage = "https://github.com/terryma/vim-multiple-cursors/"; }; - vim-mundo = buildVimPluginFrom2Nix { + vim-mundo = buildVimPlugin { pname = "vim-mundo"; version = "2022-11-05"; src = fetchFromGitHub { @@ -13354,7 +13354,7 @@ final: prev: meta.homepage = "https://github.com/simnalamburt/vim-mundo/"; }; - vim-mustache-handlebars = buildVimPluginFrom2Nix { + vim-mustache-handlebars = buildVimPlugin { pname = "vim-mustache-handlebars"; version = "2021-11-30"; src = fetchFromGitHub { @@ -13366,7 +13366,7 @@ final: prev: meta.homepage = "https://github.com/mustache/vim-mustache-handlebars/"; }; - vim-nerdtree-syntax-highlight = buildVimPluginFrom2Nix { + vim-nerdtree-syntax-highlight = buildVimPlugin { pname = "vim-nerdtree-syntax-highlight"; version = "2023-07-07"; src = fetchFromGitHub { @@ -13378,7 +13378,7 @@ final: prev: meta.homepage = "https://github.com/tiagofumo/vim-nerdtree-syntax-highlight/"; }; - vim-nerdtree-tabs = buildVimPluginFrom2Nix { + vim-nerdtree-tabs = buildVimPlugin { pname = "vim-nerdtree-tabs"; version = "2018-12-21"; src = fetchFromGitHub { @@ -13390,7 +13390,7 @@ final: prev: meta.homepage = "https://github.com/jistr/vim-nerdtree-tabs/"; }; - vim-nftables = buildVimPluginFrom2Nix { + vim-nftables = buildVimPlugin { pname = "vim-nftables"; version = "2020-06-29"; src = fetchFromGitHub { @@ -13402,7 +13402,7 @@ final: prev: meta.homepage = "https://github.com/nfnty/vim-nftables/"; }; - vim-niceblock = buildVimPluginFrom2Nix { + vim-niceblock = buildVimPlugin { pname = "vim-niceblock"; version = "2018-09-06"; src = fetchFromGitHub { @@ -13414,7 +13414,7 @@ final: prev: meta.homepage = "https://github.com/kana/vim-niceblock/"; }; - vim-nickel = buildVimPluginFrom2Nix { + vim-nickel = buildVimPlugin { pname = "vim-nickel"; version = "2023-07-05"; src = fetchFromGitHub { @@ -13426,7 +13426,7 @@ final: prev: meta.homepage = "https://github.com/nickel-lang/vim-nickel/"; }; - vim-ninja-feet = buildVimPluginFrom2Nix { + vim-ninja-feet = buildVimPlugin { pname = "vim-ninja-feet"; version = "2021-05-27"; src = fetchFromGitHub { @@ -13438,7 +13438,7 @@ final: prev: meta.homepage = "https://github.com/tommcdo/vim-ninja-feet/"; }; - vim-nix = buildVimPluginFrom2Nix { + vim-nix = buildVimPlugin { pname = "vim-nix"; version = "2023-07-29"; src = fetchFromGitHub { @@ -13450,7 +13450,7 @@ final: prev: meta.homepage = "https://github.com/LnL7/vim-nix/"; }; - vim-nixhash = buildVimPluginFrom2Nix { + vim-nixhash = buildVimPlugin { pname = "vim-nixhash"; version = "2023-01-09"; src = fetchFromGitHub { @@ -13462,7 +13462,7 @@ final: prev: meta.homepage = "https://github.com/symphorien/vim-nixhash/"; }; - vim-noctu = buildVimPluginFrom2Nix { + vim-noctu = buildVimPlugin { pname = "vim-noctu"; version = "2015-06-27"; src = fetchFromGitHub { @@ -13474,7 +13474,7 @@ final: prev: meta.homepage = "https://github.com/noahfrederick/vim-noctu/"; }; - vim-nong-theme = buildVimPluginFrom2Nix { + vim-nong-theme = buildVimPlugin { pname = "vim-nong-theme"; version = "2020-12-16"; src = fetchFromGitHub { @@ -13486,7 +13486,7 @@ final: prev: meta.homepage = "https://github.com/fruit-in/vim-nong-theme/"; }; - vim-numbertoggle = buildVimPluginFrom2Nix { + vim-numbertoggle = buildVimPlugin { pname = "vim-numbertoggle"; version = "2021-07-14"; src = fetchFromGitHub { @@ -13498,7 +13498,7 @@ final: prev: meta.homepage = "https://github.com/jeffkreeftmeijer/vim-numbertoggle/"; }; - vim-obsession = buildVimPluginFrom2Nix { + vim-obsession = buildVimPlugin { pname = "vim-obsession"; version = "2022-12-02"; src = fetchFromGitHub { @@ -13510,7 +13510,7 @@ final: prev: meta.homepage = "https://github.com/tpope/vim-obsession/"; }; - vim-ocaml = buildVimPluginFrom2Nix { + vim-ocaml = buildVimPlugin { pname = "vim-ocaml"; version = "2023-07-04"; src = fetchFromGitHub { @@ -13522,7 +13522,7 @@ final: prev: meta.homepage = "https://github.com/ocaml/vim-ocaml/"; }; - vim-one = buildVimPluginFrom2Nix { + vim-one = buildVimPlugin { pname = "vim-one"; version = "2020-12-14"; src = fetchFromGitHub { @@ -13534,7 +13534,7 @@ final: prev: meta.homepage = "https://github.com/rakr/vim-one/"; }; - vim-opencl = buildVimPluginFrom2Nix { + vim-opencl = buildVimPlugin { pname = "vim-opencl"; version = "2018-06-13"; src = fetchFromGitHub { @@ -13546,7 +13546,7 @@ final: prev: meta.homepage = "https://github.com/petRUShka/vim-opencl/"; }; - vim-openscad = buildVimPluginFrom2Nix { + vim-openscad = buildVimPlugin { pname = "vim-openscad"; version = "2022-07-26"; src = fetchFromGitHub { @@ -13558,7 +13558,7 @@ final: prev: meta.homepage = "https://github.com/sirtaj/vim-openscad/"; }; - vim-operator-replace = buildVimPluginFrom2Nix { + vim-operator-replace = buildVimPlugin { pname = "vim-operator-replace"; version = "2015-02-24"; src = fetchFromGitHub { @@ -13570,7 +13570,7 @@ final: prev: meta.homepage = "https://github.com/kana/vim-operator-replace/"; }; - vim-operator-surround = buildVimPluginFrom2Nix { + vim-operator-surround = buildVimPlugin { pname = "vim-operator-surround"; version = "2018-11-01"; src = fetchFromGitHub { @@ -13582,7 +13582,7 @@ final: prev: meta.homepage = "https://github.com/rhysd/vim-operator-surround/"; }; - vim-operator-user = buildVimPluginFrom2Nix { + vim-operator-user = buildVimPlugin { pname = "vim-operator-user"; version = "2015-02-17"; src = fetchFromGitHub { @@ -13594,7 +13594,7 @@ final: prev: meta.homepage = "https://github.com/kana/vim-operator-user/"; }; - vim-orgmode = buildVimPluginFrom2Nix { + vim-orgmode = buildVimPlugin { pname = "vim-orgmode"; version = "2022-12-09"; src = fetchFromGitHub { @@ -13606,7 +13606,7 @@ final: prev: meta.homepage = "https://github.com/jceb/vim-orgmode/"; }; - vim-ormolu = buildVimPluginFrom2Nix { + vim-ormolu = buildVimPlugin { pname = "vim-ormolu"; version = "2020-11-25"; src = fetchFromGitHub { @@ -13618,7 +13618,7 @@ final: prev: meta.homepage = "https://github.com/sdiehl/vim-ormolu/"; }; - vim-osc52 = buildVimPluginFrom2Nix { + vim-osc52 = buildVimPlugin { pname = "vim-osc52"; version = "2020-09-19"; src = fetchFromGitHub { @@ -13630,7 +13630,7 @@ final: prev: meta.homepage = "https://github.com/fcpg/vim-osc52/"; }; - vim-oscyank = buildVimPluginFrom2Nix { + vim-oscyank = buildVimPlugin { pname = "vim-oscyank"; version = "2023-07-01"; src = fetchFromGitHub { @@ -13642,7 +13642,7 @@ final: prev: meta.homepage = "https://github.com/ojroques/vim-oscyank/"; }; - vim-over = buildVimPluginFrom2Nix { + vim-over = buildVimPlugin { pname = "vim-over"; version = "2020-01-26"; src = fetchFromGitHub { @@ -13654,7 +13654,7 @@ final: prev: meta.homepage = "https://github.com/osyo-manga/vim-over/"; }; - vim-packer = buildVimPluginFrom2Nix { + vim-packer = buildVimPlugin { pname = "vim-packer"; version = "2018-11-11"; src = fetchFromGitHub { @@ -13666,7 +13666,7 @@ final: prev: meta.homepage = "https://github.com/hashivim/vim-packer/"; }; - vim-pager = buildVimPluginFrom2Nix { + vim-pager = buildVimPlugin { pname = "vim-pager"; version = "2015-08-26"; src = fetchFromGitHub { @@ -13678,7 +13678,7 @@ final: prev: meta.homepage = "https://github.com/lambdalisue/vim-pager/"; }; - vim-pandoc = buildVimPluginFrom2Nix { + vim-pandoc = buildVimPlugin { pname = "vim-pandoc"; version = "2023-02-24"; src = fetchFromGitHub { @@ -13690,7 +13690,7 @@ final: prev: meta.homepage = "https://github.com/vim-pandoc/vim-pandoc/"; }; - vim-pandoc-after = buildVimPluginFrom2Nix { + vim-pandoc-after = buildVimPlugin { pname = "vim-pandoc-after"; version = "2019-04-29"; src = fetchFromGitHub { @@ -13702,7 +13702,7 @@ final: prev: meta.homepage = "https://github.com/vim-pandoc/vim-pandoc-after/"; }; - vim-pandoc-syntax = buildVimPluginFrom2Nix { + vim-pandoc-syntax = buildVimPlugin { pname = "vim-pandoc-syntax"; version = "2023-01-10"; src = fetchFromGitHub { @@ -13714,7 +13714,7 @@ final: prev: meta.homepage = "https://github.com/vim-pandoc/vim-pandoc-syntax/"; }; - vim-paper = buildVimPluginFrom2Nix { + vim-paper = buildVimPlugin { pname = "vim-paper"; version = "2023-08-02"; src = fetchFromGitHub { @@ -13726,7 +13726,7 @@ final: prev: meta.homepage = "https://github.com/yorickpeterse/vim-paper/"; }; - vim-parinfer = buildVimPluginFrom2Nix { + vim-parinfer = buildVimPlugin { pname = "vim-parinfer"; version = "2022-11-29"; src = fetchFromGitHub { @@ -13738,7 +13738,7 @@ final: prev: meta.homepage = "https://github.com/bhurlow/vim-parinfer/"; }; - vim-pasta = buildVimPluginFrom2Nix { + vim-pasta = buildVimPlugin { pname = "vim-pasta"; version = "2023-08-12"; src = fetchFromGitHub { @@ -13750,7 +13750,7 @@ final: prev: meta.homepage = "https://github.com/ku1ik/vim-pasta/"; }; - vim-pathogen = buildVimPluginFrom2Nix { + vim-pathogen = buildVimPlugin { pname = "vim-pathogen"; version = "2022-08-24"; src = fetchFromGitHub { @@ -13762,7 +13762,7 @@ final: prev: meta.homepage = "https://github.com/tpope/vim-pathogen/"; }; - vim-peekaboo = buildVimPluginFrom2Nix { + vim-peekaboo = buildVimPlugin { pname = "vim-peekaboo"; version = "2019-12-12"; src = fetchFromGitHub { @@ -13774,7 +13774,7 @@ final: prev: meta.homepage = "https://github.com/junegunn/vim-peekaboo/"; }; - vim-pencil = buildVimPluginFrom2Nix { + vim-pencil = buildVimPlugin { pname = "vim-pencil"; version = "2023-04-03"; src = fetchFromGitHub { @@ -13786,7 +13786,7 @@ final: prev: meta.homepage = "https://github.com/preservim/vim-pencil/"; }; - vim-phabricator = buildVimPluginFrom2Nix { + vim-phabricator = buildVimPlugin { pname = "vim-phabricator"; version = "2021-11-06"; src = fetchFromGitHub { @@ -13798,7 +13798,7 @@ final: prev: meta.homepage = "https://github.com/jparise/vim-phabricator/"; }; - vim-pico8-syntax = buildVimPluginFrom2Nix { + vim-pico8-syntax = buildVimPlugin { pname = "vim-pico8-syntax"; version = "2016-10-30"; src = fetchFromGitHub { @@ -13810,7 +13810,7 @@ final: prev: meta.homepage = "https://github.com/justinj/vim-pico8-syntax/"; }; - vim-plug = buildVimPluginFrom2Nix { + vim-plug = buildVimPlugin { pname = "vim-plug"; version = "2023-04-01"; src = fetchFromGitHub { @@ -13822,7 +13822,7 @@ final: prev: meta.homepage = "https://github.com/junegunn/vim-plug/"; }; - vim-plugin-AnsiEsc = buildVimPluginFrom2Nix { + vim-plugin-AnsiEsc = buildVimPlugin { pname = "vim-plugin-AnsiEsc"; version = "2019-04-07"; src = fetchFromGitHub { @@ -13834,7 +13834,7 @@ final: prev: meta.homepage = "https://github.com/powerman/vim-plugin-AnsiEsc/"; }; - vim-pluto = buildVimPluginFrom2Nix { + vim-pluto = buildVimPlugin { pname = "vim-pluto"; version = "2022-02-01"; src = fetchFromGitHub { @@ -13846,7 +13846,7 @@ final: prev: meta.homepage = "https://github.com/hasundue/vim-pluto/"; }; - vim-polyglot = buildVimPluginFrom2Nix { + vim-polyglot = buildVimPlugin { pname = "vim-polyglot"; version = "2022-10-14"; src = fetchFromGitHub { @@ -13858,7 +13858,7 @@ final: prev: meta.homepage = "https://github.com/sheerun/vim-polyglot/"; }; - vim-pony = buildVimPluginFrom2Nix { + vim-pony = buildVimPlugin { pname = "vim-pony"; version = "2018-07-27"; src = fetchFromGitHub { @@ -13870,7 +13870,7 @@ final: prev: meta.homepage = "https://github.com/jakwings/vim-pony/"; }; - vim-poweryank = buildVimPluginFrom2Nix { + vim-poweryank = buildVimPlugin { pname = "vim-poweryank"; version = "2017-08-13"; src = fetchFromGitHub { @@ -13882,7 +13882,7 @@ final: prev: meta.homepage = "https://github.com/haya14busa/vim-poweryank/"; }; - vim-prettier = buildVimPluginFrom2Nix { + vim-prettier = buildVimPlugin { pname = "vim-prettier"; version = "2021-11-24"; src = fetchFromGitHub { @@ -13894,7 +13894,7 @@ final: prev: meta.homepage = "https://github.com/prettier/vim-prettier/"; }; - vim-prettyprint = buildVimPluginFrom2Nix { + vim-prettyprint = buildVimPlugin { pname = "vim-prettyprint"; version = "2016-07-16"; src = fetchFromGitHub { @@ -13906,7 +13906,7 @@ final: prev: meta.homepage = "https://github.com/thinca/vim-prettyprint/"; }; - vim-printer = buildVimPluginFrom2Nix { + vim-printer = buildVimPlugin { pname = "vim-printer"; version = "2022-03-01"; src = fetchFromGitHub { @@ -13918,7 +13918,7 @@ final: prev: meta.homepage = "https://github.com/meain/vim-printer/"; }; - vim-prisma = buildVimPluginFrom2Nix { + vim-prisma = buildVimPlugin { pname = "vim-prisma"; version = "2023-01-24"; src = fetchFromGitHub { @@ -13930,7 +13930,7 @@ final: prev: meta.homepage = "https://github.com/prisma/vim-prisma/"; }; - vim-projectionist = buildVimPluginFrom2Nix { + vim-projectionist = buildVimPlugin { pname = "vim-projectionist"; version = "2023-03-16"; src = fetchFromGitHub { @@ -13942,7 +13942,7 @@ final: prev: meta.homepage = "https://github.com/tpope/vim-projectionist/"; }; - vim-prosession = buildVimPluginFrom2Nix { + vim-prosession = buildVimPlugin { pname = "vim-prosession"; version = "2023-08-08"; src = fetchFromGitHub { @@ -13954,7 +13954,7 @@ final: prev: meta.homepage = "https://github.com/dhruvasagar/vim-prosession/"; }; - vim-protobuf = buildVimPluginFrom2Nix { + vim-protobuf = buildVimPlugin { pname = "vim-protobuf"; version = "2017-12-26"; src = fetchFromGitHub { @@ -13966,7 +13966,7 @@ final: prev: meta.homepage = "https://github.com/uarun/vim-protobuf/"; }; - vim-ps1 = buildVimPluginFrom2Nix { + vim-ps1 = buildVimPlugin { pname = "vim-ps1"; version = "2023-01-11"; src = fetchFromGitHub { @@ -13978,7 +13978,7 @@ final: prev: meta.homepage = "https://github.com/PProvost/vim-ps1/"; }; - vim-pug = buildVimPluginFrom2Nix { + vim-pug = buildVimPlugin { pname = "vim-pug"; version = "2019-09-23"; src = fetchFromGitHub { @@ -13990,7 +13990,7 @@ final: prev: meta.homepage = "https://github.com/digitaltoad/vim-pug/"; }; - vim-puppet = buildVimPluginFrom2Nix { + vim-puppet = buildVimPlugin { pname = "vim-puppet"; version = "2022-05-21"; src = fetchFromGitHub { @@ -14002,7 +14002,7 @@ final: prev: meta.homepage = "https://github.com/rodjek/vim-puppet/"; }; - vim-python-pep8-indent = buildVimPluginFrom2Nix { + vim-python-pep8-indent = buildVimPlugin { pname = "vim-python-pep8-indent"; version = "2020-03-20"; src = fetchFromGitHub { @@ -14014,7 +14014,7 @@ final: prev: meta.homepage = "https://github.com/Vimjas/vim-python-pep8-indent/"; }; - vim-qf = buildVimPluginFrom2Nix { + vim-qf = buildVimPlugin { pname = "vim-qf"; version = "2023-05-09"; src = fetchFromGitHub { @@ -14026,7 +14026,7 @@ final: prev: meta.homepage = "https://github.com/romainl/vim-qf/"; }; - vim-qlist = buildVimPluginFrom2Nix { + vim-qlist = buildVimPlugin { pname = "vim-qlist"; version = "2019-07-18"; src = fetchFromGitHub { @@ -14038,7 +14038,7 @@ final: prev: meta.homepage = "https://github.com/romainl/vim-qlist/"; }; - vim-qml = buildVimPluginFrom2Nix { + vim-qml = buildVimPlugin { pname = "vim-qml"; version = "2023-09-11"; src = fetchFromGitHub { @@ -14050,7 +14050,7 @@ final: prev: meta.homepage = "https://github.com/peterhoeg/vim-qml/"; }; - vim-quickrun = buildVimPluginFrom2Nix { + vim-quickrun = buildVimPlugin { pname = "vim-quickrun"; version = "2022-07-10"; src = fetchFromGitHub { @@ -14062,7 +14062,7 @@ final: prev: meta.homepage = "https://github.com/thinca/vim-quickrun/"; }; - vim-racer = buildVimPluginFrom2Nix { + vim-racer = buildVimPlugin { pname = "vim-racer"; version = "2021-04-04"; src = fetchFromGitHub { @@ -14074,7 +14074,7 @@ final: prev: meta.homepage = "https://github.com/racer-rust/vim-racer/"; }; - vim-racket = buildVimPluginFrom2Nix { + vim-racket = buildVimPlugin { pname = "vim-racket"; version = "2022-12-30"; src = fetchFromGitHub { @@ -14086,7 +14086,7 @@ final: prev: meta.homepage = "https://github.com/wlangstroth/vim-racket/"; }; - vim-ragtag = buildVimPluginFrom2Nix { + vim-ragtag = buildVimPlugin { pname = "vim-ragtag"; version = "2022-03-21"; src = fetchFromGitHub { @@ -14098,7 +14098,7 @@ final: prev: meta.homepage = "https://github.com/tpope/vim-ragtag/"; }; - vim-rails = buildVimPluginFrom2Nix { + vim-rails = buildVimPlugin { pname = "vim-rails"; version = "2023-09-11"; src = fetchFromGitHub { @@ -14110,7 +14110,7 @@ final: prev: meta.homepage = "https://github.com/tpope/vim-rails/"; }; - vim-reasonml = buildVimPluginFrom2Nix { + vim-reasonml = buildVimPlugin { pname = "vim-reasonml"; version = "2020-07-16"; src = fetchFromGitHub { @@ -14122,7 +14122,7 @@ final: prev: meta.homepage = "https://github.com/jordwalke/vim-reasonml/"; }; - vim-repeat = buildVimPluginFrom2Nix { + vim-repeat = buildVimPlugin { pname = "vim-repeat"; version = "2021-01-25"; src = fetchFromGitHub { @@ -14134,7 +14134,7 @@ final: prev: meta.homepage = "https://github.com/tpope/vim-repeat/"; }; - vim-rhubarb = buildVimPluginFrom2Nix { + vim-rhubarb = buildVimPlugin { pname = "vim-rhubarb"; version = "2023-03-29"; src = fetchFromGitHub { @@ -14146,7 +14146,7 @@ final: prev: meta.homepage = "https://github.com/tpope/vim-rhubarb/"; }; - vim-rooter = buildVimPluginFrom2Nix { + vim-rooter = buildVimPlugin { pname = "vim-rooter"; version = "2023-09-14"; src = fetchFromGitHub { @@ -14158,7 +14158,7 @@ final: prev: meta.homepage = "https://github.com/airblade/vim-rooter/"; }; - vim-rsi = buildVimPluginFrom2Nix { + vim-rsi = buildVimPlugin { pname = "vim-rsi"; version = "2023-04-30"; src = fetchFromGitHub { @@ -14170,7 +14170,7 @@ final: prev: meta.homepage = "https://github.com/tpope/vim-rsi/"; }; - vim-ruby = buildVimPluginFrom2Nix { + vim-ruby = buildVimPlugin { pname = "vim-ruby"; version = "2023-09-15"; src = fetchFromGitHub { @@ -14182,7 +14182,7 @@ final: prev: meta.homepage = "https://github.com/vim-ruby/vim-ruby/"; }; - vim-salve = buildVimPluginFrom2Nix { + vim-salve = buildVimPlugin { pname = "vim-salve"; version = "2022-04-15"; src = fetchFromGitHub { @@ -14194,7 +14194,7 @@ final: prev: meta.homepage = "https://github.com/tpope/vim-salve/"; }; - vim-sandwich = buildVimPluginFrom2Nix { + vim-sandwich = buildVimPlugin { pname = "vim-sandwich"; version = "2022-12-07"; src = fetchFromGitHub { @@ -14206,7 +14206,7 @@ final: prev: meta.homepage = "https://github.com/machakann/vim-sandwich/"; }; - vim-sayonara = buildVimPluginFrom2Nix { + vim-sayonara = buildVimPlugin { pname = "vim-sayonara"; version = "2021-08-12"; src = fetchFromGitHub { @@ -14218,7 +14218,7 @@ final: prev: meta.homepage = "https://github.com/mhinz/vim-sayonara/"; }; - vim-scala = buildVimPluginFrom2Nix { + vim-scala = buildVimPlugin { pname = "vim-scala"; version = "2021-08-11"; src = fetchFromGitHub { @@ -14230,7 +14230,7 @@ final: prev: meta.homepage = "https://github.com/derekwyatt/vim-scala/"; }; - vim-scouter = buildVimPluginFrom2Nix { + vim-scouter = buildVimPlugin { pname = "vim-scouter"; version = "2014-08-10"; src = fetchFromGitHub { @@ -14242,7 +14242,7 @@ final: prev: meta.homepage = "https://github.com/thinca/vim-scouter/"; }; - vim-scriptease = buildVimPluginFrom2Nix { + vim-scriptease = buildVimPlugin { pname = "vim-scriptease"; version = "2022-05-30"; src = fetchFromGitHub { @@ -14254,7 +14254,7 @@ final: prev: meta.homepage = "https://github.com/tpope/vim-scriptease/"; }; - vim-search-pulse = buildVimPluginFrom2Nix { + vim-search-pulse = buildVimPlugin { pname = "vim-search-pulse"; version = "2022-04-26"; src = fetchFromGitHub { @@ -14266,7 +14266,7 @@ final: prev: meta.homepage = "https://github.com/inside/vim-search-pulse/"; }; - vim-sensible = buildVimPluginFrom2Nix { + vim-sensible = buildVimPlugin { pname = "vim-sensible"; version = "2023-03-29"; src = fetchFromGitHub { @@ -14278,7 +14278,7 @@ final: prev: meta.homepage = "https://github.com/tpope/vim-sensible/"; }; - vim-sentence-chopper = buildVimPluginFrom2Nix { + vim-sentence-chopper = buildVimPlugin { pname = "vim-sentence-chopper"; version = "2023-02-15"; src = fetchFromGitHub { @@ -14290,7 +14290,7 @@ final: prev: meta.homepage = "https://github.com/Konfekt/vim-sentence-chopper/"; }; - vim-sexp = buildVimPluginFrom2Nix { + vim-sexp = buildVimPlugin { pname = "vim-sexp"; version = "2021-03-08"; src = fetchFromGitHub { @@ -14302,7 +14302,7 @@ final: prev: meta.homepage = "https://github.com/guns/vim-sexp/"; }; - vim-sexp-mappings-for-regular-people = buildVimPluginFrom2Nix { + vim-sexp-mappings-for-regular-people = buildVimPlugin { pname = "vim-sexp-mappings-for-regular-people"; version = "2022-11-26"; src = fetchFromGitHub { @@ -14314,7 +14314,7 @@ final: prev: meta.homepage = "https://github.com/tpope/vim-sexp-mappings-for-regular-people/"; }; - vim-shellcheck = buildVimPluginFrom2Nix { + vim-shellcheck = buildVimPlugin { pname = "vim-shellcheck"; version = "2019-07-25"; src = fetchFromGitHub { @@ -14326,7 +14326,7 @@ final: prev: meta.homepage = "https://github.com/itspriddle/vim-shellcheck/"; }; - vim-signature = buildVimPluginFrom2Nix { + vim-signature = buildVimPlugin { pname = "vim-signature"; version = "2018-07-06"; src = fetchFromGitHub { @@ -14338,7 +14338,7 @@ final: prev: meta.homepage = "https://github.com/kshenoy/vim-signature/"; }; - vim-signify = buildVimPluginFrom2Nix { + vim-signify = buildVimPlugin { pname = "vim-signify"; version = "2023-05-10"; src = fetchFromGitHub { @@ -14350,7 +14350,7 @@ final: prev: meta.homepage = "https://github.com/mhinz/vim-signify/"; }; - vim-simpledb = buildVimPluginFrom2Nix { + vim-simpledb = buildVimPlugin { pname = "vim-simpledb"; version = "2020-10-02"; src = fetchFromGitHub { @@ -14362,7 +14362,7 @@ final: prev: meta.homepage = "https://github.com/ivalkeen/vim-simpledb/"; }; - vim-slash = buildVimPluginFrom2Nix { + vim-slash = buildVimPlugin { pname = "vim-slash"; version = "2019-08-28"; src = fetchFromGitHub { @@ -14374,7 +14374,7 @@ final: prev: meta.homepage = "https://github.com/junegunn/vim-slash/"; }; - vim-sleuth = buildVimPluginFrom2Nix { + vim-sleuth = buildVimPlugin { pname = "vim-sleuth"; version = "2023-01-10"; src = fetchFromGitHub { @@ -14386,7 +14386,7 @@ final: prev: meta.homepage = "https://github.com/tpope/vim-sleuth/"; }; - vim-slime = buildVimPluginFrom2Nix { + vim-slime = buildVimPlugin { pname = "vim-slime"; version = "2023-08-29"; src = fetchFromGitHub { @@ -14398,7 +14398,7 @@ final: prev: meta.homepage = "https://github.com/jpalardy/vim-slime/"; }; - vim-smali = buildVimPluginFrom2Nix { + vim-smali = buildVimPlugin { pname = "vim-smali"; version = "2015-11-05"; src = fetchFromGitHub { @@ -14410,7 +14410,7 @@ final: prev: meta.homepage = "https://github.com/mzlogin/vim-smali/"; }; - vim-smalls = buildVimPluginFrom2Nix { + vim-smalls = buildVimPlugin { pname = "vim-smalls"; version = "2015-05-02"; src = fetchFromGitHub { @@ -14422,7 +14422,7 @@ final: prev: meta.homepage = "https://github.com/t9md/vim-smalls/"; }; - vim-smartbd = buildVimPluginFrom2Nix { + vim-smartbd = buildVimPlugin { pname = "vim-smartbd"; version = "2015-12-20"; src = fetchFromGitHub { @@ -14434,7 +14434,7 @@ final: prev: meta.homepage = "https://github.com/Industrial/vim-smartbd/"; }; - vim-smartbw = buildVimPluginFrom2Nix { + vim-smartbw = buildVimPlugin { pname = "vim-smartbw"; version = "2015-12-20"; src = fetchFromGitHub { @@ -14446,7 +14446,7 @@ final: prev: meta.homepage = "https://github.com/Industrial/vim-smartbw/"; }; - vim-smoothie = buildVimPluginFrom2Nix { + vim-smoothie = buildVimPlugin { pname = "vim-smoothie"; version = "2022-06-10"; src = fetchFromGitHub { @@ -14458,7 +14458,7 @@ final: prev: meta.homepage = "https://github.com/psliwka/vim-smoothie/"; }; - vim-smt2 = buildVimPluginFrom2Nix { + vim-smt2 = buildVimPlugin { pname = "vim-smt2"; version = "2023-05-17"; src = fetchFromGitHub { @@ -14470,7 +14470,7 @@ final: prev: meta.homepage = "https://github.com/bohlender/vim-smt2/"; }; - vim-sneak = buildVimPluginFrom2Nix { + vim-sneak = buildVimPlugin { pname = "vim-sneak"; version = "2023-07-12"; src = fetchFromGitHub { @@ -14482,7 +14482,7 @@ final: prev: meta.homepage = "https://github.com/justinmk/vim-sneak/"; }; - vim-snipmate = buildVimPluginFrom2Nix { + vim-snipmate = buildVimPlugin { pname = "vim-snipmate"; version = "2023-03-12"; src = fetchFromGitHub { @@ -14494,7 +14494,7 @@ final: prev: meta.homepage = "https://github.com/garbas/vim-snipmate/"; }; - vim-snippets = buildVimPluginFrom2Nix { + vim-snippets = buildVimPlugin { pname = "vim-snippets"; version = "2023-09-11"; src = fetchFromGitHub { @@ -14506,7 +14506,7 @@ final: prev: meta.homepage = "https://github.com/honza/vim-snippets/"; }; - vim-solarized8 = buildVimPluginFrom2Nix { + vim-solarized8 = buildVimPlugin { pname = "vim-solarized8"; version = "2023-08-13"; src = fetchFromGitHub { @@ -14518,7 +14518,7 @@ final: prev: meta.homepage = "https://github.com/lifepillar/vim-solarized8/"; }; - vim-solidity = buildVimPluginFrom2Nix { + vim-solidity = buildVimPlugin { pname = "vim-solidity"; version = "2018-04-17"; src = fetchFromGitHub { @@ -14530,7 +14530,7 @@ final: prev: meta.homepage = "https://github.com/tomlion/vim-solidity/"; }; - vim-sort-motion = buildVimPluginFrom2Nix { + vim-sort-motion = buildVimPlugin { pname = "vim-sort-motion"; version = "2021-03-07"; src = fetchFromGitHub { @@ -14542,7 +14542,7 @@ final: prev: meta.homepage = "https://github.com/christoomey/vim-sort-motion/"; }; - vim-speeddating = buildVimPluginFrom2Nix { + vim-speeddating = buildVimPlugin { pname = "vim-speeddating"; version = "2022-10-10"; src = fetchFromGitHub { @@ -14554,7 +14554,7 @@ final: prev: meta.homepage = "https://github.com/tpope/vim-speeddating/"; }; - vim-spirv = buildVimPluginFrom2Nix { + vim-spirv = buildVimPlugin { pname = "vim-spirv"; version = "2023-09-16"; src = fetchFromGitHub { @@ -14566,7 +14566,7 @@ final: prev: meta.homepage = "https://github.com/kbenzie/vim-spirv/"; }; - vim-startify = buildVimPluginFrom2Nix { + vim-startify = buildVimPlugin { pname = "vim-startify"; version = "2021-05-08"; src = fetchFromGitHub { @@ -14578,7 +14578,7 @@ final: prev: meta.homepage = "https://github.com/mhinz/vim-startify/"; }; - vim-startuptime = buildVimPluginFrom2Nix { + vim-startuptime = buildVimPlugin { pname = "vim-startuptime"; version = "2023-06-03"; src = fetchFromGitHub { @@ -14590,7 +14590,7 @@ final: prev: meta.homepage = "https://github.com/dstein64/vim-startuptime/"; }; - vim-strip-trailing-whitespace = buildVimPluginFrom2Nix { + vim-strip-trailing-whitespace = buildVimPlugin { pname = "vim-strip-trailing-whitespace"; version = "2022-02-01"; src = fetchFromGitHub { @@ -14602,7 +14602,7 @@ final: prev: meta.homepage = "https://github.com/axelf4/vim-strip-trailing-whitespace/"; }; - vim-stylish-haskell = buildVimPluginFrom2Nix { + vim-stylish-haskell = buildVimPlugin { pname = "vim-stylish-haskell"; version = "2022-08-08"; src = fetchFromGitHub { @@ -14614,7 +14614,7 @@ final: prev: meta.homepage = "https://github.com/nbouscal/vim-stylish-haskell/"; }; - vim-stylishask = buildVimPluginFrom2Nix { + vim-stylishask = buildVimPlugin { pname = "vim-stylishask"; version = "2021-09-10"; src = fetchFromGitHub { @@ -14626,7 +14626,7 @@ final: prev: meta.homepage = "https://github.com/alx741/vim-stylishask/"; }; - vim-substrata = buildVimPluginFrom2Nix { + vim-substrata = buildVimPlugin { pname = "vim-substrata"; version = "2021-03-23"; src = fetchFromGitHub { @@ -14638,7 +14638,7 @@ final: prev: meta.homepage = "https://github.com/lunacookies/vim-substrata/"; }; - vim-subversive = buildVimPluginFrom2Nix { + vim-subversive = buildVimPlugin { pname = "vim-subversive"; version = "2022-01-26"; src = fetchFromGitHub { @@ -14650,7 +14650,7 @@ final: prev: meta.homepage = "https://github.com/svermeulen/vim-subversive/"; }; - vim-surround = buildVimPluginFrom2Nix { + vim-surround = buildVimPlugin { pname = "vim-surround"; version = "2022-10-25"; src = fetchFromGitHub { @@ -14662,7 +14662,7 @@ final: prev: meta.homepage = "https://github.com/tpope/vim-surround/"; }; - vim-svelte = buildVimPluginFrom2Nix { + vim-svelte = buildVimPlugin { pname = "vim-svelte"; version = "2022-10-27"; src = fetchFromGitHub { @@ -14674,7 +14674,7 @@ final: prev: meta.homepage = "https://github.com/evanleck/vim-svelte/"; }; - vim-swap = buildVimPluginFrom2Nix { + vim-swap = buildVimPlugin { pname = "vim-swap"; version = "2021-08-08"; src = fetchFromGitHub { @@ -14686,7 +14686,7 @@ final: prev: meta.homepage = "https://github.com/machakann/vim-swap/"; }; - vim-table-mode = buildVimPluginFrom2Nix { + vim-table-mode = buildVimPlugin { pname = "vim-table-mode"; version = "2022-10-20"; src = fetchFromGitHub { @@ -14698,7 +14698,7 @@ final: prev: meta.homepage = "https://github.com/dhruvasagar/vim-table-mode/"; }; - vim-tabpagecd = buildVimPluginFrom2Nix { + vim-tabpagecd = buildVimPlugin { pname = "vim-tabpagecd"; version = "2021-09-23"; src = fetchFromGitHub { @@ -14710,7 +14710,7 @@ final: prev: meta.homepage = "https://github.com/kana/vim-tabpagecd/"; }; - vim-tbone = buildVimPluginFrom2Nix { + vim-tbone = buildVimPlugin { pname = "vim-tbone"; version = "2023-03-31"; src = fetchFromGitHub { @@ -14722,7 +14722,7 @@ final: prev: meta.homepage = "https://github.com/tpope/vim-tbone/"; }; - vim-teal = buildVimPluginFrom2Nix { + vim-teal = buildVimPlugin { pname = "vim-teal"; version = "2021-01-05"; src = fetchFromGitHub { @@ -14734,7 +14734,7 @@ final: prev: meta.homepage = "https://github.com/teal-language/vim-teal/"; }; - vim-terminator = buildVimPluginFrom2Nix { + vim-terminator = buildVimPlugin { pname = "vim-terminator"; version = "2022-04-15"; src = fetchFromGitHub { @@ -14746,7 +14746,7 @@ final: prev: meta.homepage = "https://github.com/erietz/vim-terminator/"; }; - vim-terraform = buildVimPluginFrom2Nix { + vim-terraform = buildVimPlugin { pname = "vim-terraform"; version = "2023-04-26"; src = fetchFromGitHub { @@ -14758,7 +14758,7 @@ final: prev: meta.homepage = "https://github.com/hashivim/vim-terraform/"; }; - vim-terraform-completion = buildVimPluginFrom2Nix { + vim-terraform-completion = buildVimPlugin { pname = "vim-terraform-completion"; version = "2021-04-11"; src = fetchFromGitHub { @@ -14771,7 +14771,7 @@ final: prev: meta.homepage = "https://github.com/juliosueiras/vim-terraform-completion/"; }; - vim-test = buildVimPluginFrom2Nix { + vim-test = buildVimPlugin { pname = "vim-test"; version = "2023-09-15"; src = fetchFromGitHub { @@ -14783,7 +14783,7 @@ final: prev: meta.homepage = "https://github.com/vim-test/vim-test/"; }; - vim-textobj-comment = buildVimPluginFrom2Nix { + vim-textobj-comment = buildVimPlugin { pname = "vim-textobj-comment"; version = "2014-04-11"; src = fetchFromGitHub { @@ -14795,7 +14795,7 @@ final: prev: meta.homepage = "https://github.com/glts/vim-textobj-comment/"; }; - vim-textobj-entire = buildVimPluginFrom2Nix { + vim-textobj-entire = buildVimPlugin { pname = "vim-textobj-entire"; version = "2018-01-19"; src = fetchFromGitHub { @@ -14807,7 +14807,7 @@ final: prev: meta.homepage = "https://github.com/kana/vim-textobj-entire/"; }; - vim-textobj-function = buildVimPluginFrom2Nix { + vim-textobj-function = buildVimPlugin { pname = "vim-textobj-function"; version = "2014-05-03"; src = fetchFromGitHub { @@ -14819,7 +14819,7 @@ final: prev: meta.homepage = "https://github.com/kana/vim-textobj-function/"; }; - vim-textobj-haskell = buildVimPluginFrom2Nix { + vim-textobj-haskell = buildVimPlugin { pname = "vim-textobj-haskell"; version = "2014-10-27"; src = fetchFromGitHub { @@ -14831,7 +14831,7 @@ final: prev: meta.homepage = "https://github.com/gibiansky/vim-textobj-haskell/"; }; - vim-textobj-multiblock = buildVimPluginFrom2Nix { + vim-textobj-multiblock = buildVimPlugin { pname = "vim-textobj-multiblock"; version = "2014-06-02"; src = fetchFromGitHub { @@ -14843,7 +14843,7 @@ final: prev: meta.homepage = "https://github.com/osyo-manga/vim-textobj-multiblock/"; }; - vim-textobj-user = buildVimPluginFrom2Nix { + vim-textobj-user = buildVimPlugin { pname = "vim-textobj-user"; version = "2020-02-21"; src = fetchFromGitHub { @@ -14855,7 +14855,7 @@ final: prev: meta.homepage = "https://github.com/kana/vim-textobj-user/"; }; - vim-textobj-variable-segment = buildVimPluginFrom2Nix { + vim-textobj-variable-segment = buildVimPlugin { pname = "vim-textobj-variable-segment"; version = "2022-07-16"; src = fetchFromGitHub { @@ -14867,7 +14867,7 @@ final: prev: meta.homepage = "https://github.com/Julian/vim-textobj-variable-segment/"; }; - vim-themis = buildVimPluginFrom2Nix { + vim-themis = buildVimPlugin { pname = "vim-themis"; version = "2021-12-03"; src = fetchFromGitHub { @@ -14879,7 +14879,7 @@ final: prev: meta.homepage = "https://github.com/thinca/vim-themis/"; }; - vim-tmux = buildVimPluginFrom2Nix { + vim-tmux = buildVimPlugin { pname = "vim-tmux"; version = "2021-10-04"; src = fetchFromGitHub { @@ -14891,7 +14891,7 @@ final: prev: meta.homepage = "https://github.com/tmux-plugins/vim-tmux/"; }; - vim-tmux-clipboard = buildVimPluginFrom2Nix { + vim-tmux-clipboard = buildVimPlugin { pname = "vim-tmux-clipboard"; version = "2023-04-24"; src = fetchFromGitHub { @@ -14903,7 +14903,7 @@ final: prev: meta.homepage = "https://github.com/roxma/vim-tmux-clipboard/"; }; - vim-tmux-focus-events = buildVimPluginFrom2Nix { + vim-tmux-focus-events = buildVimPlugin { pname = "vim-tmux-focus-events"; version = "2021-04-27"; src = fetchFromGitHub { @@ -14915,7 +14915,7 @@ final: prev: meta.homepage = "https://github.com/tmux-plugins/vim-tmux-focus-events/"; }; - vim-tmux-navigator = buildVimPluginFrom2Nix { + vim-tmux-navigator = buildVimPlugin { pname = "vim-tmux-navigator"; version = "2023-08-20"; src = fetchFromGitHub { @@ -14927,7 +14927,7 @@ final: prev: meta.homepage = "https://github.com/christoomey/vim-tmux-navigator/"; }; - vim-togglelist = buildVimPluginFrom2Nix { + vim-togglelist = buildVimPlugin { pname = "vim-togglelist"; version = "2021-12-08"; src = fetchFromGitHub { @@ -14939,7 +14939,7 @@ final: prev: meta.homepage = "https://github.com/milkypostman/vim-togglelist/"; }; - vim-toml = buildVimPluginFrom2Nix { + vim-toml = buildVimPlugin { pname = "vim-toml"; version = "2022-09-24"; src = fetchFromGitHub { @@ -14951,7 +14951,7 @@ final: prev: meta.homepage = "https://github.com/cespare/vim-toml/"; }; - vim-tpipeline = buildVimPluginFrom2Nix { + vim-tpipeline = buildVimPlugin { pname = "vim-tpipeline"; version = "2023-09-10"; src = fetchFromGitHub { @@ -14963,7 +14963,7 @@ final: prev: meta.homepage = "https://github.com/vimpostor/vim-tpipeline/"; }; - vim-trailing-whitespace = buildVimPluginFrom2Nix { + vim-trailing-whitespace = buildVimPlugin { pname = "vim-trailing-whitespace"; version = "2023-02-28"; src = fetchFromGitHub { @@ -14975,7 +14975,7 @@ final: prev: meta.homepage = "https://github.com/bronson/vim-trailing-whitespace/"; }; - vim-tridactyl = buildVimPluginFrom2Nix { + vim-tridactyl = buildVimPlugin { pname = "vim-tridactyl"; version = "2022-11-30"; src = fetchFromGitHub { @@ -14987,7 +14987,7 @@ final: prev: meta.homepage = "https://github.com/tridactyl/vim-tridactyl/"; }; - vim-tsx = buildVimPluginFrom2Nix { + vim-tsx = buildVimPlugin { pname = "vim-tsx"; version = "2017-03-16"; src = fetchFromGitHub { @@ -14999,7 +14999,7 @@ final: prev: meta.homepage = "https://github.com/ianks/vim-tsx/"; }; - vim-twig = buildVimPluginFrom2Nix { + vim-twig = buildVimPlugin { pname = "vim-twig"; version = "2018-05-23"; src = fetchFromGitHub { @@ -15011,7 +15011,7 @@ final: prev: meta.homepage = "https://github.com/lumiliet/vim-twig/"; }; - vim-twiggy = buildVimPluginFrom2Nix { + vim-twiggy = buildVimPlugin { pname = "vim-twiggy"; version = "2022-01-10"; src = fetchFromGitHub { @@ -15023,7 +15023,7 @@ final: prev: meta.homepage = "https://github.com/sodapopcan/vim-twiggy/"; }; - vim-ultest = buildVimPluginFrom2Nix { + vim-ultest = buildVimPlugin { pname = "vim-ultest"; version = "2023-02-09"; src = fetchFromGitHub { @@ -15035,7 +15035,7 @@ final: prev: meta.homepage = "https://github.com/rcarriga/vim-ultest/"; }; - vim-unicoder = buildVimPluginFrom2Nix { + vim-unicoder = buildVimPlugin { pname = "vim-unicoder"; version = "2019-04-16"; src = fetchFromGitHub { @@ -15047,7 +15047,7 @@ final: prev: meta.homepage = "https://github.com/arthurxavierx/vim-unicoder/"; }; - vim-unimpaired = buildVimPluginFrom2Nix { + vim-unimpaired = buildVimPlugin { pname = "vim-unimpaired"; version = "2022-11-21"; src = fetchFromGitHub { @@ -15059,7 +15059,7 @@ final: prev: meta.homepage = "https://github.com/tpope/vim-unimpaired/"; }; - vim-vagrant = buildVimPluginFrom2Nix { + vim-vagrant = buildVimPlugin { pname = "vim-vagrant"; version = "2018-11-11"; src = fetchFromGitHub { @@ -15071,7 +15071,7 @@ final: prev: meta.homepage = "https://github.com/hashivim/vim-vagrant/"; }; - vim-vinegar = buildVimPluginFrom2Nix { + vim-vinegar = buildVimPlugin { pname = "vim-vinegar"; version = "2022-01-11"; src = fetchFromGitHub { @@ -15083,7 +15083,7 @@ final: prev: meta.homepage = "https://github.com/tpope/vim-vinegar/"; }; - vim-visual-increment = buildVimPluginFrom2Nix { + vim-visual-increment = buildVimPlugin { pname = "vim-visual-increment"; version = "2020-05-03"; src = fetchFromGitHub { @@ -15095,7 +15095,7 @@ final: prev: meta.homepage = "https://github.com/triglav/vim-visual-increment/"; }; - vim-visual-multi = buildVimPluginFrom2Nix { + vim-visual-multi = buildVimPlugin { pname = "vim-visual-multi"; version = "2022-09-14"; src = fetchFromGitHub { @@ -15107,7 +15107,7 @@ final: prev: meta.homepage = "https://github.com/mg979/vim-visual-multi/"; }; - vim-visual-star-search = buildVimPluginFrom2Nix { + vim-visual-star-search = buildVimPlugin { pname = "vim-visual-star-search"; version = "2021-07-14"; src = fetchFromGitHub { @@ -15119,7 +15119,7 @@ final: prev: meta.homepage = "https://github.com/bronson/vim-visual-star-search/"; }; - vim-visualstar = buildVimPluginFrom2Nix { + vim-visualstar = buildVimPlugin { pname = "vim-visualstar"; version = "2015-08-27"; src = fetchFromGitHub { @@ -15131,7 +15131,7 @@ final: prev: meta.homepage = "https://github.com/thinca/vim-visualstar/"; }; - vim-vp4 = buildVimPluginFrom2Nix { + vim-vp4 = buildVimPlugin { pname = "vim-vp4"; version = "2022-06-06"; src = fetchFromGitHub { @@ -15143,7 +15143,7 @@ final: prev: meta.homepage = "https://github.com/ngemily/vim-vp4/"; }; - vim-vsnip = buildVimPluginFrom2Nix { + vim-vsnip = buildVimPlugin { pname = "vim-vsnip"; version = "2023-09-15"; src = fetchFromGitHub { @@ -15155,7 +15155,7 @@ final: prev: meta.homepage = "https://github.com/hrsh7th/vim-vsnip/"; }; - vim-vsnip-integ = buildVimPluginFrom2Nix { + vim-vsnip-integ = buildVimPlugin { pname = "vim-vsnip-integ"; version = "2023-07-01"; src = fetchFromGitHub { @@ -15167,7 +15167,7 @@ final: prev: meta.homepage = "https://github.com/hrsh7th/vim-vsnip-integ/"; }; - vim-vue = buildVimPluginFrom2Nix { + vim-vue = buildVimPlugin { pname = "vim-vue"; version = "2019-08-03"; src = fetchFromGitHub { @@ -15179,7 +15179,7 @@ final: prev: meta.homepage = "https://github.com/posva/vim-vue/"; }; - vim-vue-plugin = buildVimPluginFrom2Nix { + vim-vue-plugin = buildVimPlugin { pname = "vim-vue-plugin"; version = "2023-02-02"; src = fetchFromGitHub { @@ -15191,7 +15191,7 @@ final: prev: meta.homepage = "https://github.com/leafOfTree/vim-vue-plugin/"; }; - vim-wakatime = buildVimPluginFrom2Nix { + vim-wakatime = buildVimPlugin { pname = "vim-wakatime"; version = "2023-08-16"; src = fetchFromGitHub { @@ -15203,7 +15203,7 @@ final: prev: meta.homepage = "https://github.com/wakatime/vim-wakatime/"; }; - vim-watchdogs = buildVimPluginFrom2Nix { + vim-watchdogs = buildVimPlugin { pname = "vim-watchdogs"; version = "2019-09-09"; src = fetchFromGitHub { @@ -15215,7 +15215,7 @@ final: prev: meta.homepage = "https://github.com/osyo-manga/vim-watchdogs/"; }; - vim-wayland-clipboard = buildVimPluginFrom2Nix { + vim-wayland-clipboard = buildVimPlugin { pname = "vim-wayland-clipboard"; version = "2023-09-08"; src = fetchFromGitHub { @@ -15227,7 +15227,7 @@ final: prev: meta.homepage = "https://github.com/jasonccox/vim-wayland-clipboard/"; }; - vim-which-key = buildVimPluginFrom2Nix { + vim-which-key = buildVimPlugin { pname = "vim-which-key"; version = "2023-09-14"; src = fetchFromGitHub { @@ -15239,7 +15239,7 @@ final: prev: meta.homepage = "https://github.com/liuchengxu/vim-which-key/"; }; - vim-windowswap = buildVimPluginFrom2Nix { + vim-windowswap = buildVimPlugin { pname = "vim-windowswap"; version = "2018-05-16"; src = fetchFromGitHub { @@ -15251,7 +15251,7 @@ final: prev: meta.homepage = "https://github.com/wesQ3/vim-windowswap/"; }; - vim-wordmotion = buildVimPluginFrom2Nix { + vim-wordmotion = buildVimPlugin { pname = "vim-wordmotion"; version = "2023-02-26"; src = fetchFromGitHub { @@ -15263,7 +15263,7 @@ final: prev: meta.homepage = "https://github.com/chaoren/vim-wordmotion/"; }; - vim-wordy = buildVimPluginFrom2Nix { + vim-wordy = buildVimPlugin { pname = "vim-wordy"; version = "2022-02-13"; src = fetchFromGitHub { @@ -15275,7 +15275,7 @@ final: prev: meta.homepage = "https://github.com/preservim/vim-wordy/"; }; - vim-xdebug = buildVimPluginFrom2Nix { + vim-xdebug = buildVimPlugin { pname = "vim-xdebug"; version = "2012-08-15"; src = fetchFromGitHub { @@ -15287,7 +15287,7 @@ final: prev: meta.homepage = "https://github.com/joonty/vim-xdebug/"; }; - vim-xkbswitch = buildVimPluginFrom2Nix { + vim-xkbswitch = buildVimPlugin { pname = "vim-xkbswitch"; version = "2023-05-11"; src = fetchFromGitHub { @@ -15299,7 +15299,7 @@ final: prev: meta.homepage = "https://github.com/lyokha/vim-xkbswitch/"; }; - vim-xtabline = buildVimPluginFrom2Nix { + vim-xtabline = buildVimPlugin { pname = "vim-xtabline"; version = "2022-02-03"; src = fetchFromGitHub { @@ -15311,7 +15311,7 @@ final: prev: meta.homepage = "https://github.com/mg979/vim-xtabline/"; }; - vim-yaml = buildVimPluginFrom2Nix { + vim-yaml = buildVimPlugin { pname = "vim-yaml"; version = "2021-01-14"; src = fetchFromGitHub { @@ -15323,7 +15323,7 @@ final: prev: meta.homepage = "https://github.com/stephpy/vim-yaml/"; }; - vim-yapf = buildVimPluginFrom2Nix { + vim-yapf = buildVimPlugin { pname = "vim-yapf"; version = "2018-10-04"; src = fetchFromGitHub { @@ -15335,7 +15335,7 @@ final: prev: meta.homepage = "https://github.com/simonrw/vim-yapf/"; }; - vim-zettel = buildVimPluginFrom2Nix { + vim-zettel = buildVimPlugin { pname = "vim-zettel"; version = "2023-08-17"; src = fetchFromGitHub { @@ -15347,7 +15347,7 @@ final: prev: meta.homepage = "https://github.com/michal-h21/vim-zettel/"; }; - vim2hs = buildVimPluginFrom2Nix { + vim2hs = buildVimPlugin { pname = "vim2hs"; version = "2014-04-16"; src = fetchFromGitHub { @@ -15359,7 +15359,7 @@ final: prev: meta.homepage = "https://github.com/dag/vim2hs/"; }; - vim9-stargate = buildVimPluginFrom2Nix { + vim9-stargate = buildVimPlugin { pname = "vim9-stargate"; version = "2023-01-21"; src = fetchFromGitHub { @@ -15371,7 +15371,7 @@ final: prev: meta.homepage = "https://github.com/monkoose/vim9-stargate/"; }; - vim_current_word = buildVimPluginFrom2Nix { + vim_current_word = buildVimPlugin { pname = "vim_current_word"; version = "2023-05-23"; src = fetchFromGitHub { @@ -15383,7 +15383,7 @@ final: prev: meta.homepage = "https://github.com/dominikduda/vim_current_word/"; }; - vimacs = buildVimPluginFrom2Nix { + vimacs = buildVimPlugin { pname = "vimacs"; version = "2016-03-24"; src = fetchFromGitHub { @@ -15395,7 +15395,7 @@ final: prev: meta.homepage = "https://github.com/andrep/vimacs/"; }; - vimade = buildVimPluginFrom2Nix { + vimade = buildVimPlugin { pname = "vimade"; version = "2022-01-31"; src = fetchFromGitHub { @@ -15407,7 +15407,7 @@ final: prev: meta.homepage = "https://github.com/TaDaa/vimade/"; }; - vimagit = buildVimPluginFrom2Nix { + vimagit = buildVimPlugin { pname = "vimagit"; version = "2022-07-03"; src = fetchFromGitHub { @@ -15419,7 +15419,7 @@ final: prev: meta.homepage = "https://github.com/jreybert/vimagit/"; }; - vimelette = buildVimPluginFrom2Nix { + vimelette = buildVimPlugin { pname = "vimelette"; version = "2019-05-02"; src = fetchFromGitHub { @@ -15431,7 +15431,7 @@ final: prev: meta.homepage = "https://github.com/gotcha/vimelette/"; }; - vimfiler-vim = buildVimPluginFrom2Nix { + vimfiler-vim = buildVimPlugin { pname = "vimfiler.vim"; version = "2023-05-18"; src = fetchFromGitHub { @@ -15443,7 +15443,7 @@ final: prev: meta.homepage = "https://github.com/Shougo/vimfiler.vim/"; }; - vimoutliner = buildVimPluginFrom2Nix { + vimoutliner = buildVimPlugin { pname = "vimoutliner"; version = "2023-08-29"; src = fetchFromGitHub { @@ -15455,7 +15455,7 @@ final: prev: meta.homepage = "https://github.com/vimoutliner/vimoutliner/"; }; - vimpreviewpandoc = buildVimPluginFrom2Nix { + vimpreviewpandoc = buildVimPlugin { pname = "vimpreviewpandoc"; version = "2023-08-14"; src = fetchFromGitHub { @@ -15467,7 +15467,7 @@ final: prev: meta.homepage = "https://github.com/tex/vimpreviewpandoc/"; }; - vimproc-vim = buildVimPluginFrom2Nix { + vimproc-vim = buildVimPlugin { pname = "vimproc.vim"; version = "2023-01-05"; src = fetchFromGitHub { @@ -15479,7 +15479,7 @@ final: prev: meta.homepage = "https://github.com/Shougo/vimproc.vim/"; }; - vimsence = buildVimPluginFrom2Nix { + vimsence = buildVimPlugin { pname = "vimsence"; version = "2021-05-01"; src = fetchFromGitHub { @@ -15491,7 +15491,7 @@ final: prev: meta.homepage = "https://github.com/vimsence/vimsence/"; }; - vimshell-vim = buildVimPluginFrom2Nix { + vimshell-vim = buildVimPlugin { pname = "vimshell.vim"; version = "2019-07-16"; src = fetchFromGitHub { @@ -15503,7 +15503,7 @@ final: prev: meta.homepage = "https://github.com/Shougo/vimshell.vim/"; }; - vimspector = buildVimPluginFrom2Nix { + vimspector = buildVimPlugin { pname = "vimspector"; version = "2023-09-10"; src = fetchFromGitHub { @@ -15516,7 +15516,7 @@ final: prev: meta.homepage = "https://github.com/puremourning/vimspector/"; }; - vimtex = buildVimPluginFrom2Nix { + vimtex = buildVimPlugin { pname = "vimtex"; version = "2023-09-11"; src = fetchFromGitHub { @@ -15528,7 +15528,7 @@ final: prev: meta.homepage = "https://github.com/lervag/vimtex/"; }; - vimux = buildVimPluginFrom2Nix { + vimux = buildVimPlugin { pname = "vimux"; version = "2022-09-26"; src = fetchFromGitHub { @@ -15540,7 +15540,7 @@ final: prev: meta.homepage = "https://github.com/preservim/vimux/"; }; - vimwiki = buildVimPluginFrom2Nix { + vimwiki = buildVimPlugin { pname = "vimwiki"; version = "2023-07-31"; src = fetchFromGitHub { @@ -15552,7 +15552,7 @@ final: prev: meta.homepage = "https://github.com/vimwiki/vimwiki/"; }; - virtual-types-nvim = buildVimPluginFrom2Nix { + virtual-types-nvim = buildVimPlugin { pname = "virtual-types.nvim"; version = "2023-04-07"; src = fetchFromGitHub { @@ -15564,7 +15564,7 @@ final: prev: meta.homepage = "https://github.com/jubnzv/virtual-types.nvim/"; }; - vis = buildVimPluginFrom2Nix { + vis = buildVimPlugin { pname = "vis"; version = "2013-04-26"; src = fetchFromGitHub { @@ -15576,7 +15576,7 @@ final: prev: meta.homepage = "https://github.com/vim-scripts/vis/"; }; - vissort-vim = buildVimPluginFrom2Nix { + vissort-vim = buildVimPlugin { pname = "vissort.vim"; version = "2014-01-31"; src = fetchFromGitHub { @@ -15588,7 +15588,7 @@ final: prev: meta.homepage = "https://github.com/navicore/vissort.vim/"; }; - vista-vim = buildVimPluginFrom2Nix { + vista-vim = buildVimPlugin { pname = "vista.vim"; version = "2023-09-14"; src = fetchFromGitHub { @@ -15600,7 +15600,7 @@ final: prev: meta.homepage = "https://github.com/liuchengxu/vista.vim/"; }; - wal-vim = buildVimPluginFrom2Nix { + wal-vim = buildVimPlugin { pname = "wal.vim"; version = "2020-11-08"; src = fetchFromGitHub { @@ -15612,7 +15612,7 @@ final: prev: meta.homepage = "https://github.com/dylanaraps/wal.vim/"; }; - webapi-vim = buildVimPluginFrom2Nix { + webapi-vim = buildVimPlugin { pname = "webapi-vim"; version = "2022-11-23"; src = fetchFromGitHub { @@ -15624,7 +15624,7 @@ final: prev: meta.homepage = "https://github.com/mattn/webapi-vim/"; }; - wgsl-vim = buildVimPluginFrom2Nix { + wgsl-vim = buildVimPlugin { pname = "wgsl.vim"; version = "2023-04-29"; src = fetchFromGitHub { @@ -15636,7 +15636,7 @@ final: prev: meta.homepage = "https://github.com/DingDean/wgsl.vim/"; }; - which-key-nvim = buildVimPluginFrom2Nix { + which-key-nvim = buildVimPlugin { pname = "which-key.nvim"; version = "2023-07-28"; src = fetchFromGitHub { @@ -15648,7 +15648,7 @@ final: prev: meta.homepage = "https://github.com/folke/which-key.nvim/"; }; - whitespace-nvim = buildVimPluginFrom2Nix { + whitespace-nvim = buildVimPlugin { pname = "whitespace.nvim"; version = "2023-04-18"; src = fetchFromGitHub { @@ -15660,7 +15660,7 @@ final: prev: meta.homepage = "https://github.com/johnfrankmorgan/whitespace.nvim/"; }; - wiki-ft-vim = buildVimPluginFrom2Nix { + wiki-ft-vim = buildVimPlugin { pname = "wiki-ft.vim"; version = "2023-05-14"; src = fetchFromGitHub { @@ -15672,7 +15672,7 @@ final: prev: meta.homepage = "https://github.com/lervag/wiki-ft.vim/"; }; - wiki-vim = buildVimPluginFrom2Nix { + wiki-vim = buildVimPlugin { pname = "wiki.vim"; version = "2023-09-04"; src = fetchFromGitHub { @@ -15684,7 +15684,7 @@ final: prev: meta.homepage = "https://github.com/lervag/wiki.vim/"; }; - wilder-nvim = buildVimPluginFrom2Nix { + wilder-nvim = buildVimPlugin { pname = "wilder.nvim"; version = "2022-08-13"; src = fetchFromGitHub { @@ -15696,7 +15696,7 @@ final: prev: meta.homepage = "https://github.com/gelguy/wilder.nvim/"; }; - wildfire-vim = buildVimPluginFrom2Nix { + wildfire-vim = buildVimPlugin { pname = "wildfire.vim"; version = "2023-07-22"; src = fetchFromGitHub { @@ -15708,7 +15708,7 @@ final: prev: meta.homepage = "https://github.com/gcmt/wildfire.vim/"; }; - winbar-nvim = buildVimPluginFrom2Nix { + winbar-nvim = buildVimPlugin { pname = "winbar.nvim"; version = "2022-07-18"; src = fetchFromGitHub { @@ -15720,7 +15720,7 @@ final: prev: meta.homepage = "https://github.com/fgheng/winbar.nvim/"; }; - windows-nvim = buildVimPluginFrom2Nix { + windows-nvim = buildVimPlugin { pname = "windows.nvim"; version = "2023-01-16"; src = fetchFromGitHub { @@ -15732,7 +15732,7 @@ final: prev: meta.homepage = "https://github.com/anuvyklack/windows.nvim/"; }; - winshift-nvim = buildVimPluginFrom2Nix { + winshift-nvim = buildVimPlugin { pname = "winshift.nvim"; version = "2022-09-06"; src = fetchFromGitHub { @@ -15744,7 +15744,7 @@ final: prev: meta.homepage = "https://github.com/sindrets/winshift.nvim/"; }; - wmgraphviz-vim = buildVimPluginFrom2Nix { + wmgraphviz-vim = buildVimPlugin { pname = "wmgraphviz.vim"; version = "2018-04-26"; src = fetchFromGitHub { @@ -15756,7 +15756,7 @@ final: prev: meta.homepage = "https://github.com/wannesm/wmgraphviz.vim/"; }; - wombat256-vim = buildVimPluginFrom2Nix { + wombat256-vim = buildVimPlugin { pname = "wombat256.vim"; version = "2010-10-18"; src = fetchFromGitHub { @@ -15768,7 +15768,7 @@ final: prev: meta.homepage = "https://github.com/vim-scripts/wombat256.vim/"; }; - workflowish = buildVimPluginFrom2Nix { + workflowish = buildVimPlugin { pname = "workflowish"; version = "2015-12-03"; src = fetchFromGitHub { @@ -15780,7 +15780,7 @@ final: prev: meta.homepage = "https://github.com/lukaszkorecki/workflowish/"; }; - wrapping-nvim = buildVimPluginFrom2Nix { + wrapping-nvim = buildVimPlugin { pname = "wrapping.nvim"; version = "2023-08-08"; src = fetchFromGitHub { @@ -15792,7 +15792,7 @@ final: prev: meta.homepage = "https://github.com/andrewferrier/wrapping.nvim/"; }; - wstrip-vim = buildVimPluginFrom2Nix { + wstrip-vim = buildVimPlugin { pname = "wstrip.vim"; version = "2021-03-14"; src = fetchFromGitHub { @@ -15804,7 +15804,7 @@ final: prev: meta.homepage = "https://github.com/tweekmonster/wstrip.vim/"; }; - xptemplate = buildVimPluginFrom2Nix { + xptemplate = buildVimPlugin { pname = "xptemplate"; version = "2022-09-08"; src = fetchFromGitHub { @@ -15816,7 +15816,7 @@ final: prev: meta.homepage = "https://github.com/drmingdrmer/xptemplate/"; }; - xterm-color-table-vim = buildVimPluginFrom2Nix { + xterm-color-table-vim = buildVimPlugin { pname = "xterm-color-table.vim"; version = "2022-11-21"; src = fetchFromGitHub { @@ -15828,7 +15828,7 @@ final: prev: meta.homepage = "https://github.com/guns/xterm-color-table.vim/"; }; - yats-vim = buildVimPluginFrom2Nix { + yats-vim = buildVimPlugin { pname = "yats.vim"; version = "2023-08-24"; src = fetchFromGitHub { @@ -15841,7 +15841,7 @@ final: prev: meta.homepage = "https://github.com/HerringtonDarkholme/yats.vim/"; }; - yescapsquit-vim = buildVimPluginFrom2Nix { + yescapsquit-vim = buildVimPlugin { pname = "yescapsquit.vim"; version = "2022-08-31"; src = fetchFromGitHub { @@ -15853,7 +15853,7 @@ final: prev: meta.homepage = "https://github.com/lucasew/yescapsquit.vim/"; }; - yuck-vim = buildVimPluginFrom2Nix { + yuck-vim = buildVimPlugin { pname = "yuck.vim"; version = "2022-10-29"; src = fetchFromGitHub { @@ -15865,7 +15865,7 @@ final: prev: meta.homepage = "https://github.com/elkowar/yuck.vim/"; }; - zeavim-vim = buildVimPluginFrom2Nix { + zeavim-vim = buildVimPlugin { pname = "zeavim.vim"; version = "2019-06-07"; src = fetchFromGitHub { @@ -15877,7 +15877,7 @@ final: prev: meta.homepage = "https://github.com/KabbAmine/zeavim.vim/"; }; - zen-mode-nvim = buildVimPluginFrom2Nix { + zen-mode-nvim = buildVimPlugin { pname = "zen-mode.nvim"; version = "2023-05-22"; src = fetchFromGitHub { @@ -15889,7 +15889,7 @@ final: prev: meta.homepage = "https://github.com/folke/zen-mode.nvim/"; }; - zenbones-nvim = buildVimPluginFrom2Nix { + zenbones-nvim = buildVimPlugin { pname = "zenbones.nvim"; version = "2023-08-30"; src = fetchFromGitHub { @@ -15901,7 +15901,7 @@ final: prev: meta.homepage = "https://github.com/mcchrish/zenbones.nvim/"; }; - zenburn = buildVimPluginFrom2Nix { + zenburn = buildVimPlugin { pname = "zenburn"; version = "2022-08-13"; src = fetchFromGitHub { @@ -15913,7 +15913,7 @@ final: prev: meta.homepage = "https://github.com/jnurmine/zenburn/"; }; - zephyr-nvim = buildVimPluginFrom2Nix { + zephyr-nvim = buildVimPlugin { pname = "zephyr-nvim"; version = "2022-12-31"; src = fetchFromGitHub { @@ -15925,7 +15925,7 @@ final: prev: meta.homepage = "https://github.com/nvimdev/zephyr-nvim/"; }; - zig-vim = buildVimPluginFrom2Nix { + zig-vim = buildVimPlugin { pname = "zig.vim"; version = "2023-07-22"; src = fetchFromGitHub { @@ -15937,7 +15937,7 @@ final: prev: meta.homepage = "https://github.com/ziglang/zig.vim/"; }; - zk-nvim = buildVimPluginFrom2Nix { + zk-nvim = buildVimPlugin { pname = "zk-nvim"; version = "2023-07-09"; src = fetchFromGitHub { @@ -15949,7 +15949,7 @@ final: prev: meta.homepage = "https://github.com/mickael-menu/zk-nvim/"; }; - zoomwintab-vim = buildVimPluginFrom2Nix { + zoomwintab-vim = buildVimPlugin { pname = "zoomwintab.vim"; version = "2021-10-10"; src = fetchFromGitHub { @@ -15961,7 +15961,7 @@ final: prev: meta.homepage = "https://github.com/troydm/zoomwintab.vim/"; }; - zoxide-vim = buildVimPluginFrom2Nix { + zoxide-vim = buildVimPlugin { pname = "zoxide.vim"; version = "2023-05-21"; src = fetchFromGitHub { @@ -15973,7 +15973,7 @@ final: prev: meta.homepage = "https://github.com/nanotee/zoxide.vim/"; }; - catppuccin-nvim = buildVimPluginFrom2Nix { + catppuccin-nvim = buildVimPlugin { pname = "catppuccin-nvim"; version = "2023-09-11"; src = fetchFromGitHub { @@ -15985,7 +15985,7 @@ final: prev: meta.homepage = "https://github.com/catppuccin/nvim/"; }; - catppuccin-vim = buildVimPluginFrom2Nix { + catppuccin-vim = buildVimPlugin { pname = "catppuccin-vim"; version = "2023-09-12"; src = fetchFromGitHub { @@ -15997,7 +15997,7 @@ final: prev: meta.homepage = "https://github.com/catppuccin/vim/"; }; - dracula-vim = buildVimPluginFrom2Nix { + dracula-vim = buildVimPlugin { pname = "dracula-vim"; version = "2023-08-30"; src = fetchFromGitHub { @@ -16009,7 +16009,7 @@ final: prev: meta.homepage = "https://github.com/dracula/vim/"; }; - embark-vim = buildVimPluginFrom2Nix { + embark-vim = buildVimPlugin { pname = "embark-vim"; version = "2023-04-21"; src = fetchFromGitHub { @@ -16021,7 +16021,7 @@ final: prev: meta.homepage = "https://github.com/embark-theme/vim/"; }; - gruvbox-community = buildVimPluginFrom2Nix { + gruvbox-community = buildVimPlugin { pname = "gruvbox-community"; version = "2023-09-12"; src = fetchFromGitHub { @@ -16033,7 +16033,7 @@ final: prev: meta.homepage = "https://github.com/gruvbox-community/gruvbox/"; }; - mattn-calendar-vim = buildVimPluginFrom2Nix { + mattn-calendar-vim = buildVimPlugin { pname = "mattn-calendar-vim"; version = "2022-02-10"; src = fetchFromGitHub { @@ -16045,7 +16045,7 @@ final: prev: meta.homepage = "https://github.com/mattn/calendar-vim/"; }; - nightfly = buildVimPluginFrom2Nix { + nightfly = buildVimPlugin { pname = "nightfly"; version = "2023-09-01"; src = fetchFromGitHub { @@ -16057,7 +16057,7 @@ final: prev: meta.homepage = "https://github.com/bluz71/vim-nightfly-colors/"; }; - nord-vim = buildVimPluginFrom2Nix { + nord-vim = buildVimPlugin { pname = "nord-vim"; version = "2023-05-03"; src = fetchFromGitHub { @@ -16069,7 +16069,7 @@ final: prev: meta.homepage = "https://github.com/nordtheme/vim/"; }; - nvchad-ui = buildVimPluginFrom2Nix { + nvchad-ui = buildVimPlugin { pname = "nvchad-ui"; version = "2023-09-13"; src = fetchFromGitHub { @@ -16081,7 +16081,7 @@ final: prev: meta.homepage = "https://github.com/nvchad/ui/"; }; - pure-lua = buildVimPluginFrom2Nix { + pure-lua = buildVimPlugin { pname = "pure-lua"; version = "2021-05-16"; src = fetchFromGitHub { @@ -16093,7 +16093,7 @@ final: prev: meta.homepage = "https://github.com/shaunsingh/moonlight.nvim/"; }; - restore-view-vim = buildVimPluginFrom2Nix { + restore-view-vim = buildVimPlugin { pname = "restore-view-vim"; version = "2014-11-21"; src = fetchFromGitHub { @@ -16105,7 +16105,7 @@ final: prev: meta.homepage = "https://github.com/vim-scripts/restore_view.vim/"; }; - rose-pine = buildVimPluginFrom2Nix { + rose-pine = buildVimPlugin { pname = "rose-pine"; version = "2023-07-28"; src = fetchFromGitHub { @@ -16117,7 +16117,7 @@ final: prev: meta.homepage = "https://github.com/rose-pine/neovim/"; }; - samodostal-image-nvim = buildVimPluginFrom2Nix { + samodostal-image-nvim = buildVimPlugin { pname = "samodostal-image-nvim"; version = "2023-06-08"; src = fetchFromGitHub { @@ -16129,7 +16129,7 @@ final: prev: meta.homepage = "https://github.com/samodostal/image.nvim/"; }; - tinykeymap = buildVimPluginFrom2Nix { + tinykeymap = buildVimPlugin { pname = "tinykeymap"; version = "2019-03-15"; src = fetchFromGitHub { @@ -16141,7 +16141,7 @@ final: prev: meta.homepage = "https://github.com/tomtom/tinykeymap_vim/"; }; - vim-advanced-sorters = buildVimPluginFrom2Nix { + vim-advanced-sorters = buildVimPlugin { pname = "vim-advanced-sorters"; version = "2021-11-21"; src = fetchFromGitHub { @@ -16153,7 +16153,7 @@ final: prev: meta.homepage = "https://github.com/inkarkat/vim-AdvancedSorters/"; }; - vim-docbk-snippets = buildVimPluginFrom2Nix { + vim-docbk-snippets = buildVimPlugin { pname = "vim-docbk-snippets"; version = "2023-06-05"; src = fetchFromGitHub { diff --git a/pkgs/applications/editors/vim/plugins/get-plugins.nix b/pkgs/applications/editors/vim/plugins/get-plugins.nix index f81b9fc3464..06ed71f3792 100644 --- a/pkgs/applications/editors/vim/plugins/get-plugins.nix +++ b/pkgs/applications/editors/vim/plugins/get-plugins.nix @@ -1,10 +1,10 @@ with import {}; let - inherit (vimUtils.override {inherit vim;}) buildVimPluginFrom2Nix; + inherit (vimUtils.override {inherit vim;}) buildVimPlugin; inherit (neovimUtils) buildNeovimPlugin; generated = callPackage { - inherit buildNeovimPlugin buildVimPluginFrom2Nix; + inherit buildNeovimPlugin buildVimPlugin; } {} {}; hasChecksum = value: lib.isAttrs value && lib.hasAttrByPath ["src" "outputHash"] value; diff --git a/pkgs/applications/editors/vim/plugins/overrides.nix b/pkgs/applications/editors/vim/plugins/overrides.nix index 299270a118f..939c27c391b 100644 --- a/pkgs/applications/editors/vim/plugins/overrides.nix +++ b/pkgs/applications/editors/vim/plugins/overrides.nix @@ -3,7 +3,7 @@ # nixpkgs functions , buildGoModule -, buildVimPluginFrom2Nix +, buildVimPlugin , fetchFromGitHub , fetchFromSourcehut , fetchpatch @@ -153,7 +153,7 @@ self: super: { }; # The GitHub repository returns 404, which breaks the update script - bitbake-vim = buildVimPluginFrom2Nix { + bitbake-vim = buildVimPlugin { pname = "bitbake.vim"; version = "2021-02-06"; src = fetchFromGitHub { @@ -305,7 +305,7 @@ self: super: { dependencies = with self; [ nvim-cmp zsh ]; }; - coc-nginx = buildVimPluginFrom2Nix { + coc-nginx = buildVimPlugin { pname = "coc-nginx"; inherit (nodePackages."@yaegassy/coc-nginx") version meta; src = "${nodePackages."@yaegassy/coc-nginx"}/lib/node_modules/@yaegassy/coc-nginx"; @@ -553,7 +553,7 @@ self: super: { # Mainly used as a dependency for fzf-vim. Wraps the fzf program as a vim # plugin, since part of the fzf vim plugin is included in the main fzf # program. - fzfWrapper = buildVimPluginFrom2Nix { + fzfWrapper = buildVimPlugin { inherit (fzf) src version; pname = "fzf"; postInstall = '' @@ -594,7 +594,7 @@ self: super: { }; # https://hurl.dev/ - hurl = buildVimPluginFrom2Nix { + hurl = buildVimPlugin { pname = "hurl"; version = hurl.version; # dontUnpack = true; @@ -658,7 +658,7 @@ self: super: { ''; }; in - buildVimPluginFrom2Nix { + buildVimPlugin { pname = "LanguageClient-neovim"; inherit version; src = LanguageClient-neovim-src; @@ -707,7 +707,7 @@ self: super: { dependencies = with self; [ plenary-nvim ]; }; - magma-nvim-goose = buildVimPluginFrom2Nix { + magma-nvim-goose = buildVimPlugin { pname = "magma-nvim-goose"; version = "2023-03-13"; src = fetchFromGitHub { @@ -767,7 +767,7 @@ self: super: { dependencies = with self; [ mason-nvim ]; }; - meson = buildVimPluginFrom2Nix { + meson = buildVimPlugin { inherit (meson) pname version src; preInstall = "cd data/syntax-highlighting/vim"; meta.maintainers = with lib.maintainers; [ vcunat ]; @@ -785,7 +785,7 @@ self: super: { vimCommandCheck = "MinimapToggle"; }; - minsnip-nvim = buildVimPluginFrom2Nix { + minsnip-nvim = buildVimPlugin { pname = "minsnip.nvim"; version = "2022-01-04"; src = fetchFromGitHub { @@ -939,7 +939,7 @@ self: super: { inherit parinfer-rust; - phpactor = buildVimPluginFrom2Nix { + phpactor = buildVimPlugin { inherit (phpactor) pname src meta version; postPatch = '' substituteInPlace plugin/phpactor.vim \ @@ -1008,7 +1008,7 @@ self: super: { ''; }); - skim = buildVimPluginFrom2Nix { + skim = buildVimPlugin { pname = "skim"; inherit (skim) version; src = skim.vim; @@ -1048,7 +1048,7 @@ self: super: { doCheck = false; }; in - buildVimPluginFrom2Nix { + buildVimPlugin { pname = "sniprun"; inherit version src; @@ -1061,7 +1061,7 @@ self: super: { }; # The GitHub repository returns 404, which breaks the update script - Spacegray-vim = buildVimPluginFrom2Nix { + Spacegray-vim = buildVimPlugin { pname = "Spacegray.vim"; version = "2021-07-06"; src = fetchFromGitHub { @@ -1086,7 +1086,7 @@ self: super: { dependencies = with self; [ nvim-treesitter ]; }; - statix = buildVimPluginFrom2Nix rec { + statix = buildVimPlugin rec { inherit (statix) pname src meta; version = "0.1.0"; postPatch = '' @@ -1136,7 +1136,7 @@ self: super: { }; }; - taskwarrior = buildVimPluginFrom2Nix { + taskwarrior = buildVimPlugin { inherit (taskwarrior) version pname; src = "${taskwarrior.src}/scripts/vim"; }; @@ -1222,7 +1222,7 @@ self: super: { au BufNewFile,BufRead Tupfile,*.tup setf tup ''; in - buildVimPluginFrom2Nix { + buildVimPlugin { inherit (tup) pname version src; preInstall = '' mkdir -p vim-plugin/syntax vim-plugin/ftdetect @@ -1546,7 +1546,7 @@ self: super: { ''; }; - vim2nix = buildVimPluginFrom2Nix { + vim2nix = buildVimPlugin { pname = "vim2nix"; version = "1.0"; src = ./vim2nix; @@ -1570,7 +1570,7 @@ self: super: { }; # The GitHub repository returns 404, which breaks the update script - VimCompletesMe = buildVimPluginFrom2Nix { + VimCompletesMe = buildVimPlugin { pname = "VimCompletesMe"; version = "2022-02-18"; src = fetchFromGitHub { @@ -1706,7 +1706,7 @@ self: super: { "coc-yaml" "coc-yank" ]; - nodePackage2VimPackage = name: buildVimPluginFrom2Nix { + nodePackage2VimPackage = name: buildVimPlugin { pname = name; inherit (nodePackages.${name}) version meta; src = "${nodePackages.${name}}/lib/node_modules/${name}"; diff --git a/pkgs/applications/editors/vim/plugins/update.py b/pkgs/applications/editors/vim/plugins/update.py index b77032849b3..7af126f3650 100755 --- a/pkgs/applications/editors/vim/plugins/update.py +++ b/pkgs/applications/editors/vim/plugins/update.py @@ -74,7 +74,7 @@ class VimEditor(pluginupdate.Editor): with open(outfile, "w+") as f: f.write(HEADER) f.write(textwrap.dedent(""" - { lib, buildVimPluginFrom2Nix, buildNeovimPlugin, fetchFromGitHub, fetchgit }: + { lib, buildVimPlugin, buildNeovimPlugin, fetchFromGitHub, fetchgit }: final: prev: { @@ -103,7 +103,7 @@ class VimEditor(pluginupdate.Editor): }}; """.format( - buildFn="buildNeovimPlugin" if isNeovim else "buildVimPluginFrom2Nix", plugin=plugin, src_nix=src_nix, repo=repo) + buildFn="buildNeovimPlugin" if isNeovim else "buildVimPlugin", plugin=plugin, src_nix=src_nix, repo=repo) log.debug(content) return content diff --git a/pkgs/applications/editors/vim/plugins/vim-clap/default.nix b/pkgs/applications/editors/vim/plugins/vim-clap/default.nix index 4236cf79e13..271f50919fc 100644 --- a/pkgs/applications/editors/vim/plugins/vim-clap/default.nix +++ b/pkgs/applications/editors/vim/plugins/vim-clap/default.nix @@ -53,7 +53,7 @@ let }; in -vimUtils.buildVimPluginFrom2Nix { +vimUtils.buildVimPlugin { pname = "vim-clap"; inherit version src meta; diff --git a/pkgs/applications/editors/vim/plugins/vim-utils.nix b/pkgs/applications/editors/vim/plugins/vim-utils.nix index 16317a5d0c6..7b023118f05 100644 --- a/pkgs/applications/editors/vim/plugins/vim-utils.nix +++ b/pkgs/applications/editors/vim/plugins/vim-utils.nix @@ -392,8 +392,9 @@ rec { inherit (import ./build-vim-plugin.nix { inherit lib stdenv rtpPath toVimPlugin; - }) buildVimPlugin buildVimPluginFrom2Nix; + }) buildVimPlugin; + buildVimPluginFrom2Nix = lib.warn "buildVimPluginFrom2Nix is deprecated: use buildVimPlugin instead" buildVimPlugin; # used to figure out which python dependencies etc. neovim needs requiredPlugins = { diff --git a/pkgs/applications/editors/vim/plugins/vim2nix/autoload/nix.vim b/pkgs/applications/editors/vim/plugins/vim2nix/autoload/nix.vim index 0ddbeaae6be..f6160795c5c 100644 --- a/pkgs/applications/editors/vim/plugins/vim2nix/autoload/nix.vim +++ b/pkgs/applications/editors/vim/plugins/vim2nix/autoload/nix.vim @@ -50,7 +50,7 @@ fun! nix#NixDerivation(opts, name, repository) abort let dependencies = nix#DependenciesFromCheckout(a:opts, a:name, a:repository, dir) return {'n_a_name': n_a_name, 'n_n_name': n_n_name, 'dependencies': dependencies, 'derivation': join([ - \ ' '.n_a_name.' = buildVimPluginFrom2Nix {'.created_notice, + \ ' '.n_a_name.' = buildVimPlugin {'.created_notice, \ ' name = "'.n_n_name.'-'.date.'";', \ ' src = fetchgit {', \ ' url = "'. a:repository.url .'";', @@ -74,7 +74,7 @@ fun! nix#NixDerivation(opts, name, repository) abort let dependencies = nix#DependenciesFromCheckout(a:opts, a:name, a:repository, dir) return {'n_a_name': n_a_name, 'n_n_name': n_n_name, 'dependencies': dependencies, 'derivation': join([ - \ ' '.n_a_name.' = buildVimPluginFrom2Nix {'.created_notice, + \ ' '.n_a_name.' = buildVimPlugin {'.created_notice, \ ' name = "'.n_n_name.'";', \ ' src = fetchhg {', \ ' url = "'. a:repository.url .'";', @@ -99,7 +99,7 @@ fun! nix#NixDerivation(opts, name, repository) abort let dependencies = keys(get(addon_info, 'dependencies', {})) return {'n_a_name': n_a_name, 'n_n_name': n_n_name, 'dependencies': dependencies, 'derivation': join([ - \ ' '.n_a_name.' = buildVimPluginFrom2Nix {'.created_notice, + \ ' '.n_a_name.' = buildVimPlugin {'.created_notice, \ ' name = "'.n_n_name.'";', \ ' src = fetchurl {', \ ' url = "'. a:repository.url .'";', diff --git a/pkgs/test/vim/default.nix b/pkgs/test/vim/default.nix index 4d8e59a306a..33e1e551d4f 100644 --- a/pkgs/test/vim/default.nix +++ b/pkgs/test/vim/default.nix @@ -3,7 +3,7 @@ , pkgs }: let - inherit (vimUtils) buildVimPluginFrom2Nix; + inherit (vimUtils) buildVimPlugin; packages.myVimPackage.start = with vimPlugins; [ vim-nix ]; -- cgit 1.4.1 From 470614b671f4a55fe0a509f4208dba2bb40c5a17 Mon Sep 17 00:00:00 2001 From: Peder Bergebakken Sundt Date: Thu, 28 Sep 2023 18:53:53 +0200 Subject: treewide: Fix typos --- doc/hooks/mpi-check-hook.section.md | 2 +- doc/languages-frameworks/dotnet.section.md | 2 +- doc/languages-frameworks/haskell.section.md | 4 ++-- doc/languages-frameworks/php.section.md | 2 +- nixos/doc/manual/release-notes/rl-2105.section.md | 2 +- nixos/doc/manual/release-notes/rl-2305.section.md | 6 +++--- nixos/doc/manual/release-notes/rl-2311.section.md | 6 +++--- pkgs/README.md | 2 +- pkgs/applications/networking/cluster/k3s/README.md | 2 +- pkgs/applications/science/math/sage/README.md | 2 +- pkgs/development/haskell-modules/HACKING.md | 2 +- pkgs/development/lisp-modules-new-obsolete/doc/api.md | 2 +- pkgs/development/lisp-modules-new-obsolete/doc/nix-cl.md | 2 +- pkgs/development/misc/resholve/README.md | 2 +- 14 files changed, 19 insertions(+), 19 deletions(-) (limited to 'doc') diff --git a/doc/hooks/mpi-check-hook.section.md b/doc/hooks/mpi-check-hook.section.md index e3fb5c40dad..586ee2cc7c2 100644 --- a/doc/hooks/mpi-check-hook.section.md +++ b/doc/hooks/mpi-check-hook.section.md @@ -3,7 +3,7 @@ This hook can be used to setup a check phase that requires running a MPI application. It detects the -used present MPI implementaion type and exports +used present MPI implementation type and exports the neceesary environment variables to use `mpirun` and `mpiexec` in a Nix sandbox. diff --git a/doc/languages-frameworks/dotnet.section.md b/doc/languages-frameworks/dotnet.section.md index 39e74161826..9ba0fef2a27 100644 --- a/doc/languages-frameworks/dotnet.section.md +++ b/doc/languages-frameworks/dotnet.section.md @@ -161,7 +161,7 @@ in buildDotnetModule rec { They can be installed either as a global tool for the entire system, or as a local tool specific to project. The local installation is the easiest and works on NixOS in the same way as on other Linux distributions. -[See dotnet documention](https://learn.microsoft.com/en-us/dotnet/core/tools/global-tools#install-a-local-tool) to learn more. +[See dotnet documentation](https://learn.microsoft.com/en-us/dotnet/core/tools/global-tools#install-a-local-tool) to learn more. [The global installation method](https://learn.microsoft.com/en-us/dotnet/core/tools/global-tools#install-a-global-tool) should also work most of the time. You have to remember to update the `PATH` diff --git a/doc/languages-frameworks/haskell.section.md b/doc/languages-frameworks/haskell.section.md index 60972331840..c97c8a204b4 100644 --- a/doc/languages-frameworks/haskell.section.md +++ b/doc/languages-frameworks/haskell.section.md @@ -221,7 +221,7 @@ Sadly we currently don’t have tooling for this. For this you might be interested in the alternative [haskell.nix] framework, which, be warned, is completely incompatible with packages from `haskellPackages`. - + ## `haskellPackages.mkDerivation` {#haskell-mkderivation} @@ -1192,7 +1192,7 @@ with GHC), it is recommended to use overlays for Nixpkgs to change them. Since the interrelated parts, i.e. the package set and GHC, are connected via the Nixpkgs fixpoint, we need to modify them both in a way that preserves their connection (or else we'd have to wire it up again manually). This is -achieved by changing GHC and the package set in seperate overlays to prevent +achieved by changing GHC and the package set in separate overlays to prevent the package set from pulling in GHC from `prev`. The result is two overlays like the ones shown below. Adjustable parts are diff --git a/doc/languages-frameworks/php.section.md b/doc/languages-frameworks/php.section.md index 2ca55aef1ef..377e3947b2a 100644 --- a/doc/languages-frameworks/php.section.md +++ b/doc/languages-frameworks/php.section.md @@ -200,7 +200,7 @@ Internally, the helper operates in three stages: composer repository on the filesystem containing dependencies specified in `composer.json`. This process uses the function `php.mkComposerRepository` which in turn uses the - `php.composerHooks.composerRepositoryHook` hook. Internaly this function uses + `php.composerHooks.composerRepositoryHook` hook. Internally this function uses a custom [Composer plugin](https://github.com/nix-community/composer-local-repo-plugin) to generate the repository. diff --git a/nixos/doc/manual/release-notes/rl-2105.section.md b/nixos/doc/manual/release-notes/rl-2105.section.md index 080ca68d925..cae3f8a8501 100644 --- a/nixos/doc/manual/release-notes/rl-2105.section.md +++ b/nixos/doc/manual/release-notes/rl-2105.section.md @@ -353,7 +353,7 @@ When upgrading from a previous release, please be aware of the following incompa Another benefit of the refactoring is that we can now issue reloads via either `pkill -HUP unbound` and `systemctl reload unbound` to reload the running configuration without taking the daemon offline. A prerequisite of this was that unbound configuration is available on a well known path on the file system. We are using the path `/etc/unbound/unbound.conf` as that is the default in the CLI tooling which in turn enables us to use `unbound-control` without passing a custom configuration location. - The module has also been reworked to be [RFC 0042](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md) compliant. As such, `sevices.unbound.extraConfig` has been removed and replaced by [services.unbound.settings](options.html#opt-services.unbound.settings). `services.unbound.interfaces` has been renamed to `services.unbound.settings.server.interface`. + The module has also been reworked to be [RFC 0042](https://github.com/NixOS/rfcs/blob/master/rfcs/0042-config-option.md) compliant. As such, `services.unbound.extraConfig` has been removed and replaced by [services.unbound.settings](options.html#opt-services.unbound.settings). `services.unbound.interfaces` has been renamed to `services.unbound.settings.server.interface`. `services.unbound.forwardAddresses` and `services.unbound.allowedAccess` have also been changed to use the new settings interface. You can follow the instructions when executing `nixos-rebuild` to upgrade your configuration to use the new interface. diff --git a/nixos/doc/manual/release-notes/rl-2305.section.md b/nixos/doc/manual/release-notes/rl-2305.section.md index c9da29063e1..3d27d3fef8f 100644 --- a/nixos/doc/manual/release-notes/rl-2305.section.md +++ b/nixos/doc/manual/release-notes/rl-2305.section.md @@ -87,7 +87,7 @@ In addition to numerous new and updated packages, this release has the following - [gmediarender](https://github.com/hzeller/gmrender-resurrect), a simple, headless UPnP/DLNA renderer. Available as [services.gmediarender](options.html#opt-services.gmediarender.enable). -- [go2rtc](https://github.com/AlexxIT/go2rtc), a camera streaming appliation with support for RTSP, WebRTC, HomeKit, FFMPEG, RTMP and other protocols. Available as [services.go2rtc](options.html#opt-services.go2rtc.enable). +- [go2rtc](https://github.com/AlexxIT/go2rtc), a camera streaming application with support for RTSP, WebRTC, HomeKit, FFMPEG, RTMP and other protocols. Available as [services.go2rtc](options.html#opt-services.go2rtc.enable). - [goeland](https://github.com/slurdge/goeland), an alternative to rss2email written in Golang with many filters. Available as [services.goeland](#opt-services.goeland.enable). @@ -203,7 +203,7 @@ In addition to numerous new and updated packages, this release has the following - `graylog` has been updated to version 5, which can not be updated directly from the previously packaged version 3.3. If you had installed the previously packaged version 3.3, please follow the [upgrade path](https://go2docs.graylog.org/5-0/upgrading_graylog/upgrade_path.htm) from 3.3 to 4.0 to 4.3 to 5.0. -- `buildFHSUserEnv` is now called `buildFHSEnv` and uses FlatPak's Bubblewrap sandboxing tool rather than Nixpkgs' own chrootenv. The old chrootenv-based implemenation is still available via `buildFHSEnvChroot` but is considered deprecated and will be removed when the remaining uses inside Nixpkgs have been migrated. If your FHSEnv-wrapped application misbehaves when using the new bubblewrap implementation, please create an issue in Nixpkgs. +- `buildFHSUserEnv` is now called `buildFHSEnv` and uses FlatPak's Bubblewrap sandboxing tool rather than Nixpkgs' own chrootenv. The old chrootenv-based implementation is still available via `buildFHSEnvChroot` but is considered deprecated and will be removed when the remaining uses inside Nixpkgs have been migrated. If your FHSEnv-wrapped application misbehaves when using the new bubblewrap implementation, please create an issue in Nixpkgs. - `nushell` has been updated to at least version 0.77.0, which includes potential breaking changes in aliases. The old aliases are now available as `old-alias` but it is recommended you migrate to the new format. See [Reworked aliases](https://www.nushell.sh/blog/2023-03-14-nushell_0_77.html#reworked-aliases-breaking-changes-kubouch). @@ -555,7 +555,7 @@ In addition to numerous new and updated packages, this release has the following - `buildDunePackage` now defaults to `strictDeps = true` which means that any library should go into `buildInputs` or `checkInputs`. Any executable that is run on the building machine should go into `nativeBuildInputs` or `nativeCheckInputs` respectively. Example of executables are `ocaml`, `findlib` and `menhir`. PPXs are libraries which are built by dune and should therefore not go into `nativeBuildInputs`. -- `buildFHSUserEnv` is now called `buildFHSEnv` and uses FlatPak's Bubblewrap sandboxing tool rather than Nixpkgs' own chrootenv. The old chrootenv-based implemenation is still available via `buildFHSEnvChroot` but is considered deprecated and will be removed when the remaining uses inside Nixpkgs have been migrated. If your FHSEnv-wrapped application misbehaves when using the new bubblewrap implementation, please create an issue in Nixpkgs. +- `buildFHSUserEnv` is now called `buildFHSEnv` and uses FlatPak's Bubblewrap sandboxing tool rather than Nixpkgs' own chrootenv. The old chrootenv-based implementation is still available via `buildFHSEnvChroot` but is considered deprecated and will be removed when the remaining uses inside Nixpkgs have been migrated. If your FHSEnv-wrapped application misbehaves when using the new bubblewrap implementation, please create an issue in Nixpkgs. - Top-level `buildPlatform`, `hostPlatform`, `targetPlatform` have been deprecated, use `stdenv.X` instead. diff --git a/nixos/doc/manual/release-notes/rl-2311.section.md b/nixos/doc/manual/release-notes/rl-2311.section.md index 3363f8faee2..fb8d802d40b 100644 --- a/nixos/doc/manual/release-notes/rl-2311.section.md +++ b/nixos/doc/manual/release-notes/rl-2311.section.md @@ -293,11 +293,11 @@ The module update takes care of the new config syntax and the data itself (user - `services.nginx` gained a `defaultListen` option at server-level with support for PROXY protocol listeners, also `proxyProtocol` is now exposed in `services.nginx.virtualHosts..listen` option. It is now possible to run PROXY listeners and non-PROXY listeners at a server-level, see [#213510](https://github.com/NixOS/nixpkgs/pull/213510/) for more details. -- `services.restic.backups` now adds wrapper scripts to your system path, which set the same environment variables as the service, so restic operations can easly be run from the command line. This behavior can be disabled by setting `createWrapper` to `false`, per backup configuration. +- `services.restic.backups` now adds wrapper scripts to your system path, which set the same environment variables as the service, so restic operations can easily be run from the command line. This behavior can be disabled by setting `createWrapper` to `false`, per backup configuration. - `services.prometheus.exporters` has a new exporter to monitor electrical power consumption based on PowercapRAPL sensor called [Scaphandre](https://github.com/hubblo-org/scaphandre), see [#239803](https://github.com/NixOS/nixpkgs/pull/239803) for more details. -- The MariaDB C client library was upgraded from 3.2.x to 3.3.x. It is recomended to review the [upstream release notes](https://mariadb.com/kb/en/mariadb-connector-c-33-release-notes/). +- The MariaDB C client library was upgraded from 3.2.x to 3.3.x. It is recommended to review the [upstream release notes](https://mariadb.com/kb/en/mariadb-connector-c-33-release-notes/). - The module `services.calibre-server` has new options to configure the `host`, `port`, `auth.enable`, `auth.mode` and `auth.userDb` path, see [#216497](https://github.com/NixOS/nixpkgs/pull/216497/) for more details. @@ -381,7 +381,7 @@ The module update takes care of the new config syntax and the data itself (user - The `qemu-vm.nix` module by default now identifies block devices via persistent names available in `/dev/disk/by-*`. Because the rootDevice is - identfied by its filesystem label, it needs to be formatted before the VM is + identified by its filesystem label, it needs to be formatted before the VM is started. The functionality of automatically formatting the rootDevice in the initrd is removed from the QEMU module. However, for tests that depend on this functionality, a test utility for the scripted initrd is added diff --git a/pkgs/README.md b/pkgs/README.md index a478ac120f1..5cc70247581 100644 --- a/pkgs/README.md +++ b/pkgs/README.md @@ -29,7 +29,7 @@ We welcome new contributors of new packages to Nixpkgs, arguably the greatest so Before adding a new package, please consider the following questions: * Is the package ready for general use? We don't want to include projects that are too immature or are going to be abandoned immediately. In case of doubt, check with upstream. -* Does the project have a clear license statement? Remember that softwares are unfree by default (all rights reserved), and merely providing access to the source code does not imply its redistribution. In case of doubt, ask upstream. +* Does the project have a clear license statement? Remember that software is unfree by default (all rights reserved), and merely providing access to the source code does not imply its redistribution. In case of doubt, ask upstream. * How realistic is it that it will be used by other people? It's good that nixpkgs caters to various niches, but if it's a niche of 5 people it's probably too small. * Are you willing to maintain the package? You should care enough about the package to be willing to keep it up and running for at least one complete Nixpkgs' release life-cycle. diff --git a/pkgs/applications/networking/cluster/k3s/README.md b/pkgs/applications/networking/cluster/k3s/README.md index 2e16de7bfa6..df2bead6be5 100644 --- a/pkgs/applications/networking/cluster/k3s/README.md +++ b/pkgs/applications/networking/cluster/k3s/README.md @@ -25,7 +25,7 @@ NixOS releases should avoid having deprecated software, or making major version As such, we would like to have only the newest K3s version in each NixOS release at the time the release branch is branched off, which will ensure the -K3s version in that release will receieve updates for the longest duration +K3s version in that release will receive updates for the longest duration possible. However, this conflicts with another desire: we would like people to be able to upgrade between NixOS stable releases without needing to make a large enough k3s version jump that they violate the Kubernetes version skew policy. diff --git a/pkgs/applications/science/math/sage/README.md b/pkgs/applications/science/math/sage/README.md index c4de5da45db..35e8d0deeff 100644 --- a/pkgs/applications/science/math/sage/README.md +++ b/pkgs/applications/science/math/sage/README.md @@ -2,7 +2,7 @@ Sage is a pretty complex package that depends on many other complex packages and patches some of those. As a result, the sage nix package is also quite complex. -Don't feel discouraged to fix, simplify or improve things though. The individual files have comments explaining their purpose. The most importent ones are `default.nix` linking everything together, `sage-src.nix` adding patches and `sagelib.nix` building the actual sage package. +Don't feel discouraged to fix, simplify or improve things though. The individual files have comments explaining their purpose. The most important ones are `default.nix` linking everything together, `sage-src.nix` adding patches and `sagelib.nix` building the actual sage package. ## The sage build is broken diff --git a/pkgs/development/haskell-modules/HACKING.md b/pkgs/development/haskell-modules/HACKING.md index 12afee84b15..d41957f403b 100644 --- a/pkgs/development/haskell-modules/HACKING.md +++ b/pkgs/development/haskell-modules/HACKING.md @@ -137,7 +137,7 @@ following will happen: This is a list of Haskell packages that are known to be broken. - [`hackage-packages.nix`](hackage-packages.nix) will be regenerated. This - will mark all Haskell pacakges in `configuration-hackage2nix/broken.yaml` + will mark all Haskell packages in `configuration-hackage2nix/broken.yaml` as `broken`. - The diff --git a/pkgs/development/lisp-modules-new-obsolete/doc/api.md b/pkgs/development/lisp-modules-new-obsolete/doc/api.md index cc305b52f6e..f5aed70de72 100644 --- a/pkgs/development/lisp-modules-new-obsolete/doc/api.md +++ b/pkgs/development/lisp-modules-new-obsolete/doc/api.md @@ -76,7 +76,7 @@ Some libraries have multiple systems under one project, for example, to the Nix store. This prevents ASDF from referring to uncompiled systems on run time. -Also useful when the `pname` is differrent than the system name, such +Also useful when the `pname` is different than the system name, such as when using [reverse domain naming]. (see `jzon` -> `com.inuoe.jzon`) diff --git a/pkgs/development/lisp-modules-new-obsolete/doc/nix-cl.md b/pkgs/development/lisp-modules-new-obsolete/doc/nix-cl.md index d96ac234ae1..eb84ed43777 100644 --- a/pkgs/development/lisp-modules-new-obsolete/doc/nix-cl.md +++ b/pkgs/development/lisp-modules-new-obsolete/doc/nix-cl.md @@ -31,7 +31,7 @@ package. ## Using libraries not available in repositories -There are useful and working libraries out there, that are nontheless +There are useful and working libraries out there, that are nonetheless unavailable to users of package managers such as Quicklisp or Ultralisp. Two real-world examples are [jzon] and [cl-tar]. diff --git a/pkgs/development/misc/resholve/README.md b/pkgs/development/misc/resholve/README.md index c3be4ad5b9f..082a7fe757a 100644 --- a/pkgs/development/misc/resholve/README.md +++ b/pkgs/development/misc/resholve/README.md @@ -203,7 +203,7 @@ more copies of their specification/behavior than I like, and continuing to add more at this early date will only ensure that I spend more time updating docs and less time filling in feature gaps. -Full documentation may be greatly accellerated if someone can help me sort out +Full documentation may be greatly accelerated if someone can help me sort out single-sourcing. See: https://github.com/abathur/resholve/issues/19 --> -- cgit 1.4.1 From cbd1748558e8708a3931d178b8fbd8f2d10869df Mon Sep 17 00:00:00 2001 From: Alejandro Sánchez Medina Date: Fri, 29 Sep 2023 09:23:22 +0100 Subject: nixpkgs manual: add an alternative example in stdenv-separateDebugInfo (#257861) * nixpkgs manual: add an alternative example in stdenv-separateDebugInfo This change gets rid of the indirect reference to `nix-env -i` usage and shows how to achieve the same goal with a shell expression. Co-authored-by: Valentin Gagarin --- doc/stdenv/stdenv.chapter.md | 51 ++++++++++++++++++++++++++++++++++++++++---- 1 file changed, 47 insertions(+), 4 deletions(-) (limited to 'doc') diff --git a/doc/stdenv/stdenv.chapter.md b/doc/stdenv/stdenv.chapter.md index 08ee0e349d0..366c519751c 100644 --- a/doc/stdenv/stdenv.chapter.md +++ b/doc/stdenv/stdenv.chapter.md @@ -991,13 +991,56 @@ Hook executed at the end of the fixup phase. If set to `true`, the standard environment will enable debug information in C/C++ builds. After installation, the debug information will be separated from the executables and stored in the output named `debug`. (This output is enabled automatically; you don’t need to set the `outputs` attribute explicitly.) To be precise, the debug information is stored in `debug/lib/debug/.build-id/XX/YYYY…`, where \ is the \ of the binary — a SHA-1 hash of the contents of the binary. Debuggers like GDB use the build ID to look up the separated debug information. -For example, with GDB, you can add +:::{.example #ex-gdb-debug-symbols-socat} +# Enable debug symbols for use with GDB + +To make GDB find debug information for the `socat` package and its dependencies, you can use the following `shell.nix`: + +```nix +let + pkgs = import ./. { + config = {}; + overlays = [ + (final: prev: { + ncurses = prev.ncurses.overrideAttrs { separateDebugInfo = true; }; + readline = prev.readline.overrideAttrs { separateDebugInfo = true; }; + }) + ]; + }; + + myDebugInfoDirs = pkgs.symlinkJoin { + name = "myDebugInfoDirs"; + paths = with pkgs; [ + glibc.debug + ncurses.debug + openssl.debug + readline.debug + ]; + }; +in + pkgs.mkShell { + + NIX_DEBUG_INFO_DIRS = "${pkgs.lib.getLib myDebugInfoDirs}/lib/debug"; + + packages = [ + pkgs.gdb + pkgs.socat + ]; + + shellHook = '' + ${pkgs.lib.getBin pkgs.gdb}/bin/gdb ${pkgs.lib.getBin pkgs.socat}/bin/socat + ''; + } ``` -set debug-file-directory ~/.nix-profile/lib/debug -``` -to `~/.gdbinit`. GDB will then be able to find debug information installed via `nix-env -i`. +This setup works as follows: +- Add [`overlays`](#chap-overlays) to the package set, since debug symbols are disabled for `ncurses` and `readline` by default. +- Create a derivation to combine all required debug symbols under one path with [`symlinkJoin`](#trivial-builder-symlinkJoin). +- Set the environment variable `NIX_DEBUG_INFO_DIRS` in the shell. Nixpkgs patches `gdb` to use it for looking up debug symbols. +- Run `gdb` on the `socat` binary on shell startup in the [`shellHook`](#sec-pkgs-mkShell). Here we use [`lib.getBin`](#function-library-lib.attrsets.getBin) to ensure that the correct derivation output is selected rather than the default one. + +::: ### The installCheck phase {#ssec-installCheck-phase} -- cgit 1.4.1 From f1cc116e3db5cff8b92ec30ec5283de966e22066 Mon Sep 17 00:00:00 2001 From: mdarocha Date: Sat, 30 Sep 2023 13:21:36 +0200 Subject: buildDotnetModule: make docs more clear on how to generate nugetDeps for the first time --- doc/languages-frameworks/dotnet.section.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/languages-frameworks/dotnet.section.md b/doc/languages-frameworks/dotnet.section.md index 9ba0fef2a27..978ec07cb96 100644 --- a/doc/languages-frameworks/dotnet.section.md +++ b/doc/languages-frameworks/dotnet.section.md @@ -138,7 +138,9 @@ in buildDotnetModule rec { src = ./.; projectFile = "src/project.sln"; - nugetDeps = ./deps.nix; # File generated with `nix-build -A package.passthru.fetch-deps`. + # File generated with `nix-build -A package.passthru.fetch-deps`. + # To run fetch-deps when this file does not yet exist, set nugetDeps to null + nugetDeps = ./deps.nix; projectReferences = [ referencedProject ]; # `referencedProject` must contain `nupkg` in the folder structure. -- cgit 1.4.1 From 901b21c555fa9820393b31ee54ade8cee915c895 Mon Sep 17 00:00:00 2001 From: Matthieu Coudron <886074+teto@users.noreply.github.com> Date: Sun, 20 Aug 2023 16:49:44 +0200 Subject: vimPluginsUpdater: init The nixpkgs documentation mentions how to update out of tree plugins but one problem is that it requires a nixpkgs clone. This makes it more convenient. I've had the need to generate vim plugins and lua overlays for other projects unrelated to nix and this will make updates easier (aka just run `nix run nixpkgs#vimPluginsUpdater -- --proc=1` or with the legacy commands: `nix-shell -p vimPluginsUpdater --run vim-plugins-updater`. I added an optional "nixpkgs" argument to command line parser, which is the path towards a nixpkgs checkout. By default the current folder. update-luarocks-packages: format with black --- doc/languages-frameworks/vim.section.md | 11 +-- maintainers/scripts/pluginupdate.py | 40 ++++++--- maintainers/scripts/update-luarocks-packages | 98 ++++++++++++---------- .../editors/vim/plugins/nvim-treesitter/update.py | 28 ++++--- .../editors/vim/plugins/update-shell.nix | 16 ---- pkgs/applications/editors/vim/plugins/update.py | 89 ++++++++++---------- pkgs/applications/editors/vim/plugins/updater.nix | 47 +++++++++++ pkgs/top-level/all-packages.nix | 7 ++ 8 files changed, 202 insertions(+), 134 deletions(-) delete mode 100644 pkgs/applications/editors/vim/plugins/update-shell.nix create mode 100644 pkgs/applications/editors/vim/plugins/updater.nix (limited to 'doc') diff --git a/doc/languages-frameworks/vim.section.md b/doc/languages-frameworks/vim.section.md index 5e25c1ed423..1f3727f552c 100644 --- a/doc/languages-frameworks/vim.section.md +++ b/doc/languages-frameworks/vim.section.md @@ -212,9 +212,9 @@ Note: this is not possible anymore for Neovim. ## Adding new plugins to nixpkgs {#adding-new-plugins-to-nixpkgs} -Nix expressions for Vim plugins are stored in [pkgs/applications/editors/vim/plugins](https://github.com/NixOS/nixpkgs/tree/master/pkgs/applications/editors/vim/plugins). For the vast majority of plugins, Nix expressions are automatically generated by running [`./update.py`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vim/plugins/update.py). This creates a [generated.nix](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vim/plugins/generated.nix) file based on the plugins listed in [vim-plugin-names](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vim/plugins/vim-plugin-names). +Nix expressions for Vim plugins are stored in [pkgs/applications/editors/vim/plugins](https://github.com/NixOS/nixpkgs/tree/master/pkgs/applications/editors/vim/plugins). For the vast majority of plugins, Nix expressions are automatically generated by running [`nix-shell -p vimPluginsUpdater --run vim-plugins-updater`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vim/plugins/updater.nix). This creates a [generated.nix](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vim/plugins/generated.nix) file based on the plugins listed in [vim-plugin-names](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vim/plugins/vim-plugin-names). -After running `./update.py`, if nvim-treesitter received an update, also run [`nvim-treesitter/update.py`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vim/plugins/update.py) to update the tree sitter grammars for `nvim-treesitter`. +After running the updater, if nvim-treesitter received an update, also run [`nvim-treesitter/update.py`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vim/plugins/update.py) to update the tree sitter grammars for `nvim-treesitter`. Some plugins require overrides in order to function properly. Overrides are placed in [overrides.nix](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/vim/plugins/overrides.nix). Overrides are most often required when a plugin requires some dependencies, or extra steps are required during the build process. For example `deoplete-fish` requires both `deoplete-nvim` and `vim-fish`, and so the following override was added: @@ -241,7 +241,8 @@ GITHUB_API_TOKEN=my_token ./pkgs/applications/editors/vim/plugins/update.py Alternatively, set the number of processes to a lower count to avoid rate-limiting. ```sh -./pkgs/applications/editors/vim/plugins/update.py --proc 1 + +nix-shell -p vimPluginsUpdater --run 'vim-plugins-updater --proc 1' ``` ## How to maintain an out-of-tree overlay of vim plugins ? {#vim-out-of-tree-overlays} @@ -250,7 +251,7 @@ You can use the updater script to generate basic packages out of a custom vim plugin list: ``` -pkgs/applications/editors/vim/plugins/update.py -i vim-plugin-names -o generated.nix --no-commit +nix-shell -p vimPluginsUpdater --run vim-plugins-updater -i vim-plugin-names -o generated.nix --no-commit ``` with the contents of `vim-plugin-names` being for example: @@ -264,7 +265,7 @@ You can then reference the generated vim plugins via: ```nix myVimPlugins = pkgs.vimPlugins.extend ( - (pkgs.callPackage generated.nix {}) + (pkgs.callPackage ./generated.nix {}) ); ``` diff --git a/maintainers/scripts/pluginupdate.py b/maintainers/scripts/pluginupdate.py index 6a607eb6248..18b354f0be9 100644 --- a/maintainers/scripts/pluginupdate.py +++ b/maintainers/scripts/pluginupdate.py @@ -321,8 +321,14 @@ def load_plugins_from_csv( return plugins -def run_nix_expr(expr): - with CleanEnvironment() as nix_path: + +def run_nix_expr(expr, nixpkgs: str): + ''' + :param expr nix expression to fetch current plugins + :param nixpkgs Path towards a nixpkgs checkout + ''' + # local_pkgs = str(Path(__file__).parent.parent.parent) + with CleanEnvironment(nixpkgs) as nix_path: cmd = [ "nix", "eval", @@ -396,9 +402,9 @@ class Editor: """CSV spec""" print("the update member function should be overriden in subclasses") - def get_current_plugins(self) -> List[Plugin]: + def get_current_plugins(self, nixpkgs) -> List[Plugin]: """To fill the cache""" - data = run_nix_expr(self.get_plugins) + data = run_nix_expr(self.get_plugins, nixpkgs) plugins = [] for name, attr in data.items(): p = Plugin(name, attr["rev"], attr["submodules"], attr["sha256"]) @@ -414,7 +420,7 @@ class Editor: raise NotImplementedError() def get_update(self, input_file: str, outfile: str, config: FetchConfig): - cache: Cache = Cache(self.get_current_plugins(), self.cache_file) + cache: Cache = Cache(self.get_current_plugins(self.nixpkgs), self.cache_file) _prefetch = functools.partial(prefetch, cache=cache) def update() -> dict: @@ -453,6 +459,12 @@ class Editor: By default from {self.default_in} to {self.default_out}""" ), ) + common.add_argument( + "--nixpkgs", + type=str, + default=os.getcwd(), + help="Adjust log level", + ) common.add_argument( "--input-names", "-i", @@ -541,22 +553,27 @@ class Editor: command = args.command or "update" log.setLevel(LOG_LEVELS[args.debug]) log.info("Chose to run command: %s", command) + self.nixpkgs = args.nixpkgs - if not args.no_commit: - self.nixpkgs_repo = git.Repo(self.root, search_parent_directories=True) + self.nixpkgs_repo = git.Repo(args.nixpkgs, search_parent_directories=True) getattr(self, command)(args) class CleanEnvironment(object): + def __init__(self, nixpkgs): + self.local_pkgs = nixpkgs + def __enter__(self) -> str: - self.old_environ = os.environ.copy() + """ local_pkgs = str(Path(__file__).parent.parent.parent) + """ + self.old_environ = os.environ.copy() self.empty_config = NamedTemporaryFile() self.empty_config.write(b"{}") self.empty_config.flush() - os.environ["NIXPKGS_CONFIG"] = self.empty_config.name - return f"localpkgs={local_pkgs}" + # os.environ["NIXPKGS_CONFIG"] = self.empty_config.name + return f"localpkgs={self.local_pkgs}" def __exit__(self, exc_type: Any, exc_value: Any, traceback: Any) -> None: os.environ.update(self.old_environ) @@ -758,7 +775,8 @@ def commit(repo: git.Repo, message: str, files: List[Path]) -> None: def update_plugins(editor: Editor, args): - """The main entry function of this module. All input arguments are grouped in the `Editor`.""" + """The main entry function of this module. + All input arguments are grouped in the `Editor`.""" log.info("Start updating plugins") fetch_config = FetchConfig(args.proc, args.github_token) diff --git a/maintainers/scripts/update-luarocks-packages b/maintainers/scripts/update-luarocks-packages index 791cd8a1d89..32c2b44260b 100755 --- a/maintainers/scripts/update-luarocks-packages +++ b/maintainers/scripts/update-luarocks-packages @@ -2,11 +2,11 @@ #!nix-shell update-luarocks-shell.nix -i python3 # format: -# $ nix run nixpkgs.python3Packages.black -c black update.py +# $ nix run nixpkgs#python3Packages.black -- update.py # type-check: -# $ nix run nixpkgs.python3Packages.mypy -c mypy update.py +# $ nix run nixpkgs#python3Packages.mypy -- update.py # linted: -# $ nix run nixpkgs.python3Packages.flake8 -c flake8 --ignore E501,E265,E402 update.py +# $ nix run nixpkgs#python3Packages.flake8 -- --ignore E501,E265,E402 update.py import inspect import os @@ -25,14 +25,14 @@ from pathlib import Path log = logging.getLogger() log.addHandler(logging.StreamHandler()) -ROOT = Path(os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))).parent.parent # type: ignore +ROOT = Path(os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))).parent.parent # type: ignore import pluginupdate from pluginupdate import update_plugins, FetchConfig, CleanEnvironment -PKG_LIST="maintainers/scripts/luarocks-packages.csv" -TMP_FILE="$(mktemp)" -GENERATED_NIXFILE="pkgs/development/lua-modules/generated-packages.nix" -LUAROCKS_CONFIG="maintainers/scripts/luarocks-config.lua" +PKG_LIST = "maintainers/scripts/luarocks-packages.csv" +TMP_FILE = "$(mktemp)" +GENERATED_NIXFILE = "pkgs/development/lua-modules/generated-packages.nix" +LUAROCKS_CONFIG = "maintainers/scripts/luarocks-config.lua" HEADER = """/* {GENERATED_NIXFILE} is an auto-generated file -- DO NOT EDIT! Regenerate it with: @@ -40,36 +40,40 @@ nixpkgs$ ./maintainers/scripts/update-luarocks-packages You can customize the generated packages in pkgs/development/lua-modules/overrides.nix */ -""".format(GENERATED_NIXFILE=GENERATED_NIXFILE) +""".format( + GENERATED_NIXFILE=GENERATED_NIXFILE +) -FOOTER=""" +FOOTER = """ } /* GENERATED - do not edit this file */ """ + @dataclass class LuaPlugin: name: str - '''Name of the plugin, as seen on luarocks.org''' + """Name of the plugin, as seen on luarocks.org""" src: str - '''address to the git repository''' + """address to the git repository""" ref: Optional[str] - '''git reference (branch name/tag)''' + """git reference (branch name/tag)""" version: Optional[str] - '''Set it to pin a package ''' + """Set it to pin a package """ server: Optional[str] - '''luarocks.org registers packages under different manifests. + """luarocks.org registers packages under different manifests. Its value can be 'http://luarocks.org/dev' - ''' + """ luaversion: Optional[str] - '''Attribue of the lua interpreter if a package is available only for a specific lua version''' + """Attribue of the lua interpreter if a package is available only for a specific lua version""" maintainers: Optional[str] - ''' Optional string listing maintainers separated by spaces''' + """ Optional string listing maintainers separated by spaces""" @property def normalized_name(self) -> str: return self.name.replace(".", "-") + # rename Editor to LangUpdate/ EcosystemUpdater class LuaEditor(pluginupdate.Editor): def get_current_plugins(self): @@ -77,11 +81,13 @@ class LuaEditor(pluginupdate.Editor): def load_plugin_spec(self, input_file) -> List[LuaPlugin]: luaPackages = [] - csvfilename=input_file + csvfilename = input_file log.info("Loading package descriptions from %s", csvfilename) - with open(csvfilename, newline='') as csvfile: - reader = csv.DictReader(csvfile,) + with open(csvfilename, newline="") as csvfile: + reader = csv.DictReader( + csvfile, + ) for row in reader: # name,server,version,luaversion,maintainers plugin = LuaPlugin(**row) @@ -91,23 +97,19 @@ class LuaEditor(pluginupdate.Editor): def update(self, args): update_plugins(self, args) - def generate_nix( - self, - results: List[Tuple[LuaPlugin, str]], - outfilename: str - ): - + def generate_nix(self, results: List[Tuple[LuaPlugin, str]], outfilename: str): with tempfile.NamedTemporaryFile("w+") as f: f.write(HEADER) header2 = textwrap.dedent( - # header2 = inspect.cleandoc( - """ + # header2 = inspect.cleandoc( + """ { self, stdenv, lib, fetchurl, fetchgit, callPackage, ... } @ args: final: prev: { - """) + """ + ) f.write(header2) - for (plugin, nix_expr) in results: + for plugin, nix_expr in results: f.write(f"{plugin.normalized_name} = {nix_expr}") f.write(FOOTER) f.flush() @@ -156,19 +158,20 @@ class LuaEditor(pluginupdate.Editor): # luaPackages.append(plugin) pass + def generate_pkg_nix(plug: LuaPlugin): - ''' + """ Generate nix expression for a luarocks package Our cache key associates "p.name-p.version" to its rockspec - ''' + """ log.debug("Generating nix expression for %s", plug.name) custom_env = os.environ.copy() - custom_env['LUAROCKS_CONFIG'] = LUAROCKS_CONFIG + custom_env["LUAROCKS_CONFIG"] = LUAROCKS_CONFIG # we add --dev else luarocks wont find all the "scm" (=dev) versions of the # packages - # , "--dev" - cmd = [ "luarocks", "nix" ] + # , "--dev" + cmd = ["luarocks", "nix"] if plug.maintainers: cmd.append(f"--maintainers={plug.maintainers}") @@ -176,7 +179,10 @@ def generate_pkg_nix(plug: LuaPlugin): # if plug.server == "src": if plug.src != "": if plug.src is None: - msg = "src must be set when 'version' is set to \"src\" for package %s" % plug.name + msg = ( + "src must be set when 'version' is set to \"src\" for package %s" + % plug.name + ) log.error(msg) raise RuntimeError(msg) log.debug("Updating from source %s", plug.src) @@ -185,7 +191,6 @@ def generate_pkg_nix(plug: LuaPlugin): else: cmd.append(plug.name) if plug.version and plug.version != "src": - cmd.append(plug.version) if plug.server != "src" and plug.server: @@ -194,23 +199,26 @@ def generate_pkg_nix(plug: LuaPlugin): if plug.luaversion: cmd.append(f"--lua-version={plug.luaversion}") - log.debug("running %s", ' '.join(cmd)) + log.debug("running %s", " ".join(cmd)) output = subprocess.check_output(cmd, env=custom_env, text=True) output = "callPackage(" + output.strip() + ") {};\n\n" return (plug, output) -def main(): - editor = LuaEditor("lua", ROOT, '', - default_in = ROOT.joinpath(PKG_LIST), - default_out = ROOT.joinpath(GENERATED_NIXFILE) - ) +def main(): + editor = LuaEditor( + "lua", + ROOT, + "", + default_in=ROOT.joinpath(PKG_LIST), + default_out=ROOT.joinpath(GENERATED_NIXFILE), + ) editor.run() -if __name__ == "__main__": +if __name__ == "__main__": main() # vim: set ft=python noet fdm=manual fenc=utf-8 ff=unix sts=0 sw=4 ts=4 : diff --git a/pkgs/applications/editors/vim/plugins/nvim-treesitter/update.py b/pkgs/applications/editors/vim/plugins/nvim-treesitter/update.py index bbacc6959c2..37414b07353 100755 --- a/pkgs/applications/editors/vim/plugins/nvim-treesitter/update.py +++ b/pkgs/applications/editors/vim/plugins/nvim-treesitter/update.py @@ -7,8 +7,6 @@ from concurrent.futures import ThreadPoolExecutor from os import environ from os.path import dirname, join -lockfile = json.load(open(join(environ["NVIM_TREESITTER"], "lockfile.json"))) - configs = json.loads( subprocess.check_output( [ @@ -58,20 +56,26 @@ def generate_grammar(item): return generated -generated_file = """# generated by pkgs/applications/editors/vim/plugins/nvim-treesitter/update.py +def update_grammars(lockfile: str): -{ buildGrammar, """ + generated_file = """# generated by pkgs/applications/editors/vim/plugins/nvim-treesitter/update.py -generated_file += subprocess.check_output(["nurl", "-Ls", ", "], text=True) + { buildGrammar, """ -generated_file += """ }: + generated_file += subprocess.check_output(["nurl", "-Ls", ", "], text=True) -{ -""" + generated_file += """ }: + + { + """ + for generated in ThreadPoolExecutor().map(generate_grammar, lockfile.items()): + generated_file += generated + generated_file += "}\n" + generated_file += "}\n" -for generated in ThreadPoolExecutor().map(generate_grammar, lockfile.items()): - generated_file += generated + open(join(dirname(__file__), "generated.nix"), "w").write(generated_file) -generated_file += "}\n" -open(join(dirname(__file__), "generated.nix"), "w").write(generated_file) +if __name__ == "__main__": + # TODO add lockfile + update_grammars() diff --git a/pkgs/applications/editors/vim/plugins/update-shell.nix b/pkgs/applications/editors/vim/plugins/update-shell.nix deleted file mode 100644 index eae7db7f53e..00000000000 --- a/pkgs/applications/editors/vim/plugins/update-shell.nix +++ /dev/null @@ -1,16 +0,0 @@ -{ pkgs ? import ../../../../.. { } }: - -# Ideally, pkgs points to default.nix file of Nixpkgs official tree -with pkgs; -let - pyEnv = python3.withPackages (ps: [ ps.gitpython ]); -in - -mkShell { - packages = [ - bash - pyEnv - nix - nix-prefetch-scripts - ]; -} diff --git a/pkgs/applications/editors/vim/plugins/update.py b/pkgs/applications/editors/vim/plugins/update.py index 97e0dda3b8d..9770b27252c 100755 --- a/pkgs/applications/editors/vim/plugins/update.py +++ b/pkgs/applications/editors/vim/plugins/update.py @@ -1,32 +1,31 @@ -#!/usr/bin/env nix-shell -#!nix-shell update-shell.nix -i python3 - +#!/usr/bin/env python +# run with: +# $ nix run .\#vimPluginsUpdater # format: -# $ nix run nixpkgs.python3Packages.black -c black update.py +# $ nix run nixpkgs#python3Packages.black -- update.py # type-check: -# $ nix run nixpkgs.python3Packages.mypy -c mypy update.py +# $ nix run nixpkgs#python3Packages.mypy -- update.py # linted: -# $ nix run nixpkgs.python3Packages.flake8 -c flake8 --ignore E501,E265,E402 update.py +# $ nix run nixpkgs#python3Packages.flake8 -- --ignore E501,E265,E402 update.py -# If you see `HTTP Error 429: too many requests` errors while running this script, -# refer to: +# If you see `HTTP Error 429: too many requests` errors while running this +# script, refer to: # # https://github.com/NixOS/nixpkgs/blob/master/doc/languages-frameworks/vim.section.md#updating-plugins-in-nixpkgs-updating-plugins-in-nixpkgs # -# (or the equivalent file /doc/languages-frameworks/vim.section.md from Nixpkgs master tree). +# (or the equivalent file /doc/languages-frameworks/vim.section.md +# from Nixpkgs master tree). # import inspect import os -import sys import logging -import subprocess import textwrap +import json from typing import List, Tuple from pathlib import Path -import git log = logging.getLogger() @@ -37,34 +36,18 @@ log.addHandler(sh) # Import plugin update library from maintainers/scripts/pluginupdate.py ROOT = Path(os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))) -# Ideally, ROOT.(parent^5) points to root of Nixpkgs official tree -sys.path.insert( - 0, os.path.join(ROOT.parent.parent.parent.parent.parent, "maintainers", "scripts") -) import pluginupdate +import importlib from pluginupdate import run_nix_expr, PluginDesc -nvim_treesitter = importlib.import_module("treesitter") - +from treesitter import update_grammars -GET_PLUGINS_LUA = """ -with import {}; -lib.attrNames lua51Packages""" HEADER = ( "# GENERATED by ./pkgs/applications/editors/vim/plugins/update.py. Do not edit!" ) - -def isNeovimPlugin(plug: pluginupdate.Plugin) -> bool: - """ - Whether it's a neovim-only plugin - We can check if it's available in lua packages - """ - global luaPlugins - if plug.normalized_name in luaPlugins: - log.debug("%s is a neovim plugin", plug) - return True - return False +NVIM_TREESITTER_GENERATED_NIX = \ + "pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix" class VimEditor(pluginupdate.Editor): @@ -75,7 +58,8 @@ class VimEditor(pluginupdate.Editor): ): sorted_plugins = sorted(plugins, key=lambda v: v[0].name.lower()) nvim_treesitter_rev = pluginupdate.run_nix_expr( - "(import { }).vimPlugins.nvim-treesitter.src.rev" + "(import { }).vimPlugins.nvim-treesitter.src.rev", + self.nixpkgs ) with open(outfile, "w+") as f: @@ -94,16 +78,32 @@ class VimEditor(pluginupdate.Editor): content = self.plugin2nix(pdesc, plugin) f.write(content) if ( - plugin.name == "nvim-treesitter" - and plugin.commit != nvim_treesitter_rev + plugin.name == "nvim-treesitter" and plugin.commit != nvim_treesitter_rev ): self.nvim_treesitter_updated = True f.write("\n}\n") print(f"updated {outfile}") def plugin2nix(self, pdesc: PluginDesc, plugin: pluginupdate.Plugin) -> str: + GET_PLUGINS_LUA = """ + with import {}; + lib.attrNames lua51Packages""" + luaPlugins = run_nix_expr(GET_PLUGINS_LUA, self.nixpkgs) + repo = pdesc.repo - isNeovim = isNeovimPlugin(plugin) + + def _isNeovimPlugin(plug: pluginupdate.Plugin) -> bool: + """ + Whether it's a neovim-only plugin + We can check if it's available in lua packages + """ + # global luaPlugins + if plug.normalized_name in luaPlugins: + log.debug("%s is a neovim plugin", plug) + return True + return False + + isNeovim = _isNeovimPlugin(plugin) content = f" {plugin.normalized_name} = " src_nix = repo.as_nix(plugin) @@ -129,16 +129,14 @@ class VimEditor(pluginupdate.Editor): if self.nvim_treesitter_updated: print("updating nvim-treesitter grammars") nvim_treesitter_dir = ROOT.joinpath("nvim-treesitter") - # subprocess.check_call([nvim_treesitter_dir.joinpath("update.py")]) - nvim_treesitter.update_grammars() + lockfile = json.load(open(args.nixpkgs.join(NVIM_TREESITTER_GENERATED_FILE, "lockfile.json"))) + + nvim_treesitter.update_grammars(lockfile) if self.nixpkgs_repo: index = self.nixpkgs_repo.index for diff in index.diff(None): - if ( - diff.a_path - == "pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix" - ): + if diff.a_path == NVIM_TREESITTER_GENERATED_NIX: msg = "vimPlugins.nvim-treesitter: update grammars" print(f"committing to nixpkgs: {msg}") index.add([str(nvim_treesitter_dir.joinpath("generated.nix"))]) @@ -148,12 +146,13 @@ class VimEditor(pluginupdate.Editor): def main(): + global luaPlugins - luaPlugins = run_nix_expr(GET_PLUGINS_LUA) - with open(f"{ROOT}/get-plugins.nix") as f: + log.debug(f"Loading from {ROOT}/../get-plugins.nix") + with open(f"{ROOT}/../get-plugins.nix") as f: GET_PLUGINS = f.read() - editor = VimEditor("vim", ROOT, GET_PLUGINS) + editor = VimEditor("vim", Path("pkgs/applications/editors/vim/plugins"), GET_PLUGINS) editor.run() diff --git a/pkgs/applications/editors/vim/plugins/updater.nix b/pkgs/applications/editors/vim/plugins/updater.nix new file mode 100644 index 00000000000..e82650a040f --- /dev/null +++ b/pkgs/applications/editors/vim/plugins/updater.nix @@ -0,0 +1,47 @@ +{ buildPythonApplication +, nix +, makeWrapper +, python3Packages +, lib + +# optional +, vimPlugins +, neovim +}: +let + my_neovim = neovim.override { + configure.packages.all.start = [ vimPlugins.nvim-treesitter ]; + }; + +in +buildPythonApplication { + format = "other"; + pname = "vim-plugins-updater"; + version = "0.1"; + + nativeBuildInputs = [ + makeWrapper + python3Packages.wrapPython + ]; + + pythonPath = [ + python3Packages.gitpython + ]; + + dontUnpack = true; + + installPhase = '' + mkdir -p $out/bin $out/lib + cp ${./update.py} $out/bin/vim-plugins-updater + cp ${./get-plugins.nix} $out/get-plugins.nix + cp ${./nvim-treesitter/update.py} $out/lib/treesitter.py + cp ${../../../../../maintainers/scripts/pluginupdate.py} $out/lib/pluginupdate.py + + # wrap python scripts + makeWrapperArgs+=( --prefix PATH : "${lib.makeBinPath [ nix my_neovim ]}" --prefix PYTHONPATH : "$out/lib" ) + wrapPythonPrograms + ''; + + meta.mainProgram = "vim-plugins-updater"; +} + diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 8a6e84c60c5..24ffd064ada 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -126,6 +126,13 @@ with pkgs; common-updater-scripts = callPackage ../common-updater/scripts.nix { }; + # vimPluginsUpdater = callPackage ../applications/editors/vim/plugins/updater.nix { + # inherit (writers) writePython3Bin; + # }; + vimPluginsUpdater = callPackage ../applications/editors/vim/plugins/updater.nix { + inherit (python3Packages) buildPythonApplication ; + }; + genericUpdater = callPackage ../common-updater/generic-updater.nix { }; _experimental-update-script-combinators = callPackage ../common-updater/combinators.nix { }; -- cgit 1.4.1 From b19e9bebdc8ee7dce5a4c40e510165f0011008b7 Mon Sep 17 00:00:00 2001 From: Lorenzo Manacorda Date: Tue, 25 Jul 2023 13:40:09 +0200 Subject: doc: minimal documentation of supported platforms This commit adds minimal documentation of the supported platforms. More exhaustive documentation would require producing a list of platforms for each of the 7 tiers. This was attempted in #245368, but it quickly became clear that that would be a long-term effort. In the meantime, this commit adds the most important information to the manual. Co-authored-by: Valentin Gagarin --- doc/using-nixpkgs.md | 1 + doc/using/platform-support.chapter.md | 18 ++++++++++++++++++ 2 files changed, 19 insertions(+) create mode 100644 doc/using/platform-support.chapter.md (limited to 'doc') diff --git a/doc/using-nixpkgs.md b/doc/using-nixpkgs.md index bb222ae384f..f850b2e83c2 100644 --- a/doc/using-nixpkgs.md +++ b/doc/using-nixpkgs.md @@ -1,6 +1,7 @@ # Using Nixpkgs {#part-using} ```{=include=} chapters +using/platform-support.chapter.md using/configuration.chapter.md using/overlays.chapter.md using/overrides.chapter.md diff --git a/doc/using/platform-support.chapter.md b/doc/using/platform-support.chapter.md new file mode 100644 index 00000000000..3f91b3d5d98 --- /dev/null +++ b/doc/using/platform-support.chapter.md @@ -0,0 +1,18 @@ +# Platform Support {#chap-platform-support} + +Packages receive varying degrees of support, both in terms of maintainer attention and available computation resources for continuous integration (CI). + +Below is the list of the best supported platforms: + +- `x86_64-linux`: Highest level of support. +- `aarch64-linux`: Well supported, with most packages building successfully in CI. +- `aarch64-darwin`: Receives better support than `x86_64-darwin`. +- `x86_64-darwin`: Receives some support. + +There are many other platforms with varying levels of support. +The provisional platform list in [Appendix A] of [RFC046], while not up to date, can be used as guidance. + +A more formal definition of the platform support tiers is provided in [RFC046], but has not been fully implemented yet. + +[RFC046]: https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md +[Appendix A]: https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#appendix-a-non-normative-description-of-platforms-in-november-2019 -- cgit 1.4.1 From dd54e58c94943461ed0d32eff60fd52a42bf9148 Mon Sep 17 00:00:00 2001 From: Valentin Gagarin Date: Mon, 2 Oct 2023 16:57:21 +0200 Subject: emscripten docs: reword introduction in particular, remove mention of `nix-env` Co-authored by: Henrik Karlsson --- doc/languages-frameworks/emscripten.section.md | 50 ++++++-------------------- 1 file changed, 10 insertions(+), 40 deletions(-) (limited to 'doc') diff --git a/doc/languages-frameworks/emscripten.section.md b/doc/languages-frameworks/emscripten.section.md index 5f93dd5ff31..d1ae7e36bf5 100644 --- a/doc/languages-frameworks/emscripten.section.md +++ b/doc/languages-frameworks/emscripten.section.md @@ -2,37 +2,16 @@ [Emscripten](https://github.com/kripken/emscripten): An LLVM-to-JavaScript Compiler -This section of the manual covers how to use `emscripten` in nixpkgs. +If you want to work with `emcc`, `emconfigure` and `emmake` as you are used to from Ubuntu and similar distributions, -Minimal requirements: - -* nix -* nixpkgs - -Modes of use of `emscripten`: - -* **Imperative usage** (on the command line): - - If you want to work with `emcc`, `emconfigure` and `emmake` as you are used to from Ubuntu and similar distributions you can use these commands: - - * `nix-env -f "" -iA emscripten` - * `nix-shell -p emscripten` - -* **Declarative usage**: - - This mode is far more power full since this makes use of `nix` for dependency management of emscripten libraries and targets by using the `mkDerivation` which is implemented by `pkgs.emscriptenStdenv` and `pkgs.buildEmscriptenPackage`. The source for the packages is in `pkgs/top-level/emscripten-packages.nix` and the abstraction behind it in `pkgs/development/em-modules/generic/default.nix`. From the root of the nixpkgs repository: - * build and install all packages: - * `nix-env -iA emscriptenPackages` - - * dev-shell for zlib implementation hacking: - * `nix-shell -A emscriptenPackages.zlib` - -## Imperative usage {#imperative-usage} +```console +nix-shell -p emscripten +``` A few things to note: * `export EMCC_DEBUG=2` is nice for debugging -* `~/.emscripten`, the build artifact cache sometimes creates issues and needs to be removed from time to time +* The build artifact cache in `~/.emscripten` sometimes creates issues and needs to be removed from time to time ## Declarative usage {#declarative-usage} @@ -41,16 +20,13 @@ Let's see two different examples from `pkgs/top-level/emscripten-packages.nix`: * `pkgs.zlib.override` * `pkgs.buildEmscriptenPackage` -Both are interesting concepts. - -A special requirement of the `pkgs.buildEmscriptenPackage` is the `doCheck = true` is a default meaning that each emscriptenPackage requires a `checkPhase` implemented. - -* Use `export EMCC_DEBUG=2` from within a emscriptenPackage's `phase` to get more detailed debug output what is going wrong. -* ~/.emscripten cache is requiring us to set `HOME=$TMPDIR` in individual phases. This makes compilation slower but also makes it more deterministic. +A special requirement of the `pkgs.buildEmscriptenPackage` is the `doCheck = true`. +This means each Emscripten package requires that a [`checkPhase`](#ssec-check-phase) is implemented. -### Usage 1: pkgs.zlib.override {#usage-1-pkgs.zlib.override} +* Use `export EMCC_DEBUG=2` from within a phase to get more detailed debug output what is going wrong. +* The cache at `~/.emscripten` requires to set `HOME=$TMPDIR` in individual phases. + This makes compilation slower but also more deterministic. -This example uses `zlib` from nixpkgs but instead of compiling **C** to **ELF** it compiles **C** to **JS** since we were using `pkgs.zlib.override` and changed stdenv to `pkgs.emscriptenStdenv`. A few adaptions and hacks were set in place to make it working. One advantage is that when `pkgs.zlib` is updated, it will automatically update this package as well. However, this can also be the downside... See the `zlib` example: @@ -174,9 +150,3 @@ Use `nix-shell -I nixpkgs=/some/dir/nixpkgs -A emscriptenPackages.libz` and from 5. `configurePhase` 6. `buildPhase` 7. ... happy hacking... - -## Summary {#summary} - -Using this toolchain makes it easy to leverage `nix` from NixOS, MacOSX or even Windows (WSL+ubuntu+nix). This toolchain is reproducible, behaves like the rest of the packages from nixpkgs and contains a set of well working examples to learn and adapt from. - -If in trouble, ask the maintainers. -- cgit 1.4.1 From b2f526526a53ba252a8a5860b70794c8e2044e89 Mon Sep 17 00:00:00 2001 From: Valentin Gagarin Date: Mon, 2 Oct 2023 16:57:46 +0200 Subject: emscripten docs: reformat examples to use admonition that way the examples will also appear in the appendix Co-authored by: Henrik Karlsson --- doc/languages-frameworks/emscripten.section.md | 241 +++++++++++++------------ 1 file changed, 128 insertions(+), 113 deletions(-) (limited to 'doc') diff --git a/doc/languages-frameworks/emscripten.section.md b/doc/languages-frameworks/emscripten.section.md index d1ae7e36bf5..20d358f2e9e 100644 --- a/doc/languages-frameworks/emscripten.section.md +++ b/doc/languages-frameworks/emscripten.section.md @@ -13,7 +13,7 @@ A few things to note: * `export EMCC_DEBUG=2` is nice for debugging * The build artifact cache in `~/.emscripten` sometimes creates issues and needs to be removed from time to time -## Declarative usage {#declarative-usage} +## Examples {#declarative-usage} Let's see two different examples from `pkgs/top-level/emscripten-packages.nix`: @@ -27,119 +27,134 @@ This means each Emscripten package requires that a [`checkPhase`](#ssec-check-ph * The cache at `~/.emscripten` requires to set `HOME=$TMPDIR` in individual phases. This makes compilation slower but also more deterministic. +::: {.example #usage-1-pkgs.zlib.override} + +# Using `pkgs.zlib.override {}` + +This example uses `zlib` from Nixpkgs, but instead of compiling **C** to **ELF** it compiles **C** to **JavaScript** since we were using `pkgs.zlib.override` and changed `stdenv` to `pkgs.emscriptenStdenv`. + +A few adaptions and hacks were put in place to make it work. +One advantage is that when `pkgs.zlib` is updated, it will automatically update this package as well. + + +```nix +(pkgs.zlib.override { + stdenv = pkgs.emscriptenStdenv; +}).overrideAttrs +(old: rec { + buildInputs = old.buildInputs ++ [ pkg-config ]; + # we need to reset this setting! + env = (old.env or { }) // { NIX_CFLAGS_COMPILE = ""; }; + configurePhase = '' + # FIXME: Some tests require writing at $HOME + HOME=$TMPDIR + runHook preConfigure + + #export EMCC_DEBUG=2 + emconfigure ./configure --prefix=$out --shared + + runHook postConfigure + ''; + dontStrip = true; + outputs = [ "out" ]; + buildPhase = '' + emmake make + ''; + installPhase = '' + emmake make install + ''; + checkPhase = '' + echo "================= testing zlib using node =================" + + echo "Compiling a custom test" + set -x + emcc -O2 -s EMULATE_FUNCTION_POINTER_CASTS=1 test/example.c -DZ_SOLO \ + libz.so.${old.version} -I . -o example.js + + echo "Using node to execute the test" + ${pkgs.nodejs}/bin/node ./example.js + + set +x + if [ $? -ne 0 ]; then + echo "test failed for some reason" + exit 1; + else + echo "it seems to work! very good." + fi + echo "================= /testing zlib using node =================" + ''; + + postPatch = pkgs.lib.optionalString pkgs.stdenv.isDarwin '' + substituteInPlace configure \ + --replace '/usr/bin/libtool' 'ar' \ + --replace 'AR="libtool"' 'AR="ar"' \ + --replace 'ARFLAGS="-o"' 'ARFLAGS="-r"' + ''; +}) +``` + +:::{.example #usage-2-pkgs.buildemscriptenpackage} + +# Using `pkgs.buildEmscriptenPackage {}` + +This `xmlmirror` example features an Emscripten package that is defined completely from this context and no `pkgs.zlib.override` is used. + +```nix +pkgs.buildEmscriptenPackage rec { + name = "xmlmirror"; + + buildInputs = [ pkg-config autoconf automake libtool gnumake libxml2 nodejs openjdk json_c ]; + nativeBuildInputs = [ pkg-config zlib ]; + + src = pkgs.fetchgit { + url = "https://gitlab.com/odfplugfest/xmlmirror.git"; + rev = "4fd7e86f7c9526b8f4c1733e5c8b45175860a8fd"; + hash = "sha256-i+QgY+5PYVg5pwhzcDnkfXAznBg3e8sWH2jZtixuWsk="; + }; + + configurePhase = '' + rm -f fastXmlLint.js* + # a fix for ERROR:root:For asm.js, TOTAL_MEMORY must be a multiple of 16MB, was 234217728 + # https://gitlab.com/odfplugfest/xmlmirror/issues/8 + sed -e "s/TOTAL_MEMORY=234217728/TOTAL_MEMORY=268435456/g" -i Makefile.emEnv + # https://github.com/kripken/emscripten/issues/6344 + # https://gitlab.com/odfplugfest/xmlmirror/issues/9 + sed -e "s/\$(JSONC_LDFLAGS) \$(ZLIB_LDFLAGS) \$(LIBXML20_LDFLAGS)/\$(JSONC_LDFLAGS) \$(LIBXML20_LDFLAGS) \$(ZLIB_LDFLAGS) /g" -i Makefile.emEnv + # https://gitlab.com/odfplugfest/xmlmirror/issues/11 + sed -e "s/-o fastXmlLint.js/-s EXTRA_EXPORTED_RUNTIME_METHODS='[\"ccall\", \"cwrap\"]' -o fastXmlLint.js/g" -i Makefile.emEnv + ''; + + buildPhase = '' + HOME=$TMPDIR + make -f Makefile.emEnv + ''; + + outputs = [ "out" "doc" ]; + + installPhase = '' + mkdir -p $out/share + mkdir -p $doc/share/${name} + + cp Demo* $out/share + cp -R codemirror-5.12 $out/share + cp fastXmlLint.js* $out/share + cp *.xsd $out/share + cp *.js $out/share + cp *.xhtml $out/share + cp *.html $out/share + cp *.json $out/share + cp *.rng $out/share + cp README.md $doc/share/${name} + ''; + checkPhase = '' + + ''; +} +``` + +::: -See the `zlib` example: - - zlib = (pkgs.zlib.override { - stdenv = pkgs.emscriptenStdenv; - }).overrideAttrs - (old: rec { - buildInputs = old.buildInputs ++ [ pkg-config ]; - # we need to reset this setting! - env = (old.env or { }) // { NIX_CFLAGS_COMPILE = ""; }; - configurePhase = '' - # FIXME: Some tests require writing at $HOME - HOME=$TMPDIR - runHook preConfigure - - #export EMCC_DEBUG=2 - emconfigure ./configure --prefix=$out --shared - - runHook postConfigure - ''; - dontStrip = true; - outputs = [ "out" ]; - buildPhase = '' - emmake make - ''; - installPhase = '' - emmake make install - ''; - checkPhase = '' - echo "================= testing zlib using node =================" - - echo "Compiling a custom test" - set -x - emcc -O2 -s EMULATE_FUNCTION_POINTER_CASTS=1 test/example.c -DZ_SOLO \ - libz.so.${old.version} -I . -o example.js - - echo "Using node to execute the test" - ${pkgs.nodejs}/bin/node ./example.js - - set +x - if [ $? -ne 0 ]; then - echo "test failed for some reason" - exit 1; - else - echo "it seems to work! very good." - fi - echo "================= /testing zlib using node =================" - ''; - - postPatch = pkgs.lib.optionalString pkgs.stdenv.isDarwin '' - substituteInPlace configure \ - --replace '/usr/bin/libtool' 'ar' \ - --replace 'AR="libtool"' 'AR="ar"' \ - --replace 'ARFLAGS="-o"' 'ARFLAGS="-r"' - ''; - }); - -### Usage 2: pkgs.buildEmscriptenPackage {#usage-2-pkgs.buildemscriptenpackage} - -This `xmlmirror` example features a emscriptenPackage which is defined completely from this context and no `pkgs.zlib.override` is used. - - xmlmirror = pkgs.buildEmscriptenPackage rec { - name = "xmlmirror"; - - buildInputs = [ pkg-config autoconf automake libtool gnumake libxml2 nodejs openjdk json_c ]; - nativeBuildInputs = [ pkg-config zlib ]; - - src = pkgs.fetchgit { - url = "https://gitlab.com/odfplugfest/xmlmirror.git"; - rev = "4fd7e86f7c9526b8f4c1733e5c8b45175860a8fd"; - hash = "sha256-i+QgY+5PYVg5pwhzcDnkfXAznBg3e8sWH2jZtixuWsk="; - }; - - configurePhase = '' - rm -f fastXmlLint.js* - # a fix for ERROR:root:For asm.js, TOTAL_MEMORY must be a multiple of 16MB, was 234217728 - # https://gitlab.com/odfplugfest/xmlmirror/issues/8 - sed -e "s/TOTAL_MEMORY=234217728/TOTAL_MEMORY=268435456/g" -i Makefile.emEnv - # https://github.com/kripken/emscripten/issues/6344 - # https://gitlab.com/odfplugfest/xmlmirror/issues/9 - sed -e "s/\$(JSONC_LDFLAGS) \$(ZLIB_LDFLAGS) \$(LIBXML20_LDFLAGS)/\$(JSONC_LDFLAGS) \$(LIBXML20_LDFLAGS) \$(ZLIB_LDFLAGS) /g" -i Makefile.emEnv - # https://gitlab.com/odfplugfest/xmlmirror/issues/11 - sed -e "s/-o fastXmlLint.js/-s EXTRA_EXPORTED_RUNTIME_METHODS='[\"ccall\", \"cwrap\"]' -o fastXmlLint.js/g" -i Makefile.emEnv - ''; - - buildPhase = '' - HOME=$TMPDIR - make -f Makefile.emEnv - ''; - - outputs = [ "out" "doc" ]; - - installPhase = '' - mkdir -p $out/share - mkdir -p $doc/share/${name} - - cp Demo* $out/share - cp -R codemirror-5.12 $out/share - cp fastXmlLint.js* $out/share - cp *.xsd $out/share - cp *.js $out/share - cp *.xhtml $out/share - cp *.html $out/share - cp *.json $out/share - cp *.rng $out/share - cp README.md $doc/share/${name} - ''; - checkPhase = '' - - ''; - }; - -### Declarative debugging {#declarative-debugging} +## Debugging {#declarative-debugging} Use `nix-shell -I nixpkgs=/some/dir/nixpkgs -A emscriptenPackages.libz` and from there you can go trough the individual steps. This makes it easy to build a good `unit test` or list the files of the project. -- cgit 1.4.1 From 384b1e5b91172cd9a031745266779389f6e31e02 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Mon, 2 Oct 2023 17:07:31 +0300 Subject: docs/javascript/buildNpmPackage: Document bin, man and npm pack behavior --- doc/languages-frameworks/javascript.section.md | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'doc') diff --git a/doc/languages-frameworks/javascript.section.md b/doc/languages-frameworks/javascript.section.md index fb1dd898c8a..861db3679de 100644 --- a/doc/languages-frameworks/javascript.section.md +++ b/doc/languages-frameworks/javascript.section.md @@ -161,6 +161,8 @@ git config --global url."https://github.com/".insteadOf git://github.com/ `buildNpmPackage` allows you to package npm-based projects in Nixpkgs without the use of an auto-generated dependencies file (as used in [node2nix](#javascript-node2nix)). It works by utilizing npm's cache functionality -- creating a reproducible cache that contains the dependencies of a project, and pointing npm to it. +Here's an example: + ```nix { lib, buildNpmPackage, fetchFromGitHub }: @@ -191,6 +193,8 @@ buildNpmPackage rec { } ``` +In the default `installPhase` set by `buildNpmPackage`, it uses `npm pack --json --dry-run` to decide what files to install in `$out/lib/node_modules/$name/`, where `$name` is the `name` string defined in the package's `package.json`. Additionally, the `bin` and `man` keys in the source's `package.json` are used to decide what binaries and manpages are supposed to be installed. If these are not defined, `npm pack` may miss some files, and no binaries will be produced. + #### Arguments {#javascript-buildNpmPackage-arguments} * `npmDepsHash`: The output hash of the dependencies for this project. Can be calculated in advance with [`prefetch-npm-deps`](#javascript-buildNpmPackage-prefetch-npm-deps). -- cgit 1.4.1 From d6521ce1868450a6b3fd6840a391cb213d3d9631 Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Mon, 2 Oct 2023 17:08:40 +0300 Subject: docs/javascript/buildNpmPackage: Document fetchNpmDeps Co-authored-by: Lily Foster --- doc/languages-frameworks/javascript.section.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/languages-frameworks/javascript.section.md b/doc/languages-frameworks/javascript.section.md index 861db3679de..291629e3a71 100644 --- a/doc/languages-frameworks/javascript.section.md +++ b/doc/languages-frameworks/javascript.section.md @@ -211,7 +211,7 @@ In the default `installPhase` set by `buildNpmPackage`, it uses `npm pack --json #### prefetch-npm-deps {#javascript-buildNpmPackage-prefetch-npm-deps} -`prefetch-npm-deps` can calculate the hash of the dependencies of an npm project ahead of time. +`prefetch-npm-deps` is a Nixpkgs package that calculates the hash of the dependencies of an npm project ahead of time. ```console $ ls @@ -221,6 +221,15 @@ $ prefetch-npm-deps package-lock.json sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= ``` +#### fetchNpmDeps {#javascript-buildNpmPackage-fetchNpmDeps} + +`fetchNpmDeps` is a Nix function that requires the following mandatory arguments: + +- `src`: A directory / tarball with `package-lock.json` file +- `hash`: The output hash of the node dependencies defined in `package-lock.json`. + +It returns a derivation with all `package-lock.json` dependencies downloaded into `$out/`, usable as an npm cache. + ### corepack {#javascript-corepack} This package puts the corepack wrappers for pnpm and yarn in your PATH, and they will honor the `packageManager` setting in the `package.json`. -- cgit 1.4.1 From fc96f6d0fdac6ac8e06af95c6ed416cb7c7d4e2e Mon Sep 17 00:00:00 2001 From: Doron Behar Date: Sun, 1 Oct 2023 13:41:42 +0300 Subject: buildNpmPackage: support makeWrapperArgs --- doc/languages-frameworks/javascript.section.md | 1 + .../node/build-npm-package/hooks/npm-install-hook.sh | 12 +++++++++++- 2 files changed, 12 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/languages-frameworks/javascript.section.md b/doc/languages-frameworks/javascript.section.md index 291629e3a71..f35fd83cc59 100644 --- a/doc/languages-frameworks/javascript.section.md +++ b/doc/languages-frameworks/javascript.section.md @@ -208,6 +208,7 @@ In the default `installPhase` set by `buildNpmPackage`, it uses `npm pack --json * `npmBuildFlags`: Flags to pass to `npm run ${npmBuildScript}`. * `npmPackFlags`: Flags to pass to `npm pack`. * `npmPruneFlags`: Flags to pass to `npm prune`. Defaults to the value of `npmInstallFlags`. +* `makeWrapperArgs`: Flags to pass to `makeWrapper`, added to executable calling the generated `.js` with `node` as an interpreter. These scripts are defined in `package.json`. #### prefetch-npm-deps {#javascript-buildNpmPackage-prefetch-npm-deps} diff --git a/pkgs/build-support/node/build-npm-package/hooks/npm-install-hook.sh b/pkgs/build-support/node/build-npm-package/hooks/npm-install-hook.sh index 64ddcbd567f..c5824a6b232 100644 --- a/pkgs/build-support/node/build-npm-package/hooks/npm-install-hook.sh +++ b/pkgs/build-support/node/build-npm-package/hooks/npm-install-hook.sh @@ -16,9 +16,19 @@ npmInstallHook() { cp "${npmWorkspace-.}/$file" "$dest" done < <(@jq@ --raw-output '.[0].files | map(.path) | join("\n")' <<< "$(npm pack --json --dry-run ${npmWorkspace+--workspace=$npmWorkspace} $npmPackFlags "${npmPackFlagsArray[@]}" $npmFlags "${npmFlagsArray[@]}")") + # Based on code from Python's buildPythonPackage wrap.sh script, for + # supporting both the case when makeWrapperArgs is an array and a + # IFS-separated string. + # + # TODO: remove the string branch when __structuredAttrs are used. + if [[ "${makeWrapperArgs+defined}" == "defined" && "$(declare -p makeWrapperArgs)" =~ ^'declare -a makeWrapperArgs=' ]]; then + local -a user_args=("${makeWrapperArgs[@]}") + else + local -a user_args="(${makeWrapperArgs:-})" + fi while IFS=" " read -ra bin; do mkdir -p "$out/bin" - makeWrapper @hostNode@ "$out/bin/${bin[0]}" --add-flags "$packageOut/${bin[1]}" + makeWrapper @hostNode@ "$out/bin/${bin[0]}" --add-flags "$packageOut/${bin[1]}" "${user_args[@]}" done < <(@jq@ --raw-output '(.bin | type) as $typ | if $typ == "string" then .name + " " + .bin elif $typ == "object" then .bin | to_entries | map(.key + " " + .value) | join("\n") -- cgit 1.4.1 From a06e07539eb22de353a615ac50d6ad0f5db1239b Mon Sep 17 00:00:00 2001 From: Vincenzo Mantova <1962985+xworld21@users.noreply.github.com> Date: Sun, 3 Sep 2023 12:02:34 +0100 Subject: texlive: document new texlive.pkgs attribute --- doc/languages-frameworks/texlive.section.md | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'doc') diff --git a/doc/languages-frameworks/texlive.section.md b/doc/languages-frameworks/texlive.section.md index a4c81daa54b..777e94c16f1 100644 --- a/doc/languages-frameworks/texlive.section.md +++ b/doc/languages-frameworks/texlive.section.md @@ -38,6 +38,24 @@ Since release 15.09 there is a new TeX Live packaging that lives entirely under - Note that the wrapper assumes that the result has a chance to be useful. For example, the core executables should be present, as well as some core data files. The supported way of ensuring this is by including some scheme, for example `scheme-basic`, into the combination. +- TeX Live packages are also available under `texlive.pkgs` as derivations with outputs `out`, `tex`, `texdoc`, `texsource`, `tlpkg`, `man`, `info`. They cannot be installed outside of `texlive.combine` but are available for other uses. To repackage a font, for instance, use + + ```nix + stdenvNoCC.mkDerivation rec { + src = texlive.pkgs.iwona; + + inherit (src) pname version; + + installPhase = '' + runHook preInstall + install -Dm644 fonts/opentype/nowacki/iwona/*.otf -t $out/share/fonts/opentype + runHook postInstall + ''; + } + ``` + + See `biber`, `iwona` for complete examples. + ## Custom packages {#sec-language-texlive-custom-packages} You may find that you need to use an external TeX package. A derivation for such package has to provide the contents of the "texmf" directory in its output and provide the appropriate `tlType` attribute (one of `"run"`, `"bin"`, `"doc"`, `"source"`). Dependencies on other TeX packages can be listed in the attribute `tlDeps`. -- cgit 1.4.1 From 10f35ff05df1f3c1f1c2a04f8dcb525950f70e8a Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Fri, 6 Oct 2023 08:09:52 +0000 Subject: meson.setupHook: prefer meson commands over ninja MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Meson now comes with its own set of commands for building, testing, installing etc., that by default wrap around Ninja. The reason to prefer using the Meson commands is that they take additional options (e.g. setting custom timeouts for tests — my motivation for this change). Here, I've modified the Meson setup hook so that Meson's test and install commands will be used instead of Ninja's when Meson's configurePhase is used. This restriction is to avoid starting to run Meson directly when dealing with custom build systems that wrap around Meson, like QEMU's. We don't use meson's compile command, as it just runs ninja, and that's handled fine by the existing Ninja setup hook. Naturally the Meson commands don't support entirely the same set of options that the Ninja ones did, but I checked through Nixpkgs to find any packages using Meson that used any options that wouldn't be picked up by this new system. I only found one, and it was just setting checkTarget = "test", which is the default value for Ninja and has no Meson equivalent (because we directly tell Meson to run the tests rather than going through a generic job system like Ninja). Link: https://github.com/NixOS/nixpkgs/issues/113829 Co-authored-by: Jan Tojnar --- doc/hooks/meson.section.md | 26 +++++++++++++++--- doc/hooks/ninja.section.md | 2 ++ .../tools/build-managers/meson/setup-hook.sh | 31 +++++++++++++++++++--- 3 files changed, 53 insertions(+), 6 deletions(-) (limited to 'doc') diff --git a/doc/hooks/meson.section.md b/doc/hooks/meson.section.md index fd7779e6468..7496def5806 100644 --- a/doc/hooks/meson.section.md +++ b/doc/hooks/meson.section.md @@ -1,16 +1,28 @@ # Meson {#meson} -Overrides the configure phase to run meson to generate Ninja files. To run these files, you should accompany Meson with ninja. By default, `enableParallelBuilding` is enabled as Meson supports parallel building almost everywhere. +Overrides the configure, check, and install phases to run `meson setup`, `meson test`, and `meson install`. + +Meson is a meta-build system so you will need a secondary build system to run the generated build files in build phase. In Nixpkgs context, you will want to accompany Meson with ninja, which provides a [setup hook](#ninja) registering a ninja-based build phase. + +By default, `enableParallelBuilding` is enabled as Meson supports parallel building almost everywhere. ## Variables controlling Meson {#variables-controlling-meson} ### `mesonFlags` {#mesonflags} -Controls the flags passed to meson. +Controls the flags passed to `meson setup`. + +##### `mesonCheckFlags` {#mesoncheckflags} + +Controls the flags passed to `meson test`. + +##### `mesonInstallFlags` {#mesoninstallflags} + +Controls the flags passed to `meson install`. ### `mesonBuildType` {#mesonbuildtype} -Which [`--buildtype`](https://mesonbuild.com/Builtin-options.html#core-options) to pass to Meson. We default to `plain`. +Which [`--buildtype`](https://mesonbuild.com/Builtin-options.html#core-options) to pass to `meson setup`. We default to `plain`. ### `mesonAutoFeatures` {#mesonautofeatures} @@ -23,3 +35,11 @@ What value to set [`-Dwrap_mode=`](https://mesonbuild.com/Builtin-options.html#c ### `dontUseMesonConfigure` {#dontusemesonconfigure} Disables using Meson’s `configurePhase`. + +##### `dontUseMesonCheck` {#dontusemesoncheck} + +Disables using Meson’s `checkPhase`. + +##### `dontUseMesonInstall` {#dontusemesoninstall} + +Disables using Meson’s `installPhase`. diff --git a/doc/hooks/ninja.section.md b/doc/hooks/ninja.section.md index 4b0e33feb5c..bbc94810880 100644 --- a/doc/hooks/ninja.section.md +++ b/doc/hooks/ninja.section.md @@ -1,3 +1,5 @@ # ninja {#ninja} Overrides the build, install, and check phase to run ninja instead of make. You can disable this behavior with the `dontUseNinjaBuild`, `dontUseNinjaInstall`, and `dontUseNinjaCheck`, respectively. Parallel building is enabled by default in Ninja. + +Note that if the [Meson setup hook](#meson) is also active, Ninja's install and check phases will be disabled in favor of Meson's. diff --git a/pkgs/development/tools/build-managers/meson/setup-hook.sh b/pkgs/development/tools/build-managers/meson/setup-hook.sh index 6305a405af2..21faac529c6 100644 --- a/pkgs/development/tools/build-managers/meson/setup-hook.sh +++ b/pkgs/development/tools/build-managers/meson/setup-hook.sh @@ -28,14 +28,39 @@ mesonConfigurePhase() { echo "meson: enabled parallel building" fi - if ! [[ -v enableParallelInstalling ]]; then - enableParallelInstalling=1 - echo "meson: enabled parallel installing" + if [[ ${checkPhase-ninjaCheckPhase} = ninjaCheckPhase && -z $dontUseMesonCheck ]]; then + checkPhase=mesonCheckPhase + fi + if [[ ${installPhase-ninjaInstallPhase} = ninjaInstallPhase && -z $dontUseMesonInstall ]]; then + installPhase=mesonInstallPhase fi runHook postConfigure } +mesonCheckPhase() { + runHook preCheck + + local flagsArray=($mesonCheckFlags "${mesonCheckFlagsArray[@]}") + + echoCmd 'check flags' "${flagsArray[@]}" + meson test --no-rebuild "${flagsArray[@]}" + + runHook postCheck +} + +mesonInstallPhase() { + runHook preInstall + + # shellcheck disable=SC2086 + local flagsArray=($mesonInstallFlags "${mesonInstallFlagsArray[@]}") + + echoCmd 'install flags' "${flagsArray[@]}" + meson install --no-rebuild "${flagsArray[@]}" + + runHook postInstall +} + if [ -z "${dontUseMesonConfigure-}" -a -z "${configurePhase-}" ]; then setOutputFlags= configurePhase=mesonConfigurePhase -- cgit 1.4.1 From 61fa1255f86bd12d81f81dc93391ee7365059647 Mon Sep 17 00:00:00 2001 From: Valentin Gagarin Date: Mon, 9 Oct 2023 23:57:03 +0200 Subject: link to documentation on IFD in the Nix manual --- doc/languages-frameworks/rust.section.md | 2 +- lib/fileset/README.md | 2 +- pkgs/README.md | 12 ++---------- 3 files changed, 4 insertions(+), 12 deletions(-) (limited to 'doc') diff --git a/doc/languages-frameworks/rust.section.md b/doc/languages-frameworks/rust.section.md index 67e23cc74d4..3bd8e1c7651 100644 --- a/doc/languages-frameworks/rust.section.md +++ b/doc/languages-frameworks/rust.section.md @@ -817,7 +817,7 @@ $ cargo test ## Using community maintained Rust toolchains {#using-community-maintained-rust-toolchains} ::: {.note} -Note: The following projects cannot be used within nixpkgs since [IFD](#ssec-import-from-derivation) is disallowed. +The following projects cannot be used within Nixpkgs since [Import From Derivation](https://nixos.org/manual/nix/unstable/language/import-from-derivation) (IFD) is disallowed in Nixpkgs. To package things that require Rust nightly, `RUSTC_BOOTSTRAP = true;` can sometimes be used as a hack. ::: diff --git a/lib/fileset/README.md b/lib/fileset/README.md index 1aed7efec4c..d2215803692 100644 --- a/lib/fileset/README.md +++ b/lib/fileset/README.md @@ -176,7 +176,7 @@ File sets do not support Nix store paths in strings such as `"/nix/store/...-sou Arguments: - (+) Such paths are usually produced by derivations, which means `toSource` would either: - - Require IFD if `builtins.path` is used as the underlying primitive + - Require [Import From Derivation](https://nixos.org/manual/nix/unstable/language/import-from-derivation) (IFD) if `builtins.path` is used as the underlying primitive - Require importing the entire `root` into the store such that derivations can be used to do the filtering - (+) The convenient path coercion like `union ./foo ./bar` wouldn't work for absolute paths, requiring more verbose alternate interfaces: - `let root = "/nix/store/...-source"; in union "${root}/foo" "${root}/bar"` diff --git a/pkgs/README.md b/pkgs/README.md index 5cc70247581..bfa7e611255 100644 --- a/pkgs/README.md +++ b/pkgs/README.md @@ -368,19 +368,11 @@ See the Nixpkgs manual for more details on [standard meta-attributes](https://ni ### Import From Derivation -Import From Derivation (IFD) is disallowed in Nixpkgs for performance reasons: -[Hydra] evaluates the entire package set, and sequential builds during evaluation would increase evaluation times to become impractical. - -[Hydra]: https://github.com/NixOS/hydra +[Import From Derivation](https://nixos.org/manual/nix/unstable/language/import-from-derivation) (IFD) is disallowed in Nixpkgs for performance reasons: +[Hydra](https://github.com/NixOS/hydra) evaluates the entire package set, and sequential builds during evaluation would increase evaluation times to become impractical. Import From Derivation can be worked around in some cases by committing generated intermediate files to version control and reading those instead. - - -See also [NixOS Wiki: Import From Derivation]. - -[NixOS Wiki: Import From Derivation]: https://nixos.wiki/wiki/Import_From_Derivation - ## Sources ### Fetching Sources -- cgit 1.4.1 From 508c310222b7f07ad9cf6752fdd5c1af59a37061 Mon Sep 17 00:00:00 2001 From: Robert Hensing Date: Thu, 12 Oct 2023 22:59:19 +0200 Subject: darwin.linux-builder: Expose nixosConfig and nixosOptions attributes I chose not to do nixos.{config, options} because that would make it look too much like a configuration object, which it is not. A configuration object I would define as for example the result of calling NixOS, an attrset with `_type = "configuration";`. Recreating a configuration object without evalModules is quite feasible but not guaranteed to be correct, and not maintainable. --- doc/builders/special/darwin-builder.section.md | 14 ++++++++++++++ nixos/modules/profiles/macos-builder.nix | 7 ++++++- 2 files changed, 20 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/builders/special/darwin-builder.section.md b/doc/builders/special/darwin-builder.section.md index 13d01a0e3af..e37fabe01a3 100644 --- a/doc/builders/special/darwin-builder.section.md +++ b/doc/builders/special/darwin-builder.section.md @@ -157,3 +157,17 @@ in the example below and rebuild. You may make any other changes to your VM in this attribute set. For example, you could enable Docker or X11 forwarding to your Darwin host. +## Troubleshooting the generated configuration {#sec-darwin-builder-troubleshoot} + +The `linux-builder` package exposes the attributes `nixosConfig` and `nixosOptions` that allow you to inspect the generated NixOS configuration in the `nix repl`. For example: + +``` +$ nix repl --file ~/src/nixpkgs --argstr system aarch64-darwin + +nix-repl> darwin.linux-builder.nixosConfig.nix.package +«derivation /nix/store/...-nix-2.17.0.drv» + +nix-repl> :p darwin.linux-builder.nixosOptions.virtualisation.memorySize.definitionsWithLocations +[ { file = "/home/user/src/nixpkgs/nixos/modules/profiles/macos-builder.nix"; value = 3072; } ] + +``` diff --git a/nixos/modules/profiles/macos-builder.nix b/nixos/modules/profiles/macos-builder.nix index f36b8e70fd3..d48afed18f7 100644 --- a/nixos/modules/profiles/macos-builder.nix +++ b/nixos/modules/profiles/macos-builder.nix @@ -1,4 +1,4 @@ -{ config, lib, ... }: +{ config, lib, options, ... }: let keysDirectory = "/var/keys"; @@ -167,6 +167,11 @@ in meta = (old.meta or { }) // { platforms = lib.platforms.darwin; }; + passthru = (old.passthru or { }) // { + # Let users in the repl inspect the config + nixosConfig = config; + nixosOptions = options; + }; }); system = { -- cgit 1.4.1 From b289b43bf8cdbfdf82dd39f62e5f8f81f3aa7b41 Mon Sep 17 00:00:00 2001 From: matthewcroughan Date: Fri, 13 Oct 2023 10:32:36 +0100 Subject: fetchFromBittorrent: init Adds a basic FOD Fetcher for Bittorrent that uses Transmission as a client Co-authored-by: Robert Hensing --- doc/builders/fetchers.chapter.md | 23 ++++++++++ pkgs/build-support/fetchbittorrent/default.nix | 60 ++++++++++++++++++++++++++ pkgs/build-support/fetchbittorrent/tests.nix | 25 +++++++++++ pkgs/test/default.nix | 1 + pkgs/top-level/all-packages.nix | 2 + 5 files changed, 111 insertions(+) create mode 100644 pkgs/build-support/fetchbittorrent/default.nix create mode 100644 pkgs/build-support/fetchbittorrent/tests.nix (limited to 'doc') diff --git a/doc/builders/fetchers.chapter.md b/doc/builders/fetchers.chapter.md index 75a261db8dc..ba7b1b19012 100644 --- a/doc/builders/fetchers.chapter.md +++ b/doc/builders/fetchers.chapter.md @@ -243,3 +243,26 @@ or *** ``` +## `fetchFromBittorrent` {#fetchfrombittorrent} + +`fetchFromBittorrent` expects two arguments. `url` which can either be a Magnet URI (Magnet Link) such as `magnet:?xt=urn:btih:dd8255ecdc7ca55fb0bbf81323d87062db1f6d1c` or an HTTP URL pointing to a `.torrent` file. It can also take a `config` argument which will craft a `settings.json` configuration file and give it to `transmission`, the underlying program that is performing the fetch. The available config options for `transmission` can be found [here](https://github.com/transmission/transmission/blob/main/docs/Editing-Configuration-Files.md#options) + +``` +{ fetchFromBittorrent }: + +fetchFromBittorrent { + config = { peer-limit-global = 100; }; + url = "magnet:?xt=urn:btih:dd8255ecdc7ca55fb0bbf81323d87062db1f6d1c"; + sha256 = ""; +} +``` + +### Parameters {#fetchfrombittorrent-parameters} + +- `url`: Magnet URI (Magnet Link) such as `magnet:?xt=urn:btih:dd8255ecdc7ca55fb0bbf81323d87062db1f6d1c` or an HTTP URL pointing to a `.torrent` file. + +- `backend`: Which bittorrent program to use. Default: `"transmission"`. Valid values are `"rqbit"` or `"transmission"`. These are the two most suitable torrent clients for fetching in a fixed-output derivation at the time of writing, as they can be easily exited after usage. `rqbit` is written in Rust and has a smaller closure size than `transmission`, and the performance and peer discovery properties differs between these clients, requiring experimentation to decide upon which is the best. + +- `config`: When using `transmission` as the `backend`, a json configuration can + be supplied to transmission. Refer to the [upstream documentation](https://github.com/transmission/transmission/blob/main/docs/Editing-Configuration-Files.md) for information on how to configure. + diff --git a/pkgs/build-support/fetchbittorrent/default.nix b/pkgs/build-support/fetchbittorrent/default.nix new file mode 100644 index 00000000000..916c7e7d8c9 --- /dev/null +++ b/pkgs/build-support/fetchbittorrent/default.nix @@ -0,0 +1,60 @@ +{ lib, runCommand, transmission_noSystemd, rqbit, writeShellScript, formats, cacert, rsync }: +let + urlRegexp = ''.*xt=urn:bt[im]h:([^&]{64}|[^&]{40}).*''; +in +{ url +, name ? + if (builtins.match urlRegexp url) == null then + "bittorrent" + else + "bittorrent-" + builtins.head (builtins.match urlRegexp url) +, config ? if (backend == "transmission") then { } else throw "json config for configuring fetchFromBitorrent only works with the transmission backend" +, hash +, backend ? "transmission" +, recursiveHash ? true +, postFetch ? "" +, postUnpack ? "" +}: +let + afterSuccess = writeShellScript "fetch-bittorrent-done.sh" '' + ${postUnpack} + # Flatten the directory, so that only the torrent contents are in $out, not + # the folder name + shopt -s dotglob + mv -v $downloadedDirectory/*/* $out + rm -v -rf $downloadedDirectory + unset downloadedDirectory + ${postFetch} + kill $PPID + ''; + jsonConfig = (formats.json {}).generate "jsonConfig" config; +in +runCommand name { + nativeBuildInputs = [ cacert ] ++ (if (backend == "transmission" ) then [ transmission_noSystemd ] else if (backend == "rqbit") then [ rqbit ] else throw "rqbit or transmission are the only available backends for fetchbittorrent"); + outputHashAlgo = if hash != "" then null else "sha256"; + outputHash = hash; + outputHashMode = if recursiveHash then "recursive" else "flat"; + + # url will be written to the derivation, meaning it can be parsed and utilized + # by external tools, such as tools that may want to seed fetchBittorrent calls + # in nixpkgs + inherit url; +} +(if (backend == "transmission") then '' + export HOME=$TMP + export downloadedDirectory=$out/downloadedDirectory + mkdir -p $downloadedDirectory + mkdir -p $HOME/.config/transmission + cp ${jsonConfig} $HOME/.config/transmission/settings.json + function handleChild { + # This detects failures and logs the contents of the transmission fetch + find $out + exit 0 + } + trap handleChild CHLD + transmission-cli --port $(shuf -n 1 -i 49152-65535) --portmap --finish ${afterSuccess} --download-dir $downloadedDirectory --config-dir "$HOME"/.config/transmission "$url" +'' else +'' + export HOME=$TMP + rqbit --disable-dht-persistence --http-api-listen-addr "127.0.0.1:$(shuf -n 1 -i 49152-65535)" download -o $out --exit-on-finish "$url" +'') diff --git a/pkgs/build-support/fetchbittorrent/tests.nix b/pkgs/build-support/fetchbittorrent/tests.nix new file mode 100644 index 00000000000..fce1b3933a7 --- /dev/null +++ b/pkgs/build-support/fetchbittorrent/tests.nix @@ -0,0 +1,25 @@ +{ testers, fetchFromBittorrent, ... }: + +{ + http-link = testers.invalidateFetcherByDrvHash fetchFromBittorrent { + url = "https://webtorrent.io/torrents/wired-cd.torrent"; + hash = "sha256-OCsC22WuanqoN6lPv5wDT5ZxPcEHDpZ1EgXGvz1SDYo="; + backend = "transmission"; + }; + magnet-link = testers.invalidateFetcherByDrvHash fetchFromBittorrent { + url = "magnet:?xt=urn:btih:a88fda5954e89178c372716a6a78b8180ed4dad3&dn=The+WIRED+CD+-+Rip.+Sample.+Mash.+Share&tr=udp%3A%2F%2Fexplodie.org%3A6969&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.empire-js.us%3A1337&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2F&xs=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fwired-cd.torrent"; + hash = "sha256-OCsC22WuanqoN6lPv5wDT5ZxPcEHDpZ1EgXGvz1SDYo="; + backend = "transmission"; + }; + http-link-rqbit = testers.invalidateFetcherByDrvHash fetchFromBittorrent { + url = "https://webtorrent.io/torrents/wired-cd.torrent"; + hash = "sha256-OCsC22WuanqoN6lPv5wDT5ZxPcEHDpZ1EgXGvz1SDYo="; + backend = "rqbit"; + }; + magnet-link-rqbit = testers.invalidateFetcherByDrvHash fetchFromBittorrent { + url = "magnet:?xt=urn:btih:a88fda5954e89178c372716a6a78b8180ed4dad3&dn=The+WIRED+CD+-+Rip.+Sample.+Mash.+Share&tr=udp%3A%2F%2Fexplodie.org%3A6969&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.empire-js.us%3A1337&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2F&xs=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fwired-cd.torrent"; + hash = "sha256-OCsC22WuanqoN6lPv5wDT5ZxPcEHDpZ1EgXGvz1SDYo="; + backend = "rqbit"; + }; +} + diff --git a/pkgs/test/default.nix b/pkgs/test/default.nix index 2b1768515ba..4cc9ecc0db3 100644 --- a/pkgs/test/default.nix +++ b/pkgs/test/default.nix @@ -104,6 +104,7 @@ with pkgs; cc-multilib-clang = callPackage ./cc-wrapper/multilib.nix { stdenv = clangMultiStdenv; }; fetchurl = callPackages ../build-support/fetchurl/tests.nix { }; + fetchFromBittorrent = callPackages ../build-support/fetchbittorrent/tests.nix { }; fetchpatch = callPackages ../build-support/fetchpatch/tests.nix { }; fetchpatch2 = callPackages ../build-support/fetchpatch/tests.nix { fetchpatch = fetchpatch2; }; fetchDebianPatch = callPackages ../build-support/fetchdebianpatch/tests.nix { }; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 5ea92e283ab..213127a4d31 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1116,6 +1116,8 @@ with pkgs; fetchs3 = callPackage ../build-support/fetchs3 { }; + fetchFromBittorrent = callPackage ../build-support/fetchbittorrent { }; + fetchsvn = if stdenv.buildPlatform != stdenv.hostPlatform # hack around splicing being crummy with things that (correctly) don't eval. then buildPackages.fetchsvn -- cgit 1.4.1 From a8d5d2f2075597f403c9d1af62ff7994fee49fc1 Mon Sep 17 00:00:00 2001 From: Yueh-Shun Li Date: Fri, 20 Oct 2023 19:43:24 +0800 Subject: doc: generate documentation for lib.customisation --- doc/default.nix | 1 + 1 file changed, 1 insertion(+) (limited to 'doc') diff --git a/doc/default.nix b/doc/default.nix index 18e12c1a8ac..61bbd2ba8dc 100644 --- a/doc/default.nix +++ b/doc/default.nix @@ -23,6 +23,7 @@ let { name = "sources"; description = "source filtering functions"; } { name = "cli"; description = "command-line serialization functions"; } { name = "gvariant"; description = "GVariant formatted string serialization functions"; } + { name = "customisation"; description = "Functions to customise (derivation-related) functions, derivatons, or attribute sets"; } ]; }; -- cgit 1.4.1 From 6298ac27745cbab2dd3895c2c25ad3a795310f78 Mon Sep 17 00:00:00 2001 From: hacker1024 Date: Sat, 21 Oct 2023 22:30:23 +1100 Subject: buildDartApplication: Use package override mechanism from buildFlutterApplication This allows Dart applications to benefit from the package override system, which is useful for things like FFI dependencies. --- doc/languages-frameworks/dart.section.md | 7 +- .../dart/build-dart-application/default.nix | 102 ++- .../compilers/dart/package-overrides/default.nix | 3 + pkgs/development/tools/misc/dart-sass/default.nix | 1 + pkgs/development/tools/misc/dart-sass/deps.json | 930 +++++++++++++++++++++ pkgs/development/tools/protoc-gen-dart/default.nix | 1 + pkgs/development/tools/protoc-gen-dart/deps.json | 549 ++++++++++++ pkgs/tools/misc/domine/default.nix | 2 +- pkgs/tools/misc/domine/deps.json | 190 +++++ 9 files changed, 1752 insertions(+), 33 deletions(-) create mode 100644 pkgs/development/compilers/dart/package-overrides/default.nix create mode 100644 pkgs/development/tools/misc/dart-sass/deps.json create mode 100644 pkgs/development/tools/protoc-gen-dart/deps.json create mode 100644 pkgs/tools/misc/domine/deps.json (limited to 'doc') diff --git a/doc/languages-frameworks/dart.section.md b/doc/languages-frameworks/dart.section.md index b00327b78eb..8d9c062f422 100644 --- a/doc/languages-frameworks/dart.section.md +++ b/doc/languages-frameworks/dart.section.md @@ -12,6 +12,8 @@ If you are packaging a Flutter desktop application, use [`buildFlutterApplicatio If the upstream source is missing a `pubspec.lock` file, you'll have to vendor one and specify it using `pubspecLockFile`. If it is needed, one will be generated for you and printed when attempting to build the derivation. +The `depsListFile` must always be provided when packaging in Nixpkgs. It will be generated and printed if the derivation is attempted to be built without one. Alternatively, `autoDepsList` may be set to `true` only when outside of Nixpkgs, as it relies on import-from-derivation. + The `dart` commands run can be overridden through `pubGetScript` and `dartCompileCommand`, you can also add flags using `dartCompileFlags` or `dartJitFlags`. Dart supports multiple [outputs types](https://dart.dev/tools/dart-compile#types-of-output), you can choose between them using `dartOutputType` (defaults to `exe`). If you want to override the binaries path or the source path they come from, you can use `dartEntryPoints`. Outputs that require a runtime will automatically be wrapped with the relevant runtime (`dartaotruntime` for `aot-snapshot`, `dart run` for `jit-snapshot` and `kernel`, `node` for `js`), this can be overridden through `dartRuntimeCommand`. @@ -31,6 +33,7 @@ buildDartApplication rec { }; pubspecLockFile = ./pubspec.lock; + depsListFile = ./deps.json; vendorHash = "sha256-Atm7zfnDambN/BmmUf4BG0yUz/y6xWzf0reDw3Ad41s="; } ``` @@ -39,9 +42,7 @@ buildDartApplication rec { The function `buildFlutterApplication` builds Flutter applications. -The deps.json file must always be provided when packaging in Nixpkgs. It will be generated and printed if the derivation is attempted to be built without one. Alternatively, `autoDepsList` may be set to `true` when outside of Nixpkgs, as it relies on import-from-derivation. - -A `pubspec.lock` file must be available. See the [Dart documentation](#ssec-dart-applications) for more details. +See the [Dart documentation](#ssec-dart-applications) for more details on required files and arguments. ```nix { flutter, fetchFromGitHub }: diff --git a/pkgs/build-support/dart/build-dart-application/default.nix b/pkgs/build-support/dart/build-dart-application/default.nix index 2246c5634d2..6992c79a37e 100644 --- a/pkgs/build-support/dart/build-dart-application/default.nix +++ b/pkgs/build-support/dart/build-dart-application/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchDartDeps, runCommand, writeText, dartHooks, makeWrapper, dart, cacert, nodejs, darwin }: +{ lib, stdenv, callPackage, fetchDartDeps, runCommand, writeText, dartHooks, makeWrapper, dart, cacert, nodejs, darwin, jq }: { pubGetScript ? "dart pub get" @@ -24,6 +24,9 @@ else null , runtimeDependencies ? [ ] +, customPackageOverrides ? { } +, autoDepsList ? false +, depsListFile ? null , pubspecLockFile ? null , vendorHash ? "" , ... @@ -41,37 +44,78 @@ let inherit pubGetScript vendorHash pubspecLockFile; }; inherit (dartHooks.override { inherit dart; }) dartConfigHook dartBuildHook dartInstallHook dartFixupHook; -in -assert !(builtins.isString dartOutputType && dartOutputType != "") -> -throw "dartOutputType must be a non-empty string"; -stdenv.mkDerivation (args // { - inherit pubGetScript dartCompileCommand dartOutputType dartRuntimeCommand - dartCompileFlags dartJitFlags runtimeDependencies; - dartEntryPoints = - if (dartEntryPoints != null) - then writeText "entrypoints.json" (builtins.toJSON dartEntryPoints) - else null; + baseDerivation = stdenv.mkDerivation (finalAttrs: args // { + inherit pubGetScript dartCompileCommand dartOutputType dartRuntimeCommand + dartCompileFlags dartJitFlags runtimeDependencies; + + dartEntryPoints = + if (dartEntryPoints != null) + then writeText "entrypoints.json" (builtins.toJSON dartEntryPoints) + else null; + + runtimeDependencyLibraryPath = lib.makeLibraryPath finalAttrs.runtimeDependencies; - runtimeDependencyLibraryPath = lib.makeLibraryPath runtimeDependencies; + nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ + dart + dartDeps + dartConfigHook + dartBuildHook + dartInstallHook + dartFixupHook + makeWrapper + jq + ] ++ lib.optionals stdenv.isDarwin [ + darwin.sigtool + ]; - nativeBuildInputs = (args.nativeBuildInputs or [ ]) ++ [ - dart - dartDeps - dartConfigHook - dartBuildHook - dartInstallHook - dartFixupHook - makeWrapper - ] ++ lib.optionals stdenv.isDarwin [ - darwin.sigtool - ]; + preUnpack = '' + ${lib.optionalString (!autoDepsList) '' + if ! { [ '${lib.boolToString (depsListFile != null)}' = 'true' ] ${lib.optionalString (depsListFile != null) "&& cmp -s <(jq -Sc . '${depsListFile}') <(jq -Sc . '${finalAttrs.passthru.dartDeps.depsListFile}')"}; }; then + echo 1>&2 -e '\nThe dependency list file was either not given or differs from the expected result.' \ + '\nPlease choose one of the following solutions:' \ + '\n - Duplicate the following file and pass it to the depsListFile argument.' \ + '\n ${finalAttrs.passthru.dartDeps.depsListFile}' \ + '\n - Set autoDepsList to true (not supported by Hydra or permitted in Nixpkgs)'. + exit 1 + fi + ''} + ${args.preUnpack or ""} + ''; + + # When stripping, it seems some ELF information is lost and the dart VM cli + # runs instead of the expected program. Don't strip if it's an exe output. + dontStrip = args.dontStrip or (dartOutputType == "exe"); - # When stripping, it seems some ELF information is lost and the dart VM cli - # runs instead of the expected program. Don't strip if it's an exe output. - dontStrip = args.dontStrip or (dartOutputType == "exe"); + passthru = { inherit dartDeps; } // (args.passthru or { }); - passthru = { inherit dartDeps; } // (args.passthru or { }); + meta = (args.meta or { }) // { platforms = args.meta.platforms or dart.meta.platforms; }; + }); - meta = (args.meta or { }) // { platforms = args.meta.platforms or dart.meta.platforms; }; -}) + packageOverrideRepository = (callPackage ../../../development/compilers/dart/package-overrides { }) // customPackageOverrides; + productPackages = builtins.filter (package: package.kind != "dev") + (if autoDepsList + then lib.importJSON dartDeps.depsListFile + else + if depsListFile == null + then [ ] + else lib.importJSON depsListFile); +in +assert !(builtins.isString dartOutputType && dartOutputType != "") -> +throw "dartOutputType must be a non-empty string"; +builtins.foldl' + (prev: package: + if packageOverrideRepository ? ${package.name} + then + prev.overrideAttrs + (packageOverrideRepository.${package.name} { + inherit (package) + name + version + kind + source + dependencies; + }) + else prev) + baseDerivation + productPackages diff --git a/pkgs/development/compilers/dart/package-overrides/default.nix b/pkgs/development/compilers/dart/package-overrides/default.nix new file mode 100644 index 00000000000..a7237fe1cfa --- /dev/null +++ b/pkgs/development/compilers/dart/package-overrides/default.nix @@ -0,0 +1,3 @@ +{ callPackage }: + +{ } diff --git a/pkgs/development/tools/misc/dart-sass/default.nix b/pkgs/development/tools/misc/dart-sass/default.nix index a137f5b21ba..6737e791f95 100644 --- a/pkgs/development/tools/misc/dart-sass/default.nix +++ b/pkgs/development/tools/misc/dart-sass/default.nix @@ -29,6 +29,7 @@ buildDartApplication rec { }; pubspecLockFile = ./pubspec.lock; + depsListFile = ./deps.json; vendorHash = "sha256-PQvY+qFXovSXH5wuc60wCrt5RiooKcaGKYzbjKSvqso="; nativeBuildInputs = [ diff --git a/pkgs/development/tools/misc/dart-sass/deps.json b/pkgs/development/tools/misc/dart-sass/deps.json new file mode 100644 index 00000000000..75548f50d90 --- /dev/null +++ b/pkgs/development/tools/misc/dart-sass/deps.json @@ -0,0 +1,930 @@ +[ + { + "name": "sass", + "version": "1.69.0", + "kind": "root", + "source": "root", + "dependencies": [ + "args", + "async", + "charcode", + "cli_pkg", + "cli_repl", + "collection", + "http", + "js", + "meta", + "native_synchronization", + "node_interop", + "package_config", + "path", + "pool", + "protobuf", + "pub_semver", + "source_maps", + "source_span", + "stack_trace", + "stream_channel", + "stream_transform", + "string_scanner", + "term_glyph", + "typed_data", + "watcher", + "analyzer", + "archive", + "crypto", + "dart_style", + "dartdoc", + "grinder", + "node_preamble", + "lints", + "protoc_plugin", + "pub_api_client", + "pubspec_parse", + "test", + "test_descriptor", + "test_process", + "yaml", + "cli_util" + ] + }, + { + "name": "cli_util", + "version": "0.4.0", + "kind": "dev", + "source": "hosted", + "dependencies": [ + "meta", + "path" + ] + }, + { + "name": "path", + "version": "1.8.3", + "kind": "direct", + "source": "hosted", + "dependencies": [] + }, + { + "name": "meta", + "version": "1.10.0", + "kind": "direct", + "source": "hosted", + "dependencies": [] + }, + { + "name": "yaml", + "version": "3.1.2", + "kind": "dev", + "source": "hosted", + "dependencies": [ + "collection", + "source_span", + "string_scanner" + ] + }, + { + "name": "string_scanner", + "version": "1.2.0", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "source_span" + ] + }, + { + "name": "source_span", + "version": "1.10.0", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "collection", + "path", + "term_glyph" + ] + }, + { + "name": "term_glyph", + "version": "1.2.1", + "kind": "direct", + "source": "hosted", + "dependencies": [] + }, + { + "name": "collection", + "version": "1.18.0", + "kind": "direct", + "source": "hosted", + "dependencies": [] + }, + { + "name": "test_process", + "version": "2.1.0", + "kind": "dev", + "source": "hosted", + "dependencies": [ + "async", + "meta", + "path", + "test" + ] + }, + { + "name": "test", + "version": "1.24.6", + "kind": "dev", + "source": "hosted", + "dependencies": [ + "analyzer", + "async", + "boolean_selector", + "collection", + "coverage", + "http_multi_server", + "io", + "js", + "matcher", + "node_preamble", + "package_config", + "path", + "pool", + "shelf", + "shelf_packages_handler", + "shelf_static", + "shelf_web_socket", + "source_span", + "stack_trace", + "stream_channel", + "test_api", + "test_core", + "typed_data", + "web_socket_channel", + "webkit_inspection_protocol", + "yaml" + ] + }, + { + "name": "webkit_inspection_protocol", + "version": "1.2.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "logging" + ] + }, + { + "name": "logging", + "version": "1.2.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "web_socket_channel", + "version": "2.4.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async", + "crypto", + "stream_channel" + ] + }, + { + "name": "stream_channel", + "version": "2.1.2", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "async" + ] + }, + { + "name": "async", + "version": "2.11.0", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "collection", + "meta" + ] + }, + { + "name": "crypto", + "version": "3.0.3", + "kind": "dev", + "source": "hosted", + "dependencies": [ + "typed_data" + ] + }, + { + "name": "typed_data", + "version": "1.3.2", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "collection" + ] + }, + { + "name": "test_core", + "version": "0.5.6", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "analyzer", + "args", + "async", + "boolean_selector", + "collection", + "coverage", + "frontend_server_client", + "glob", + "io", + "meta", + "package_config", + "path", + "pool", + "source_map_stack_trace", + "source_maps", + "source_span", + "stack_trace", + "stream_channel", + "test_api", + "vm_service", + "yaml" + ] + }, + { + "name": "vm_service", + "version": "11.10.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "test_api", + "version": "0.6.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async", + "boolean_selector", + "collection", + "meta", + "source_span", + "stack_trace", + "stream_channel", + "string_scanner", + "term_glyph" + ] + }, + { + "name": "stack_trace", + "version": "1.11.1", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "path" + ] + }, + { + "name": "boolean_selector", + "version": "2.1.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "source_span", + "string_scanner" + ] + }, + { + "name": "source_maps", + "version": "0.10.12", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "source_span" + ] + }, + { + "name": "source_map_stack_trace", + "version": "2.1.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "path", + "source_maps", + "stack_trace" + ] + }, + { + "name": "pool", + "version": "1.5.1", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "async", + "stack_trace" + ] + }, + { + "name": "package_config", + "version": "2.1.0", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "path" + ] + }, + { + "name": "io", + "version": "1.0.4", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "meta", + "path", + "string_scanner" + ] + }, + { + "name": "glob", + "version": "2.1.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async", + "collection", + "file", + "path", + "string_scanner" + ] + }, + { + "name": "file", + "version": "7.0.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "meta", + "path" + ] + }, + { + "name": "frontend_server_client", + "version": "3.2.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async", + "path" + ] + }, + { + "name": "coverage", + "version": "1.6.3", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "args", + "logging", + "package_config", + "path", + "source_maps", + "stack_trace", + "vm_service" + ] + }, + { + "name": "args", + "version": "2.4.2", + "kind": "direct", + "source": "hosted", + "dependencies": [] + }, + { + "name": "analyzer", + "version": "5.13.0", + "kind": "dev", + "source": "hosted", + "dependencies": [ + "_fe_analyzer_shared", + "collection", + "convert", + "crypto", + "glob", + "meta", + "package_config", + "path", + "pub_semver", + "source_span", + "watcher", + "yaml" + ] + }, + { + "name": "watcher", + "version": "1.1.0", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "async", + "path" + ] + }, + { + "name": "pub_semver", + "version": "2.1.4", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "collection", + "meta" + ] + }, + { + "name": "convert", + "version": "3.1.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "typed_data" + ] + }, + { + "name": "_fe_analyzer_shared", + "version": "61.0.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "meta" + ] + }, + { + "name": "shelf_web_socket", + "version": "1.0.4", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "shelf", + "stream_channel", + "web_socket_channel" + ] + }, + { + "name": "shelf", + "version": "1.4.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async", + "collection", + "http_parser", + "path", + "stack_trace", + "stream_channel" + ] + }, + { + "name": "http_parser", + "version": "4.0.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection", + "source_span", + "string_scanner", + "typed_data" + ] + }, + { + "name": "shelf_static", + "version": "1.1.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "convert", + "http_parser", + "mime", + "path", + "shelf" + ] + }, + { + "name": "mime", + "version": "1.0.4", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "shelf_packages_handler", + "version": "3.0.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "path", + "shelf", + "shelf_static" + ] + }, + { + "name": "node_preamble", + "version": "2.0.2", + "kind": "dev", + "source": "hosted", + "dependencies": [] + }, + { + "name": "matcher", + "version": "0.12.16", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async", + "meta", + "stack_trace", + "term_glyph", + "test_api" + ] + }, + { + "name": "js", + "version": "0.6.7", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "meta" + ] + }, + { + "name": "http_multi_server", + "version": "3.2.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async" + ] + }, + { + "name": "test_descriptor", + "version": "2.0.1", + "kind": "dev", + "source": "hosted", + "dependencies": [ + "async", + "collection", + "matcher", + "meta", + "path", + "term_glyph", + "test" + ] + }, + { + "name": "pubspec_parse", + "version": "1.2.3", + "kind": "dev", + "source": "hosted", + "dependencies": [ + "checked_yaml", + "collection", + "json_annotation", + "pub_semver", + "yaml" + ] + }, + { + "name": "json_annotation", + "version": "4.8.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "meta" + ] + }, + { + "name": "checked_yaml", + "version": "2.0.3", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "json_annotation", + "source_span", + "yaml" + ] + }, + { + "name": "pub_api_client", + "version": "2.6.0", + "kind": "dev", + "source": "hosted", + "dependencies": [ + "collection", + "http", + "oauth2", + "path", + "pubspec" + ] + }, + { + "name": "pubspec", + "version": "2.3.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "path", + "pub_semver", + "yaml", + "uri" + ] + }, + { + "name": "uri", + "version": "1.0.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "matcher", + "quiver" + ] + }, + { + "name": "quiver", + "version": "3.2.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "matcher" + ] + }, + { + "name": "oauth2", + "version": "2.0.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection", + "crypto", + "http", + "http_parser" + ] + }, + { + "name": "http", + "version": "1.1.0", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "async", + "http_parser", + "meta" + ] + }, + { + "name": "protoc_plugin", + "version": "21.1.1", + "kind": "dev", + "source": "hosted", + "dependencies": [ + "fixnum", + "path", + "protobuf" + ] + }, + { + "name": "protobuf", + "version": "3.1.0", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "collection", + "fixnum", + "meta" + ] + }, + { + "name": "fixnum", + "version": "1.1.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "lints", + "version": "2.1.1", + "kind": "dev", + "source": "hosted", + "dependencies": [] + }, + { + "name": "grinder", + "version": "0.9.4", + "kind": "dev", + "source": "hosted", + "dependencies": [ + "cli_util", + "glob", + "meta", + "path", + "collection" + ] + }, + { + "name": "dartdoc", + "version": "6.3.0", + "kind": "dev", + "source": "hosted", + "dependencies": [ + "analyzer", + "args", + "cli_util", + "collection", + "crypto", + "glob", + "html", + "logging", + "markdown", + "meta", + "package_config", + "path", + "pub_semver", + "source_span", + "yaml" + ] + }, + { + "name": "markdown", + "version": "7.1.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "args", + "meta" + ] + }, + { + "name": "html", + "version": "0.15.4", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "csslib", + "source_span" + ] + }, + { + "name": "csslib", + "version": "1.0.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "source_span" + ] + }, + { + "name": "dart_style", + "version": "2.3.2", + "kind": "dev", + "source": "hosted", + "dependencies": [ + "analyzer", + "args", + "path", + "pub_semver", + "source_span" + ] + }, + { + "name": "archive", + "version": "3.3.9", + "kind": "dev", + "source": "hosted", + "dependencies": [ + "crypto", + "path", + "pointycastle" + ] + }, + { + "name": "pointycastle", + "version": "3.7.3", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection", + "convert", + "js" + ] + }, + { + "name": "stream_transform", + "version": "2.1.0", + "kind": "direct", + "source": "hosted", + "dependencies": [] + }, + { + "name": "node_interop", + "version": "2.1.0", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "js" + ] + }, + { + "name": "native_synchronization", + "version": "0.2.0", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "ffi" + ] + }, + { + "name": "ffi", + "version": "2.1.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "cli_repl", + "version": "0.2.3", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "async", + "js" + ] + }, + { + "name": "cli_pkg", + "version": "2.5.0", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "archive", + "async", + "charcode", + "cli_util", + "collection", + "crypto", + "glob", + "grinder", + "http", + "js", + "meta", + "node_interop", + "node_preamble", + "package_config", + "path", + "pool", + "pub_semver", + "pubspec_parse", + "retry", + "string_scanner", + "test", + "test_process", + "xml", + "yaml" + ] + }, + { + "name": "xml", + "version": "6.4.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection", + "meta", + "petitparser" + ] + }, + { + "name": "petitparser", + "version": "6.0.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "meta" + ] + }, + { + "name": "retry", + "version": "3.1.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "charcode", + "version": "1.3.1", + "kind": "direct", + "source": "hosted", + "dependencies": [] + } +] diff --git a/pkgs/development/tools/protoc-gen-dart/default.nix b/pkgs/development/tools/protoc-gen-dart/default.nix index 29892b954fc..fa11e1b60e8 100644 --- a/pkgs/development/tools/protoc-gen-dart/default.nix +++ b/pkgs/development/tools/protoc-gen-dart/default.nix @@ -16,6 +16,7 @@ buildDartApplication rec { sourceRoot = "${src.name}/protoc_plugin"; pubspecLockFile = ./pubspec.lock; + depsListFile = ./deps.json; vendorHash = "sha256-yNgQLCLDCbA07v9tIwPRks/xPAzLVykNtIk+8C0twYM="; meta = with lib; { diff --git a/pkgs/development/tools/protoc-gen-dart/deps.json b/pkgs/development/tools/protoc-gen-dart/deps.json new file mode 100644 index 00000000000..c00a66e0d84 --- /dev/null +++ b/pkgs/development/tools/protoc-gen-dart/deps.json @@ -0,0 +1,549 @@ +[ + { + "name": "protoc_plugin", + "version": "21.1.0", + "kind": "root", + "source": "root", + "dependencies": [ + "fixnum", + "path", + "protobuf", + "collection", + "dart_flutter_team_lints", + "matcher", + "test" + ] + }, + { + "name": "test", + "version": "1.24.6", + "kind": "dev", + "source": "hosted", + "dependencies": [ + "analyzer", + "async", + "boolean_selector", + "collection", + "coverage", + "http_multi_server", + "io", + "js", + "matcher", + "node_preamble", + "package_config", + "path", + "pool", + "shelf", + "shelf_packages_handler", + "shelf_static", + "shelf_web_socket", + "source_span", + "stack_trace", + "stream_channel", + "test_api", + "test_core", + "typed_data", + "web_socket_channel", + "webkit_inspection_protocol", + "yaml" + ] + }, + { + "name": "yaml", + "version": "3.1.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection", + "source_span", + "string_scanner" + ] + }, + { + "name": "string_scanner", + "version": "1.2.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "source_span" + ] + }, + { + "name": "source_span", + "version": "1.10.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection", + "path", + "term_glyph" + ] + }, + { + "name": "term_glyph", + "version": "1.2.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "path", + "version": "1.8.3", + "kind": "direct", + "source": "hosted", + "dependencies": [] + }, + { + "name": "collection", + "version": "1.18.0", + "kind": "dev", + "source": "hosted", + "dependencies": [] + }, + { + "name": "webkit_inspection_protocol", + "version": "1.2.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "logging" + ] + }, + { + "name": "logging", + "version": "1.2.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "web_socket_channel", + "version": "2.4.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async", + "crypto", + "stream_channel" + ] + }, + { + "name": "stream_channel", + "version": "2.1.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async" + ] + }, + { + "name": "async", + "version": "2.11.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection", + "meta" + ] + }, + { + "name": "meta", + "version": "1.9.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "crypto", + "version": "3.0.3", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "typed_data" + ] + }, + { + "name": "typed_data", + "version": "1.3.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection" + ] + }, + { + "name": "test_core", + "version": "0.5.6", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "analyzer", + "args", + "async", + "boolean_selector", + "collection", + "coverage", + "frontend_server_client", + "glob", + "io", + "meta", + "package_config", + "path", + "pool", + "source_map_stack_trace", + "source_maps", + "source_span", + "stack_trace", + "stream_channel", + "test_api", + "vm_service", + "yaml" + ] + }, + { + "name": "vm_service", + "version": "11.10.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "test_api", + "version": "0.6.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async", + "boolean_selector", + "collection", + "meta", + "source_span", + "stack_trace", + "stream_channel", + "string_scanner", + "term_glyph" + ] + }, + { + "name": "stack_trace", + "version": "1.11.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "path" + ] + }, + { + "name": "boolean_selector", + "version": "2.1.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "source_span", + "string_scanner" + ] + }, + { + "name": "source_maps", + "version": "0.10.12", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "source_span" + ] + }, + { + "name": "source_map_stack_trace", + "version": "2.1.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "path", + "source_maps", + "stack_trace" + ] + }, + { + "name": "pool", + "version": "1.5.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async", + "stack_trace" + ] + }, + { + "name": "package_config", + "version": "2.1.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "path" + ] + }, + { + "name": "io", + "version": "1.0.4", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "meta", + "path", + "string_scanner" + ] + }, + { + "name": "glob", + "version": "2.1.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async", + "collection", + "file", + "path", + "string_scanner" + ] + }, + { + "name": "file", + "version": "7.0.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "meta", + "path" + ] + }, + { + "name": "frontend_server_client", + "version": "3.2.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async", + "path" + ] + }, + { + "name": "coverage", + "version": "1.6.3", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "args", + "logging", + "package_config", + "path", + "source_maps", + "stack_trace", + "vm_service" + ] + }, + { + "name": "args", + "version": "2.4.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "analyzer", + "version": "6.2.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "_fe_analyzer_shared", + "collection", + "convert", + "crypto", + "glob", + "meta", + "package_config", + "path", + "pub_semver", + "source_span", + "watcher", + "yaml" + ] + }, + { + "name": "watcher", + "version": "1.1.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async", + "path" + ] + }, + { + "name": "pub_semver", + "version": "2.1.4", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection", + "meta" + ] + }, + { + "name": "convert", + "version": "3.1.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "typed_data" + ] + }, + { + "name": "_fe_analyzer_shared", + "version": "64.0.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "meta" + ] + }, + { + "name": "shelf_web_socket", + "version": "1.0.4", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "shelf", + "stream_channel", + "web_socket_channel" + ] + }, + { + "name": "shelf", + "version": "1.4.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async", + "collection", + "http_parser", + "path", + "stack_trace", + "stream_channel" + ] + }, + { + "name": "http_parser", + "version": "4.0.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection", + "source_span", + "string_scanner", + "typed_data" + ] + }, + { + "name": "shelf_static", + "version": "1.1.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "convert", + "http_parser", + "mime", + "path", + "shelf" + ] + }, + { + "name": "mime", + "version": "1.0.4", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "shelf_packages_handler", + "version": "3.0.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "path", + "shelf", + "shelf_static" + ] + }, + { + "name": "node_preamble", + "version": "2.0.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "matcher", + "version": "0.12.16", + "kind": "dev", + "source": "hosted", + "dependencies": [ + "async", + "meta", + "stack_trace", + "term_glyph", + "test_api" + ] + }, + { + "name": "js", + "version": "0.6.7", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "meta" + ] + }, + { + "name": "http_multi_server", + "version": "3.2.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async" + ] + }, + { + "name": "dart_flutter_team_lints", + "version": "1.0.0", + "kind": "dev", + "source": "hosted", + "dependencies": [ + "lints" + ] + }, + { + "name": "lints", + "version": "2.1.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "protobuf", + "version": "3.1.0", + "kind": "direct", + "source": "path", + "dependencies": [ + "collection", + "fixnum", + "meta" + ] + }, + { + "name": "fixnum", + "version": "1.1.0", + "kind": "direct", + "source": "hosted", + "dependencies": [] + } +] diff --git a/pkgs/tools/misc/domine/default.nix b/pkgs/tools/misc/domine/default.nix index cd62b9bd1a7..421b49a9d4a 100644 --- a/pkgs/tools/misc/domine/default.nix +++ b/pkgs/tools/misc/domine/default.nix @@ -12,6 +12,6 @@ buildDartApplication rec { }; pubspecLockFile = ./pubspec.lock; - + depsListFile = ./deps.json; vendorHash = "16z3paq1nxlnzs20qlljnwa2ff6xfhdqzcq8d8izkl7w1j4hyxgn"; } diff --git a/pkgs/tools/misc/domine/deps.json b/pkgs/tools/misc/domine/deps.json new file mode 100644 index 00000000000..baa466f5e2f --- /dev/null +++ b/pkgs/tools/misc/domine/deps.json @@ -0,0 +1,190 @@ +[ + { + "name": "domine", + "version": "1.1.0+3", + "kind": "root", + "source": "root", + "dependencies": [ + "args", + "dart_openai", + "dio", + "dio_smart_retry", + "tint", + "lints" + ] + }, + { + "name": "lints", + "version": "2.1.1", + "kind": "dev", + "source": "hosted", + "dependencies": [] + }, + { + "name": "tint", + "version": "2.0.1", + "kind": "direct", + "source": "hosted", + "dependencies": [] + }, + { + "name": "dio_smart_retry", + "version": "5.0.0", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "dio", + "http_parser", + "path" + ] + }, + { + "name": "path", + "version": "1.8.3", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "http_parser", + "version": "4.0.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection", + "source_span", + "string_scanner", + "typed_data" + ] + }, + { + "name": "typed_data", + "version": "1.3.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection" + ] + }, + { + "name": "collection", + "version": "1.17.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "string_scanner", + "version": "1.2.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "source_span" + ] + }, + { + "name": "source_span", + "version": "1.10.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection", + "path", + "term_glyph" + ] + }, + { + "name": "term_glyph", + "version": "1.2.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "dio", + "version": "5.3.2", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "async", + "http_parser", + "meta", + "path" + ] + }, + { + "name": "meta", + "version": "1.9.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [] + }, + { + "name": "async", + "version": "2.11.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "collection", + "meta" + ] + }, + { + "name": "dart_openai", + "version": "4.0.0", + "kind": "direct", + "source": "hosted", + "dependencies": [ + "http", + "meta", + "collection", + "fetch_client" + ] + }, + { + "name": "fetch_client", + "version": "1.0.2", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "fetch_api", + "http" + ] + }, + { + "name": "http", + "version": "1.1.0", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "async", + "http_parser", + "meta" + ] + }, + { + "name": "fetch_api", + "version": "1.0.1", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "js" + ] + }, + { + "name": "js", + "version": "0.6.7", + "kind": "transitive", + "source": "hosted", + "dependencies": [ + "meta" + ] + }, + { + "name": "args", + "version": "2.4.2", + "kind": "direct", + "source": "hosted", + "dependencies": [] + } +] -- cgit 1.4.1 From 7efc0b24189dcf9ef0d6e5c5ecfe2b6451022f7c Mon Sep 17 00:00:00 2001 From: Martin Weinelt Date: Sat, 21 Oct 2023 13:21:17 +0200 Subject: doc/python: mention python313 --- doc/languages-frameworks/python.section.md | 1 + 1 file changed, 1 insertion(+) (limited to 'doc') diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md index 40236d141d3..cdd5c806912 100644 --- a/doc/languages-frameworks/python.section.md +++ b/doc/languages-frameworks/python.section.md @@ -12,6 +12,7 @@ | python310 | python3 | CPython 3.10 | | python311 | | CPython 3.11 | | python312 | | CPython 3.12 | +| python313 | | CPython 3.13 | | pypy27 | pypy2, pypy | PyPy2.7 | | pypy39 | pypy3 | PyPy 3.9 | -- cgit 1.4.1 From 31ebe7b4598145f4009873be59d88d4fcbe952a1 Mon Sep 17 00:00:00 2001 From: Alyssa Ross Date: Sat, 21 Oct 2023 08:41:21 +0000 Subject: doc: fix heading levels of Meson hook documentation Fixes: 10f35ff05df1 ("meson.setupHook: prefer meson commands over ninja") --- doc/hooks/meson.section.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'doc') diff --git a/doc/hooks/meson.section.md b/doc/hooks/meson.section.md index 7496def5806..93e7019c311 100644 --- a/doc/hooks/meson.section.md +++ b/doc/hooks/meson.section.md @@ -12,11 +12,11 @@ By default, `enableParallelBuilding` is enabled as Meson supports parallel build Controls the flags passed to `meson setup`. -##### `mesonCheckFlags` {#mesoncheckflags} +### `mesonCheckFlags` {#mesoncheckflags} Controls the flags passed to `meson test`. -##### `mesonInstallFlags` {#mesoninstallflags} +### `mesonInstallFlags` {#mesoninstallflags} Controls the flags passed to `meson install`. @@ -36,10 +36,10 @@ What value to set [`-Dwrap_mode=`](https://mesonbuild.com/Builtin-options.html#c Disables using Meson’s `configurePhase`. -##### `dontUseMesonCheck` {#dontusemesoncheck} +### `dontUseMesonCheck` {#dontusemesoncheck} Disables using Meson’s `checkPhase`. -##### `dontUseMesonInstall` {#dontusemesoninstall} +### `dontUseMesonInstall` {#dontusemesoninstall} Disables using Meson’s `installPhase`. -- cgit 1.4.1 From 36eff4f43199433fdeba4d098f7799d1bb81d576 Mon Sep 17 00:00:00 2001 From: Julian Stecklina Date: Thu, 19 Oct 2023 12:23:31 +0200 Subject: meson: introduce mesonInstallTags Projects building with meson are currently installTargets. Map these to install tags, which are roughly equivalent. This allows projects to selectively install components. --- doc/hooks/meson.section.md | 9 +++++++++ pkgs/development/tools/build-managers/meson/setup-hook.sh | 4 ++++ 2 files changed, 13 insertions(+) (limited to 'doc') diff --git a/doc/hooks/meson.section.md b/doc/hooks/meson.section.md index 93e7019c311..dc261271326 100644 --- a/doc/hooks/meson.section.md +++ b/doc/hooks/meson.section.md @@ -43,3 +43,12 @@ Disables using Meson’s `checkPhase`. ### `dontUseMesonInstall` {#dontusemesoninstall} Disables using Meson’s `installPhase`. + +### `mesonInstallFlags` {#mesoninstallflags} + +Controls the flags passed to meson install. + +### `mesonInstallTags` (#mesoninstalltags) + +Tags specified here will be passed to Meson as via `--tags` during +installation and controls which components will be installed. diff --git a/pkgs/development/tools/build-managers/meson/setup-hook.sh b/pkgs/development/tools/build-managers/meson/setup-hook.sh index 21faac529c6..dc7780b2fd3 100644 --- a/pkgs/development/tools/build-managers/meson/setup-hook.sh +++ b/pkgs/development/tools/build-managers/meson/setup-hook.sh @@ -55,6 +55,10 @@ mesonInstallPhase() { # shellcheck disable=SC2086 local flagsArray=($mesonInstallFlags "${mesonInstallFlagsArray[@]}") + if [[ -n "$mesonInstallTags" ]]; then + flagsArray+=("--tags" "${mesonInstallTags// /,}") + fi + echoCmd 'install flags' "${flagsArray[@]}" meson install --no-rebuild "${flagsArray[@]}" -- cgit 1.4.1 From 0504bc63e41f89d69fb5ff8e9812e8731a869106 Mon Sep 17 00:00:00 2001 From: Jade Lovelace Date: Sun, 22 Oct 2023 16:53:23 -0700 Subject: doc/stdenv: rewrite manual build procedure to be closer to an auto-build (#262137) * doc/stdenv: rewrite manual build procedure to be closer to an auto-build This is based on plus some more original research. The previous version of this section did not work for your choice of simple Haskell package, e.g. haskellPackages.hscolour, due to things like `compileBuildDriverPhase` and other custom phases that it does not address at all. It seems more correct to use genericBuild in development to harmonize it with what is actually done. I feel a little bit like I am committing a sin by suggesting using the experimental CLI in the manual (afaict I am the first to do this), but I have given the old version of the command, and there are justifiable reasons to do it: * The noted limitations with env-vars are fixed. The one with the non-empty temp directory was one I ran into myself and oh boy was that not fun to debug. * Additionally the outputs are set *before* sourcing `setup.sh`: there is an issue with nix-shell where the original version of `$out` winds up in `NIX_LDFLAGS` due to _addRpathPrefix, which means that resulting executables may not run properly. It is sad that `nix develop` propagates a wrong value of `SHELL` to builders, though. It is equally sad that `nix-shell` is essentially abandoned upstream, with undocumented and not insignificant differences from `nix develop`. For the exact script differences: https://github.com/NixOS/nix/blob/17e6b85d05b3d32df244b1d4e89aa41fd8bdcae8/src/nix-build/nix-build.cc#L516-L551 https://github.com/NixOS/nix/blob/db026103b18fb8b5a719594502edd0f89eb9c268/src/nix/get-env.sh Co-authored-by: Valentin Gagarin --- doc/stdenv/stdenv.chapter.md | 49 ++++++++++++++++++++++++++++++++++++++------ 1 file changed, 43 insertions(+), 6 deletions(-) (limited to 'doc') diff --git a/doc/stdenv/stdenv.chapter.md b/doc/stdenv/stdenv.chapter.md index 366c519751c..1dfe25f0265 100644 --- a/doc/stdenv/stdenv.chapter.md +++ b/doc/stdenv/stdenv.chapter.md @@ -101,25 +101,62 @@ genericBuild ### Building a `stdenv` package in `nix-shell` {#sec-building-stdenv-package-in-nix-shell} -To build a `stdenv` package in a [`nix-shell`](https://nixos.org/manual/nix/unstable/command-ref/nix-shell.html), use +To build a `stdenv` package in a [`nix-shell`](https://nixos.org/manual/nix/unstable/command-ref/nix-shell.html), enter a shell, find the [phases](#sec-stdenv-phases) you wish to build, then invoke `genericBuild` manually: + +Go to an empty directory, invoke `nix-shell` with the desired package, and from inside the shell, set the output variables to a writable directory: ```bash +cd "$(mktemp -d)" nix-shell '' -A some_package -eval "${unpackPhase:-unpackPhase}" -cd $sourceRoot -eval "${patchPhase:-patchPhase}" -eval "${configurePhase:-configurePhase}" -eval "${buildPhase:-buildPhase}" +export out=$(pwd)/out +``` + +Next, invoke the desired parts of the build. +First, run the phases that generate a working copy of the sources, which will change directory to the sources for you: + +```bash +phases="${prePhases[*]:-} unpackPhase patchPhase" genericBuild +``` + +Then, run more phases up until the failure is reached. +For example, if the failure is in the build phase, the following phases would be required: + +```bash +phases="${preConfigurePhases[*]:-} configurePhase ${preBuildPhases[*]:-} buildPhase" genericBuild +``` + +Re-run a single phase as many times as necessary to examine the failure like so: + +```bash +phases="buildPhase" genericBuild ``` To modify a [phase](#sec-stdenv-phases), first print it with +```bash +echo "$buildPhase" +``` + +Or, if that is empty, for instance, if it is using a function: + ```bash type buildPhase ``` then change it in a text editor, and paste it back to the terminal. +::: {.note} +This method may have some inconsistencies in environment variables and behaviour compared to a normal build within the [Nix build sandbox](https://nixos.org/manual/nix/unstable/language/derivations#builder-execution). +The following is a non-exhaustive list of such differences: + +- `TMP`, `TMPDIR`, and similar variables likely point to non-empty directories that the build might conflict with files in. +- Output store paths are not writable, so the variables for outputs need to be overridden to writable paths. +- Other environment variables may be inconsistent with a `nix-build` either due to `nix-shell`'s initialization script or due to the use of `nix-shell` without the `--pure` option. + +If the build fails differently inside the shell than in the sandbox, consider using [`breakpointHook`](#breakpointhook) and invoking `nix-build` instead. +The [`--keep-failed`](https://nixos.org/manual/nix/unstable/command-ref/conf-file#opt--keep-failed) option for `nix-build` may also be useful to examine the build directory of a failed build. +::: + ## Tools provided by `stdenv` {#sec-tools-of-stdenv} The standard environment provides the following packages: -- cgit 1.4.1 From 5452afb0399272159fee9851b5a5314607b16803 Mon Sep 17 00:00:00 2001 From: Stel Abrego Date: Tue, 24 Oct 2023 14:45:20 -0700 Subject: doc: use lib.fakeHash with buildGoModule to get vendorHash lib.fakeSha256 results in `error: hash does not include a type, nor is the type otherwise known from context`. --- doc/languages-frameworks/go.section.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/languages-frameworks/go.section.md b/doc/languages-frameworks/go.section.md index 7fd38a7d21c..59856b92c9e 100644 --- a/doc/languages-frameworks/go.section.md +++ b/doc/languages-frameworks/go.section.md @@ -18,7 +18,7 @@ In the following is an example expression using `buildGoModule`, the following a To avoid updating this field when dependencies change, run `go mod vendor` in your source repo and set `vendorHash = null;` - To obtain the actual hash, set `vendorHash = lib.fakeSha256;` and run the build ([more details here](#sec-source-hashes)). + To obtain the actual hash, set `vendorHash = lib.fakeHash;` and run the build ([more details here](#sec-source-hashes)). - `proxyVendor`: Fetches (go mod download) and proxies the vendor directory. This is useful if your code depends on c code and go mod tidy does not include the needed sources to build or if any dependency has case-insensitive conflicts which will produce platform-dependent `vendorHash` checksums. - `modPostBuild`: Shell commands to run after the build of the goModules executes `go mod vendor`, and before calculating fixed output derivation's `vendorHash` (or `vendorSha256`). Note that if you change this attribute, you need to update `vendorHash` (or `vendorSha256`) attribute. -- cgit 1.4.1 From 0fdb1ee374e9b497cc33fb56b6a46bab51447e34 Mon Sep 17 00:00:00 2001 From: Weijia Wang <9713184+wegank@users.noreply.github.com> Date: Fri, 27 Oct 2023 16:59:43 +0200 Subject: doc: fix heading of mesonInstallTags --- doc/hooks/meson.section.md | 14 +++++--------- 1 file changed, 5 insertions(+), 9 deletions(-) (limited to 'doc') diff --git a/doc/hooks/meson.section.md b/doc/hooks/meson.section.md index dc261271326..a4b8da1d46c 100644 --- a/doc/hooks/meson.section.md +++ b/doc/hooks/meson.section.md @@ -20,6 +20,11 @@ Controls the flags passed to `meson test`. Controls the flags passed to `meson install`. +### `mesonInstallTags` {#mesoninstalltags} + +Tags specified here will be passed to Meson as via `--tags` during +installation and controls which components will be installed. + ### `mesonBuildType` {#mesonbuildtype} Which [`--buildtype`](https://mesonbuild.com/Builtin-options.html#core-options) to pass to `meson setup`. We default to `plain`. @@ -43,12 +48,3 @@ Disables using Meson’s `checkPhase`. ### `dontUseMesonInstall` {#dontusemesoninstall} Disables using Meson’s `installPhase`. - -### `mesonInstallFlags` {#mesoninstallflags} - -Controls the flags passed to meson install. - -### `mesonInstallTags` (#mesoninstalltags) - -Tags specified here will be passed to Meson as via `--tags` during -installation and controls which components will be installed. -- cgit 1.4.1 From 2fd6af1929acc4cd2e0da827f016dd988eb66e5f Mon Sep 17 00:00:00 2001 From: Eirik Wittersø Date: Sat, 28 Oct 2023 00:25:35 +0200 Subject: fetchFromBittorrent: Rename to fetchtorrent --- doc/builders/fetchers.chapter.md | 10 ++--- pkgs/build-support/fetchbittorrent/default.nix | 60 -------------------------- pkgs/build-support/fetchbittorrent/tests.nix | 25 ----------- pkgs/build-support/fetchtorrent/default.nix | 60 ++++++++++++++++++++++++++ pkgs/build-support/fetchtorrent/tests.nix | 25 +++++++++++ pkgs/test/default.nix | 2 +- pkgs/top-level/all-packages.nix | 2 +- 7 files changed, 92 insertions(+), 92 deletions(-) delete mode 100644 pkgs/build-support/fetchbittorrent/default.nix delete mode 100644 pkgs/build-support/fetchbittorrent/tests.nix create mode 100644 pkgs/build-support/fetchtorrent/default.nix create mode 100644 pkgs/build-support/fetchtorrent/tests.nix (limited to 'doc') diff --git a/doc/builders/fetchers.chapter.md b/doc/builders/fetchers.chapter.md index ba7b1b19012..c99b46097e9 100644 --- a/doc/builders/fetchers.chapter.md +++ b/doc/builders/fetchers.chapter.md @@ -243,21 +243,21 @@ or *** ``` -## `fetchFromBittorrent` {#fetchfrombittorrent} +## `fetchtorrent` {#fetchtorrent} -`fetchFromBittorrent` expects two arguments. `url` which can either be a Magnet URI (Magnet Link) such as `magnet:?xt=urn:btih:dd8255ecdc7ca55fb0bbf81323d87062db1f6d1c` or an HTTP URL pointing to a `.torrent` file. It can also take a `config` argument which will craft a `settings.json` configuration file and give it to `transmission`, the underlying program that is performing the fetch. The available config options for `transmission` can be found [here](https://github.com/transmission/transmission/blob/main/docs/Editing-Configuration-Files.md#options) +`fetchtorrent` expects two arguments. `url` which can either be a Magnet URI (Magnet Link) such as `magnet:?xt=urn:btih:dd8255ecdc7ca55fb0bbf81323d87062db1f6d1c` or an HTTP URL pointing to a `.torrent` file. It can also take a `config` argument which will craft a `settings.json` configuration file and give it to `transmission`, the underlying program that is performing the fetch. The available config options for `transmission` can be found [here](https://github.com/transmission/transmission/blob/main/docs/Editing-Configuration-Files.md#options) ``` -{ fetchFromBittorrent }: +{ fetchtorrent }: -fetchFromBittorrent { +fetchtorrent { config = { peer-limit-global = 100; }; url = "magnet:?xt=urn:btih:dd8255ecdc7ca55fb0bbf81323d87062db1f6d1c"; sha256 = ""; } ``` -### Parameters {#fetchfrombittorrent-parameters} +### Parameters {#fetchtorrent-parameters} - `url`: Magnet URI (Magnet Link) such as `magnet:?xt=urn:btih:dd8255ecdc7ca55fb0bbf81323d87062db1f6d1c` or an HTTP URL pointing to a `.torrent` file. diff --git a/pkgs/build-support/fetchbittorrent/default.nix b/pkgs/build-support/fetchbittorrent/default.nix deleted file mode 100644 index 916c7e7d8c9..00000000000 --- a/pkgs/build-support/fetchbittorrent/default.nix +++ /dev/null @@ -1,60 +0,0 @@ -{ lib, runCommand, transmission_noSystemd, rqbit, writeShellScript, formats, cacert, rsync }: -let - urlRegexp = ''.*xt=urn:bt[im]h:([^&]{64}|[^&]{40}).*''; -in -{ url -, name ? - if (builtins.match urlRegexp url) == null then - "bittorrent" - else - "bittorrent-" + builtins.head (builtins.match urlRegexp url) -, config ? if (backend == "transmission") then { } else throw "json config for configuring fetchFromBitorrent only works with the transmission backend" -, hash -, backend ? "transmission" -, recursiveHash ? true -, postFetch ? "" -, postUnpack ? "" -}: -let - afterSuccess = writeShellScript "fetch-bittorrent-done.sh" '' - ${postUnpack} - # Flatten the directory, so that only the torrent contents are in $out, not - # the folder name - shopt -s dotglob - mv -v $downloadedDirectory/*/* $out - rm -v -rf $downloadedDirectory - unset downloadedDirectory - ${postFetch} - kill $PPID - ''; - jsonConfig = (formats.json {}).generate "jsonConfig" config; -in -runCommand name { - nativeBuildInputs = [ cacert ] ++ (if (backend == "transmission" ) then [ transmission_noSystemd ] else if (backend == "rqbit") then [ rqbit ] else throw "rqbit or transmission are the only available backends for fetchbittorrent"); - outputHashAlgo = if hash != "" then null else "sha256"; - outputHash = hash; - outputHashMode = if recursiveHash then "recursive" else "flat"; - - # url will be written to the derivation, meaning it can be parsed and utilized - # by external tools, such as tools that may want to seed fetchBittorrent calls - # in nixpkgs - inherit url; -} -(if (backend == "transmission") then '' - export HOME=$TMP - export downloadedDirectory=$out/downloadedDirectory - mkdir -p $downloadedDirectory - mkdir -p $HOME/.config/transmission - cp ${jsonConfig} $HOME/.config/transmission/settings.json - function handleChild { - # This detects failures and logs the contents of the transmission fetch - find $out - exit 0 - } - trap handleChild CHLD - transmission-cli --port $(shuf -n 1 -i 49152-65535) --portmap --finish ${afterSuccess} --download-dir $downloadedDirectory --config-dir "$HOME"/.config/transmission "$url" -'' else -'' - export HOME=$TMP - rqbit --disable-dht-persistence --http-api-listen-addr "127.0.0.1:$(shuf -n 1 -i 49152-65535)" download -o $out --exit-on-finish "$url" -'') diff --git a/pkgs/build-support/fetchbittorrent/tests.nix b/pkgs/build-support/fetchbittorrent/tests.nix deleted file mode 100644 index fce1b3933a7..00000000000 --- a/pkgs/build-support/fetchbittorrent/tests.nix +++ /dev/null @@ -1,25 +0,0 @@ -{ testers, fetchFromBittorrent, ... }: - -{ - http-link = testers.invalidateFetcherByDrvHash fetchFromBittorrent { - url = "https://webtorrent.io/torrents/wired-cd.torrent"; - hash = "sha256-OCsC22WuanqoN6lPv5wDT5ZxPcEHDpZ1EgXGvz1SDYo="; - backend = "transmission"; - }; - magnet-link = testers.invalidateFetcherByDrvHash fetchFromBittorrent { - url = "magnet:?xt=urn:btih:a88fda5954e89178c372716a6a78b8180ed4dad3&dn=The+WIRED+CD+-+Rip.+Sample.+Mash.+Share&tr=udp%3A%2F%2Fexplodie.org%3A6969&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.empire-js.us%3A1337&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2F&xs=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fwired-cd.torrent"; - hash = "sha256-OCsC22WuanqoN6lPv5wDT5ZxPcEHDpZ1EgXGvz1SDYo="; - backend = "transmission"; - }; - http-link-rqbit = testers.invalidateFetcherByDrvHash fetchFromBittorrent { - url = "https://webtorrent.io/torrents/wired-cd.torrent"; - hash = "sha256-OCsC22WuanqoN6lPv5wDT5ZxPcEHDpZ1EgXGvz1SDYo="; - backend = "rqbit"; - }; - magnet-link-rqbit = testers.invalidateFetcherByDrvHash fetchFromBittorrent { - url = "magnet:?xt=urn:btih:a88fda5954e89178c372716a6a78b8180ed4dad3&dn=The+WIRED+CD+-+Rip.+Sample.+Mash.+Share&tr=udp%3A%2F%2Fexplodie.org%3A6969&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.empire-js.us%3A1337&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2F&xs=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fwired-cd.torrent"; - hash = "sha256-OCsC22WuanqoN6lPv5wDT5ZxPcEHDpZ1EgXGvz1SDYo="; - backend = "rqbit"; - }; -} - diff --git a/pkgs/build-support/fetchtorrent/default.nix b/pkgs/build-support/fetchtorrent/default.nix new file mode 100644 index 00000000000..beb2415df70 --- /dev/null +++ b/pkgs/build-support/fetchtorrent/default.nix @@ -0,0 +1,60 @@ +{ lib, runCommand, transmission_noSystemd, rqbit, writeShellScript, formats, cacert, rsync }: +let + urlRegexp = ''.*xt=urn:bt[im]h:([^&]{64}|[^&]{40}).*''; +in +{ url +, name ? + if (builtins.match urlRegexp url) == null then + "bittorrent" + else + "bittorrent-" + builtins.head (builtins.match urlRegexp url) +, config ? if (backend == "transmission") then { } else throw "json config for configuring fetchFromBitorrent only works with the transmission backend" +, hash +, backend ? "transmission" +, recursiveHash ? true +, postFetch ? "" +, postUnpack ? "" +}: +let + afterSuccess = writeShellScript "fetch-bittorrent-done.sh" '' + ${postUnpack} + # Flatten the directory, so that only the torrent contents are in $out, not + # the folder name + shopt -s dotglob + mv -v $downloadedDirectory/*/* $out + rm -v -rf $downloadedDirectory + unset downloadedDirectory + ${postFetch} + kill $PPID + ''; + jsonConfig = (formats.json {}).generate "jsonConfig" config; +in +runCommand name { + nativeBuildInputs = [ cacert ] ++ (if (backend == "transmission" ) then [ transmission_noSystemd ] else if (backend == "rqbit") then [ rqbit ] else throw "rqbit or transmission are the only available backends for fetchtorrent"); + outputHashAlgo = if hash != "" then null else "sha256"; + outputHash = hash; + outputHashMode = if recursiveHash then "recursive" else "flat"; + + # url will be written to the derivation, meaning it can be parsed and utilized + # by external tools, such as tools that may want to seed fetchtorrent calls + # in nixpkgs + inherit url; +} +(if (backend == "transmission") then '' + export HOME=$TMP + export downloadedDirectory=$out/downloadedDirectory + mkdir -p $downloadedDirectory + mkdir -p $HOME/.config/transmission + cp ${jsonConfig} $HOME/.config/transmission/settings.json + function handleChild { + # This detects failures and logs the contents of the transmission fetch + find $out + exit 0 + } + trap handleChild CHLD + transmission-cli --port $(shuf -n 1 -i 49152-65535) --portmap --finish ${afterSuccess} --download-dir $downloadedDirectory --config-dir "$HOME"/.config/transmission "$url" +'' else +'' + export HOME=$TMP + rqbit --disable-dht-persistence --http-api-listen-addr "127.0.0.1:$(shuf -n 1 -i 49152-65535)" download -o $out --exit-on-finish "$url" +'') diff --git a/pkgs/build-support/fetchtorrent/tests.nix b/pkgs/build-support/fetchtorrent/tests.nix new file mode 100644 index 00000000000..b36c82c6326 --- /dev/null +++ b/pkgs/build-support/fetchtorrent/tests.nix @@ -0,0 +1,25 @@ +{ testers, fetchtorrent, ... }: + +{ + http-link = testers.invalidateFetcherByDrvHash fetchtorrent { + url = "https://webtorrent.io/torrents/wired-cd.torrent"; + hash = "sha256-OCsC22WuanqoN6lPv5wDT5ZxPcEHDpZ1EgXGvz1SDYo="; + backend = "transmission"; + }; + magnet-link = testers.invalidateFetcherByDrvHash fetchtorrent { + url = "magnet:?xt=urn:btih:a88fda5954e89178c372716a6a78b8180ed4dad3&dn=The+WIRED+CD+-+Rip.+Sample.+Mash.+Share&tr=udp%3A%2F%2Fexplodie.org%3A6969&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.empire-js.us%3A1337&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2F&xs=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fwired-cd.torrent"; + hash = "sha256-OCsC22WuanqoN6lPv5wDT5ZxPcEHDpZ1EgXGvz1SDYo="; + backend = "transmission"; + }; + http-link-rqbit = testers.invalidateFetcherByDrvHash fetchtorrent { + url = "https://webtorrent.io/torrents/wired-cd.torrent"; + hash = "sha256-OCsC22WuanqoN6lPv5wDT5ZxPcEHDpZ1EgXGvz1SDYo="; + backend = "rqbit"; + }; + magnet-link-rqbit = testers.invalidateFetcherByDrvHash fetchtorrent { + url = "magnet:?xt=urn:btih:a88fda5954e89178c372716a6a78b8180ed4dad3&dn=The+WIRED+CD+-+Rip.+Sample.+Mash.+Share&tr=udp%3A%2F%2Fexplodie.org%3A6969&tr=udp%3A%2F%2Ftracker.coppersurfer.tk%3A6969&tr=udp%3A%2F%2Ftracker.empire-js.us%3A1337&tr=udp%3A%2F%2Ftracker.leechers-paradise.org%3A6969&tr=udp%3A%2F%2Ftracker.opentrackr.org%3A1337&tr=wss%3A%2F%2Ftracker.btorrent.xyz&tr=wss%3A%2F%2Ftracker.fastcast.nz&tr=wss%3A%2F%2Ftracker.openwebtorrent.com&ws=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2F&xs=https%3A%2F%2Fwebtorrent.io%2Ftorrents%2Fwired-cd.torrent"; + hash = "sha256-OCsC22WuanqoN6lPv5wDT5ZxPcEHDpZ1EgXGvz1SDYo="; + backend = "rqbit"; + }; +} + diff --git a/pkgs/test/default.nix b/pkgs/test/default.nix index 4cc9ecc0db3..595c3413d5e 100644 --- a/pkgs/test/default.nix +++ b/pkgs/test/default.nix @@ -104,7 +104,7 @@ with pkgs; cc-multilib-clang = callPackage ./cc-wrapper/multilib.nix { stdenv = clangMultiStdenv; }; fetchurl = callPackages ../build-support/fetchurl/tests.nix { }; - fetchFromBittorrent = callPackages ../build-support/fetchbittorrent/tests.nix { }; + fetchtorrent = callPackages ../build-support/fetchtorrent/tests.nix { }; fetchpatch = callPackages ../build-support/fetchpatch/tests.nix { }; fetchpatch2 = callPackages ../build-support/fetchpatch/tests.nix { fetchpatch = fetchpatch2; }; fetchDebianPatch = callPackages ../build-support/fetchdebianpatch/tests.nix { }; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 2cf790efdc5..7c53be48716 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -1118,7 +1118,7 @@ with pkgs; fetchs3 = callPackage ../build-support/fetchs3 { }; - fetchFromBittorrent = callPackage ../build-support/fetchbittorrent { }; + fetchtorrent = callPackage ../build-support/fetchtorrent { }; fetchsvn = if stdenv.buildPlatform != stdenv.hostPlatform # hack around splicing being crummy with things that (correctly) don't eval. -- cgit 1.4.1 From f15e58cbeb6bf7a01c171ed6d36d53ea2f8505ea Mon Sep 17 00:00:00 2001 From: Matthieu Coudron <886074+teto@users.noreply.github.com> Date: Sun, 29 Oct 2023 21:02:55 +0100 Subject: luarocks-packages-update: init (#262156) * luarocks-packages-updater: init Goal is to make it possible to maintain out-of-tree luarocks packages without needing to clone nixpkgs. maintainers/scripts/update-luarocks-packages gets renamed to pkgs/development/lua-modules/updater/updater.py Once merged you can run for instance nix run nixpkgs#luarocks-packages-updater -- -i contrib/luarocks-packages.csv -o contrib/generated-packages.nix I also set the parallelism (--proc) to 1 by default else luarocks fails because of https://github.com/luarocks/luarocks/issues/1540 * Update maintainers/scripts/pluginupdate.py Co-authored-by: Marc Jakobi --------- Co-authored-by: Marc Jakobi --- doc/languages-frameworks/lua.section.md | 6 +- maintainers/scripts/pluginupdate.py | 15 +- maintainers/scripts/update-luarocks-packages | 224 ---------------------- maintainers/scripts/update-luarocks-shell.nix | 13 -- nixos/doc/manual/release-notes/rl-2311.section.md | 4 + pkgs/development/lua-modules/updater/default.nix | 49 +++++ pkgs/development/lua-modules/updater/updater.py | 217 +++++++++++++++++++++ pkgs/top-level/all-packages.nix | 5 + 8 files changed, 290 insertions(+), 243 deletions(-) delete mode 100755 maintainers/scripts/update-luarocks-packages delete mode 100644 maintainers/scripts/update-luarocks-shell.nix create mode 100644 pkgs/development/lua-modules/updater/default.nix create mode 100755 pkgs/development/lua-modules/updater/updater.py (limited to 'doc') diff --git a/doc/languages-frameworks/lua.section.md b/doc/languages-frameworks/lua.section.md index c5049326a77..310ea88a86d 100644 --- a/doc/languages-frameworks/lua.section.md +++ b/doc/languages-frameworks/lua.section.md @@ -134,11 +134,11 @@ The site proposes two types of packages, the `rockspec` and the `src.rock` Luarocks-based packages are generated in [pkgs/development/lua-modules/generated-packages.nix](https://github.com/NixOS/nixpkgs/tree/master/pkgs/development/lua-modules/generated-packages.nix) from the whitelist maintainers/scripts/luarocks-packages.csv and updated by running -the script -[maintainers/scripts/update-luarocks-packages](https://github.com/NixOS/nixpkgs/tree/master/maintainers/scripts/update-luarocks-packages): +the package `luarocks-packages-updater`: ```sh -./maintainers/scripts/update-luarocks-packages update + +nix-shell -p luarocks-packages-updater --run luarocks-packages-updater ``` [luarocks2nix](https://github.com/nix-community/luarocks) is a tool capable of generating nix derivations from both rockspec and src.rock (and favors the src.rock). diff --git a/maintainers/scripts/pluginupdate.py b/maintainers/scripts/pluginupdate.py index 52e9af39970..44a445875d9 100644 --- a/maintainers/scripts/pluginupdate.py +++ b/maintainers/scripts/pluginupdate.py @@ -468,6 +468,7 @@ class Editor: "--input-names", "-i", dest="input_file", + type=Path, default=self.default_in, help="A list of plugins in the form owner/repo", ) @@ -476,6 +477,7 @@ class Editor: "-o", dest="outfile", default=self.default_out, + type=Path, help="Filename to save generated nix code", ) common.add_argument( @@ -787,10 +789,17 @@ def update_plugins(editor: Editor, args): if autocommit: from datetime import date - editor.nixpkgs_repo = git.Repo(editor.root, search_parent_directories=True) - updated = date.today().strftime('%m-%d-%Y') - commit(editor.nixpkgs_repo, f"{editor.attr_path}: updated the {updated}", [args.outfile]) + try: + repo = git.Repo(os.getcwd()) + updated = date.today().strftime('%m-%d-%Y') + print(args.outfile) + commit(repo, + f"{editor.attr_path}: updated the {updated}", [args.outfile] + ) + except git.InvalidGitRepositoryError as e: + print(f"Not in a git repository: {e}", file=sys.stderr) + sys.exit(1) if redirects: update() diff --git a/maintainers/scripts/update-luarocks-packages b/maintainers/scripts/update-luarocks-packages deleted file mode 100755 index 32c2b44260b..00000000000 --- a/maintainers/scripts/update-luarocks-packages +++ /dev/null @@ -1,224 +0,0 @@ -#!/usr/bin/env nix-shell -#!nix-shell update-luarocks-shell.nix -i python3 - -# format: -# $ nix run nixpkgs#python3Packages.black -- update.py -# type-check: -# $ nix run nixpkgs#python3Packages.mypy -- update.py -# linted: -# $ nix run nixpkgs#python3Packages.flake8 -- --ignore E501,E265,E402 update.py - -import inspect -import os -import tempfile -import shutil -from dataclasses import dataclass -import subprocess -import csv -import logging -import textwrap -from multiprocessing.dummy import Pool - -from typing import List, Tuple, Optional -from pathlib import Path - -log = logging.getLogger() -log.addHandler(logging.StreamHandler()) - -ROOT = Path(os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))).parent.parent # type: ignore -import pluginupdate -from pluginupdate import update_plugins, FetchConfig, CleanEnvironment - -PKG_LIST = "maintainers/scripts/luarocks-packages.csv" -TMP_FILE = "$(mktemp)" -GENERATED_NIXFILE = "pkgs/development/lua-modules/generated-packages.nix" -LUAROCKS_CONFIG = "maintainers/scripts/luarocks-config.lua" - -HEADER = """/* {GENERATED_NIXFILE} is an auto-generated file -- DO NOT EDIT! -Regenerate it with: -nixpkgs$ ./maintainers/scripts/update-luarocks-packages - -You can customize the generated packages in pkgs/development/lua-modules/overrides.nix -*/ -""".format( - GENERATED_NIXFILE=GENERATED_NIXFILE -) - -FOOTER = """ -} -/* GENERATED - do not edit this file */ -""" - - -@dataclass -class LuaPlugin: - name: str - """Name of the plugin, as seen on luarocks.org""" - src: str - """address to the git repository""" - ref: Optional[str] - """git reference (branch name/tag)""" - version: Optional[str] - """Set it to pin a package """ - server: Optional[str] - """luarocks.org registers packages under different manifests. - Its value can be 'http://luarocks.org/dev' - """ - luaversion: Optional[str] - """Attribue of the lua interpreter if a package is available only for a specific lua version""" - maintainers: Optional[str] - """ Optional string listing maintainers separated by spaces""" - - @property - def normalized_name(self) -> str: - return self.name.replace(".", "-") - - -# rename Editor to LangUpdate/ EcosystemUpdater -class LuaEditor(pluginupdate.Editor): - def get_current_plugins(self): - return [] - - def load_plugin_spec(self, input_file) -> List[LuaPlugin]: - luaPackages = [] - csvfilename = input_file - log.info("Loading package descriptions from %s", csvfilename) - - with open(csvfilename, newline="") as csvfile: - reader = csv.DictReader( - csvfile, - ) - for row in reader: - # name,server,version,luaversion,maintainers - plugin = LuaPlugin(**row) - luaPackages.append(plugin) - return luaPackages - - def update(self, args): - update_plugins(self, args) - - def generate_nix(self, results: List[Tuple[LuaPlugin, str]], outfilename: str): - with tempfile.NamedTemporaryFile("w+") as f: - f.write(HEADER) - header2 = textwrap.dedent( - # header2 = inspect.cleandoc( - """ - { self, stdenv, lib, fetchurl, fetchgit, callPackage, ... } @ args: - final: prev: - { - """ - ) - f.write(header2) - for plugin, nix_expr in results: - f.write(f"{plugin.normalized_name} = {nix_expr}") - f.write(FOOTER) - f.flush() - - # if everything went fine, move the generated file to its destination - # using copy since move doesn't work across disks - shutil.copy(f.name, outfilename) - - print(f"updated {outfilename}") - - @property - def attr_path(self): - return "luaPackages" - - def get_update(self, input_file: str, outfile: str, config: FetchConfig): - _prefetch = generate_pkg_nix - - def update() -> dict: - plugin_specs = self.load_plugin_spec(input_file) - sorted_plugin_specs = sorted(plugin_specs, key=lambda v: v.name.lower()) - - try: - pool = Pool(processes=config.proc) - results = pool.map(_prefetch, sorted_plugin_specs) - finally: - pass - - self.generate_nix(results, outfile) - - redirects = {} - return redirects - - return update - - def rewrite_input(self, input_file: str, *args, **kwargs): - # vim plugin reads the file before update but that shouldn't be our case - # not implemented yet - # fieldnames = ['name', 'server', 'version', 'luaversion', 'maintainers'] - # input_file = "toto.csv" - # with open(input_file, newline='') as csvfile: - # writer = csv.DictWriter(csvfile, fieldnames=fieldnames) - # writer.writeheader() - # for row in reader: - # # name,server,version,luaversion,maintainers - # plugin = LuaPlugin(**row) - # luaPackages.append(plugin) - pass - - -def generate_pkg_nix(plug: LuaPlugin): - """ - Generate nix expression for a luarocks package - Our cache key associates "p.name-p.version" to its rockspec - """ - log.debug("Generating nix expression for %s", plug.name) - custom_env = os.environ.copy() - custom_env["LUAROCKS_CONFIG"] = LUAROCKS_CONFIG - - # we add --dev else luarocks wont find all the "scm" (=dev) versions of the - # packages - # , "--dev" - cmd = ["luarocks", "nix"] - - if plug.maintainers: - cmd.append(f"--maintainers={plug.maintainers}") - - # if plug.server == "src": - if plug.src != "": - if plug.src is None: - msg = ( - "src must be set when 'version' is set to \"src\" for package %s" - % plug.name - ) - log.error(msg) - raise RuntimeError(msg) - log.debug("Updating from source %s", plug.src) - cmd.append(plug.src) - # update the plugin from luarocks - else: - cmd.append(plug.name) - if plug.version and plug.version != "src": - cmd.append(plug.version) - - if plug.server != "src" and plug.server: - cmd.append(f"--only-server={plug.server}") - - if plug.luaversion: - cmd.append(f"--lua-version={plug.luaversion}") - - log.debug("running %s", " ".join(cmd)) - - output = subprocess.check_output(cmd, env=custom_env, text=True) - output = "callPackage(" + output.strip() + ") {};\n\n" - return (plug, output) - - -def main(): - editor = LuaEditor( - "lua", - ROOT, - "", - default_in=ROOT.joinpath(PKG_LIST), - default_out=ROOT.joinpath(GENERATED_NIXFILE), - ) - - editor.run() - - -if __name__ == "__main__": - main() - -# vim: set ft=python noet fdm=manual fenc=utf-8 ff=unix sts=0 sw=4 ts=4 : diff --git a/maintainers/scripts/update-luarocks-shell.nix b/maintainers/scripts/update-luarocks-shell.nix deleted file mode 100644 index 346b0319b08..00000000000 --- a/maintainers/scripts/update-luarocks-shell.nix +++ /dev/null @@ -1,13 +0,0 @@ -{ nixpkgs ? import ../.. { } -}: -with nixpkgs; -let - pyEnv = python3.withPackages(ps: [ ps.gitpython ]); -in -mkShell { - packages = [ - pyEnv - luarocks-nix - nix-prefetch-scripts - ]; -} diff --git a/nixos/doc/manual/release-notes/rl-2311.section.md b/nixos/doc/manual/release-notes/rl-2311.section.md index 76d9b026aa0..018e1e2f478 100644 --- a/nixos/doc/manual/release-notes/rl-2311.section.md +++ b/nixos/doc/manual/release-notes/rl-2311.section.md @@ -162,6 +162,10 @@ - `getent` has been moved from `glibc`'s `bin` output to its own dedicated output, reducing closure size for many dependents. Dependents using the `getent` alias should not be affected; others should move from using `glibc.bin` or `getBin glibc` to `getent` (which also improves compatibility with non-glibc platforms). +- `maintainers/scripts/update-luarocks-packages` is now a proper package + `luarocks-packages-updater` that can be run to maintain out-of-tree luarocks + packages + - The `users.users..passwordFile` has been renamed to `users.users..hashedPasswordFile` to avoid possible confusions. The option is in fact the file-based version of `hashedPassword`, not `password`, and expects a file containing the {manpage}`crypt(3)` hash of the user password. - The `services.ananicy.extraRules` option now has the type of `listOf attrs` instead of `string`. diff --git a/pkgs/development/lua-modules/updater/default.nix b/pkgs/development/lua-modules/updater/default.nix new file mode 100644 index 00000000000..40c93b21e83 --- /dev/null +++ b/pkgs/development/lua-modules/updater/default.nix @@ -0,0 +1,49 @@ +{ buildPythonApplication +, nix +, makeWrapper +, python3Packages +, lib +# , nix-prefetch-git +, nix-prefetch-scripts +, luarocks-nix +}: +let + + path = lib.makeBinPath [ nix nix-prefetch-scripts luarocks-nix ]; +in +buildPythonApplication { + pname = "luarocks-packages-updater"; + version = "0.1"; + + format = "other"; + + nativeBuildInputs = [ + makeWrapper + python3Packages.wrapPython + ]; + propagatedBuildInputs = [ + python3Packages.gitpython + ]; + + dontUnpack = true; + + installPhase = + '' + mkdir -p $out/bin $out/lib + cp ${./updater.py} $out/bin/luarocks-packages-updater + cp ${../../../../maintainers/scripts/pluginupdate.py} $out/lib/pluginupdate.py + + # wrap python scripts + makeWrapperArgs+=( --prefix PATH : "${path}" --prefix PYTHONPATH : "$out/lib" ) + wrapPythonProgramsIn "$out" + ''; + + shellHook = '' + export PYTHONPATH="maintainers/scripts:$PYTHONPATH" + export PATH="${path}:$PATH" + ''; + + meta.mainProgram = "luarocks-packages-updater"; +} + + diff --git a/pkgs/development/lua-modules/updater/updater.py b/pkgs/development/lua-modules/updater/updater.py new file mode 100755 index 00000000000..89a9bd9823a --- /dev/null +++ b/pkgs/development/lua-modules/updater/updater.py @@ -0,0 +1,217 @@ +#!/usr/bin/env python +# format: +# $ nix run nixpkgs#python3Packages.black -- update.py +# type-check: +# $ nix run nixpkgs#python3Packages.mypy -- update.py +# linted: +# $ nix run nixpkgs#python3Packages.flake8 -- --ignore E501,E265,E402 update.py + +import inspect +import os +import tempfile +import shutil +from dataclasses import dataclass +import subprocess +import csv +import logging +import textwrap +from multiprocessing.dummy import Pool + +from typing import List, Tuple, Optional +from pathlib import Path + +log = logging.getLogger() +log.addHandler(logging.StreamHandler()) + +ROOT = Path(os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))).parent.parent # type: ignore +import pluginupdate +from pluginupdate import update_plugins, FetchConfig, CleanEnvironment + +PKG_LIST = "maintainers/scripts/luarocks-packages.csv" +TMP_FILE = "$(mktemp)" +GENERATED_NIXFILE = "pkgs/development/lua-modules/generated-packages.nix" + +HEADER = """/* {GENERATED_NIXFILE} is an auto-generated file -- DO NOT EDIT! +Regenerate it with: nix run nixpkgs#update-luarocks-packages +You can customize the generated packages in pkgs/development/lua-modules/overrides.nix +*/ +""".format( + GENERATED_NIXFILE=GENERATED_NIXFILE +) + +FOOTER = """ +} +/* GENERATED - do not edit this file */ +""" + + +@dataclass +class LuaPlugin: + name: str + """Name of the plugin, as seen on luarocks.org""" + src: str + """address to the git repository""" + ref: Optional[str] + """git reference (branch name/tag)""" + version: Optional[str] + """Set it to pin a package """ + server: Optional[str] + """luarocks.org registers packages under different manifests. + Its value can be 'http://luarocks.org/dev' + """ + luaversion: Optional[str] + """Attribue of the lua interpreter if a package is available only for a specific lua version""" + maintainers: Optional[str] + """ Optional string listing maintainers separated by spaces""" + + @property + def normalized_name(self) -> str: + return self.name.replace(".", "-") + + +# rename Editor to LangUpdate/ EcosystemUpdater +class LuaEditor(pluginupdate.Editor): + + def create_parser(self): + parser = super().create_parser() + parser.set_defaults(proc=1) + return parser + + def get_current_plugins(self): + return [] + + def load_plugin_spec(self, input_file) -> List[LuaPlugin]: + luaPackages = [] + csvfilename = input_file + log.info("Loading package descriptions from %s", csvfilename) + + with open(csvfilename, newline="") as csvfile: + reader = csv.DictReader( + csvfile, + ) + for row in reader: + # name,server,version,luaversion,maintainers + plugin = LuaPlugin(**row) + luaPackages.append(plugin) + return luaPackages + + def update(self, args): + update_plugins(self, args) + + def generate_nix(self, results: List[Tuple[LuaPlugin, str]], outfilename: str): + with tempfile.NamedTemporaryFile("w+") as f: + f.write(HEADER) + header2 = textwrap.dedent( + """ + { stdenv, lib, fetchurl, fetchgit, callPackage, ... } @ args: + final: prev: + { + """ + ) + f.write(header2) + for plugin, nix_expr in results: + f.write(f"{plugin.normalized_name} = {nix_expr}") + f.write(FOOTER) + f.flush() + + # if everything went fine, move the generated file to its destination + # using copy since move doesn't work across disks + shutil.copy(f.name, outfilename) + + print(f"updated {outfilename}") + + @property + def attr_path(self): + return "luaPackages" + + def get_update(self, input_file: str, outfile: str, config: FetchConfig): + _prefetch = generate_pkg_nix + + def update() -> dict: + plugin_specs = self.load_plugin_spec(input_file) + sorted_plugin_specs = sorted(plugin_specs, key=lambda v: v.name.lower()) + + try: + pool = Pool(processes=config.proc) + results = pool.map(_prefetch, sorted_plugin_specs) + finally: + pass + + self.generate_nix(results, outfile) + + redirects = {} + return redirects + + return update + + def rewrite_input(self, input_file: str, *args, **kwargs): + # vim plugin reads the file before update but that shouldn't be our case + # not implemented yet + # fieldnames = ['name', 'server', 'version', 'luaversion', 'maintainers'] + # input_file = "toto.csv" + # with open(input_file, newline='') as csvfile: + # writer = csv.DictWriter(csvfile, fieldnames=fieldnames) + # writer.writeheader() + # for row in reader: + # # name,server,version,luaversion,maintainers + # plugin = LuaPlugin(**row) + # luaPackages.append(plugin) + pass + + +def generate_pkg_nix(plug: LuaPlugin): + """ + Generate nix expression for a luarocks package + Our cache key associates "p.name-p.version" to its rockspec + """ + log.debug("Generating nix expression for %s", plug.name) + + cmd = ["luarocks", "nix"] + + if plug.maintainers: + cmd.append(f"--maintainers={plug.maintainers}") + + # if plug.server == "src": + if plug.src != "": + if plug.src is None: + msg = ( + "src must be set when 'version' is set to \"src\" for package %s" + % plug.name + ) + log.error(msg) + raise RuntimeError(msg) + log.debug("Updating from source %s", plug.src) + cmd.append(plug.src) + # update the plugin from luarocks + else: + cmd.append(plug.name) + if plug.version and plug.version != "src": + cmd.append(plug.version) + + if plug.server != "src" and plug.server: + cmd.append(f"--only-server={plug.server}") + + if plug.luaversion: + cmd.append(f"--lua-version={plug.luaversion}") + + log.debug("running %s", " ".join(cmd)) + + output = subprocess.check_output(cmd, text=True) + output = "callPackage(" + output.strip() + ") {};\n\n" + return (plug, output) + + +def main(): + editor = LuaEditor( + "lua", + ROOT, + "", + default_in=PKG_LIST, + default_out=GENERATED_NIXFILE, + ) + + editor.run() + + +if __name__ == "__main__": + main() diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f03ee45e1f6..729c2d604e6 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -17766,6 +17766,11 @@ with pkgs; luarocks = luaPackages.luarocks; luarocks-nix = luaPackages.luarocks-nix; + luarocks-packages-updater = callPackage ../development/lua-modules/updater { + inherit (python3Packages) buildPythonApplication ; + }; + + luau = callPackage ../development/interpreters/luau { }; lune = callPackage ../development/interpreters/lune { }; -- cgit 1.4.1 From 54f864f5c5ecad477eda45232bfa0383b4d2c122 Mon Sep 17 00:00:00 2001 From: Anderson Torres Date: Fri, 27 Oct 2023 17:46:01 -0300 Subject: doc: update meson.section.md --- doc/hooks/meson.section.md | 83 ++++++++++++++++++++++++++++++++-------------- 1 file changed, 58 insertions(+), 25 deletions(-) (limited to 'doc') diff --git a/doc/hooks/meson.section.md b/doc/hooks/meson.section.md index a4b8da1d46c..3a7fb503208 100644 --- a/doc/hooks/meson.section.md +++ b/doc/hooks/meson.section.md @@ -1,50 +1,83 @@ # Meson {#meson} -Overrides the configure, check, and install phases to run `meson setup`, `meson test`, and `meson install`. +[Meson](https://mesonbuild.com/) is an open source meta build system meant to be +fast and user-friendly. -Meson is a meta-build system so you will need a secondary build system to run the generated build files in build phase. In Nixpkgs context, you will want to accompany Meson with ninja, which provides a [setup hook](#ninja) registering a ninja-based build phase. +In Nixpkgs, meson comes with a setup hook that overrides the configure, check, +and install phases. -By default, `enableParallelBuilding` is enabled as Meson supports parallel building almost everywhere. +Being a meta build system, meson needs an accompanying backend. In the context +of Nixpkgs, the typical companion backend is [Ninja](#ninja), that provides a +setup hook registering ninja-based build and install phases. -## Variables controlling Meson {#variables-controlling-meson} +## Variables controlling Meson {#meson-variables-controlling} -### `mesonFlags` {#mesonflags} +### Meson Exclusive Variables {#meson-exclusive-variables} -Controls the flags passed to `meson setup`. +#### `mesonFlags` {#meson-flags} -### `mesonCheckFlags` {#mesoncheckflags} +Controls the flags passed to `meson setup` during configure phase. -Controls the flags passed to `meson test`. +#### `mesonWrapMode` {#meson-wrap-mode} -### `mesonInstallFlags` {#mesoninstallflags} +Which value is passed as +[`-Dwrap_mode=`](https://mesonbuild.com/Builtin-options.html#core-options) +to. In Nixpkgs the default value is `nodownload`, so that no subproject will be +downloaded (since network access is already disabled during deployment in +Nixpkgs). -Controls the flags passed to `meson install`. +Note: Meson allows pre-population of subprojects that would otherwise be +downloaded. -### `mesonInstallTags` {#mesoninstalltags} +#### `mesonBuildType` {#meson-build-type} -Tags specified here will be passed to Meson as via `--tags` during -installation and controls which components will be installed. +Which value is passed as +[`--buildtype`](https://mesonbuild.com/Builtin-options.html#core-options) to +`meson setup` during configure phase. In Nixpkgs the default value is `plain`. -### `mesonBuildType` {#mesonbuildtype} +#### `mesonAutoFeatures` {#meson-auto-features} -Which [`--buildtype`](https://mesonbuild.com/Builtin-options.html#core-options) to pass to `meson setup`. We default to `plain`. +Which value is passed as +[`-Dauto_features=`](https://mesonbuild.com/Builtin-options.html#core-options) +to `meson setup` during configure phase. In Nixpkgs the default value is +`enabled`, meaning that every feature declared as "auto" by the meson scripts +will be enabled. -### `mesonAutoFeatures` {#mesonautofeatures} +#### `mesonCheckFlags` {#meson-check-flags} -What value to set [`-Dauto_features=`](https://mesonbuild.com/Builtin-options.html#core-options) to. We default to `enabled`. +Controls the flags passed to `meson test` during check phase. -### `mesonWrapMode` {#mesonwrapmode} +#### `mesonInstallFlags` {#meson-install-flags} -What value to set [`-Dwrap_mode=`](https://mesonbuild.com/Builtin-options.html#core-options) to. We default to `nodownload` as we disallow network access. +Controls the flags passed to `meson install` during install phase. -### `dontUseMesonConfigure` {#dontusemesonconfigure} +#### `mesonInstallTags` {#meson-install-tags} -Disables using Meson’s `configurePhase`. +A list of installation tags passed to Meson's commandline option +[`--tags`](https://mesonbuild.com/Installing.html#installation-tags) during +install phase. -### `dontUseMesonCheck` {#dontusemesoncheck} +Note: `mesonInstallTags` should be a list of strings, that will be converted to +a comma-separated string that is recognized to `--tags`. +Example: `mesonInstallTags = [ "emulator" "assembler" ];` will be converted to +`--tags emulator,assembler`. -Disables using Meson’s `checkPhase`. +#### `dontUseMesonConfigure` {#dont-use-meson-configure} -### `dontUseMesonInstall` {#dontusemesoninstall} +When set to true, don't use the predefined `mesonConfigurePhase`. -Disables using Meson’s `installPhase`. +#### `dontUseMesonCheck` {#dont-use-meson-check} + +When set to true, don't use the predefined `mesonCheckPhase`. + +#### `dontUseMesonInstall` {#dont-use-meson-install} + +When set to true, don't use the predefined `mesonInstallPhase`. + +### Honored variables {#meson-honored-variables} + +The following variables commonly used by `stdenv.mkDerivation` are honored by +Meson setup hook. + +- `prefixKey` +- `enableParallelBuilding` -- cgit 1.4.1 From e75c485fd374ae920daad7b8de5233a8f9c2239a Mon Sep 17 00:00:00 2001 From: teutat3s <10206665+teutat3s@users.noreply.github.com> Date: Tue, 31 Oct 2023 22:40:21 +0100 Subject: doc: fix dockerTools nix-prefetch-docker example --- doc/builders/images/dockertools.section.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/builders/images/dockertools.section.md b/doc/builders/images/dockertools.section.md index 3ac4f224b5d..42d6e297f52 100644 --- a/doc/builders/images/dockertools.section.md +++ b/doc/builders/images/dockertools.section.md @@ -275,7 +275,7 @@ pullImage { `nix-prefetch-docker` command can be used to get required image parameters: ```ShellSession -$ nix run nixpkgs.nix-prefetch-docker -c nix-prefetch-docker --image-name mysql --image-tag 5 +$ nix run nixpkgs#nix-prefetch-docker -- --image-name mysql --image-tag 5 ``` Since a given `imageName` may transparently refer to a manifest list of images which support multiple architectures and/or operating systems, you can supply the `--os` and `--arch` arguments to specify exactly which image you want. By default it will match the OS and architecture of the host the command is run on. -- cgit 1.4.1 From 3b5b8e31a3f6db9d3547ac305700535f984e3a96 Mon Sep 17 00:00:00 2001 From: Valentin Gagarin Date: Thu, 2 Nov 2023 17:38:03 +0100 Subject: fixup note on dhall-to-nixpkgs example --- doc/languages-frameworks/dhall.section.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/languages-frameworks/dhall.section.md b/doc/languages-frameworks/dhall.section.md index 7322a61687d..83567ab17ac 100644 --- a/doc/languages-frameworks/dhall.section.md +++ b/doc/languages-frameworks/dhall.section.md @@ -323,7 +323,7 @@ $ nix-shell -p haskellPackages.dhall-nixpkgs nix-prefetch-git ``` :::{.note} -`nix-prefetch-git` has to be in `$PATH` for `dhall-to-nixpkgs` to work. +`nix-prefetch-git` is added to the `nix-shell -p` invocation above, because it has to be in `$PATH` for `dhall-to-nixpkgs` to work. ::: The utility takes care of automatically detecting remote imports and converting -- cgit 1.4.1 From 9a49f0cb28d1ff19732136683e81902d78c5bc7b Mon Sep 17 00:00:00 2001 From: Valentin Gagarin Date: Thu, 2 Nov 2023 18:27:39 +0100 Subject: document differences to built-in fetchers (#263569) * document differences to built-in fetchers Co-authored-by: Alexander Groleau --- doc/builders/fetchers.chapter.md | 23 +++++++++++++++++++---- 1 file changed, 19 insertions(+), 4 deletions(-) (limited to 'doc') diff --git a/doc/builders/fetchers.chapter.md b/doc/builders/fetchers.chapter.md index c99b46097e9..7bd1bbd6de0 100644 --- a/doc/builders/fetchers.chapter.md +++ b/doc/builders/fetchers.chapter.md @@ -1,12 +1,27 @@ # Fetchers {#chap-pkgs-fetchers} Building software with Nix often requires downloading source code and other files from the internet. -`nixpkgs` provides *fetchers* for different protocols and services. Fetchers are functions that simplify downloading files. +To this end, Nixpkgs provides *fetchers*: functions to obtain remote sources via various protocols and services. -## Caveats {#chap-pkgs-fetchers-caveats} +Nixpkgs fetchers differ from built-in fetchers such as [`builtins.fetchTarball`](https://nixos.org/manual/nix/stable/language/builtins.html#builtins-fetchTarball): +- A built-in fetcher will download and cache files at evaluation time and produce a [store path](https://nixos.org/manual/nix/stable/glossary#gloss-store-path). + A Nixpkgs fetcher will create a ([fixed-output](https://nixos.org/manual/nix/stable/glossary#gloss-fixed-output-derivation)) [derivation](https://nixos.org/manual/nix/stable/language/derivations), and files are downloaded at build time. +- Built-in fetchers will invalidate their cache after [`tarball-ttl`](https://nixos.org/manual/nix/stable/command-ref/conf-file#conf-tarball-ttl) expires, and will require network activity to check if the cache entry is up to date. + Nixpkgs fetchers only re-download if the specified hash changes or the store object is not otherwise available. +- Built-in fetchers do not use [substituters](https://nixos.org/manual/nix/stable/command-ref/conf-file#conf-substituters). + Derivations produced by Nixpkgs fetchers will use any configured binary cache transparently. + +This significantly reduces the time needed to evaluate the entirety of Nixpkgs, and allows [Hydra](https://nixos.org/hydra) to retain and re-distribute sources used by Nixpkgs in the [public binary cache](https://cache.nixos.org). +For these reasons, built-in fetchers are not allowed in Nixpkgs source code. + +The following table shows an overview of the differences: -Fetchers create [fixed output derivations](https://nixos.org/manual/nix/stable/#fixed-output-drvs) from downloaded files. -Nix can reuse the downloaded files via the hash of the resulting derivation. +| Fetchers | Download | Output | Cache | Re-download when | +|-|-|-|-|-| +| `builtins.fetch*` | evaluation time | store path | `/nix/store`, `~/.cache/nix` | `tarball-ttl` expires, cache miss in `~/.cache/nix`, output store object not in local store | +| `pkgs.fetch*` | build time | derivation | `/nix/store`, substituters | output store object not available | + +## Caveats {#chap-pkgs-fetchers-caveats} The fact that the hash belongs to the Nix derivation output and not the file itself can lead to confusion. For example, consider the following fetcher: -- cgit 1.4.1 From bc2d5988780f02c26daea44016df56a1dc4fb8e2 Mon Sep 17 00:00:00 2001 From: Adam Joseph Date: Sun, 5 Nov 2023 17:38:24 -0800 Subject: treewide: change pythonForBuild to pythonOnBuildForHost --- doc/languages-frameworks/python.section.md | 4 ++-- nixos/modules/programs/fish.nix | 2 +- pkgs/applications/misc/calibre/default.nix | 2 +- pkgs/applications/misc/tandoor-recipes/default.nix | 4 ++-- pkgs/applications/misc/zathura/core/default.nix | 2 +- .../networking/browsers/chromium/common.nix | 4 ++-- pkgs/applications/networking/flent/default.nix | 2 +- .../instant-messengers/deltachat-cursed/default.nix | 2 +- .../networking/mailreaders/afew/default.nix | 2 +- .../networking/p2p/zeronet-conservancy/default.nix | 2 +- pkgs/applications/networking/p2p/zeronet/default.nix | 2 +- pkgs/applications/office/paperless-ngx/default.nix | 6 +++--- pkgs/applications/science/biology/quast/default.nix | 2 +- pkgs/applications/science/logic/z3/default.nix | 2 +- pkgs/applications/terminal-emulators/kitty/default.nix | 8 ++++---- .../interpreters/python/cpython/2.7/default.nix | 12 ++++++------ .../interpreters/python/cpython/default.nix | 18 +++++++++--------- pkgs/development/interpreters/python/hooks/default.nix | 12 ++++++------ .../interpreters/python/hooks/pypa-build-hook-test.nix | 8 ++++---- .../interpreters/python/mk-python-derivation.nix | 6 +++--- .../python/python2/mk-python-derivation.nix | 2 +- pkgs/development/interpreters/python/wrap-python.nix | 2 +- pkgs/development/interpreters/renpy/default.nix | 4 ++-- pkgs/development/libraries/gexiv2/default.nix | 2 +- pkgs/development/libraries/gpgme/default.nix | 2 +- pkgs/development/libraries/gusb/default.nix | 2 +- pkgs/development/libraries/libftdi/1.x.nix | 2 +- pkgs/development/libraries/libgweather/default.nix | 2 +- pkgs/development/libraries/libical/default.nix | 2 +- pkgs/development/libraries/libiio/default.nix | 2 +- pkgs/development/libraries/libxml2/default.nix | 2 +- pkgs/development/libraries/libxslt/default.nix | 2 +- pkgs/development/libraries/lirc/default.nix | 2 +- pkgs/development/libraries/pipewire/wireplumber.nix | 2 +- pkgs/development/libraries/polkit/default.nix | 2 +- .../libraries/science/chemistry/openmm/default.nix | 4 ++-- .../libraries/science/math/or-tools/default.nix | 6 +++--- pkgs/development/libraries/tracker/default.nix | 2 +- .../python-modules/asyncinotify/default.nix | 2 +- .../development/python-modules/bash_kernel/default.nix | 2 +- pkgs/development/python-modules/bashlex/default.nix | 2 +- pkgs/development/python-modules/catboost/default.nix | 2 +- pkgs/development/python-modules/cypari2/default.nix | 2 +- pkgs/development/python-modules/dbus/default.nix | 2 +- pkgs/development/python-modules/gst-python/default.nix | 2 +- pkgs/development/python-modules/llfuse/default.nix | 2 +- pkgs/development/python-modules/manimpango/default.nix | 2 +- pkgs/development/python-modules/mutagen/default.nix | 2 +- pkgs/development/python-modules/nose/default.nix | 6 +++--- pkgs/development/python-modules/nose3/default.nix | 2 +- pkgs/development/python-modules/pyatspi/default.nix | 2 +- pkgs/development/python-modules/pybind11/default.nix | 2 +- pkgs/development/python-modules/pycairo/default.nix | 2 +- pkgs/development/python-modules/pycuda/default.nix | 2 +- pkgs/development/python-modules/pyfuse3/default.nix | 2 +- pkgs/development/python-modules/pygame/default.nix | 2 +- pkgs/development/python-modules/pygeos/default.nix | 4 ++-- pkgs/development/python-modules/pygobject/3.nix | 2 +- pkgs/development/python-modules/pymunk/default.nix | 2 +- pkgs/development/python-modules/pyside2/default.nix | 2 +- pkgs/development/python-modules/pyside6/default.nix | 2 +- pkgs/development/python-modules/pysvn/default.nix | 4 ++-- pkgs/development/python-modules/python-efl/default.nix | 4 ++-- .../python-modules/python-fontconfig/default.nix | 2 +- pkgs/development/python-modules/pywayland/default.nix | 2 +- pkgs/development/python-modules/pywlroots/default.nix | 2 +- .../python-modules/recursive-pth-loader/default.nix | 2 +- pkgs/development/python-modules/redis-om/default.nix | 2 +- pkgs/development/python-modules/shiboken2/default.nix | 2 +- pkgs/development/python-modules/shiboken6/default.nix | 2 +- pkgs/development/python-modules/torch/default.nix | 2 +- pkgs/development/python-modules/wxPython/4.2.nix | 4 ++-- pkgs/development/python-modules/xattr/default.nix | 2 +- pkgs/development/python-modules/xkbcommon/default.nix | 2 +- .../python2-modules/bootstrapped-pip/default.nix | 6 +++--- pkgs/development/python2-modules/pycairo/default.nix | 2 +- .../development/python2-modules/setuptools/default.nix | 4 ++-- pkgs/development/tools/fdroidserver/default.nix | 2 +- pkgs/development/tools/misc/ycmd/default.nix | 2 +- pkgs/os-specific/linux/bolt/default.nix | 2 +- pkgs/os-specific/linux/libnl/default.nix | 2 +- pkgs/os-specific/linux/libnvme/default.nix | 2 +- pkgs/os-specific/linux/libselinux/default.nix | 2 +- .../linux/power-profiles-daemon/default.nix | 2 +- pkgs/servers/home-assistant/intents.nix | 2 +- pkgs/servers/uwsgi/default.nix | 6 +++--- pkgs/tools/audio/tts/default.nix | 2 +- pkgs/tools/backup/s3ql/default.nix | 2 +- pkgs/tools/networking/networkmanager/default.nix | 2 +- pkgs/tools/security/fail2ban/default.nix | 2 +- pkgs/tools/system/minijail/tools.nix | 2 +- 91 files changed, 137 insertions(+), 137 deletions(-) (limited to 'doc') diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md index cdd5c806912..69a95f482fb 100644 --- a/doc/languages-frameworks/python.section.md +++ b/doc/languages-frameworks/python.section.md @@ -142,7 +142,7 @@ buildPythonPackage rec { The `buildPythonPackage` mainly does four things: -* In the [`buildPhase`](#build-phase), it calls `${python.pythonForBuild.interpreter} setup.py bdist_wheel` to +* In the [`buildPhase`](#build-phase), it calls `${python.pythonOnBuildForHost.interpreter} setup.py bdist_wheel` to build a wheel binary zipfile. * In the [`installPhase`](#ssec-install-phase), it installs the wheel file using `pip install *.whl`. * In the [`postFixup`](#var-stdenv-postFixup) phase, the `wrapPythonPrograms` bash function is called to @@ -1682,7 +1682,7 @@ of such package using the feature is `pkgs/tools/X11/xpra/default.nix`. As workaround install it as an extra `preInstall` step: ```shell -${python.pythonForBuild.interpreter} setup.py install_data --install-dir=$out --root=$out +${python.pythonOnBuildForHost.interpreter} setup.py install_data --install-dir=$out --root=$out sed -i '/ = data\_files/d' setup.py ``` diff --git a/nixos/modules/programs/fish.nix b/nixos/modules/programs/fish.nix index e6ac6e9957b..a4c20560bc9 100644 --- a/nixos/modules/programs/fish.nix +++ b/nixos/modules/programs/fish.nix @@ -268,7 +268,7 @@ in '' mkdir -p $out if [ -d $package/share/man ]; then - find $package/share/man -type f | xargs ${pkgs.python3.pythonForBuild.interpreter} ${patchedGenerator}/create_manpage_completions.py --directory $out >/dev/null + find $package/share/man -type f | xargs ${pkgs.python3.pythonOnBuildForHost.interpreter} ${patchedGenerator}/create_manpage_completions.py --directory $out >/dev/null fi ''; in diff --git a/pkgs/applications/misc/calibre/default.nix b/pkgs/applications/misc/calibre/default.nix index 7bc7b4dc5cc..b8b7eb435ac 100644 --- a/pkgs/applications/misc/calibre/default.nix +++ b/pkgs/applications/misc/calibre/default.nix @@ -148,7 +148,7 @@ stdenv.mkDerivation (finalAttrs: { export XDG_DATA_HOME=$out/share export XDG_UTILS_INSTALL_MODE="user" - ${python3Packages.python.pythonForBuild.interpreter} setup.py install --root=$out \ + ${python3Packages.python.pythonOnBuildForHost.interpreter} setup.py install --root=$out \ --prefix=$out \ --libdir=$out/lib \ --staging-root=$out \ diff --git a/pkgs/applications/misc/tandoor-recipes/default.nix b/pkgs/applications/misc/tandoor-recipes/default.nix index 829def809d0..ed07eac4499 100644 --- a/pkgs/applications/misc/tandoor-recipes/default.nix +++ b/pkgs/applications/misc/tandoor-recipes/default.nix @@ -113,8 +113,8 @@ python.pkgs.pythonPackages.buildPythonPackage rec { touch cookbook/static/themes/bootstrap.min.css.map touch cookbook/static/css/bootstrap-vue.min.css.map - ${python.pythonForBuild.interpreter} manage.py collectstatic_js_reverse - ${python.pythonForBuild.interpreter} manage.py collectstatic + ${python.pythonOnBuildForHost.interpreter} manage.py collectstatic_js_reverse + ${python.pythonOnBuildForHost.interpreter} manage.py collectstatic runHook postBuild ''; diff --git a/pkgs/applications/misc/zathura/core/default.nix b/pkgs/applications/misc/zathura/core/default.nix index 6282b812b24..321ef367c5f 100644 --- a/pkgs/applications/misc/zathura/core/default.nix +++ b/pkgs/applications/misc/zathura/core/default.nix @@ -30,7 +30,7 @@ stdenv.mkDerivation (finalAttrs: { ]; nativeBuildInputs = [ - meson ninja pkg-config desktop-file-utils python3.pythonForBuild.pkgs.sphinx + meson ninja pkg-config desktop-file-utils python3.pythonOnBuildForHost.pkgs.sphinx gettext wrapGAppsHook libxml2 appstream-glib ]; diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index 2a686f87d16..ff0c83527aa 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -62,7 +62,7 @@ buildFun: let - python3WithPackages = python3.pythonForBuild.withPackages(ps: with ps; [ + python3WithPackages = python3.pythonOnBuildForHost.withPackages(ps: with ps; [ ply jinja2 setuptools ]); clangFormatPython3 = fetchurl { @@ -437,7 +437,7 @@ let # This is to ensure expansion of $out. libExecPath="${libExecPath}" - ${python3.pythonForBuild}/bin/python3 build/linux/unbundle/replace_gn_files.py --system-libraries ${toString gnSystemLibraries} + ${python3.pythonOnBuildForHost}/bin/python3 build/linux/unbundle/replace_gn_files.py --system-libraries ${toString gnSystemLibraries} ${gnChromium}/bin/gn gen --args=${lib.escapeShellArg gnFlags} out/Release | tee gn-gen-outputs.txt # Fail if `gn gen` contains a WARNING. diff --git a/pkgs/applications/networking/flent/default.nix b/pkgs/applications/networking/flent/default.nix index 8da9a49f90a..35ca72c5eee 100644 --- a/pkgs/applications/networking/flent/default.nix +++ b/pkgs/applications/networking/flent/default.nix @@ -34,7 +34,7 @@ buildPythonApplication rec { cat >test-runner < (!rebuildBytecode)) let buildPackages = pkgsBuildHost; - inherit (passthru) pythonForBuild; + inherit (passthru) pythonOnBuildForHost; - pythonForBuildInterpreter = if stdenv.hostPlatform == stdenv.buildPlatform then + pythonOnBuildForHostInterpreter = if stdenv.hostPlatform == stdenv.buildPlatform then "$out/bin/python" - else pythonForBuild.interpreter; + else pythonOnBuildForHost.interpreter; passthru = passthruFun rec { inherit self sourceVersion packageOverrides; @@ -297,9 +297,9 @@ in with passthru; stdenv.mkDerivation ({ # We build 3 levels of optimized bytecode. Note the default level, without optimizations, # is not reproducible yet. https://bugs.python.org/issue29708 # Not creating bytecode will result in a large performance loss however, so we do build it. - find $out -name "*.py" | ${pythonForBuildInterpreter} -m compileall -q -f -x "lib2to3" -i - - find $out -name "*.py" | ${pythonForBuildInterpreter} -O -m compileall -q -f -x "lib2to3" -i - - find $out -name "*.py" | ${pythonForBuildInterpreter} -OO -m compileall -q -f -x "lib2to3" -i - + find $out -name "*.py" | ${pythonOnBuildForHostInterpreter} -m compileall -q -f -x "lib2to3" -i - + find $out -name "*.py" | ${pythonOnBuildForHostInterpreter} -O -m compileall -q -f -x "lib2to3" -i - + find $out -name "*.py" | ${pythonOnBuildForHostInterpreter} -OO -m compileall -q -f -x "lib2to3" -i - '' + lib.optionalString stdenv.hostPlatform.isCygwin '' cp libpython2.7.dll.a $out/lib ''; diff --git a/pkgs/development/interpreters/python/cpython/default.nix b/pkgs/development/interpreters/python/cpython/default.nix index 9ecc27fa1c7..8bc5c6c586d 100644 --- a/pkgs/development/interpreters/python/cpython/default.nix +++ b/pkgs/development/interpreters/python/cpython/default.nix @@ -92,7 +92,7 @@ let openssl' = if openssl != null then openssl_legacy else null; buildPackages = pkgsBuildHost; - inherit (passthru) pythonForBuild; + inherit (passthru) pythonOnBuildForHost; inherit (darwin.apple_sdk.frameworks) Cocoa; @@ -127,7 +127,7 @@ let nukeReferences ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ buildPackages.stdenv.cc - pythonForBuild + pythonOnBuildForHost ] ++ optionals (stdenv.cc.isClang && (!stdenv.hostPlatform.useAndroidPrebuilt or false) && (enableLTO || enableOptimizations)) [ stdenv.cc.cc.libllvm.out ]; @@ -148,9 +148,9 @@ let hasDistutilsCxxPatch = !(stdenv.cc.isGNU or false); - pythonForBuildInterpreter = if stdenv.hostPlatform == stdenv.buildPlatform then + pythonOnBuildForHostInterpreter = if stdenv.hostPlatform == stdenv.buildPlatform then "$out/bin/python" - else pythonForBuild.interpreter; + else pythonOnBuildForHost.interpreter; src = fetchurl { url = with sourceVersion; "https://www.python.org/ftp/python/${major}.${minor}.${patch}/Python-${version}.tar.xz"; @@ -388,7 +388,7 @@ in with passthru; stdenv.mkDerivation (finalAttrs: { "ac_cv_file__dev_ptmx=${if stdenv.hostPlatform.isWindows then "no" else "yes"}" "ac_cv_file__dev_ptc=${if stdenv.hostPlatform.isWindows then "no" else "yes"}" ] ++ optionals (stdenv.hostPlatform != stdenv.buildPlatform && pythonAtLeast "3.11") [ - "--with-build-python=${pythonForBuildInterpreter}" + "--with-build-python=${pythonOnBuildForHostInterpreter}" ] ++ optionals stdenv.hostPlatform.isLinux [ # Never even try to use lchmod on linux, # don't rely on detecting glibc-isms. @@ -511,9 +511,9 @@ in with passthru; stdenv.mkDerivation (finalAttrs: { # We build 3 levels of optimized bytecode. Note the default level, without optimizations, # is not reproducible yet. https://bugs.python.org/issue29708 # Not creating bytecode will result in a large performance loss however, so we do build it. - find $out -name "*.py" | ${pythonForBuildInterpreter} -m compileall -q -f -x "lib2to3" -i - - find $out -name "*.py" | ${pythonForBuildInterpreter} -O -m compileall -q -f -x "lib2to3" -i - - find $out -name "*.py" | ${pythonForBuildInterpreter} -OO -m compileall -q -f -x "lib2to3" -i - + find $out -name "*.py" | ${pythonOnBuildForHostInterpreter} -m compileall -q -f -x "lib2to3" -i - + find $out -name "*.py" | ${pythonOnBuildForHostInterpreter} -O -m compileall -q -f -x "lib2to3" -i - + find $out -name "*.py" | ${pythonOnBuildForHostInterpreter} -OO -m compileall -q -f -x "lib2to3" -i - '' + '' # *strip* shebang from libpython gdb script - it should be dual-syntax and # interpretable by whatever python the gdb in question is using, which may @@ -561,7 +561,7 @@ in with passthru; stdenv.mkDerivation (finalAttrs: { ++ lib.optionals (stdenv.hostPlatform != stdenv.buildPlatform) [ # Ensure we don't have references to build-time packages. # These typically end up in shebangs. - pythonForBuild buildPackages.bash + pythonOnBuildForHost buildPackages.bash ]; separateDebugInfo = true; diff --git a/pkgs/development/interpreters/python/hooks/default.nix b/pkgs/development/interpreters/python/hooks/default.nix index ba51c43822d..5aee357dd91 100644 --- a/pkgs/development/interpreters/python/hooks/default.nix +++ b/pkgs/development/interpreters/python/hooks/default.nix @@ -1,8 +1,8 @@ self: dontUse: with self; let - inherit (python) pythonForBuild; - pythonInterpreter = pythonForBuild.interpreter; + inherit (python) pythonOnBuildForHost; + pythonInterpreter = pythonOnBuildForHost.interpreter; pythonSitePackages = python.sitePackages; pythonCheckInterpreter = python.interpreter; setuppy = ../run_setup.py; @@ -68,10 +68,10 @@ in { # set, but in downstream projects that build packages depending on other # versions of this hook's dependencies. passthru.tests = import ./pypa-build-hook-tests.nix { - inherit pythonForBuild runCommand; + inherit pythonOnBuildForHost runCommand; }; } ./pypa-build-hook.sh) { - inherit (pythonForBuild.pkgs) build; + inherit (pythonOnBuildForHost.pkgs) build; }; pipInstallHook = callPackage ({ makePythonHook, pip }: @@ -91,7 +91,7 @@ in { inherit pythonInterpreter pythonSitePackages; }; } ./pypa-install-hook.sh) { - inherit (pythonForBuild.pkgs) installer; + inherit (pythonOnBuildForHost.pkgs) installer; }; pytestCheckHook = callPackage ({ makePythonHook, pytest }: @@ -227,6 +227,6 @@ in { sphinxHook = callPackage ({ makePythonHook, installShellFiles }: makePythonHook { name = "python${python.pythonVersion}-sphinx-hook"; - propagatedBuildInputs = [ pythonForBuild.pkgs.sphinx installShellFiles ]; + propagatedBuildInputs = [ pythonOnBuildForHost.pkgs.sphinx installShellFiles ]; } ./sphinx-hook.sh) {}; } diff --git a/pkgs/development/interpreters/python/hooks/pypa-build-hook-test.nix b/pkgs/development/interpreters/python/hooks/pypa-build-hook-test.nix index d909e34241f..4153c21ca4f 100644 --- a/pkgs/development/interpreters/python/hooks/pypa-build-hook-test.nix +++ b/pkgs/development/interpreters/python/hooks/pypa-build-hook-test.nix @@ -1,4 +1,4 @@ -{ pythonForBuild, runCommand }: { +{ pythonOnBuildForHost, runCommand }: { dont-propagate-conflicting-deps = let # customize a package so that its store paths differs mkConflict = pkg: pkg.overrideAttrs { some_modification = true; }; @@ -16,7 +16,7 @@ ''; in # this build must never triger conflicts - pythonForBuild.pkgs.buildPythonPackage { + pythonOnBuildForHost.pkgs.buildPythonPackage { pname = "dont-propagate-conflicting-deps"; version = "0.0.0"; src = projectSource; @@ -24,9 +24,9 @@ propagatedBuildInputs = [ # At least one dependency of `build` should be included here to # keep the test meaningful - (mkConflict pythonForBuild.pkgs.tomli) + (mkConflict pythonOnBuildForHost.pkgs.tomli) # setuptools is also needed to build the example project - pythonForBuild.pkgs.setuptools + pythonOnBuildForHost.pkgs.setuptools ]; }; } diff --git a/pkgs/development/interpreters/python/mk-python-derivation.nix b/pkgs/development/interpreters/python/mk-python-derivation.nix index fbacf6bb233..060b840ce22 100644 --- a/pkgs/development/interpreters/python/mk-python-derivation.nix +++ b/pkgs/development/interpreters/python/mk-python-derivation.nix @@ -223,7 +223,7 @@ let ] ++ lib.optionals (format' == "pyproject") [( if isBootstrapPackage then pypaBuildHook.override { - inherit (python.pythonForBuild.pkgs.bootstrap) build; + inherit (python.pythonOnBuildForHost.pkgs.bootstrap) build; wheel = null; } else @@ -235,7 +235,7 @@ let ] ++ lib.optionals (format' != "other") [( if isBootstrapInstallPackage then pypaInstallHook.override { - inherit (python.pythonForBuild.pkgs.bootstrap) installer; + inherit (python.pythonOnBuildForHost.pkgs.bootstrap) installer; } else pypaInstallHook @@ -279,7 +279,7 @@ let '' + attrs.postFixup or ""; # Python packages built through cross-compilation are always for the host platform. - disallowedReferences = lib.optionals (python.stdenv.hostPlatform != python.stdenv.buildPlatform) [ python.pythonForBuild ]; + disallowedReferences = lib.optionals (python.stdenv.hostPlatform != python.stdenv.buildPlatform) [ python.pythonOnBuildForHost ]; outputs = outputs ++ lib.optional withDistOutput "dist"; diff --git a/pkgs/development/interpreters/python/python2/mk-python-derivation.nix b/pkgs/development/interpreters/python/python2/mk-python-derivation.nix index d42e4e85c10..1a6f9c784cf 100644 --- a/pkgs/development/interpreters/python/python2/mk-python-derivation.nix +++ b/pkgs/development/interpreters/python/python2/mk-python-derivation.nix @@ -224,7 +224,7 @@ let '' + attrs.postFixup or ""; # Python packages built through cross-compilation are always for the host platform. - disallowedReferences = lib.optionals (python.stdenv.hostPlatform != python.stdenv.buildPlatform) [ python.pythonForBuild ]; + disallowedReferences = lib.optionals (python.stdenv.hostPlatform != python.stdenv.buildPlatform) [ python.pythonOnBuildForHost ]; outputs = outputs ++ lib.optional withDistOutput "dist"; diff --git a/pkgs/development/interpreters/python/wrap-python.nix b/pkgs/development/interpreters/python/wrap-python.nix index c67a8e08851..8817d091a28 100644 --- a/pkgs/development/interpreters/python/wrap-python.nix +++ b/pkgs/development/interpreters/python/wrap-python.nix @@ -8,7 +8,7 @@ makePythonHook { propagatedBuildInputs = [ makeWrapper ]; substitutions.sitePackages = python.sitePackages; substitutions.executable = python.interpreter; - substitutions.python = python.pythonForBuild; + substitutions.python = python.pythonOnBuildForHost; substitutions.pythonHost = python; substitutions.magicalSedExpression = let # Looks weird? Of course, it's between single quoted shell strings. diff --git a/pkgs/development/interpreters/renpy/default.nix b/pkgs/development/interpreters/renpy/default.nix index 4bbeb224ce3..b68c540b39c 100644 --- a/pkgs/development/interpreters/renpy/default.nix +++ b/pkgs/development/interpreters/renpy/default.nix @@ -59,14 +59,14 @@ in stdenv.mkDerivation rec { buildPhase = with python3.pkgs; '' runHook preBuild - ${python.pythonForBuild.interpreter} module/setup.py build --parallel=$NIX_BUILD_CORES + ${python.pythonOnBuildForHost.interpreter} module/setup.py build --parallel=$NIX_BUILD_CORES runHook postBuild ''; installPhase = with python3.pkgs; '' runHook preInstall - ${python.pythonForBuild.interpreter} module/setup.py install_lib -d $out/${python.sitePackages} + ${python.pythonOnBuildForHost.interpreter} module/setup.py install_lib -d $out/${python.sitePackages} mkdir -p $out/share/renpy cp -vr sdk-fonts gui launcher renpy the_question tutorial renpy.py $out/share/renpy diff --git a/pkgs/development/libraries/gexiv2/default.nix b/pkgs/development/libraries/gexiv2/default.nix index 9d8f0fd823f..4a346fdcffc 100644 --- a/pkgs/development/libraries/gexiv2/default.nix +++ b/pkgs/development/libraries/gexiv2/default.nix @@ -36,7 +36,7 @@ stdenv.mkDerivation rec { gtk-doc docbook-xsl-nons docbook_xml_dtd_43 - (python3.pythonForBuild.withPackages (ps: [ ps.pygobject3 ])) + (python3.pythonOnBuildForHost.withPackages (ps: [ ps.pygobject3 ])) ] ++ lib.optionals (!stdenv.buildPlatform.canExecute stdenv.hostPlatform) [ mesonEmulatorHook ]; diff --git a/pkgs/development/libraries/gpgme/default.nix b/pkgs/development/libraries/gpgme/default.nix index b223f249f83..0cfe4c79458 100644 --- a/pkgs/development/libraries/gpgme/default.nix +++ b/pkgs/development/libraries/gpgme/default.nix @@ -50,7 +50,7 @@ stdenv.mkDerivation rec { pkg-config texinfo ] ++ lib.optionals pythonSupport [ - python3.pythonForBuild + python3.pythonOnBuildForHost ncurses swig2 which diff --git a/pkgs/development/libraries/gusb/default.nix b/pkgs/development/libraries/gusb/default.nix index 8aab8182bec..9c6ec5ad283 100644 --- a/pkgs/development/libraries/gusb/default.nix +++ b/pkgs/development/libraries/gusb/default.nix @@ -17,7 +17,7 @@ }: let - pythonEnv = python3.pythonForBuild.withPackages (ps: with ps; [ + pythonEnv = python3.pythonOnBuildForHost.withPackages (ps: with ps; [ setuptools ]); in diff --git a/pkgs/development/libraries/libftdi/1.x.nix b/pkgs/development/libraries/libftdi/1.x.nix index 75c9beea9b9..1e35d412461 100644 --- a/pkgs/development/libraries/libftdi/1.x.nix +++ b/pkgs/development/libraries/libftdi/1.x.nix @@ -45,7 +45,7 @@ stdenv.mkDerivation rec { "-DPYTHON_BINDINGS=${onOff pythonSupport}" "-DDOCUMENTATION=${onOff docSupport}" ] ++ lib.optionals pythonSupport [ - "-DPYTHON_EXECUTABLE=${python3.pythonForBuild.interpreter}" + "-DPYTHON_EXECUTABLE=${python3.pythonOnBuildForHost.interpreter}" "-DPYTHON_LIBRARY=${python3}/lib/libpython${python3.pythonVersion}${stdenv.hostPlatform.extensions.sharedLibrary}" ]; diff --git a/pkgs/development/libraries/libgweather/default.nix b/pkgs/development/libraries/libgweather/default.nix index a508593bc49..37c5efc5d06 100644 --- a/pkgs/development/libraries/libgweather/default.nix +++ b/pkgs/development/libraries/libgweather/default.nix @@ -47,7 +47,7 @@ stdenv.mkDerivation rec { pkg-config gettext glib - (python3.pythonForBuild.withPackages (ps: [ ps.pygobject3 ])) + (python3.pythonOnBuildForHost.withPackages (ps: [ ps.pygobject3 ])) ] ++ lib.optionals withIntrospection [ gi-docgen gobject-introspection diff --git a/pkgs/development/libraries/libical/default.nix b/pkgs/development/libraries/libical/default.nix index 2cb8642ca87..35ffc46ec61 100644 --- a/pkgs/development/libraries/libical/default.nix +++ b/pkgs/development/libraries/libical/default.nix @@ -56,7 +56,7 @@ stdenv.mkDerivation rec { ]; nativeInstallCheckInputs = [ # running libical-glib tests - (python3.pythonForBuild.withPackages (pkgs: with pkgs; [ + (python3.pythonOnBuildForHost.withPackages (pkgs: with pkgs; [ pygobject3 ])) ]; diff --git a/pkgs/development/libraries/libiio/default.nix b/pkgs/development/libraries/libiio/default.nix index 98ca22d2e90..8adc0151204 100644 --- a/pkgs/development/libraries/libiio/default.nix +++ b/pkgs/development/libraries/libiio/default.nix @@ -56,7 +56,7 @@ stdenv.mkDerivation rec { "-DOSX_PACKAGE=off" "-DOSX_FRAMEWORK=off" ] ++ lib.optionals pythonSupport [ - "-DPython_EXECUTABLE=${python.pythonForBuild.interpreter}" + "-DPython_EXECUTABLE=${python.pythonOnBuildForHost.interpreter}" "-DPYTHON_BINDINGS=on" ] ++ lib.optionals (!avahiSupport) [ "-DHAVE_DNS_SD=OFF" diff --git a/pkgs/development/libraries/libxml2/default.nix b/pkgs/development/libraries/libxml2/default.nix index bc9e2c8c2c1..3f8e27789b8 100644 --- a/pkgs/development/libraries/libxml2/default.nix +++ b/pkgs/development/libraries/libxml2/default.nix @@ -83,7 +83,7 @@ libxml = stdenv.mkDerivation rec { (lib.enableFeature enableShared "shared") (lib.withFeature icuSupport "icu") (lib.withFeature pythonSupport "python") - (lib.optionalString pythonSupport "PYTHON=${python.pythonForBuild.interpreter}") + (lib.optionalString pythonSupport "PYTHON=${python.pythonOnBuildForHost.interpreter}") ]; installFlags = lib.optionals pythonSupport [ diff --git a/pkgs/development/libraries/libxslt/default.nix b/pkgs/development/libraries/libxslt/default.nix index 3a5c8955745..356f87ff264 100644 --- a/pkgs/development/libraries/libxslt/default.nix +++ b/pkgs/development/libraries/libxslt/default.nix @@ -55,7 +55,7 @@ stdenv.mkDerivation rec { "--without-mem-debug" "--without-debugger" (lib.withFeature pythonSupport "python") - (lib.optionalString pythonSupport "PYTHON=${python.pythonForBuild.interpreter}") + (lib.optionalString pythonSupport "PYTHON=${python.pythonOnBuildForHost.interpreter}") ] ++ lib.optionals (!cryptoSupport) [ "--without-crypto" ]; diff --git a/pkgs/development/libraries/lirc/default.nix b/pkgs/development/libraries/lirc/default.nix index 1e1ec46739e..b98f5066dae 100644 --- a/pkgs/development/libraries/lirc/default.nix +++ b/pkgs/development/libraries/lirc/default.nix @@ -18,7 +18,7 @@ }: let - pythonEnv = python3.pythonForBuild.withPackages (p: with p; [ pyyaml setuptools ]); + pythonEnv = python3.pythonOnBuildForHost.withPackages (p: with p; [ pyyaml setuptools ]); in stdenv.mkDerivation rec { pname = "lirc"; diff --git a/pkgs/development/libraries/pipewire/wireplumber.nix b/pkgs/development/libraries/pipewire/wireplumber.nix index 89cb4cf38f7..37dea2ece86 100644 --- a/pkgs/development/libraries/pipewire/wireplumber.nix +++ b/pkgs/development/libraries/pipewire/wireplumber.nix @@ -46,7 +46,7 @@ stdenv.mkDerivation rec { gobject-introspection ] ++ lib.optionals (enableDocs || enableGI) [ doxygen - (python3.pythonForBuild.withPackages (ps: with ps; + (python3.pythonOnBuildForHost.withPackages (ps: with ps; lib.optionals enableDocs [ sphinx sphinx-rtd-theme breathe ] ++ lib.optionals enableGI [ lxml ] )) diff --git a/pkgs/development/libraries/polkit/default.nix b/pkgs/development/libraries/polkit/default.nix index c23bfe2ebeb..5dbb7dc98b2 100644 --- a/pkgs/development/libraries/polkit/default.nix +++ b/pkgs/development/libraries/polkit/default.nix @@ -101,7 +101,7 @@ stdenv.mkDerivation rec { nativeCheckInputs = [ dbus - (python3.pythonForBuild.withPackages (pp: with pp; [ + (python3.pythonOnBuildForHost.withPackages (pp: with pp; [ dbus-python (python-dbusmock.overridePythonAttrs (attrs: { # Avoid dependency cycle. diff --git a/pkgs/development/libraries/science/chemistry/openmm/default.nix b/pkgs/development/libraries/science/chemistry/openmm/default.nix index a7c388339de..349c3be82b9 100644 --- a/pkgs/development/libraries/science/chemistry/openmm/default.nix +++ b/pkgs/development/libraries/science/chemistry/openmm/default.nix @@ -83,8 +83,8 @@ stdenv.mkDerivation rec { export OPENMM_LIB_PATH=$out/lib export OPENMM_INCLUDE_PATH=$out/include cd python - ${python3Packages.python.pythonForBuild.interpreter} setup.py build - ${python3Packages.python.pythonForBuild.interpreter} setup.py install --prefix=$out + ${python3Packages.python.pythonOnBuildForHost.interpreter} setup.py build + ${python3Packages.python.pythonOnBuildForHost.interpreter} setup.py install --prefix=$out ''; postFixup = '' diff --git a/pkgs/development/libraries/science/math/or-tools/default.nix b/pkgs/development/libraries/science/math/or-tools/default.nix index 8f0c930eff6..5cbc2358989 100644 --- a/pkgs/development/libraries/science/math/or-tools/default.nix +++ b/pkgs/development/libraries/science/math/or-tools/default.nix @@ -63,16 +63,16 @@ stdenv.mkDerivation rec { "-DFETCH_PYTHON_DEPS=OFF" "-DUSE_GLPK=ON" "-DUSE_SCIP=OFF" - "-DPython3_EXECUTABLE=${python.pythonForBuild.interpreter}" + "-DPython3_EXECUTABLE=${python.pythonOnBuildForHost.interpreter}" ] ++ lib.optionals stdenv.isDarwin [ "-DCMAKE_MACOSX_RPATH=OFF" ]; nativeBuildInputs = [ cmake ensureNewerSourcesForZipFilesHook pkg-config - python.pythonForBuild + python.pythonOnBuildForHost swig4 unzip - ] ++ (with python.pythonForBuild.pkgs; [ + ] ++ (with python.pythonOnBuildForHost.pkgs; [ pip mypy-protobuf ]); diff --git a/pkgs/development/libraries/tracker/default.nix b/pkgs/development/libraries/tracker/default.nix index cae222f92f1..c8c220927fa 100644 --- a/pkgs/development/libraries/tracker/default.nix +++ b/pkgs/development/libraries/tracker/default.nix @@ -68,7 +68,7 @@ stdenv.mkDerivation rec { wrapGAppsNoGuiHook gi-docgen graphviz - (python3.pythonForBuild.withPackages (p: [ p.pygobject3 ])) + (python3.pythonOnBuildForHost.withPackages (p: [ p.pygobject3 ])) ] ++ lib.optionals withIntrospection [ gobject-introspection vala diff --git a/pkgs/development/python-modules/asyncinotify/default.nix b/pkgs/development/python-modules/asyncinotify/default.nix index 9049a228518..feb778c729a 100644 --- a/pkgs/development/python-modules/asyncinotify/default.nix +++ b/pkgs/development/python-modules/asyncinotify/default.nix @@ -22,7 +22,7 @@ buildPythonPackage rec { ]; checkPhase = '' - ${python.pythonForBuild.interpreter} ${src}/test.py + ${python.pythonOnBuildForHost.interpreter} ${src}/test.py ''; pythonImportsCheck = ["asyncinotify"]; diff --git a/pkgs/development/python-modules/bash_kernel/default.nix b/pkgs/development/python-modules/bash_kernel/default.nix index 331b9c91707..5956d52de86 100644 --- a/pkgs/development/python-modules/bash_kernel/default.nix +++ b/pkgs/development/python-modules/bash_kernel/default.nix @@ -46,7 +46,7 @@ buildPythonPackage rec { ''; postInstall = '' - ${python.pythonForBuild.interpreter} -m bash_kernel.install --prefix $out + ${python.pythonOnBuildForHost.interpreter} -m bash_kernel.install --prefix $out ''; meta = with lib; { diff --git a/pkgs/development/python-modules/bashlex/default.nix b/pkgs/development/python-modules/bashlex/default.nix index 7f97f5d933c..ed5cb1a6091 100644 --- a/pkgs/development/python-modules/bashlex/default.nix +++ b/pkgs/development/python-modules/bashlex/default.nix @@ -20,7 +20,7 @@ buildPythonPackage rec { # workaround https://github.com/idank/bashlex/issues/51 preBuild = '' - ${python.pythonForBuild.interpreter} -c 'import bashlex' + ${python.pythonOnBuildForHost.interpreter} -c 'import bashlex' ''; nativeCheckInputs = [ diff --git a/pkgs/development/python-modules/catboost/default.nix b/pkgs/development/python-modules/catboost/default.nix index 30e140a8314..840c01d876a 100644 --- a/pkgs/development/python-modules/catboost/default.nix +++ b/pkgs/development/python-modules/catboost/default.nix @@ -38,7 +38,7 @@ buildPythonPackage { runHook preBuild # these arguments must set after bdist_wheel - ${python.pythonForBuild.interpreter} setup.py bdist_wheel --no-widget --prebuilt-extensions-build-root-dir=${lib.getDev catboost} + ${python.pythonOnBuildForHost.interpreter} setup.py bdist_wheel --no-widget --prebuilt-extensions-build-root-dir=${lib.getDev catboost} runHook postBuild ''; diff --git a/pkgs/development/python-modules/cypari2/default.nix b/pkgs/development/python-modules/cypari2/default.nix index 4cdd8f31a5f..c2bdca1bfe6 100644 --- a/pkgs/development/python-modules/cypari2/default.nix +++ b/pkgs/development/python-modules/cypari2/default.nix @@ -42,7 +42,7 @@ buildPythonPackage rec { nativeBuildInputs = [ pari - python.pythonForBuild.pkgs.pip + python.pythonOnBuildForHost.pkgs.pip ]; buildInputs = [ diff --git a/pkgs/development/python-modules/dbus/default.nix b/pkgs/development/python-modules/dbus/default.nix index 5e1053fc1af..f929f58de1c 100644 --- a/pkgs/development/python-modules/dbus/default.nix +++ b/pkgs/development/python-modules/dbus/default.nix @@ -23,7 +23,7 @@ buildPythonPackage rec { ''; configureFlags = [ - "PYTHON=${python.pythonForBuild.interpreter}" + "PYTHON=${python.pythonOnBuildForHost.interpreter}" ]; nativeBuildInputs = [ pkg-config ]; diff --git a/pkgs/development/python-modules/gst-python/default.nix b/pkgs/development/python-modules/gst-python/default.nix index 2f9ced5aec7..abc5d52ece6 100644 --- a/pkgs/development/python-modules/gst-python/default.nix +++ b/pkgs/development/python-modules/gst-python/default.nix @@ -48,7 +48,7 @@ buildPythonPackage rec { mesonFlags = [ "-Dpygi-overrides-dir=${placeholder "out"}/${python.sitePackages}/gi/overrides" # Exec format error during configure - "-Dpython=${python.pythonForBuild.interpreter}" + "-Dpython=${python.pythonOnBuildForHost.interpreter}" ]; doCheck = true; diff --git a/pkgs/development/python-modules/llfuse/default.nix b/pkgs/development/python-modules/llfuse/default.nix index fd450450768..85c6d0fb50f 100644 --- a/pkgs/development/python-modules/llfuse/default.nix +++ b/pkgs/development/python-modules/llfuse/default.nix @@ -37,7 +37,7 @@ buildPythonPackage rec { ''; preBuild = '' - ${python.pythonForBuild.interpreter} setup.py build_cython + ${python.pythonOnBuildForHost.interpreter} setup.py build_cython ''; # On Darwin, the test requires macFUSE to be installed outside of Nix. diff --git a/pkgs/development/python-modules/manimpango/default.nix b/pkgs/development/python-modules/manimpango/default.nix index 4219e9a5943..358028f1a74 100644 --- a/pkgs/development/python-modules/manimpango/default.nix +++ b/pkgs/development/python-modules/manimpango/default.nix @@ -49,7 +49,7 @@ buildPythonPackage rec { ''; preBuild = '' - ${python.pythonForBuild.interpreter} setup.py build_ext --inplace + ${python.pythonOnBuildForHost.interpreter} setup.py build_ext --inplace ''; pythonImportsCheck = [ diff --git a/pkgs/development/python-modules/mutagen/default.nix b/pkgs/development/python-modules/mutagen/default.nix index 5843cd9432b..236af1eb5d1 100644 --- a/pkgs/development/python-modules/mutagen/default.nix +++ b/pkgs/development/python-modules/mutagen/default.nix @@ -36,7 +36,7 @@ buildPythonPackage rec { ]; postInstall = '' - ${python.pythonForBuild.interpreter} setup.py build_sphinx --build-dir=$doc + ${python.pythonOnBuildForHost.interpreter} setup.py build_sphinx --build-dir=$doc ''; nativeCheckInputs = [ diff --git a/pkgs/development/python-modules/nose/default.nix b/pkgs/development/python-modules/nose/default.nix index bb6f6decc1a..981d5dc0372 100644 --- a/pkgs/development/python-modules/nose/default.nix +++ b/pkgs/development/python-modules/nose/default.nix @@ -27,17 +27,17 @@ buildPythonPackage rec { ''; preBuild = lib.optionalString (isPy3k) '' - ${python.pythonForBuild}/bin/2to3 -wn nose functional_tests unit_tests + ${python.pythonOnBuildForHost}/bin/2to3 -wn nose functional_tests unit_tests ''; propagatedBuildInputs = [ coverage ]; doCheck = false; # lot's of transient errors, too much hassle checkPhase = if isPy3k then '' - ${python.pythonForBuild.interpreter} setup.py build_tests + ${python.pythonOnBuildForHost.interpreter} setup.py build_tests '' else "" + '' rm functional_tests/test_multiprocessing/test_concurrent_shared.py* # see https://github.com/nose-devs/nose/commit/226bc671c73643887b36b8467b34ad485c2df062 - ${python.pythonForBuild.interpreter} selftest.py + ${python.pythonOnBuildForHost.interpreter} selftest.py ''; meta = with lib; { diff --git a/pkgs/development/python-modules/nose3/default.nix b/pkgs/development/python-modules/nose3/default.nix index c452a3431cf..280f36cc2e6 100644 --- a/pkgs/development/python-modules/nose3/default.nix +++ b/pkgs/development/python-modules/nose3/default.nix @@ -24,7 +24,7 @@ buildPythonPackage rec { doCheck = !isPyPy && !stdenv.isDarwin && !isPy311; checkPhase = '' - ${python.pythonForBuild.interpreter} selftest.py + ${python.pythonOnBuildForHost.interpreter} selftest.py ''; meta = with lib; { diff --git a/pkgs/development/python-modules/pyatspi/default.nix b/pkgs/development/python-modules/pyatspi/default.nix index 7169a4022f6..fb7fedeaefc 100644 --- a/pkgs/development/python-modules/pyatspi/default.nix +++ b/pkgs/development/python-modules/pyatspi/default.nix @@ -18,7 +18,7 @@ buildPythonPackage rec { ]; configureFlags = [ - "PYTHON=${python.pythonForBuild.interpreter}" + "PYTHON=${python.pythonOnBuildForHost.interpreter}" ]; postPatch = '' diff --git a/pkgs/development/python-modules/pybind11/default.nix b/pkgs/development/python-modules/pybind11/default.nix index fe29cde9e52..e2b216d1724 100644 --- a/pkgs/development/python-modules/pybind11/default.nix +++ b/pkgs/development/python-modules/pybind11/default.nix @@ -17,7 +17,7 @@ name = "pybind11-setup-hook"; substitutions = { out = placeholder "out"; - pythonInterpreter = python.pythonForBuild.interpreter; + pythonInterpreter = python.pythonOnBuildForHost.interpreter; pythonIncludeDir = "${python}/include/python${python.pythonVersion}"; pythonSitePackages = "${python}/${python.sitePackages}"; }; diff --git a/pkgs/development/python-modules/pycairo/default.nix b/pkgs/development/python-modules/pycairo/default.nix index ff2f2e58190..6aa58056cad 100644 --- a/pkgs/development/python-modules/pycairo/default.nix +++ b/pkgs/development/python-modules/pycairo/default.nix @@ -46,7 +46,7 @@ buildPythonPackage rec { # This is only used for figuring out what version of Python is in # use, and related stuff like figuring out what the install prefix # should be, but it does need to be able to execute Python code. - "-Dpython=${python.pythonForBuild.interpreter}" + "-Dpython=${python.pythonOnBuildForHost.interpreter}" ]; meta = with lib; { diff --git a/pkgs/development/python-modules/pycuda/default.nix b/pkgs/development/python-modules/pycuda/default.nix index 06f3afb64de..9c3b574f982 100644 --- a/pkgs/development/python-modules/pycuda/default.nix +++ b/pkgs/development/python-modules/pycuda/default.nix @@ -32,7 +32,7 @@ buildPythonPackage rec { }; preConfigure = with lib.versions; '' - ${python.pythonForBuild.interpreter} configure.py --boost-inc-dir=${boost.dev}/include \ + ${python.pythonOnBuildForHost.interpreter} configure.py --boost-inc-dir=${boost.dev}/include \ --boost-lib-dir=${boost}/lib \ --no-use-shipped-boost \ --boost-python-libname=boost_python${major python.version}${minor python.version} \ diff --git a/pkgs/development/python-modules/pyfuse3/default.nix b/pkgs/development/python-modules/pyfuse3/default.nix index 7df84ea78ab..d3393890575 100644 --- a/pkgs/development/python-modules/pyfuse3/default.nix +++ b/pkgs/development/python-modules/pyfuse3/default.nix @@ -44,7 +44,7 @@ buildPythonPackage rec { propagatedBuildInputs = [ trio ]; preBuild = '' - ${python.pythonForBuild.interpreter} setup.py build_cython + ${python.pythonOnBuildForHost.interpreter} setup.py build_cython ''; nativeCheckInputs = [ diff --git a/pkgs/development/python-modules/pygame/default.nix b/pkgs/development/python-modules/pygame/default.nix index f4ceeb9b978..5352ef65d7f 100644 --- a/pkgs/development/python-modules/pygame/default.nix +++ b/pkgs/development/python-modules/pygame/default.nix @@ -57,7 +57,7 @@ buildPythonPackage rec { ]; preConfigure = '' - ${python.pythonForBuild.interpreter} buildconfig/config.py + ${python.pythonOnBuildForHost.interpreter} buildconfig/config.py ''; checkPhase = '' diff --git a/pkgs/development/python-modules/pygeos/default.nix b/pkgs/development/python-modules/pygeos/default.nix index f5e0bf87b1d..a31725a1002 100644 --- a/pkgs/development/python-modules/pygeos/default.nix +++ b/pkgs/development/python-modules/pygeos/default.nix @@ -30,8 +30,8 @@ buildPythonPackage rec { # for the package to function. Therefore override of buildPhase was # necessary. buildPhase = '' - ${python.pythonForBuild.interpreter} setup.py build_ext --inplace - ${python.pythonForBuild.interpreter} setup.py bdist_wheel + ${python.pythonOnBuildForHost.interpreter} setup.py build_ext --inplace + ${python.pythonOnBuildForHost.interpreter} setup.py bdist_wheel ''; nativeCheckInputs = [ diff --git a/pkgs/development/python-modules/pygobject/3.nix b/pkgs/development/python-modules/pygobject/3.nix index b8337aea562..6d5615a780e 100644 --- a/pkgs/development/python-modules/pygobject/3.nix +++ b/pkgs/development/python-modules/pygobject/3.nix @@ -57,7 +57,7 @@ buildPythonPackage rec { # This is only used for figuring out what version of Python is in # use, and related stuff like figuring out what the install prefix # should be, but it does need to be able to execute Python code. - "-Dpython=${python.pythonForBuild.interpreter}" + "-Dpython=${python.pythonOnBuildForHost.interpreter}" ]; passthru = { diff --git a/pkgs/development/python-modules/pymunk/default.nix b/pkgs/development/python-modules/pymunk/default.nix index 8df9d0c7e91..f649f9bba0a 100644 --- a/pkgs/development/python-modules/pymunk/default.nix +++ b/pkgs/development/python-modules/pymunk/default.nix @@ -31,7 +31,7 @@ buildPythonPackage rec { ]; preBuild = '' - ${python.pythonForBuild.interpreter} setup.py build_ext --inplace + ${python.pythonOnBuildForHost.interpreter} setup.py build_ext --inplace ''; nativeCheckInputs = [ diff --git a/pkgs/development/python-modules/pyside2/default.nix b/pkgs/development/python-modules/pyside2/default.nix index 5dfa7fb823f..1d4cf2ce603 100644 --- a/pkgs/development/python-modules/pyside2/default.nix +++ b/pkgs/development/python-modules/pyside2/default.nix @@ -65,7 +65,7 @@ stdenv.mkDerivation rec { postInstall = '' cd ../../.. - ${python.pythonForBuild.interpreter} setup.py egg_info --build-type=pyside2 + ${python.pythonOnBuildForHost.interpreter} setup.py egg_info --build-type=pyside2 cp -r PySide2.egg-info $out/${python.sitePackages}/ ''; diff --git a/pkgs/development/python-modules/pyside6/default.nix b/pkgs/development/python-modules/pyside6/default.nix index e0351674252..17e98a85089 100644 --- a/pkgs/development/python-modules/pyside6/default.nix +++ b/pkgs/development/python-modules/pyside6/default.nix @@ -83,7 +83,7 @@ stdenv.mkDerivation rec { postInstall = '' cd ../../.. - ${python.pythonForBuild.interpreter} setup.py egg_info --build-type=pyside6 + ${python.pythonOnBuildForHost.interpreter} setup.py egg_info --build-type=pyside6 cp -r PySide6.egg-info $out/${python.sitePackages}/ ''; diff --git a/pkgs/development/python-modules/pysvn/default.nix b/pkgs/development/python-modules/pysvn/default.nix index 33daf6af75d..92d76cb06dc 100644 --- a/pkgs/development/python-modules/pysvn/default.nix +++ b/pkgs/development/python-modules/pysvn/default.nix @@ -37,8 +37,8 @@ buildPythonPackage rec { preConfigure = '' cd Source - ${python.pythonForBuild.interpreter} setup.py backport - ${python.pythonForBuild.interpreter} setup.py configure \ + ${python.pythonOnBuildForHost.interpreter} setup.py backport + ${python.pythonOnBuildForHost.interpreter} setup.py configure \ --apr-inc-dir=${apr.dev}/include \ --apu-inc-dir=${aprutil.dev}/include \ --pycxx-dir=${pycxx.dev}/include \ diff --git a/pkgs/development/python-modules/python-efl/default.nix b/pkgs/development/python-modules/python-efl/default.nix index 972bbca9c41..d4a2ca1dd6b 100644 --- a/pkgs/development/python-modules/python-efl/default.nix +++ b/pkgs/development/python-modules/python-efl/default.nix @@ -31,11 +31,11 @@ buildPythonPackage rec { ''; preBuild = '' - ${python.pythonForBuild.interpreter} setup.py build_ext + ${python.pythonOnBuildForHost.interpreter} setup.py build_ext ''; installPhase = '' - ${python.pythonForBuild.interpreter} setup.py install --prefix=$out --single-version-externally-managed + ${python.pythonOnBuildForHost.interpreter} setup.py install --prefix=$out --single-version-externally-managed ''; doCheck = false; diff --git a/pkgs/development/python-modules/python-fontconfig/default.nix b/pkgs/development/python-modules/python-fontconfig/default.nix index 45c94cdb83b..9a1416e0dbd 100644 --- a/pkgs/development/python-modules/python-fontconfig/default.nix +++ b/pkgs/development/python-modules/python-fontconfig/default.nix @@ -17,7 +17,7 @@ in buildPythonPackage rec { nativeBuildInputs = [ cython ]; preBuild = '' - ${python.pythonForBuild.interpreter} setup.py build_ext -i + ${python.pythonOnBuildForHost.interpreter} setup.py build_ext -i ''; checkPhase = '' diff --git a/pkgs/development/python-modules/pywayland/default.nix b/pkgs/development/python-modules/pywayland/default.nix index 4015715c451..591fb0026c2 100644 --- a/pkgs/development/python-modules/pywayland/default.nix +++ b/pkgs/development/python-modules/pywayland/default.nix @@ -24,7 +24,7 @@ buildPythonPackage rec { nativeCheckInputs = [ pytestCheckHook ]; postBuild = '' - ${python.pythonForBuild.interpreter} pywayland/ffi_build.py + ${python.pythonOnBuildForHost.interpreter} pywayland/ffi_build.py ''; # Tests need this to create sockets diff --git a/pkgs/development/python-modules/pywlroots/default.nix b/pkgs/development/python-modules/pywlroots/default.nix index 2350b14da05..248af392f1f 100644 --- a/pkgs/development/python-modules/pywlroots/default.nix +++ b/pkgs/development/python-modules/pywlroots/default.nix @@ -37,7 +37,7 @@ buildPythonPackage rec { nativeCheckInputs = [ pytestCheckHook ]; postBuild = '' - ${python.pythonForBuild.interpreter} wlroots/ffi_build.py + ${python.pythonOnBuildForHost.interpreter} wlroots/ffi_build.py ''; pythonImportsCheck = [ "wlroots" ]; diff --git a/pkgs/development/python-modules/recursive-pth-loader/default.nix b/pkgs/development/python-modules/recursive-pth-loader/default.nix index 23e7f0f80b6..499ad3c23d0 100644 --- a/pkgs/development/python-modules/recursive-pth-loader/default.nix +++ b/pkgs/development/python-modules/recursive-pth-loader/default.nix @@ -10,7 +10,7 @@ stdenv.mkDerivation { patchPhase = "cat ${./sitecustomize.py} > sitecustomize.py"; - buildPhase = "${python.pythonForBuild}/bin/${python.pythonForBuild.executable} -m compileall ."; + buildPhase = "${python.pythonOnBuildForHost}/bin/${python.pythonOnBuildForHost.executable} -m compileall ."; installPhase = '' diff --git a/pkgs/development/python-modules/redis-om/default.nix b/pkgs/development/python-modules/redis-om/default.nix index af0170cbf32..aec5311351e 100644 --- a/pkgs/development/python-modules/redis-om/default.nix +++ b/pkgs/development/python-modules/redis-om/default.nix @@ -49,7 +49,7 @@ buildPythonPackage rec { ]; preBuild = '' - ${python.pythonForBuild.interpreter} make_sync.py + ${python.pythonOnBuildForHost.interpreter} make_sync.py ''; nativeCheckInputs = [ diff --git a/pkgs/development/python-modules/shiboken2/default.nix b/pkgs/development/python-modules/shiboken2/default.nix index b736c17337a..4afa930cac0 100644 --- a/pkgs/development/python-modules/shiboken2/default.nix +++ b/pkgs/development/python-modules/shiboken2/default.nix @@ -45,7 +45,7 @@ stdenv.mkDerivation { postInstall = '' cd ../../.. - ${python.pythonForBuild.interpreter} setup.py egg_info --build-type=shiboken2 + ${python.pythonOnBuildForHost.interpreter} setup.py egg_info --build-type=shiboken2 cp -r shiboken2.egg-info $out/${python.sitePackages}/ rm $out/bin/shiboken_tool.py ''; diff --git a/pkgs/development/python-modules/shiboken6/default.nix b/pkgs/development/python-modules/shiboken6/default.nix index ca227a625b7..134bc4ff2d4 100644 --- a/pkgs/development/python-modules/shiboken6/default.nix +++ b/pkgs/development/python-modules/shiboken6/default.nix @@ -61,7 +61,7 @@ stdenv'.mkDerivation rec { postInstall = '' cd ../../.. - ${python.pythonForBuild.interpreter} setup.py egg_info --build-type=shiboken6 + ${python.pythonOnBuildForHost.interpreter} setup.py egg_info --build-type=shiboken6 cp -r shiboken6.egg-info $out/${python.sitePackages}/ ''; diff --git a/pkgs/development/python-modules/torch/default.nix b/pkgs/development/python-modules/torch/default.nix index 59396d421ed..52ab9ee5b25 100644 --- a/pkgs/development/python-modules/torch/default.nix +++ b/pkgs/development/python-modules/torch/default.nix @@ -228,7 +228,7 @@ in buildPythonPackage rec { preBuild = '' export MAX_JOBS=$NIX_BUILD_CORES - ${python.pythonForBuild.interpreter} setup.py build --cmake-only + ${python.pythonOnBuildForHost.interpreter} setup.py build --cmake-only ${cmake}/bin/cmake build ''; diff --git a/pkgs/development/python-modules/wxPython/4.2.nix b/pkgs/development/python-modules/wxPython/4.2.nix index 0ed40b8a917..5cbab300512 100644 --- a/pkgs/development/python-modules/wxPython/4.2.nix +++ b/pkgs/development/python-modules/wxPython/4.2.nix @@ -102,7 +102,7 @@ buildPythonPackage rec { export PATH="${wxGTK}/bin:$PATH" export SDL_CONFIG="${SDL.dev}/bin/sdl-config" - ${python.pythonForBuild.interpreter} build.py -v --use_syswx dox etg sip --nodoc build_py + ${python.pythonOnBuildForHost.interpreter} build.py -v --use_syswx dox etg sip --nodoc build_py runHook postBuild ''; @@ -111,7 +111,7 @@ buildPythonPackage rec { installPhase = '' runHook preInstall - ${python.pythonForBuild.interpreter} setup.py install --skip-build --prefix=$out + ${python.pythonOnBuildForHost.interpreter} setup.py install --skip-build --prefix=$out wrapPythonPrograms runHook postInstall diff --git a/pkgs/development/python-modules/xattr/default.nix b/pkgs/development/python-modules/xattr/default.nix index 189042082f0..c57f5a4da52 100644 --- a/pkgs/development/python-modules/xattr/default.nix +++ b/pkgs/development/python-modules/xattr/default.nix @@ -26,7 +26,7 @@ buildPythonPackage rec { doCheck = false; postBuild = '' - ${python.pythonForBuild.interpreter} -m compileall -f xattr + ${python.pythonOnBuildForHost.interpreter} -m compileall -f xattr ''; pythonImportsCheck = [ diff --git a/pkgs/development/python-modules/xkbcommon/default.nix b/pkgs/development/python-modules/xkbcommon/default.nix index 0b8f8d4ceb5..35556fe32d9 100644 --- a/pkgs/development/python-modules/xkbcommon/default.nix +++ b/pkgs/development/python-modules/xkbcommon/default.nix @@ -24,7 +24,7 @@ buildPythonPackage rec { nativeCheckInputs = [ pytestCheckHook ]; postBuild = '' - ${python.pythonForBuild.interpreter} xkbcommon/ffi_build.py + ${python.pythonOnBuildForHost.interpreter} xkbcommon/ffi_build.py ''; pythonImportsCheck = [ "xkbcommon" ]; diff --git a/pkgs/development/python2-modules/bootstrapped-pip/default.nix b/pkgs/development/python2-modules/bootstrapped-pip/default.nix index 314bf0048c8..846c76b677b 100644 --- a/pkgs/development/python2-modules/bootstrapped-pip/default.nix +++ b/pkgs/development/python2-modules/bootstrapped-pip/default.nix @@ -45,17 +45,17 @@ stdenv.mkDerivation rec { echo "Building setuptools wheel..." pushd setuptools - ${python.pythonForBuild.interpreter} -m pip install --no-build-isolation --no-index --prefix=$out --ignore-installed --no-dependencies --no-cache . + ${python.pythonOnBuildForHost.interpreter} -m pip install --no-build-isolation --no-index --prefix=$out --ignore-installed --no-dependencies --no-cache . popd echo "Building wheel wheel..." pushd wheel - ${python.pythonForBuild.interpreter} -m pip install --no-build-isolation --no-index --prefix=$out --ignore-installed --no-dependencies --no-cache . + ${python.pythonOnBuildForHost.interpreter} -m pip install --no-build-isolation --no-index --prefix=$out --ignore-installed --no-dependencies --no-cache . popd echo "Building pip wheel..." pushd pip - ${python.pythonForBuild.interpreter} -m pip install --no-build-isolation --no-index --prefix=$out --ignore-installed --no-dependencies --no-cache . + ${python.pythonOnBuildForHost.interpreter} -m pip install --no-build-isolation --no-index --prefix=$out --ignore-installed --no-dependencies --no-cache . popd ''; diff --git a/pkgs/development/python2-modules/pycairo/default.nix b/pkgs/development/python2-modules/pycairo/default.nix index eefc69a3323..f90031e048f 100644 --- a/pkgs/development/python2-modules/pycairo/default.nix +++ b/pkgs/development/python2-modules/pycairo/default.nix @@ -42,7 +42,7 @@ buildPythonPackage rec { # This is only used for figuring out what version of Python is in # use, and related stuff like figuring out what the install prefix # should be, but it does need to be able to execute Python code. - "-Dpython=${python.pythonForBuild.interpreter}" + "-Dpython=${python.pythonOnBuildForHost.interpreter}" ]; meta = with lib; { diff --git a/pkgs/development/python2-modules/setuptools/default.nix b/pkgs/development/python2-modules/setuptools/default.nix index ca70a106151..faddafc9f9d 100644 --- a/pkgs/development/python2-modules/setuptools/default.nix +++ b/pkgs/development/python2-modules/setuptools/default.nix @@ -29,8 +29,8 @@ let ]; buildPhase = '' - ${python.pythonForBuild.interpreter} bootstrap.py - ${python.pythonForBuild.interpreter} setup.py sdist --formats=gztar + ${python.pythonOnBuildForHost.interpreter} bootstrap.py + ${python.pythonOnBuildForHost.interpreter} setup.py sdist --formats=gztar # Here we untar the sdist and retar it in order to control the timestamps # of all the files included diff --git a/pkgs/development/tools/fdroidserver/default.nix b/pkgs/development/tools/fdroidserver/default.nix index da7b0d662b3..ee4d64f118f 100644 --- a/pkgs/development/tools/fdroidserver/default.nix +++ b/pkgs/development/tools/fdroidserver/default.nix @@ -47,7 +47,7 @@ buildPythonApplication rec { ''; preConfigure = '' - ${python3.pythonForBuild.interpreter} setup.py compile_catalog + ${python3.pythonOnBuildForHost.interpreter} setup.py compile_catalog ''; postInstall = '' diff --git a/pkgs/development/tools/misc/ycmd/default.nix b/pkgs/development/tools/misc/ycmd/default.nix index f281a70f802..ea725b01318 100644 --- a/pkgs/development/tools/misc/ycmd/default.nix +++ b/pkgs/development/tools/misc/ycmd/default.nix @@ -29,7 +29,7 @@ stdenv.mkDerivation { buildPhase = '' export EXTRA_CMAKE_ARGS="-DPATH_TO_LLVM_ROOT=${llvmPackages.libllvm} -DUSE_SYSTEM_ABSEIL=true" - ${python.pythonForBuild.interpreter} build.py --system-libclang --clang-completer --ninja + ${python.pythonOnBuildForHost.interpreter} build.py --system-libclang --clang-completer --ninja ''; dontConfigure = true; diff --git a/pkgs/os-specific/linux/bolt/default.nix b/pkgs/os-specific/linux/bolt/default.nix index 748db1a62b5..df618cbff5a 100644 --- a/pkgs/os-specific/linux/bolt/default.nix +++ b/pkgs/os-specific/linux/bolt/default.nix @@ -76,7 +76,7 @@ stdenv.mkDerivation rec { dbus gobject-introspection umockdev - (python3.pythonForBuild.withPackages + (python3.pythonOnBuildForHost.withPackages (p: [ p.pygobject3 p.dbus-python p.python-dbusmock ])) ]; diff --git a/pkgs/os-specific/linux/libnl/default.nix b/pkgs/os-specific/linux/libnl/default.nix index c9eea70db99..5248c263b3b 100644 --- a/pkgs/os-specific/linux/libnl/default.nix +++ b/pkgs/os-specific/linux/libnl/default.nix @@ -21,7 +21,7 @@ stdenv.mkDerivation rec { postBuild = lib.optionalString (pythonSupport) '' cd python - ${python.pythonForBuild.interpreter} setup.py install --prefix=../pythonlib + ${python.pythonOnBuildForHost.interpreter} setup.py install --prefix=../pythonlib cd - ''; diff --git a/pkgs/os-specific/linux/libnvme/default.nix b/pkgs/os-specific/linux/libnvme/default.nix index 564fa4537c8..129bb49e81e 100644 --- a/pkgs/os-specific/linux/libnvme/default.nix +++ b/pkgs/os-specific/linux/libnvme/default.nix @@ -46,7 +46,7 @@ stdenv.mkDerivation (finalAttrs: { ninja perl # for kernel-doc pkg-config - python3.pythonForBuild + python3.pythonOnBuildForHost swig ]; diff --git a/pkgs/os-specific/linux/libselinux/default.nix b/pkgs/os-specific/linux/libselinux/default.nix index ec6d3f5aa4b..695012effc5 100644 --- a/pkgs/os-specific/linux/libselinux/default.nix +++ b/pkgs/os-specific/linux/libselinux/default.nix @@ -64,7 +64,7 @@ stdenv.mkDerivation rec { ] ++ optionals stdenv.hostPlatform.isStatic [ "DISABLE_SHARED=y" ] ++ optionals enablePython [ - "PYTHON=${python3.pythonForBuild.interpreter}" + "PYTHON=${python3.pythonOnBuildForHost.interpreter}" "PYTHONLIBDIR=$(py)/${python3.sitePackages}" ]; diff --git a/pkgs/os-specific/linux/power-profiles-daemon/default.nix b/pkgs/os-specific/linux/power-profiles-daemon/default.nix index ae08f59cc1a..e81f42b65a2 100644 --- a/pkgs/os-specific/linux/power-profiles-daemon/default.nix +++ b/pkgs/os-specific/linux/power-profiles-daemon/default.nix @@ -53,7 +53,7 @@ stdenv.mkDerivation rec { wrapGAppsNoGuiHook python3.pkgs.wrapPython # checkInput but cheked for during the configuring - (python3.pythonForBuild.withPackages (ps: with ps; [ + (python3.pythonOnBuildForHost.withPackages (ps: with ps; [ pygobject3 dbus-python python-dbusmock diff --git a/pkgs/servers/home-assistant/intents.nix b/pkgs/servers/home-assistant/intents.nix index 52d9f622c41..26fe812366d 100644 --- a/pkgs/servers/home-assistant/intents.nix +++ b/pkgs/servers/home-assistant/intents.nix @@ -50,7 +50,7 @@ buildPythonPackage rec { postInstall = '' pushd intents # https://github.com/home-assistant/intents/blob/main/script/package#L18 - ${python.pythonForBuild.interpreter} -m script.intentfest merged_output $out/${python.sitePackages}/home_assistant_intents/data + ${python.pythonOnBuildForHost.interpreter} -m script.intentfest merged_output $out/${python.sitePackages}/home_assistant_intents/data popd ''; diff --git a/pkgs/servers/uwsgi/default.nix b/pkgs/servers/uwsgi/default.nix index acf4b075162..8bc88166f3a 100644 --- a/pkgs/servers/uwsgi/default.nix +++ b/pkgs/servers/uwsgi/default.nix @@ -24,13 +24,13 @@ let }; pythonPlugin = pkg : lib.nameValuePair "python${if pkg.isPy2 then "2" else "3"}" { - interpreter = pkg.pythonForBuild.interpreter; + interpreter = pkg.pythonOnBuildForHost.interpreter; path = "plugins/python"; inputs = [ pkg ncurses ]; install = '' install -Dm644 uwsgidecorators.py $out/${pkg.sitePackages}/uwsgidecorators.py - ${pkg.pythonForBuild.executable} -m compileall $out/${pkg.sitePackages}/ - ${pkg.pythonForBuild.executable} -O -m compileall $out/${pkg.sitePackages}/ + ${pkg.pythonOnBuildForHost.executable} -m compileall $out/${pkg.sitePackages}/ + ${pkg.pythonOnBuildForHost.executable} -O -m compileall $out/${pkg.sitePackages}/ ''; }; diff --git a/pkgs/tools/audio/tts/default.nix b/pkgs/tools/audio/tts/default.nix index 78adea9d222..f6b1f6d9f66 100644 --- a/pkgs/tools/audio/tts/default.nix +++ b/pkgs/tools/audio/tts/default.nix @@ -103,7 +103,7 @@ python.pkgs.buildPythonApplication rec { # cython modules are not installed for some reasons ( cd TTS/tts/utils/monotonic_align - ${python.pythonForBuild.interpreter} setup.py install --prefix=$out + ${python.pythonOnBuildForHost.interpreter} setup.py install --prefix=$out ) ''; diff --git a/pkgs/tools/backup/s3ql/default.nix b/pkgs/tools/backup/s3ql/default.nix index 8738f5dc4e2..e2e68109b80 100644 --- a/pkgs/tools/backup/s3ql/default.nix +++ b/pkgs/tools/backup/s3ql/default.nix @@ -18,7 +18,7 @@ python3Packages.buildPythonApplication rec { ]; preBuild = '' - ${python3Packages.python.pythonForBuild.interpreter} ./setup.py build_cython build_ext --inplace + ${python3Packages.python.pythonOnBuildForHost.interpreter} ./setup.py build_cython build_ext --inplace ''; checkPhase = '' diff --git a/pkgs/tools/networking/networkmanager/default.nix b/pkgs/tools/networking/networkmanager/default.nix index ebf56f3cc29..9f928224ca7 100644 --- a/pkgs/tools/networking/networkmanager/default.nix +++ b/pkgs/tools/networking/networkmanager/default.nix @@ -53,7 +53,7 @@ }: let - pythonForDocs = python3.pythonForBuild.withPackages (pkgs: with pkgs; [ pygobject3 ]); + pythonForDocs = python3.pythonOnBuildForHost.withPackages (pkgs: with pkgs; [ pygobject3 ]); in stdenv.mkDerivation rec { pname = "networkmanager"; diff --git a/pkgs/tools/security/fail2ban/default.nix b/pkgs/tools/security/fail2ban/default.nix index d26429b813d..0ed0af4e069 100644 --- a/pkgs/tools/security/fail2ban/default.nix +++ b/pkgs/tools/security/fail2ban/default.nix @@ -43,7 +43,7 @@ python3.pkgs.buildPythonApplication rec { substituteInPlace setup.py --replace /usr/share/doc/ share/doc/ # see https://github.com/NixOS/nixpkgs/issues/4968 - ${python3.pythonForBuild.interpreter} setup.py install_data --install-dir=$out --root=$out + ${python3.pythonOnBuildForHost.interpreter} setup.py install_data --install-dir=$out --root=$out ''; postInstall = diff --git a/pkgs/tools/system/minijail/tools.nix b/pkgs/tools/system/minijail/tools.nix index f54e7677761..266879a3033 100644 --- a/pkgs/tools/system/minijail/tools.nix +++ b/pkgs/tools/system/minijail/tools.nix @@ -21,7 +21,7 @@ buildPythonApplication { make libconstants.gen.c libsyscalls.gen.c ${targetClang}/bin/${targetClang.targetPrefix}cc -S -emit-llvm \ libconstants.gen.c libsyscalls.gen.c - ${python.pythonForBuild.interpreter} tools/generate_constants_json.py \ + ${python.pythonOnBuildForHost.interpreter} tools/generate_constants_json.py \ --output constants.json \ libconstants.gen.ll libsyscalls.gen.ll ''; -- cgit 1.4.1 From aca44fe2192391eae0eb29ff3b88bd9ee67dadc8 Mon Sep 17 00:00:00 2001 From: Vincenzo Mantova <1962985+xworld21@users.noreply.github.com> Date: Tue, 7 Nov 2023 19:39:42 +0000 Subject: texlive: document new texlive.withPackages interface (#265658) --- doc/languages-frameworks/texlive.section.md | 40 +++++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'doc') diff --git a/doc/languages-frameworks/texlive.section.md b/doc/languages-frameworks/texlive.section.md index 777e94c16f1..2ba846dc492 100644 --- a/doc/languages-frameworks/texlive.section.md +++ b/doc/languages-frameworks/texlive.section.md @@ -2,6 +2,46 @@ Since release 15.09 there is a new TeX Live packaging that lives entirely under attribute `texlive`. +## User's guide (experimental new interface) {#sec-language-texlive-user-guide-experimental} + +Release 23.11 ships with a new interface that will eventually replace `texlive.combine`. + +- For basic usage, use some of the prebuilt environments available at the top level, such as `texliveBasic`, `texliveSmall`. For the full list of prebuilt environments, inspect `texlive.schemes`. + +- Packages cannot be used directly but must be assembled in an environment. To create or add packages to an environment, use + ```nix + texliveSmall.withPackages (ps: with ps; [ collection-langkorean algorithms cm-super ]) + ``` + The function `withPackages` can be called multiple times to add more packages. + + - **Note.** Within Nixpkgs, packages should only use prebuilt environments as inputs, such as `texliveSmall` or `texliveInfraOnly`, and should not depend directly on `texlive`. Further dependencies should be added by calling `withPackages`. This is to ensure that there is a consistent and simple way to override the inputs. + +- `texlive.withPackages` uses the same logic as `buildEnv`. Only parts of a package are installed in an environment: its 'runtime' files (`tex` output), binaries (`out` output), and support files (`tlpkg` output). Moreover, man and info pages are assembled into separate `man` and `info` outputs. To add only the TeX files of a package, or its documentation (`texdoc` output), just specify the outputs: + ```nix + texlive.withPackages (ps: with ps; [ + texdoc # recommended package to navigate the documentation + perlPackages.LaTeXML.tex # tex files of LaTeXML, omit binaries + cm-super + cm-super.texdoc # documentation of cm-super + ]) + ``` + +- All packages distributed by TeX Live, which contains most of CTAN, are available and can be found under `texlive.pkgs`: + ```ShellSession + $ nix repl + nix-repl> :l + nix-repl> texlive.pkgs.[TAB] + ``` + Note that the packages in `texlive.pkgs` are only provided for search purposes and must not be used directly. + +- **Experimental and subject to change without notice:** to add the documentation for all packages in the environment, use + ```nix + texliveSmall.__overrideTeXConfig { withDocs = true; } + ``` + This can be applied before or after calling `withPackages`. + + The function currently support the parameters `withDocs`, `withSources`, and `requireTeXPackages`. + ## User's guide {#sec-language-texlive-user-guide} - For basic usage just pull `texlive.combined.scheme-basic` for an environment with basic LaTeX support. -- cgit 1.4.1 From a12beafc57149d7112969219ac2806854f0623fa Mon Sep 17 00:00:00 2001 From: Yueh-Shun Li Date: Tue, 31 Oct 2023 04:30:02 +0000 Subject: doc: move doc/builders/packages -> doc/packages --- .github/CODEOWNERS | 2 +- doc/builders.md | 2 +- doc/builders/packages/cataclysm-dda.section.md | 129 ------------------------- doc/builders/packages/citrix.section.md | 32 ------ doc/builders/packages/dlib.section.md | 13 --- doc/builders/packages/eclipse.section.md | 64 ------------ doc/builders/packages/elm.section.md | 11 --- doc/builders/packages/emacs.section.md | 115 ---------------------- doc/builders/packages/etc-files.section.md | 18 ---- doc/builders/packages/firefox.section.md | 55 ----------- doc/builders/packages/fish.section.md | 50 ---------- doc/builders/packages/fuse.section.md | 45 --------- doc/builders/packages/ibus.section.md | 40 -------- doc/builders/packages/index.md | 27 ------ doc/builders/packages/kakoune.section.md | 9 -- doc/builders/packages/linux.section.md | 41 -------- doc/builders/packages/locales.section.md | 5 - doc/builders/packages/nginx.section.md | 11 --- doc/builders/packages/opengl.section.md | 15 --- doc/builders/packages/shell-helpers.section.md | 12 --- doc/builders/packages/steam.section.md | 63 ------------ doc/builders/packages/urxvt.section.md | 71 -------------- doc/builders/packages/weechat.section.md | 85 ---------------- doc/builders/packages/xorg.section.md | 34 ------- doc/packages/cataclysm-dda.section.md | 129 +++++++++++++++++++++++++ doc/packages/citrix.section.md | 32 ++++++ doc/packages/dlib.section.md | 13 +++ doc/packages/eclipse.section.md | 64 ++++++++++++ doc/packages/elm.section.md | 11 +++ doc/packages/emacs.section.md | 115 ++++++++++++++++++++++ doc/packages/etc-files.section.md | 18 ++++ doc/packages/firefox.section.md | 55 +++++++++++ doc/packages/fish.section.md | 50 ++++++++++ doc/packages/fuse.section.md | 45 +++++++++ doc/packages/ibus.section.md | 40 ++++++++ doc/packages/index.md | 27 ++++++ doc/packages/kakoune.section.md | 9 ++ doc/packages/linux.section.md | 41 ++++++++ doc/packages/locales.section.md | 5 + doc/packages/nginx.section.md | 11 +++ doc/packages/opengl.section.md | 15 +++ doc/packages/shell-helpers.section.md | 12 +++ doc/packages/steam.section.md | 63 ++++++++++++ doc/packages/urxvt.section.md | 71 ++++++++++++++ doc/packages/weechat.section.md | 85 ++++++++++++++++ doc/packages/xorg.section.md | 34 +++++++ 46 files changed, 947 insertions(+), 947 deletions(-) delete mode 100644 doc/builders/packages/cataclysm-dda.section.md delete mode 100644 doc/builders/packages/citrix.section.md delete mode 100644 doc/builders/packages/dlib.section.md delete mode 100644 doc/builders/packages/eclipse.section.md delete mode 100644 doc/builders/packages/elm.section.md delete mode 100644 doc/builders/packages/emacs.section.md delete mode 100644 doc/builders/packages/etc-files.section.md delete mode 100644 doc/builders/packages/firefox.section.md delete mode 100644 doc/builders/packages/fish.section.md delete mode 100644 doc/builders/packages/fuse.section.md delete mode 100644 doc/builders/packages/ibus.section.md delete mode 100644 doc/builders/packages/index.md delete mode 100644 doc/builders/packages/kakoune.section.md delete mode 100644 doc/builders/packages/linux.section.md delete mode 100644 doc/builders/packages/locales.section.md delete mode 100644 doc/builders/packages/nginx.section.md delete mode 100644 doc/builders/packages/opengl.section.md delete mode 100644 doc/builders/packages/shell-helpers.section.md delete mode 100644 doc/builders/packages/steam.section.md delete mode 100644 doc/builders/packages/urxvt.section.md delete mode 100644 doc/builders/packages/weechat.section.md delete mode 100644 doc/builders/packages/xorg.section.md create mode 100644 doc/packages/cataclysm-dda.section.md create mode 100644 doc/packages/citrix.section.md create mode 100644 doc/packages/dlib.section.md create mode 100644 doc/packages/eclipse.section.md create mode 100644 doc/packages/elm.section.md create mode 100644 doc/packages/emacs.section.md create mode 100644 doc/packages/etc-files.section.md create mode 100644 doc/packages/firefox.section.md create mode 100644 doc/packages/fish.section.md create mode 100644 doc/packages/fuse.section.md create mode 100644 doc/packages/ibus.section.md create mode 100644 doc/packages/index.md create mode 100644 doc/packages/kakoune.section.md create mode 100644 doc/packages/linux.section.md create mode 100644 doc/packages/locales.section.md create mode 100644 doc/packages/nginx.section.md create mode 100644 doc/packages/opengl.section.md create mode 100644 doc/packages/shell-helpers.section.md create mode 100644 doc/packages/steam.section.md create mode 100644 doc/packages/urxvt.section.md create mode 100644 doc/packages/weechat.section.md create mode 100644 doc/packages/xorg.section.md (limited to 'doc') diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index f8278d1cbe4..dcec6535563 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -219,7 +219,7 @@ pkgs/development/python-modules/buildcatrust/ @ajs124 @lukegb @mweinelt /nixos/tests/knot.nix @mweinelt # Web servers -/doc/builders/packages/nginx.section.md @raitobezarius +/doc/packages/nginx.section.md @raitobezarius /pkgs/servers/http/nginx/ @raitobezarius /nixos/modules/services/web-servers/nginx/ @raitobezarius diff --git a/doc/builders.md b/doc/builders.md index 2e959422405..9a238add083 100644 --- a/doc/builders.md +++ b/doc/builders.md @@ -8,5 +8,5 @@ builders/special.md builders/images.md hooks/index.md languages-frameworks/index.md -builders/packages/index.md +packages/index.md ``` diff --git a/doc/builders/packages/cataclysm-dda.section.md b/doc/builders/packages/cataclysm-dda.section.md deleted file mode 100644 index f401e9b9efa..00000000000 --- a/doc/builders/packages/cataclysm-dda.section.md +++ /dev/null @@ -1,129 +0,0 @@ -# Cataclysm: Dark Days Ahead {#cataclysm-dark-days-ahead} - -## How to install Cataclysm DDA {#how-to-install-cataclysm-dda} - -To install the latest stable release of Cataclysm DDA to your profile, execute -`nix-env -f "" -iA cataclysm-dda`. For the curses build (build -without tiles), install `cataclysmDDA.stable.curses`. Note: `cataclysm-dda` is -an alias to `cataclysmDDA.stable.tiles`. - -If you like access to a development build of your favorite git revision, -override `cataclysm-dda-git` (or `cataclysmDDA.git.curses` if you like curses -build): - -```nix -cataclysm-dda-git.override { - version = "YYYY-MM-DD"; - rev = "YOUR_FAVORITE_REVISION"; - sha256 = "CHECKSUM_OF_THE_REVISION"; -} -``` - -The sha256 checksum can be obtained by - -```sh -nix-prefetch-url --unpack "https://github.com/CleverRaven/Cataclysm-DDA/archive/${YOUR_FAVORITE_REVISION}.tar.gz" -``` - -The default configuration directory is `~/.cataclysm-dda`. If you prefer -`$XDG_CONFIG_HOME/cataclysm-dda`, override the derivation: - -```nix -cataclysm-dda.override { - useXdgDir = true; -} -``` - -## Important note for overriding packages {#important-note-for-overriding-packages} - -After applying `overrideAttrs`, you need to fix `passthru.pkgs` and -`passthru.withMods` attributes either manually or by using `attachPkgs`: - -```nix -let - # You enabled parallel building. - myCDDA = cataclysm-dda-git.overrideAttrs (_: { - enableParallelBuilding = true; - }); - - # Unfortunately, this refers to the package before overriding and - # parallel building is still disabled. - badExample = myCDDA.withMods (_: []); - - inherit (cataclysmDDA) attachPkgs pkgs wrapCDDA; - - # You can fix it by hand - goodExample1 = myCDDA.overrideAttrs (old: { - passthru = old.passthru // { - pkgs = pkgs.override { build = goodExample1; }; - withMods = wrapCDDA goodExample1; - }; - }); - - # or by using a helper function `attachPkgs`. - goodExample2 = attachPkgs pkgs myCDDA; -in - -# badExample # parallel building disabled -# goodExample1.withMods (_: []) # parallel building enabled -goodExample2.withMods (_: []) # parallel building enabled -``` - -## Customizing with mods {#customizing-with-mods} - -To install Cataclysm DDA with mods of your choice, you can use `withMods` -attribute: - -```nix -cataclysm-dda.withMods (mods: with mods; [ - tileset.UndeadPeople -]) -``` - -All mods, soundpacks, and tilesets available in nixpkgs are found in -`cataclysmDDA.pkgs`. - -Here is an example to modify existing mods and/or add more mods not available -in nixpkgs: - -```nix -let - customMods = self: super: lib.recursiveUpdate super { - # Modify existing mod - tileset.UndeadPeople = super.tileset.UndeadPeople.overrideAttrs (old: { - # If you like to apply a patch to the tileset for example - patches = [ ./path/to/your.patch ]; - }); - - # Add another mod - mod.Awesome = cataclysmDDA.buildMod { - modName = "Awesome"; - version = "0.x"; - src = fetchFromGitHub { - owner = "Someone"; - repo = "AwesomeMod"; - rev = "..."; - hash = "..."; - }; - # Path to be installed in the unpacked source (default: ".") - modRoot = "contents/under/this/path/will/be/installed"; - }; - - # Add another soundpack - soundpack.Fantastic = cataclysmDDA.buildSoundPack { - # ditto - }; - - # Add another tileset - tileset.SuperDuper = cataclysmDDA.buildTileSet { - # ditto - }; - }; -in -cataclysm-dda.withMods (mods: with mods.extend customMods; [ - tileset.UndeadPeople - mod.Awesome - soundpack.Fantastic - tileset.SuperDuper -]) -``` diff --git a/doc/builders/packages/citrix.section.md b/doc/builders/packages/citrix.section.md deleted file mode 100644 index bcf0924249b..00000000000 --- a/doc/builders/packages/citrix.section.md +++ /dev/null @@ -1,32 +0,0 @@ -# Citrix Workspace {#sec-citrix} - -The [Citrix Workspace App](https://www.citrix.com/products/workspace-app/) is a remote desktop viewer which provides access to [XenDesktop](https://www.citrix.com/products/xenapp-xendesktop/) installations. - -## Basic usage {#sec-citrix-base} - -The tarball archive needs to be downloaded manually, as the license agreements of the vendor for [Citrix Workspace](https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html) needs to be accepted first. Then run `nix-prefetch-url file://$PWD/linuxx64-$version.tar.gz`. With the archive available in the store, the package can be built and installed with Nix. - -## Citrix Self-service {#sec-citrix-selfservice} - -The [self-service](https://support.citrix.com/article/CTX200337) is an application managing Citrix desktops and applications. Please note that this feature only works with at least citrix_workspace_20_06_0 and later versions. - -In order to set this up, you first have to [download the `.cr` file from the Netscaler Gateway](https://its.uiowa.edu/support/article/102186). After that, you can configure the `selfservice` like this: - -```ShellSession -$ storebrowse -C ~/Downloads/receiverconfig.cr -$ selfservice -``` - -## Custom certificates {#sec-citrix-custom-certs} - -The `Citrix Workspace App` in `nixpkgs` trusts several certificates [from the Mozilla database](https://curl.haxx.se/docs/caextract.html) by default. However, several companies using Citrix might require their own corporate certificate. On distros with imperative packaging, these certs can be stored easily in [`$ICAROOT`](https://citrix.github.io/receiver-for-linux-command-reference/), however this directory is a store path in `nixpkgs`. In order to work around this issue, the package provides a simple mechanism to add custom certificates without rebuilding the entire package using `symlinkJoin`: - -```nix -with import { config.allowUnfree = true; }; -let - extraCerts = [ - ./custom-cert-1.pem - ./custom-cert-2.pem # ... - ]; -in citrix_workspace.override { inherit extraCerts; } -``` diff --git a/doc/builders/packages/dlib.section.md b/doc/builders/packages/dlib.section.md deleted file mode 100644 index bd5b1a20a4d..00000000000 --- a/doc/builders/packages/dlib.section.md +++ /dev/null @@ -1,13 +0,0 @@ -# DLib {#dlib} - -[DLib](http://dlib.net/) is a modern, C++\-based toolkit which provides several machine learning algorithms. - -## Compiling without AVX support {#compiling-without-avx-support} - -Especially older CPUs don't support [AVX](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions) (Advanced Vector Extensions) instructions that are used by DLib to optimize their algorithms. - -On the affected hardware errors like `Illegal instruction` will occur. In those cases AVX support needs to be disabled: - -```nix -self: super: { dlib = super.dlib.override { avxSupport = false; }; } -``` diff --git a/doc/builders/packages/eclipse.section.md b/doc/builders/packages/eclipse.section.md deleted file mode 100644 index e19510e131a..00000000000 --- a/doc/builders/packages/eclipse.section.md +++ /dev/null @@ -1,64 +0,0 @@ -# Eclipse {#sec-eclipse} - -The Nix expressions related to the Eclipse platform and IDE are in [`pkgs/applications/editors/eclipse`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/eclipse). - -Nixpkgs provides a number of packages that will install Eclipse in its various forms. These range from the bare-bones Eclipse Platform to the more fully featured Eclipse SDK or Scala-IDE packages and multiple version are often available. It is possible to list available Eclipse packages by issuing the command: - -```ShellSession -$ nix-env -f '' -qaP -A eclipses --description -``` - -Once an Eclipse variant is installed, it can be run using the `eclipse` command, as expected. From within Eclipse, it is then possible to install plugins in the usual manner by either manually specifying an Eclipse update site or by installing the Marketplace Client plugin and using it to discover and install other plugins. This installation method provides an Eclipse installation that closely resemble a manually installed Eclipse. - -If you prefer to install plugins in a more declarative manner, then Nixpkgs also offer a number of Eclipse plugins that can be installed in an _Eclipse environment_. This type of environment is created using the function `eclipseWithPlugins` found inside the `nixpkgs.eclipses` attribute set. This function takes as argument `{ eclipse, plugins ? [], jvmArgs ? [] }` where `eclipse` is a one of the Eclipse packages described above, `plugins` is a list of plugin derivations, and `jvmArgs` is a list of arguments given to the JVM running the Eclipse. For example, say you wish to install the latest Eclipse Platform with the popular Eclipse Color Theme plugin and also allow Eclipse to use more RAM. You could then add: - -```nix -packageOverrides = pkgs: { - myEclipse = with pkgs.eclipses; eclipseWithPlugins { - eclipse = eclipse-platform; - jvmArgs = [ "-Xmx2048m" ]; - plugins = [ plugins.color-theme ]; - }; -} -``` - -to your Nixpkgs configuration (`~/.config/nixpkgs/config.nix`) and install it by running `nix-env -f '' -iA myEclipse` and afterward run Eclipse as usual. It is possible to find out which plugins are available for installation using `eclipseWithPlugins` by running: - -```ShellSession -$ nix-env -f '' -qaP -A eclipses.plugins --description -``` - -If there is a need to install plugins that are not available in Nixpkgs then it may be possible to define these plugins outside Nixpkgs using the `buildEclipseUpdateSite` and `buildEclipsePlugin` functions found in the `nixpkgs.eclipses.plugins` attribute set. Use the `buildEclipseUpdateSite` function to install a plugin distributed as an Eclipse update site. This function takes `{ name, src }` as argument, where `src` indicates the Eclipse update site archive. All Eclipse features and plugins within the downloaded update site will be installed. When an update site archive is not available, then the `buildEclipsePlugin` function can be used to install a plugin that consists of a pair of feature and plugin JARs. This function takes an argument `{ name, srcFeature, srcPlugin }` where `srcFeature` and `srcPlugin` are the feature and plugin JARs, respectively. - -Expanding the previous example with two plugins using the above functions, we have: - -```nix -packageOverrides = pkgs: { - myEclipse = with pkgs.eclipses; eclipseWithPlugins { - eclipse = eclipse-platform; - jvmArgs = [ "-Xmx2048m" ]; - plugins = [ - plugins.color-theme - (plugins.buildEclipsePlugin { - name = "myplugin1-1.0"; - srcFeature = fetchurl { - url = "http://…/features/myplugin1.jar"; - hash = "sha256-123…"; - }; - srcPlugin = fetchurl { - url = "http://…/plugins/myplugin1.jar"; - hash = "sha256-123…"; - }; - }); - (plugins.buildEclipseUpdateSite { - name = "myplugin2-1.0"; - src = fetchurl { - stripRoot = false; - url = "http://…/myplugin2.zip"; - hash = "sha256-123…"; - }; - }); - ]; - }; -} -``` diff --git a/doc/builders/packages/elm.section.md b/doc/builders/packages/elm.section.md deleted file mode 100644 index 063dd73d9de..00000000000 --- a/doc/builders/packages/elm.section.md +++ /dev/null @@ -1,11 +0,0 @@ -# Elm {#sec-elm} - -To start a development environment, run: - -```ShellSession -nix-shell -p elmPackages.elm elmPackages.elm-format -``` - -To update the Elm compiler, see `nixpkgs/pkgs/development/compilers/elm/README.md`. - -To package Elm applications, [read about elm2nix](https://github.com/hercules-ci/elm2nix#elm2nix). diff --git a/doc/builders/packages/emacs.section.md b/doc/builders/packages/emacs.section.md deleted file mode 100644 index c50c7815537..00000000000 --- a/doc/builders/packages/emacs.section.md +++ /dev/null @@ -1,115 +0,0 @@ -# Emacs {#sec-emacs} - -## Configuring Emacs {#sec-emacs-config} - -The Emacs package comes with some extra helpers to make it easier to configure. `emacs.pkgs.withPackages` allows you to manage packages from ELPA. This means that you will not have to install that packages from within Emacs. For instance, if you wanted to use `company` `counsel`, `flycheck`, `ivy`, `magit`, `projectile`, and `use-package` you could use this as a `~/.config/nixpkgs/config.nix` override: - -```nix -{ - packageOverrides = pkgs: with pkgs; { - myEmacs = emacs.pkgs.withPackages (epkgs: (with epkgs.melpaStablePackages; [ - company - counsel - flycheck - ivy - magit - projectile - use-package - ])); - } -} -``` - -You can install it like any other packages via `nix-env -iA myEmacs`. However, this will only install those packages. It will not `configure` them for us. To do this, we need to provide a configuration file. Luckily, it is possible to do this from within Nix! By modifying the above example, we can make Emacs load a custom config file. The key is to create a package that provides a `default.el` file in `/share/emacs/site-start/`. Emacs knows to load this file automatically when it starts. - -```nix -{ - packageOverrides = pkgs: with pkgs; rec { - myEmacsConfig = writeText "default.el" '' - (eval-when-compile - (require 'use-package)) - - ;; load some packages - - (use-package company - :bind ("" . company-complete) - :diminish company-mode - :commands (company-mode global-company-mode) - :defer 1 - :config - (global-company-mode)) - - (use-package counsel - :commands (counsel-descbinds) - :bind (([remap execute-extended-command] . counsel-M-x) - ("C-x C-f" . counsel-find-file) - ("C-c g" . counsel-git) - ("C-c j" . counsel-git-grep) - ("C-c k" . counsel-ag) - ("C-x l" . counsel-locate) - ("M-y" . counsel-yank-pop))) - - (use-package flycheck - :defer 2 - :config (global-flycheck-mode)) - - (use-package ivy - :defer 1 - :bind (("C-c C-r" . ivy-resume) - ("C-x C-b" . ivy-switch-buffer) - :map ivy-minibuffer-map - ("C-j" . ivy-call)) - :diminish ivy-mode - :commands ivy-mode - :config - (ivy-mode 1)) - - (use-package magit - :defer - :if (executable-find "git") - :bind (("C-x g" . magit-status) - ("C-x G" . magit-dispatch-popup)) - :init - (setq magit-completing-read-function 'ivy-completing-read)) - - (use-package projectile - :commands projectile-mode - :bind-keymap ("C-c p" . projectile-command-map) - :defer 5 - :config - (projectile-global-mode)) - ''; - - myEmacs = emacs.pkgs.withPackages (epkgs: (with epkgs.melpaStablePackages; [ - (runCommand "default.el" {} '' - mkdir -p $out/share/emacs/site-lisp - cp ${myEmacsConfig} $out/share/emacs/site-lisp/default.el - '') - company - counsel - flycheck - ivy - magit - projectile - use-package - ])); - }; -} -``` - -This provides a fairly full Emacs start file. It will load in addition to the user's personal config. You can always disable it by passing `-q` to the Emacs command. - -Sometimes `emacs.pkgs.withPackages` is not enough, as this package set has some priorities imposed on packages (with the lowest priority assigned to GNU-devel ELPA, and the highest for packages manually defined in `pkgs/applications/editors/emacs/elisp-packages/manual-packages`). But you can't control these priorities when some package is installed as a dependency. You can override it on a per-package-basis, providing all the required dependencies manually, but it's tedious and there is always a possibility that an unwanted dependency will sneak in through some other package. To completely override such a package, you can use `overrideScope`. - -```nix -overrides = self: super: rec { - haskell-mode = self.melpaPackages.haskell-mode; - ... -}; -((emacsPackagesFor emacs).overrideScope overrides).withPackages - (p: with p; [ - # here both these package will use haskell-mode of our own choice - ghc-mod - dante - ]) -``` diff --git a/doc/builders/packages/etc-files.section.md b/doc/builders/packages/etc-files.section.md deleted file mode 100644 index 94a769ed335..00000000000 --- a/doc/builders/packages/etc-files.section.md +++ /dev/null @@ -1,18 +0,0 @@ -# /etc files {#etc} - -Certain calls in glibc require access to runtime files found in `/etc` such as `/etc/protocols` or `/etc/services` -- [getprotobyname](https://linux.die.net/man/3/getprotobyname) is one such function. - -On non-NixOS distributions these files are typically provided by packages (i.e., [netbase](https://packages.debian.org/sid/netbase)) if not already pre-installed in your distribution. This can cause non-reproducibility for code if they rely on these files being present. - -If [iana-etc](https://hydra.nixos.org/job/nixos/trunk-combined/nixpkgs.iana-etc.x86_64-linux) is part of your `buildInputs`, then it will set the environment variables `NIX_ETC_PROTOCOLS` and `NIX_ETC_SERVICES` to the corresponding files in the package through a setup hook. - - -```bash -> nix-shell -p iana-etc - -[nix-shell:~]$ env | grep NIX_ETC -NIX_ETC_SERVICES=/nix/store/aj866hr8fad8flnggwdhrldm0g799ccz-iana-etc-20210225/etc/services -NIX_ETC_PROTOCOLS=/nix/store/aj866hr8fad8flnggwdhrldm0g799ccz-iana-etc-20210225/etc/protocols -``` - -Nixpkg's version of [glibc](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/libraries/glibc/default.nix) has been patched to check for the existence of these environment variables. If the environment variables are *not* set, then it will attempt to find the files at the default location within `/etc`. diff --git a/doc/builders/packages/firefox.section.md b/doc/builders/packages/firefox.section.md deleted file mode 100644 index 46bc0457a3d..00000000000 --- a/doc/builders/packages/firefox.section.md +++ /dev/null @@ -1,55 +0,0 @@ -# Firefox {#sec-firefox} - -## Build wrapped Firefox with extensions and policies {#build-wrapped-firefox-with-extensions-and-policies} - -The `wrapFirefox` function allows to pass policies, preferences and extensions that are available to Firefox. With the help of `fetchFirefoxAddon` this allows to build a Firefox version that already comes with add-ons pre-installed: - -```nix -{ - # Nix firefox addons only work with the firefox-esr package. - myFirefox = wrapFirefox firefox-esr-unwrapped { - nixExtensions = [ - (fetchFirefoxAddon { - name = "ublock"; # Has to be unique! - url = "https://addons.mozilla.org/firefox/downloads/file/3679754/ublock_origin-1.31.0-an+fx.xpi"; - hash = "sha256-2e73AbmYZlZXCP5ptYVcFjQYdjDp4iPoEPEOSCVF5sA="; - }) - ]; - - extraPolicies = { - CaptivePortal = false; - DisableFirefoxStudies = true; - DisablePocket = true; - DisableTelemetry = true; - DisableFirefoxAccounts = true; - FirefoxHome = { - Pocket = false; - Snippets = false; - }; - UserMessaging = { - ExtensionRecommendations = false; - SkipOnboarding = true; - }; - SecurityDevices = { - # Use a proxy module rather than `nixpkgs.config.firefox.smartcardSupport = true` - "PKCS#11 Proxy Module" = "${pkgs.p11-kit}/lib/p11-kit-proxy.so"; - }; - }; - - extraPrefs = '' - // Show more ssl cert infos - lockPref("security.identityblock.show_extended_validation", true); - ''; - }; -} -``` - -If `nixExtensions != null`, then all manually installed add-ons will be uninstalled from your browser profile. -To view available enterprise policies, visit [enterprise policies](https://github.com/mozilla/policy-templates#enterprisepoliciesenabled) -or type into the Firefox URL bar: `about:policies#documentation`. -Nix installed add-ons do not have a valid signature, which is why signature verification is disabled. This does not compromise security because downloaded add-ons are checksummed and manual add-ons can't be installed. Also, make sure that the `name` field of `fetchFirefoxAddon` is unique. If you remove an add-on from the `nixExtensions` array, rebuild and start Firefox: the removed add-on will be completely removed with all of its settings. - -## Troubleshooting {#sec-firefox-troubleshooting} -If add-ons are marked as broken or the signature is invalid, make sure you have Firefox ESR installed. Normal Firefox does not provide the ability anymore to disable signature verification for add-ons thus nix add-ons get disabled by the normal Firefox binary. - -If add-ons do not appear installed despite being defined in your nix configuration file, reset the local add-on state of your Firefox profile by clicking `Help -> More Troubleshooting Information -> Refresh Firefox`. This can happen if you switch from manual add-on mode to nix add-on mode and then back to manual mode and then again to nix add-on mode. diff --git a/doc/builders/packages/fish.section.md b/doc/builders/packages/fish.section.md deleted file mode 100644 index 85b57acd109..00000000000 --- a/doc/builders/packages/fish.section.md +++ /dev/null @@ -1,50 +0,0 @@ -# Fish {#sec-fish} - -Fish is a "smart and user-friendly command line shell" with support for plugins. - - -## Vendor Fish scripts {#sec-fish-vendor} - -Any package may ship its own Fish completions, configuration snippets, and -functions. Those should be installed to -`$out/share/fish/vendor_{completions,conf,functions}.d` respectively. - -When the `programs.fish.enable` and -`programs.fish.vendor.{completions,config,functions}.enable` options from the -NixOS Fish module are set to true, those paths are symlinked in the current -system environment and automatically loaded by Fish. - - -## Packaging Fish plugins {#sec-fish-plugins-pkg} - -While packages providing standalone executables belong to the top level, -packages which have the sole purpose of extending Fish belong to the -`fishPlugins` scope and should be registered in -`pkgs/shells/fish/plugins/default.nix`. - -The `buildFishPlugin` utility function can be used to automatically copy Fish -scripts from `$src/{completions,conf,conf.d,functions}` to the standard vendor -installation paths. It also sets up the test environment so that the optional -`checkPhase` is executed in a Fish shell with other already packaged plugins -and package-local Fish functions specified in `checkPlugins` and -`checkFunctionDirs` respectively. - -See `pkgs/shells/fish/plugins/pure.nix` for an example of Fish plugin package -using `buildFishPlugin` and running unit tests with the `fishtape` test runner. - - -## Fish wrapper {#sec-fish-wrapper} - -The `wrapFish` package is a wrapper around Fish which can be used to create -Fish shells initialized with some plugins as well as completions, configuration -snippets and functions sourced from the given paths. This provides a convenient -way to test Fish plugins and scripts without having to alter the environment. - -```nix -wrapFish { - pluginPkgs = with fishPlugins; [ pure foreign-env ]; - completionDirs = []; - functionDirs = []; - confDirs = [ "/path/to/some/fish/init/dir/" ]; -} -``` diff --git a/doc/builders/packages/fuse.section.md b/doc/builders/packages/fuse.section.md deleted file mode 100644 index 6deea6b5626..00000000000 --- a/doc/builders/packages/fuse.section.md +++ /dev/null @@ -1,45 +0,0 @@ -# FUSE {#sec-fuse} - -Some packages rely on -[FUSE](https://www.kernel.org/doc/html/latest/filesystems/fuse.html) to provide -support for additional filesystems not supported by the kernel. - -In general, FUSE software are primarily developed for Linux but many of them can -also run on macOS. Nixpkgs supports FUSE packages on macOS, but it requires -[macFUSE](https://osxfuse.github.io) to be installed outside of Nix. macFUSE -currently isn't packaged in Nixpkgs mainly because it includes a kernel -extension, which isn't supported by Nix outside of NixOS. - -If a package fails to run on macOS with an error message similar to the -following, it's a likely sign that you need to have macFUSE installed. - - dyld: Library not loaded: /usr/local/lib/libfuse.2.dylib - Referenced from: /nix/store/w8bi72bssv0bnxhwfw3xr1mvn7myf37x-sshfs-fuse-2.10/bin/sshfs - Reason: image not found - [1] 92299 abort /nix/store/w8bi72bssv0bnxhwfw3xr1mvn7myf37x-sshfs-fuse-2.10/bin/sshfs - -Package maintainers may often encounter the following error when building FUSE -packages on macOS: - - checking for fuse.h... no - configure: error: No fuse.h found. - -This happens on autoconf based projects that use `AC_CHECK_HEADERS` or -`AC_CHECK_LIBS` to detect libfuse, and will occur even when the `fuse` package -is included in `buildInputs`. It happens because libfuse headers throw an error -on macOS if the `FUSE_USE_VERSION` macro is undefined. Many projects do define -`FUSE_USE_VERSION`, but only inside C source files. This results in the above -error at configure time because the configure script would attempt to compile -sample FUSE programs without defining `FUSE_USE_VERSION`. - -There are two possible solutions for this problem in Nixpkgs: - -1. Pass `FUSE_USE_VERSION` to the configure script by adding - `CFLAGS=-DFUSE_USE_VERSION=25` in `configureFlags`. The actual value would - have to match the definition used in the upstream source code. -2. Remove `AC_CHECK_HEADERS` / `AC_CHECK_LIBS` for libfuse. - -However, a better solution might be to fix the build script upstream to use -`PKG_CHECK_MODULES` instead. This approach wouldn't suffer from the problem that -`AC_CHECK_HEADERS`/`AC_CHECK_LIBS` has at the price of introducing a dependency -on pkg-config. diff --git a/doc/builders/packages/ibus.section.md b/doc/builders/packages/ibus.section.md deleted file mode 100644 index 817e55d56f1..00000000000 --- a/doc/builders/packages/ibus.section.md +++ /dev/null @@ -1,40 +0,0 @@ -# ibus-engines.typing-booster {#sec-ibus-typing-booster} - -This package is an ibus-based completion method to speed up typing. - -## Activating the engine {#sec-ibus-typing-booster-activate} - -IBus needs to be configured accordingly to activate `typing-booster`. The configuration depends on the desktop manager in use. For detailed instructions, please refer to the [upstream docs](https://mike-fabian.github.io/ibus-typing-booster/). - -On NixOS, you need to explicitly enable `ibus` with given engines before customizing your desktop to use `typing-booster`. This can be achieved using the `ibus` module: - -```nix -{ pkgs, ... }: { - i18n.inputMethod = { - enabled = "ibus"; - ibus.engines = with pkgs.ibus-engines; [ typing-booster ]; - }; -} -``` - -## Using custom hunspell dictionaries {#sec-ibus-typing-booster-customize-hunspell} - -The IBus engine is based on `hunspell` to support completion in many languages. By default, the dictionaries `de-de`, `en-us`, `fr-moderne` `es-es`, `it-it`, `sv-se` and `sv-fi` are in use. To add another dictionary, the package can be overridden like this: - -```nix -ibus-engines.typing-booster.override { langs = [ "de-at" "en-gb" ]; } -``` - -_Note: each language passed to `langs` must be an attribute name in `pkgs.hunspellDicts`._ - -## Built-in emoji picker {#sec-ibus-typing-booster-emoji-picker} - -The `ibus-engines.typing-booster` package contains a program named `emoji-picker`. To display all emojis correctly, a special font such as `noto-fonts-color-emoji` is needed: - -On NixOS, it can be installed using the following expression: - -```nix -{ pkgs, ... }: { - fonts.packages = with pkgs; [ noto-fonts-color-emoji ]; -} -``` diff --git a/doc/builders/packages/index.md b/doc/builders/packages/index.md deleted file mode 100644 index 1f443570240..00000000000 --- a/doc/builders/packages/index.md +++ /dev/null @@ -1,27 +0,0 @@ -# Packages {#chap-packages} - -This chapter contains information about how to use and maintain the Nix expressions for a number of specific packages, such as the Linux kernel or X.org. - -```{=include=} sections -citrix.section.md -dlib.section.md -eclipse.section.md -elm.section.md -emacs.section.md -firefox.section.md -fish.section.md -fuse.section.md -ibus.section.md -kakoune.section.md -linux.section.md -locales.section.md -etc-files.section.md -nginx.section.md -opengl.section.md -shell-helpers.section.md -steam.section.md -cataclysm-dda.section.md -urxvt.section.md -weechat.section.md -xorg.section.md -``` diff --git a/doc/builders/packages/kakoune.section.md b/doc/builders/packages/kakoune.section.md deleted file mode 100644 index 8e054777a75..00000000000 --- a/doc/builders/packages/kakoune.section.md +++ /dev/null @@ -1,9 +0,0 @@ -# Kakoune {#sec-kakoune} - -Kakoune can be built to autoload plugins: - -```nix -(kakoune.override { - plugins = with pkgs.kakounePlugins; [ parinfer-rust ]; -}) -``` diff --git a/doc/builders/packages/linux.section.md b/doc/builders/packages/linux.section.md deleted file mode 100644 index b64da85791a..00000000000 --- a/doc/builders/packages/linux.section.md +++ /dev/null @@ -1,41 +0,0 @@ -# Linux kernel {#sec-linux-kernel} - -The Nix expressions to build the Linux kernel are in [`pkgs/os-specific/linux/kernel`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/os-specific/linux/kernel). - -The function that builds the kernel has an argument `kernelPatches` which should be a list of `{name, patch, extraConfig}` attribute sets, where `name` is the name of the patch (which is included in the kernel’s `meta.description` attribute), `patch` is the patch itself (possibly compressed), and `extraConfig` (optional) is a string specifying extra options to be concatenated to the kernel configuration file (`.config`). - -The kernel derivation exports an attribute `features` specifying whether optional functionality is or isn’t enabled. This is used in NixOS to implement kernel-specific behaviour. For instance, if the kernel has the `iwlwifi` feature (i.e., has built-in support for Intel wireless chipsets), then NixOS doesn’t have to build the external `iwlwifi` package: - -```nix -modulesTree = [kernel] - ++ pkgs.lib.optional (!kernel.features ? iwlwifi) kernelPackages.iwlwifi - ++ ...; -``` - -How to add a new (major) version of the Linux kernel to Nixpkgs: - -1. Copy the old Nix expression (e.g., `linux-2.6.21.nix`) to the new one (e.g., `linux-2.6.22.nix`) and update it. - -2. Add the new kernel to the `kernels` attribute set in `linux-kernels.nix` (e.g., create an attribute `kernel_2_6_22`). - -3. Now we’re going to update the kernel configuration. First unpack the kernel. Then for each supported platform (`i686`, `x86_64`, `uml`) do the following: - - 1. Make a copy from the old config (e.g., `config-2.6.21-i686-smp`) to the new one (e.g., `config-2.6.22-i686-smp`). - - 2. Copy the config file for this platform (e.g., `config-2.6.22-i686-smp`) to `.config` in the kernel source tree. - - 3. Run `make oldconfig ARCH={i386,x86_64,um}` and answer all questions. (For the uml configuration, also add `SHELL=bash`.) Make sure to keep the configuration consistent between platforms (i.e., don’t enable some feature on `i686` and disable it on `x86_64`). - - 4. If needed, you can also run `make menuconfig`: - - ```ShellSession - $ nix-env -f "" -iA ncurses - $ export NIX_CFLAGS_LINK=-lncurses - $ make menuconfig ARCH=arch - ``` - - 5. Copy `.config` over the new config file (e.g., `config-2.6.22-i686-smp`). - -4. Test building the kernel: `nix-build -A linuxKernel.kernels.kernel_2_6_22`. If it compiles, ship it! For extra credit, try booting NixOS with it. - -5. It may be that the new kernel requires updating the external kernel modules and kernel-dependent packages listed in the `linuxPackagesFor` function in `linux-kernels.nix` (such as the NVIDIA drivers, AUFS, etc.). If the updated packages aren’t backwards compatible with older kernels, you may need to keep the older versions around. diff --git a/doc/builders/packages/locales.section.md b/doc/builders/packages/locales.section.md deleted file mode 100644 index 3a983f13a39..00000000000 --- a/doc/builders/packages/locales.section.md +++ /dev/null @@ -1,5 +0,0 @@ -# Locales {#locales} - -To allow simultaneous use of packages linked against different versions of `glibc` with different locale archive formats, Nixpkgs patches `glibc` to rely on `LOCALE_ARCHIVE` environment variable. - -On non-NixOS distributions, this variable is obviously not set. This can cause regressions in language support or even crashes in some Nixpkgs-provided programs. The simplest way to mitigate this problem is exporting the `LOCALE_ARCHIVE` variable pointing to `${glibcLocales}/lib/locale/locale-archive`. The drawback (and the reason this is not the default) is the relatively large (a hundred MiB) size of the full set of locales. It is possible to build a custom set of locales by overriding parameters `allLocales` and `locales` of the package. diff --git a/doc/builders/packages/nginx.section.md b/doc/builders/packages/nginx.section.md deleted file mode 100644 index 0704b534e5f..00000000000 --- a/doc/builders/packages/nginx.section.md +++ /dev/null @@ -1,11 +0,0 @@ -# Nginx {#sec-nginx} - -[Nginx](https://nginx.org) is a reverse proxy and lightweight webserver. - -## ETags on static files served from the Nix store {#sec-nginx-etag} - -HTTP has a couple of different mechanisms for caching to prevent clients from having to download the same content repeatedly if a resource has not changed since the last time it was requested. When nginx is used as a server for static files, it implements the caching mechanism based on the [`Last-Modified`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified) response header automatically; unfortunately, it works by using filesystem timestamps to determine the value of the `Last-Modified` header. This doesn't give the desired behavior when the file is in the Nix store because all file timestamps are set to 0 (for reasons related to build reproducibility). - -Fortunately, HTTP supports an alternative (and more effective) caching mechanism: the [`ETag`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag) response header. The value of the `ETag` header specifies some identifier for the particular content that the server is sending (e.g., a hash). When a client makes a second request for the same resource, it sends that value back in an `If-None-Match` header. If the ETag value is unchanged, then the server does not need to resend the content. - -As of NixOS 19.09, the nginx package in Nixpkgs is patched such that when nginx serves a file out of `/nix/store`, the hash in the store path is used as the `ETag` header in the HTTP response, thus providing proper caching functionality. This happens automatically; you do not need to do modify any configuration to get this behavior. diff --git a/doc/builders/packages/opengl.section.md b/doc/builders/packages/opengl.section.md deleted file mode 100644 index f4d282267a0..00000000000 --- a/doc/builders/packages/opengl.section.md +++ /dev/null @@ -1,15 +0,0 @@ -# OpenGL {#sec-opengl} - -OpenGL support varies depending on which hardware is used and which drivers are available and loaded. - -Broadly, we support both GL vendors: Mesa and NVIDIA. - -## NixOS Desktop {#nixos-desktop} - -The NixOS desktop or other non-headless configurations are the primary target for OpenGL libraries and applications. The current solution for discovering which drivers are available is based on [libglvnd](https://gitlab.freedesktop.org/glvnd/libglvnd). `libglvnd` performs "vendor-neutral dispatch", trying a variety of techniques to find the system's GL implementation. In practice, this will be either via standard GLX for X11 users or EGL for Wayland users, and supporting either NVIDIA or Mesa extensions. - -## Nix on GNU/Linux {#nix-on-gnulinux} - -If you are using a non-NixOS GNU/Linux/X11 desktop with free software video drivers, consider launching OpenGL-dependent programs from Nixpkgs with Nixpkgs versions of `libglvnd` and `mesa.drivers` in `LD_LIBRARY_PATH`. For Mesa drivers, the Linux kernel version doesn't have to match nixpkgs. - -For proprietary video drivers, you might have luck with also adding the corresponding video driver package. diff --git a/doc/builders/packages/shell-helpers.section.md b/doc/builders/packages/shell-helpers.section.md deleted file mode 100644 index e7c2b0abebf..00000000000 --- a/doc/builders/packages/shell-helpers.section.md +++ /dev/null @@ -1,12 +0,0 @@ -# Interactive shell helpers {#sec-shell-helpers} - -Some packages provide the shell integration to be more useful. But unlike other systems, nix doesn't have a standard `share` directory location. This is why a bunch `PACKAGE-share` scripts are shipped that print the location of the corresponding shared folder. Current list of such packages is as following: - -- `fzf` : `fzf-share` - -E.g. `fzf` can then be used in the `.bashrc` like this: - -```bash -source "$(fzf-share)/completion.bash" -source "$(fzf-share)/key-bindings.bash" -``` diff --git a/doc/builders/packages/steam.section.md b/doc/builders/packages/steam.section.md deleted file mode 100644 index 25728aa52ae..00000000000 --- a/doc/builders/packages/steam.section.md +++ /dev/null @@ -1,63 +0,0 @@ -# Steam {#sec-steam} - -## Steam in Nix {#sec-steam-nix} - -Steam is distributed as a `.deb` file, for now only as an i686 package (the amd64 package only has documentation). When unpacked, it has a script called `steam` that in Ubuntu (their target distro) would go to `/usr/bin`. When run for the first time, this script copies some files to the user's home, which include another script that is the ultimate responsible for launching the steam binary, which is also in `$HOME`. - -Nix problems and constraints: - -- We don't have `/bin/bash` and many scripts point there. Same thing for `/usr/bin/python`. -- We don't have the dynamic loader in `/lib`. -- The `steam.sh` script in `$HOME` cannot be patched, as it is checked and rewritten by steam. -- The steam binary cannot be patched, it's also checked. - -The current approach to deploy Steam in NixOS is composing a FHS-compatible chroot environment, as documented [here](http://sandervanderburg.blogspot.nl/2013/09/composing-fhs-compatible-chroot.html). This allows us to have binaries in the expected paths without disrupting the system, and to avoid patching them to work in a non FHS environment. - -## How to play {#sec-steam-play} - -Use `programs.steam.enable = true;` if you want to add steam to `systemPackages` and also enable a few workarounds as well as Steam controller support or other Steam supported controllers such as the DualShock 4 or Nintendo Switch Pro Controller. - -## Troubleshooting {#sec-steam-troub} - -- **Steam fails to start. What do I do?** - - Try to run - - ```ShellSession - strace steam - ``` - - to see what is causing steam to fail. - -- **Using the FOSS Radeon or nouveau (nvidia) drivers** - - - The `newStdcpp` parameter was removed since NixOS 17.09 and should not be needed anymore. - - Steam ships statically linked with a version of `libcrypto` that conflicts with the one dynamically loaded by radeonsi_dri.so. If you get the error: - - ``` - steam.sh: line 713: 7842 Segmentation fault (core dumped) - ``` - - have a look at [this pull request](https://github.com/NixOS/nixpkgs/pull/20269). - -- **Java** - - 1. There is no java in steam chrootenv by default. If you get a message like: - - ``` - /home/foo/.local/share/Steam/SteamApps/common/towns/towns.sh: line 1: java: command not found - ``` - - you need to add: - - ```nix - steam.override { withJava = true; }; - ``` - -## steam-run {#sec-steam-run} - -The FHS-compatible chroot used for Steam can also be used to run other Linux games that expect a FHS environment. To use it, install the `steam-run` package and run the game with: - -``` -steam-run ./foo -``` diff --git a/doc/builders/packages/urxvt.section.md b/doc/builders/packages/urxvt.section.md deleted file mode 100644 index 507feaa6fd8..00000000000 --- a/doc/builders/packages/urxvt.section.md +++ /dev/null @@ -1,71 +0,0 @@ -# Urxvt {#sec-urxvt} - -Urxvt, also known as rxvt-unicode, is a highly customizable terminal emulator. - -## Configuring urxvt {#sec-urxvt-conf} - -In `nixpkgs`, urxvt is provided by the package `rxvt-unicode`. It can be configured to include your choice of plugins, reducing its closure size from the default configuration which includes all available plugins. To make use of this functionality, use an overlay or directly install an expression that overrides its configuration, such as: - -```nix -rxvt-unicode.override { - configure = { availablePlugins, ... }: { - plugins = with availablePlugins; [ perls resize-font vtwheel ]; - }; -} -``` - -If the `configure` function returns an attrset without the `plugins` attribute, `availablePlugins` will be used automatically. - -In order to add plugins but also keep all default plugins installed, it is possible to use the following method: - -```nix -rxvt-unicode.override { - configure = { availablePlugins, ... }: { - plugins = (builtins.attrValues availablePlugins) ++ [ custom-plugin ]; - }; -} -``` - -To get a list of all the plugins available, open the Nix REPL and run - -```ShellSession -$ nix repl -:l -map (p: p.name) pkgs.rxvt-unicode.plugins -``` - -Alternatively, if your shell is bash or zsh and have completion enabled, simply type `nixpkgs.rxvt-unicode.plugins.`. - -In addition to `plugins` the options `extraDeps` and `perlDeps` can be used to install extra packages. `extraDeps` can be used, for example, to provide `xsel` (a clipboard manager) to the clipboard plugin, without installing it globally: - -```nix -rxvt-unicode.override { - configure = { availablePlugins, ... }: { - pluginsDeps = [ xsel ]; - }; -} -``` - -`perlDeps` is a handy way to provide Perl packages to your custom plugins (in `$HOME/.urxvt/ext`). For example, if you need `AnyEvent` you can do: - -```nix -rxvt-unicode.override { - configure = { availablePlugins, ... }: { - perlDeps = with perlPackages; [ AnyEvent ]; - }; -} -``` - -## Packaging urxvt plugins {#sec-urxvt-pkg} - -Urxvt plugins resides in `pkgs/applications/misc/rxvt-unicode-plugins`. To add a new plugin, create an expression in a subdirectory and add the package to the set in `pkgs/applications/misc/rxvt-unicode-plugins/default.nix`. - -A plugin can be any kind of derivation, the only requirement is that it should always install perl scripts in `$out/lib/urxvt/perl`. Look for existing plugins for examples. - -If the plugin is itself a Perl package that needs to be imported from other plugins or scripts, add the following passthrough: - -```nix -passthru.perlPackages = [ "self" ]; -``` - -This will make the urxvt wrapper pick up the dependency and set up the Perl path accordingly. diff --git a/doc/builders/packages/weechat.section.md b/doc/builders/packages/weechat.section.md deleted file mode 100644 index 755b6e6ad1e..00000000000 --- a/doc/builders/packages/weechat.section.md +++ /dev/null @@ -1,85 +0,0 @@ -# WeeChat {#sec-weechat} - -WeeChat can be configured to include your choice of plugins, reducing its closure size from the default configuration which includes all available plugins. To make use of this functionality, install an expression that overrides its configuration, such as: - -```nix -weechat.override {configure = {availablePlugins, ...}: { - plugins = with availablePlugins; [ python perl ]; - } -} -``` - -If the `configure` function returns an attrset without the `plugins` attribute, `availablePlugins` will be used automatically. - -The plugins currently available are `python`, `perl`, `ruby`, `guile`, `tcl` and `lua`. - -The Python and Perl plugins allows the addition of extra libraries. For instance, the `inotify.py` script in `weechat-scripts` requires D-Bus or libnotify, and the `fish.py` script requires `pycrypto`. To use these scripts, use the plugin's `withPackages` attribute: - -```nix -weechat.override { configure = {availablePlugins, ...}: { - plugins = with availablePlugins; [ - (python.withPackages (ps: with ps; [ pycrypto python-dbus ])) - ]; - }; -} -``` - -In order to also keep all default plugins installed, it is possible to use the following method: - -```nix -weechat.override { configure = { availablePlugins, ... }: { - plugins = builtins.attrValues (availablePlugins // { - python = availablePlugins.python.withPackages (ps: with ps; [ pycrypto python-dbus ]); - }); -}; } -``` - -WeeChat allows to set defaults on startup using the `--run-command`. The `configure` method can be used to pass commands to the program: - -```nix -weechat.override { - configure = { availablePlugins, ... }: { - init = '' - /set foo bar - /server add libera irc.libera.chat - ''; - }; -} -``` - -Further values can be added to the list of commands when running `weechat --run-command "your-commands"`. - -Additionally, it's possible to specify scripts to be loaded when starting `weechat`. These will be loaded before the commands from `init`: - -```nix -weechat.override { - configure = { availablePlugins, ... }: { - scripts = with pkgs.weechatScripts; [ - weechat-xmpp weechat-matrix-bridge wee-slack - ]; - init = '' - /set plugins.var.python.jabber.key "val" - '': - }; -} -``` - -In `nixpkgs` there's a subpackage which contains derivations for WeeChat scripts. Such derivations expect a `passthru.scripts` attribute, which contains a list of all scripts inside the store path. Furthermore, all scripts have to live in `$out/share`. An exemplary derivation looks like this: - -```nix -{ stdenv, fetchurl }: - -stdenv.mkDerivation { - name = "exemplary-weechat-script"; - src = fetchurl { - url = "https://scripts.tld/your-scripts.tar.gz"; - hash = "..."; - }; - passthru.scripts = [ "foo.py" "bar.lua" ]; - installPhase = '' - mkdir $out/share - cp foo.py $out/share - cp bar.lua $out/share - ''; -} -``` diff --git a/doc/builders/packages/xorg.section.md b/doc/builders/packages/xorg.section.md deleted file mode 100644 index ae885f92346..00000000000 --- a/doc/builders/packages/xorg.section.md +++ /dev/null @@ -1,34 +0,0 @@ -# X.org {#sec-xorg} - -The Nix expressions for the X.org packages reside in `pkgs/servers/x11/xorg/default.nix`. This file is automatically generated from lists of tarballs in an X.org release. As such it should not be modified directly; rather, you should modify the lists, the generator script or the file `pkgs/servers/x11/xorg/overrides.nix`, in which you can override or add to the derivations produced by the generator. - -## Katamari Tarballs {#katamari-tarballs} - -X.org upstream releases used to include [katamari](https://en.wiktionary.org/wiki/%E3%81%8B%E3%81%9F%E3%81%BE%E3%82%8A) releases, which included a holistic recommended version for each tarball, up until 7.7. To create a list of tarballs in a katamari release: - -```ShellSession -export release="X11R7.7" -export url="mirror://xorg/$release/src/everything/" -cat $(PRINT_PATH=1 nix-prefetch-url $url | tail -n 1) \ - | perl -e 'while (<>) { if (/(href|HREF)="([^"]*.bz2)"/) { print "$ENV{'url'}$2\n"; }; }' \ - | sort > "tarballs-$release.list" -``` - -## Individual Tarballs {#individual-tarballs} - -The upstream release process for [X11R7.8](https://x.org/wiki/Releases/7.8/) does not include a planned katamari. Instead, each component of X.org is released as its own tarball. We maintain `pkgs/servers/x11/xorg/tarballs.list` as a list of tarballs for each individual package. This list includes X.org core libraries and protocol descriptions, extra newer X11 interface libraries, like `xorg.libxcb`, and classic utilities which are largely unused but still available if needed, like `xorg.imake`. - -## Generating Nix Expressions {#generating-nix-expressions} - -The generator is invoked as follows: - -```ShellSession -cd pkgs/servers/x11/xorg -" -iA cataclysm-dda`. For the curses build (build +without tiles), install `cataclysmDDA.stable.curses`. Note: `cataclysm-dda` is +an alias to `cataclysmDDA.stable.tiles`. + +If you like access to a development build of your favorite git revision, +override `cataclysm-dda-git` (or `cataclysmDDA.git.curses` if you like curses +build): + +```nix +cataclysm-dda-git.override { + version = "YYYY-MM-DD"; + rev = "YOUR_FAVORITE_REVISION"; + sha256 = "CHECKSUM_OF_THE_REVISION"; +} +``` + +The sha256 checksum can be obtained by + +```sh +nix-prefetch-url --unpack "https://github.com/CleverRaven/Cataclysm-DDA/archive/${YOUR_FAVORITE_REVISION}.tar.gz" +``` + +The default configuration directory is `~/.cataclysm-dda`. If you prefer +`$XDG_CONFIG_HOME/cataclysm-dda`, override the derivation: + +```nix +cataclysm-dda.override { + useXdgDir = true; +} +``` + +## Important note for overriding packages {#important-note-for-overriding-packages} + +After applying `overrideAttrs`, you need to fix `passthru.pkgs` and +`passthru.withMods` attributes either manually or by using `attachPkgs`: + +```nix +let + # You enabled parallel building. + myCDDA = cataclysm-dda-git.overrideAttrs (_: { + enableParallelBuilding = true; + }); + + # Unfortunately, this refers to the package before overriding and + # parallel building is still disabled. + badExample = myCDDA.withMods (_: []); + + inherit (cataclysmDDA) attachPkgs pkgs wrapCDDA; + + # You can fix it by hand + goodExample1 = myCDDA.overrideAttrs (old: { + passthru = old.passthru // { + pkgs = pkgs.override { build = goodExample1; }; + withMods = wrapCDDA goodExample1; + }; + }); + + # or by using a helper function `attachPkgs`. + goodExample2 = attachPkgs pkgs myCDDA; +in + +# badExample # parallel building disabled +# goodExample1.withMods (_: []) # parallel building enabled +goodExample2.withMods (_: []) # parallel building enabled +``` + +## Customizing with mods {#customizing-with-mods} + +To install Cataclysm DDA with mods of your choice, you can use `withMods` +attribute: + +```nix +cataclysm-dda.withMods (mods: with mods; [ + tileset.UndeadPeople +]) +``` + +All mods, soundpacks, and tilesets available in nixpkgs are found in +`cataclysmDDA.pkgs`. + +Here is an example to modify existing mods and/or add more mods not available +in nixpkgs: + +```nix +let + customMods = self: super: lib.recursiveUpdate super { + # Modify existing mod + tileset.UndeadPeople = super.tileset.UndeadPeople.overrideAttrs (old: { + # If you like to apply a patch to the tileset for example + patches = [ ./path/to/your.patch ]; + }); + + # Add another mod + mod.Awesome = cataclysmDDA.buildMod { + modName = "Awesome"; + version = "0.x"; + src = fetchFromGitHub { + owner = "Someone"; + repo = "AwesomeMod"; + rev = "..."; + hash = "..."; + }; + # Path to be installed in the unpacked source (default: ".") + modRoot = "contents/under/this/path/will/be/installed"; + }; + + # Add another soundpack + soundpack.Fantastic = cataclysmDDA.buildSoundPack { + # ditto + }; + + # Add another tileset + tileset.SuperDuper = cataclysmDDA.buildTileSet { + # ditto + }; + }; +in +cataclysm-dda.withMods (mods: with mods.extend customMods; [ + tileset.UndeadPeople + mod.Awesome + soundpack.Fantastic + tileset.SuperDuper +]) +``` diff --git a/doc/packages/citrix.section.md b/doc/packages/citrix.section.md new file mode 100644 index 00000000000..bcf0924249b --- /dev/null +++ b/doc/packages/citrix.section.md @@ -0,0 +1,32 @@ +# Citrix Workspace {#sec-citrix} + +The [Citrix Workspace App](https://www.citrix.com/products/workspace-app/) is a remote desktop viewer which provides access to [XenDesktop](https://www.citrix.com/products/xenapp-xendesktop/) installations. + +## Basic usage {#sec-citrix-base} + +The tarball archive needs to be downloaded manually, as the license agreements of the vendor for [Citrix Workspace](https://www.citrix.com/downloads/workspace-app/linux/workspace-app-for-linux-latest.html) needs to be accepted first. Then run `nix-prefetch-url file://$PWD/linuxx64-$version.tar.gz`. With the archive available in the store, the package can be built and installed with Nix. + +## Citrix Self-service {#sec-citrix-selfservice} + +The [self-service](https://support.citrix.com/article/CTX200337) is an application managing Citrix desktops and applications. Please note that this feature only works with at least citrix_workspace_20_06_0 and later versions. + +In order to set this up, you first have to [download the `.cr` file from the Netscaler Gateway](https://its.uiowa.edu/support/article/102186). After that, you can configure the `selfservice` like this: + +```ShellSession +$ storebrowse -C ~/Downloads/receiverconfig.cr +$ selfservice +``` + +## Custom certificates {#sec-citrix-custom-certs} + +The `Citrix Workspace App` in `nixpkgs` trusts several certificates [from the Mozilla database](https://curl.haxx.se/docs/caextract.html) by default. However, several companies using Citrix might require their own corporate certificate. On distros with imperative packaging, these certs can be stored easily in [`$ICAROOT`](https://citrix.github.io/receiver-for-linux-command-reference/), however this directory is a store path in `nixpkgs`. In order to work around this issue, the package provides a simple mechanism to add custom certificates without rebuilding the entire package using `symlinkJoin`: + +```nix +with import { config.allowUnfree = true; }; +let + extraCerts = [ + ./custom-cert-1.pem + ./custom-cert-2.pem # ... + ]; +in citrix_workspace.override { inherit extraCerts; } +``` diff --git a/doc/packages/dlib.section.md b/doc/packages/dlib.section.md new file mode 100644 index 00000000000..bd5b1a20a4d --- /dev/null +++ b/doc/packages/dlib.section.md @@ -0,0 +1,13 @@ +# DLib {#dlib} + +[DLib](http://dlib.net/) is a modern, C++\-based toolkit which provides several machine learning algorithms. + +## Compiling without AVX support {#compiling-without-avx-support} + +Especially older CPUs don't support [AVX](https://en.wikipedia.org/wiki/Advanced_Vector_Extensions) (Advanced Vector Extensions) instructions that are used by DLib to optimize their algorithms. + +On the affected hardware errors like `Illegal instruction` will occur. In those cases AVX support needs to be disabled: + +```nix +self: super: { dlib = super.dlib.override { avxSupport = false; }; } +``` diff --git a/doc/packages/eclipse.section.md b/doc/packages/eclipse.section.md new file mode 100644 index 00000000000..e19510e131a --- /dev/null +++ b/doc/packages/eclipse.section.md @@ -0,0 +1,64 @@ +# Eclipse {#sec-eclipse} + +The Nix expressions related to the Eclipse platform and IDE are in [`pkgs/applications/editors/eclipse`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/applications/editors/eclipse). + +Nixpkgs provides a number of packages that will install Eclipse in its various forms. These range from the bare-bones Eclipse Platform to the more fully featured Eclipse SDK or Scala-IDE packages and multiple version are often available. It is possible to list available Eclipse packages by issuing the command: + +```ShellSession +$ nix-env -f '' -qaP -A eclipses --description +``` + +Once an Eclipse variant is installed, it can be run using the `eclipse` command, as expected. From within Eclipse, it is then possible to install plugins in the usual manner by either manually specifying an Eclipse update site or by installing the Marketplace Client plugin and using it to discover and install other plugins. This installation method provides an Eclipse installation that closely resemble a manually installed Eclipse. + +If you prefer to install plugins in a more declarative manner, then Nixpkgs also offer a number of Eclipse plugins that can be installed in an _Eclipse environment_. This type of environment is created using the function `eclipseWithPlugins` found inside the `nixpkgs.eclipses` attribute set. This function takes as argument `{ eclipse, plugins ? [], jvmArgs ? [] }` where `eclipse` is a one of the Eclipse packages described above, `plugins` is a list of plugin derivations, and `jvmArgs` is a list of arguments given to the JVM running the Eclipse. For example, say you wish to install the latest Eclipse Platform with the popular Eclipse Color Theme plugin and also allow Eclipse to use more RAM. You could then add: + +```nix +packageOverrides = pkgs: { + myEclipse = with pkgs.eclipses; eclipseWithPlugins { + eclipse = eclipse-platform; + jvmArgs = [ "-Xmx2048m" ]; + plugins = [ plugins.color-theme ]; + }; +} +``` + +to your Nixpkgs configuration (`~/.config/nixpkgs/config.nix`) and install it by running `nix-env -f '' -iA myEclipse` and afterward run Eclipse as usual. It is possible to find out which plugins are available for installation using `eclipseWithPlugins` by running: + +```ShellSession +$ nix-env -f '' -qaP -A eclipses.plugins --description +``` + +If there is a need to install plugins that are not available in Nixpkgs then it may be possible to define these plugins outside Nixpkgs using the `buildEclipseUpdateSite` and `buildEclipsePlugin` functions found in the `nixpkgs.eclipses.plugins` attribute set. Use the `buildEclipseUpdateSite` function to install a plugin distributed as an Eclipse update site. This function takes `{ name, src }` as argument, where `src` indicates the Eclipse update site archive. All Eclipse features and plugins within the downloaded update site will be installed. When an update site archive is not available, then the `buildEclipsePlugin` function can be used to install a plugin that consists of a pair of feature and plugin JARs. This function takes an argument `{ name, srcFeature, srcPlugin }` where `srcFeature` and `srcPlugin` are the feature and plugin JARs, respectively. + +Expanding the previous example with two plugins using the above functions, we have: + +```nix +packageOverrides = pkgs: { + myEclipse = with pkgs.eclipses; eclipseWithPlugins { + eclipse = eclipse-platform; + jvmArgs = [ "-Xmx2048m" ]; + plugins = [ + plugins.color-theme + (plugins.buildEclipsePlugin { + name = "myplugin1-1.0"; + srcFeature = fetchurl { + url = "http://…/features/myplugin1.jar"; + hash = "sha256-123…"; + }; + srcPlugin = fetchurl { + url = "http://…/plugins/myplugin1.jar"; + hash = "sha256-123…"; + }; + }); + (plugins.buildEclipseUpdateSite { + name = "myplugin2-1.0"; + src = fetchurl { + stripRoot = false; + url = "http://…/myplugin2.zip"; + hash = "sha256-123…"; + }; + }); + ]; + }; +} +``` diff --git a/doc/packages/elm.section.md b/doc/packages/elm.section.md new file mode 100644 index 00000000000..063dd73d9de --- /dev/null +++ b/doc/packages/elm.section.md @@ -0,0 +1,11 @@ +# Elm {#sec-elm} + +To start a development environment, run: + +```ShellSession +nix-shell -p elmPackages.elm elmPackages.elm-format +``` + +To update the Elm compiler, see `nixpkgs/pkgs/development/compilers/elm/README.md`. + +To package Elm applications, [read about elm2nix](https://github.com/hercules-ci/elm2nix#elm2nix). diff --git a/doc/packages/emacs.section.md b/doc/packages/emacs.section.md new file mode 100644 index 00000000000..c50c7815537 --- /dev/null +++ b/doc/packages/emacs.section.md @@ -0,0 +1,115 @@ +# Emacs {#sec-emacs} + +## Configuring Emacs {#sec-emacs-config} + +The Emacs package comes with some extra helpers to make it easier to configure. `emacs.pkgs.withPackages` allows you to manage packages from ELPA. This means that you will not have to install that packages from within Emacs. For instance, if you wanted to use `company` `counsel`, `flycheck`, `ivy`, `magit`, `projectile`, and `use-package` you could use this as a `~/.config/nixpkgs/config.nix` override: + +```nix +{ + packageOverrides = pkgs: with pkgs; { + myEmacs = emacs.pkgs.withPackages (epkgs: (with epkgs.melpaStablePackages; [ + company + counsel + flycheck + ivy + magit + projectile + use-package + ])); + } +} +``` + +You can install it like any other packages via `nix-env -iA myEmacs`. However, this will only install those packages. It will not `configure` them for us. To do this, we need to provide a configuration file. Luckily, it is possible to do this from within Nix! By modifying the above example, we can make Emacs load a custom config file. The key is to create a package that provides a `default.el` file in `/share/emacs/site-start/`. Emacs knows to load this file automatically when it starts. + +```nix +{ + packageOverrides = pkgs: with pkgs; rec { + myEmacsConfig = writeText "default.el" '' + (eval-when-compile + (require 'use-package)) + + ;; load some packages + + (use-package company + :bind ("" . company-complete) + :diminish company-mode + :commands (company-mode global-company-mode) + :defer 1 + :config + (global-company-mode)) + + (use-package counsel + :commands (counsel-descbinds) + :bind (([remap execute-extended-command] . counsel-M-x) + ("C-x C-f" . counsel-find-file) + ("C-c g" . counsel-git) + ("C-c j" . counsel-git-grep) + ("C-c k" . counsel-ag) + ("C-x l" . counsel-locate) + ("M-y" . counsel-yank-pop))) + + (use-package flycheck + :defer 2 + :config (global-flycheck-mode)) + + (use-package ivy + :defer 1 + :bind (("C-c C-r" . ivy-resume) + ("C-x C-b" . ivy-switch-buffer) + :map ivy-minibuffer-map + ("C-j" . ivy-call)) + :diminish ivy-mode + :commands ivy-mode + :config + (ivy-mode 1)) + + (use-package magit + :defer + :if (executable-find "git") + :bind (("C-x g" . magit-status) + ("C-x G" . magit-dispatch-popup)) + :init + (setq magit-completing-read-function 'ivy-completing-read)) + + (use-package projectile + :commands projectile-mode + :bind-keymap ("C-c p" . projectile-command-map) + :defer 5 + :config + (projectile-global-mode)) + ''; + + myEmacs = emacs.pkgs.withPackages (epkgs: (with epkgs.melpaStablePackages; [ + (runCommand "default.el" {} '' + mkdir -p $out/share/emacs/site-lisp + cp ${myEmacsConfig} $out/share/emacs/site-lisp/default.el + '') + company + counsel + flycheck + ivy + magit + projectile + use-package + ])); + }; +} +``` + +This provides a fairly full Emacs start file. It will load in addition to the user's personal config. You can always disable it by passing `-q` to the Emacs command. + +Sometimes `emacs.pkgs.withPackages` is not enough, as this package set has some priorities imposed on packages (with the lowest priority assigned to GNU-devel ELPA, and the highest for packages manually defined in `pkgs/applications/editors/emacs/elisp-packages/manual-packages`). But you can't control these priorities when some package is installed as a dependency. You can override it on a per-package-basis, providing all the required dependencies manually, but it's tedious and there is always a possibility that an unwanted dependency will sneak in through some other package. To completely override such a package, you can use `overrideScope`. + +```nix +overrides = self: super: rec { + haskell-mode = self.melpaPackages.haskell-mode; + ... +}; +((emacsPackagesFor emacs).overrideScope overrides).withPackages + (p: with p; [ + # here both these package will use haskell-mode of our own choice + ghc-mod + dante + ]) +``` diff --git a/doc/packages/etc-files.section.md b/doc/packages/etc-files.section.md new file mode 100644 index 00000000000..94a769ed335 --- /dev/null +++ b/doc/packages/etc-files.section.md @@ -0,0 +1,18 @@ +# /etc files {#etc} + +Certain calls in glibc require access to runtime files found in `/etc` such as `/etc/protocols` or `/etc/services` -- [getprotobyname](https://linux.die.net/man/3/getprotobyname) is one such function. + +On non-NixOS distributions these files are typically provided by packages (i.e., [netbase](https://packages.debian.org/sid/netbase)) if not already pre-installed in your distribution. This can cause non-reproducibility for code if they rely on these files being present. + +If [iana-etc](https://hydra.nixos.org/job/nixos/trunk-combined/nixpkgs.iana-etc.x86_64-linux) is part of your `buildInputs`, then it will set the environment variables `NIX_ETC_PROTOCOLS` and `NIX_ETC_SERVICES` to the corresponding files in the package through a setup hook. + + +```bash +> nix-shell -p iana-etc + +[nix-shell:~]$ env | grep NIX_ETC +NIX_ETC_SERVICES=/nix/store/aj866hr8fad8flnggwdhrldm0g799ccz-iana-etc-20210225/etc/services +NIX_ETC_PROTOCOLS=/nix/store/aj866hr8fad8flnggwdhrldm0g799ccz-iana-etc-20210225/etc/protocols +``` + +Nixpkg's version of [glibc](https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/libraries/glibc/default.nix) has been patched to check for the existence of these environment variables. If the environment variables are *not* set, then it will attempt to find the files at the default location within `/etc`. diff --git a/doc/packages/firefox.section.md b/doc/packages/firefox.section.md new file mode 100644 index 00000000000..46bc0457a3d --- /dev/null +++ b/doc/packages/firefox.section.md @@ -0,0 +1,55 @@ +# Firefox {#sec-firefox} + +## Build wrapped Firefox with extensions and policies {#build-wrapped-firefox-with-extensions-and-policies} + +The `wrapFirefox` function allows to pass policies, preferences and extensions that are available to Firefox. With the help of `fetchFirefoxAddon` this allows to build a Firefox version that already comes with add-ons pre-installed: + +```nix +{ + # Nix firefox addons only work with the firefox-esr package. + myFirefox = wrapFirefox firefox-esr-unwrapped { + nixExtensions = [ + (fetchFirefoxAddon { + name = "ublock"; # Has to be unique! + url = "https://addons.mozilla.org/firefox/downloads/file/3679754/ublock_origin-1.31.0-an+fx.xpi"; + hash = "sha256-2e73AbmYZlZXCP5ptYVcFjQYdjDp4iPoEPEOSCVF5sA="; + }) + ]; + + extraPolicies = { + CaptivePortal = false; + DisableFirefoxStudies = true; + DisablePocket = true; + DisableTelemetry = true; + DisableFirefoxAccounts = true; + FirefoxHome = { + Pocket = false; + Snippets = false; + }; + UserMessaging = { + ExtensionRecommendations = false; + SkipOnboarding = true; + }; + SecurityDevices = { + # Use a proxy module rather than `nixpkgs.config.firefox.smartcardSupport = true` + "PKCS#11 Proxy Module" = "${pkgs.p11-kit}/lib/p11-kit-proxy.so"; + }; + }; + + extraPrefs = '' + // Show more ssl cert infos + lockPref("security.identityblock.show_extended_validation", true); + ''; + }; +} +``` + +If `nixExtensions != null`, then all manually installed add-ons will be uninstalled from your browser profile. +To view available enterprise policies, visit [enterprise policies](https://github.com/mozilla/policy-templates#enterprisepoliciesenabled) +or type into the Firefox URL bar: `about:policies#documentation`. +Nix installed add-ons do not have a valid signature, which is why signature verification is disabled. This does not compromise security because downloaded add-ons are checksummed and manual add-ons can't be installed. Also, make sure that the `name` field of `fetchFirefoxAddon` is unique. If you remove an add-on from the `nixExtensions` array, rebuild and start Firefox: the removed add-on will be completely removed with all of its settings. + +## Troubleshooting {#sec-firefox-troubleshooting} +If add-ons are marked as broken or the signature is invalid, make sure you have Firefox ESR installed. Normal Firefox does not provide the ability anymore to disable signature verification for add-ons thus nix add-ons get disabled by the normal Firefox binary. + +If add-ons do not appear installed despite being defined in your nix configuration file, reset the local add-on state of your Firefox profile by clicking `Help -> More Troubleshooting Information -> Refresh Firefox`. This can happen if you switch from manual add-on mode to nix add-on mode and then back to manual mode and then again to nix add-on mode. diff --git a/doc/packages/fish.section.md b/doc/packages/fish.section.md new file mode 100644 index 00000000000..85b57acd109 --- /dev/null +++ b/doc/packages/fish.section.md @@ -0,0 +1,50 @@ +# Fish {#sec-fish} + +Fish is a "smart and user-friendly command line shell" with support for plugins. + + +## Vendor Fish scripts {#sec-fish-vendor} + +Any package may ship its own Fish completions, configuration snippets, and +functions. Those should be installed to +`$out/share/fish/vendor_{completions,conf,functions}.d` respectively. + +When the `programs.fish.enable` and +`programs.fish.vendor.{completions,config,functions}.enable` options from the +NixOS Fish module are set to true, those paths are symlinked in the current +system environment and automatically loaded by Fish. + + +## Packaging Fish plugins {#sec-fish-plugins-pkg} + +While packages providing standalone executables belong to the top level, +packages which have the sole purpose of extending Fish belong to the +`fishPlugins` scope and should be registered in +`pkgs/shells/fish/plugins/default.nix`. + +The `buildFishPlugin` utility function can be used to automatically copy Fish +scripts from `$src/{completions,conf,conf.d,functions}` to the standard vendor +installation paths. It also sets up the test environment so that the optional +`checkPhase` is executed in a Fish shell with other already packaged plugins +and package-local Fish functions specified in `checkPlugins` and +`checkFunctionDirs` respectively. + +See `pkgs/shells/fish/plugins/pure.nix` for an example of Fish plugin package +using `buildFishPlugin` and running unit tests with the `fishtape` test runner. + + +## Fish wrapper {#sec-fish-wrapper} + +The `wrapFish` package is a wrapper around Fish which can be used to create +Fish shells initialized with some plugins as well as completions, configuration +snippets and functions sourced from the given paths. This provides a convenient +way to test Fish plugins and scripts without having to alter the environment. + +```nix +wrapFish { + pluginPkgs = with fishPlugins; [ pure foreign-env ]; + completionDirs = []; + functionDirs = []; + confDirs = [ "/path/to/some/fish/init/dir/" ]; +} +``` diff --git a/doc/packages/fuse.section.md b/doc/packages/fuse.section.md new file mode 100644 index 00000000000..6deea6b5626 --- /dev/null +++ b/doc/packages/fuse.section.md @@ -0,0 +1,45 @@ +# FUSE {#sec-fuse} + +Some packages rely on +[FUSE](https://www.kernel.org/doc/html/latest/filesystems/fuse.html) to provide +support for additional filesystems not supported by the kernel. + +In general, FUSE software are primarily developed for Linux but many of them can +also run on macOS. Nixpkgs supports FUSE packages on macOS, but it requires +[macFUSE](https://osxfuse.github.io) to be installed outside of Nix. macFUSE +currently isn't packaged in Nixpkgs mainly because it includes a kernel +extension, which isn't supported by Nix outside of NixOS. + +If a package fails to run on macOS with an error message similar to the +following, it's a likely sign that you need to have macFUSE installed. + + dyld: Library not loaded: /usr/local/lib/libfuse.2.dylib + Referenced from: /nix/store/w8bi72bssv0bnxhwfw3xr1mvn7myf37x-sshfs-fuse-2.10/bin/sshfs + Reason: image not found + [1] 92299 abort /nix/store/w8bi72bssv0bnxhwfw3xr1mvn7myf37x-sshfs-fuse-2.10/bin/sshfs + +Package maintainers may often encounter the following error when building FUSE +packages on macOS: + + checking for fuse.h... no + configure: error: No fuse.h found. + +This happens on autoconf based projects that use `AC_CHECK_HEADERS` or +`AC_CHECK_LIBS` to detect libfuse, and will occur even when the `fuse` package +is included in `buildInputs`. It happens because libfuse headers throw an error +on macOS if the `FUSE_USE_VERSION` macro is undefined. Many projects do define +`FUSE_USE_VERSION`, but only inside C source files. This results in the above +error at configure time because the configure script would attempt to compile +sample FUSE programs without defining `FUSE_USE_VERSION`. + +There are two possible solutions for this problem in Nixpkgs: + +1. Pass `FUSE_USE_VERSION` to the configure script by adding + `CFLAGS=-DFUSE_USE_VERSION=25` in `configureFlags`. The actual value would + have to match the definition used in the upstream source code. +2. Remove `AC_CHECK_HEADERS` / `AC_CHECK_LIBS` for libfuse. + +However, a better solution might be to fix the build script upstream to use +`PKG_CHECK_MODULES` instead. This approach wouldn't suffer from the problem that +`AC_CHECK_HEADERS`/`AC_CHECK_LIBS` has at the price of introducing a dependency +on pkg-config. diff --git a/doc/packages/ibus.section.md b/doc/packages/ibus.section.md new file mode 100644 index 00000000000..817e55d56f1 --- /dev/null +++ b/doc/packages/ibus.section.md @@ -0,0 +1,40 @@ +# ibus-engines.typing-booster {#sec-ibus-typing-booster} + +This package is an ibus-based completion method to speed up typing. + +## Activating the engine {#sec-ibus-typing-booster-activate} + +IBus needs to be configured accordingly to activate `typing-booster`. The configuration depends on the desktop manager in use. For detailed instructions, please refer to the [upstream docs](https://mike-fabian.github.io/ibus-typing-booster/). + +On NixOS, you need to explicitly enable `ibus` with given engines before customizing your desktop to use `typing-booster`. This can be achieved using the `ibus` module: + +```nix +{ pkgs, ... }: { + i18n.inputMethod = { + enabled = "ibus"; + ibus.engines = with pkgs.ibus-engines; [ typing-booster ]; + }; +} +``` + +## Using custom hunspell dictionaries {#sec-ibus-typing-booster-customize-hunspell} + +The IBus engine is based on `hunspell` to support completion in many languages. By default, the dictionaries `de-de`, `en-us`, `fr-moderne` `es-es`, `it-it`, `sv-se` and `sv-fi` are in use. To add another dictionary, the package can be overridden like this: + +```nix +ibus-engines.typing-booster.override { langs = [ "de-at" "en-gb" ]; } +``` + +_Note: each language passed to `langs` must be an attribute name in `pkgs.hunspellDicts`._ + +## Built-in emoji picker {#sec-ibus-typing-booster-emoji-picker} + +The `ibus-engines.typing-booster` package contains a program named `emoji-picker`. To display all emojis correctly, a special font such as `noto-fonts-color-emoji` is needed: + +On NixOS, it can be installed using the following expression: + +```nix +{ pkgs, ... }: { + fonts.packages = with pkgs; [ noto-fonts-color-emoji ]; +} +``` diff --git a/doc/packages/index.md b/doc/packages/index.md new file mode 100644 index 00000000000..1f443570240 --- /dev/null +++ b/doc/packages/index.md @@ -0,0 +1,27 @@ +# Packages {#chap-packages} + +This chapter contains information about how to use and maintain the Nix expressions for a number of specific packages, such as the Linux kernel or X.org. + +```{=include=} sections +citrix.section.md +dlib.section.md +eclipse.section.md +elm.section.md +emacs.section.md +firefox.section.md +fish.section.md +fuse.section.md +ibus.section.md +kakoune.section.md +linux.section.md +locales.section.md +etc-files.section.md +nginx.section.md +opengl.section.md +shell-helpers.section.md +steam.section.md +cataclysm-dda.section.md +urxvt.section.md +weechat.section.md +xorg.section.md +``` diff --git a/doc/packages/kakoune.section.md b/doc/packages/kakoune.section.md new file mode 100644 index 00000000000..8e054777a75 --- /dev/null +++ b/doc/packages/kakoune.section.md @@ -0,0 +1,9 @@ +# Kakoune {#sec-kakoune} + +Kakoune can be built to autoload plugins: + +```nix +(kakoune.override { + plugins = with pkgs.kakounePlugins; [ parinfer-rust ]; +}) +``` diff --git a/doc/packages/linux.section.md b/doc/packages/linux.section.md new file mode 100644 index 00000000000..b64da85791a --- /dev/null +++ b/doc/packages/linux.section.md @@ -0,0 +1,41 @@ +# Linux kernel {#sec-linux-kernel} + +The Nix expressions to build the Linux kernel are in [`pkgs/os-specific/linux/kernel`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/os-specific/linux/kernel). + +The function that builds the kernel has an argument `kernelPatches` which should be a list of `{name, patch, extraConfig}` attribute sets, where `name` is the name of the patch (which is included in the kernel’s `meta.description` attribute), `patch` is the patch itself (possibly compressed), and `extraConfig` (optional) is a string specifying extra options to be concatenated to the kernel configuration file (`.config`). + +The kernel derivation exports an attribute `features` specifying whether optional functionality is or isn’t enabled. This is used in NixOS to implement kernel-specific behaviour. For instance, if the kernel has the `iwlwifi` feature (i.e., has built-in support for Intel wireless chipsets), then NixOS doesn’t have to build the external `iwlwifi` package: + +```nix +modulesTree = [kernel] + ++ pkgs.lib.optional (!kernel.features ? iwlwifi) kernelPackages.iwlwifi + ++ ...; +``` + +How to add a new (major) version of the Linux kernel to Nixpkgs: + +1. Copy the old Nix expression (e.g., `linux-2.6.21.nix`) to the new one (e.g., `linux-2.6.22.nix`) and update it. + +2. Add the new kernel to the `kernels` attribute set in `linux-kernels.nix` (e.g., create an attribute `kernel_2_6_22`). + +3. Now we’re going to update the kernel configuration. First unpack the kernel. Then for each supported platform (`i686`, `x86_64`, `uml`) do the following: + + 1. Make a copy from the old config (e.g., `config-2.6.21-i686-smp`) to the new one (e.g., `config-2.6.22-i686-smp`). + + 2. Copy the config file for this platform (e.g., `config-2.6.22-i686-smp`) to `.config` in the kernel source tree. + + 3. Run `make oldconfig ARCH={i386,x86_64,um}` and answer all questions. (For the uml configuration, also add `SHELL=bash`.) Make sure to keep the configuration consistent between platforms (i.e., don’t enable some feature on `i686` and disable it on `x86_64`). + + 4. If needed, you can also run `make menuconfig`: + + ```ShellSession + $ nix-env -f "" -iA ncurses + $ export NIX_CFLAGS_LINK=-lncurses + $ make menuconfig ARCH=arch + ``` + + 5. Copy `.config` over the new config file (e.g., `config-2.6.22-i686-smp`). + +4. Test building the kernel: `nix-build -A linuxKernel.kernels.kernel_2_6_22`. If it compiles, ship it! For extra credit, try booting NixOS with it. + +5. It may be that the new kernel requires updating the external kernel modules and kernel-dependent packages listed in the `linuxPackagesFor` function in `linux-kernels.nix` (such as the NVIDIA drivers, AUFS, etc.). If the updated packages aren’t backwards compatible with older kernels, you may need to keep the older versions around. diff --git a/doc/packages/locales.section.md b/doc/packages/locales.section.md new file mode 100644 index 00000000000..3a983f13a39 --- /dev/null +++ b/doc/packages/locales.section.md @@ -0,0 +1,5 @@ +# Locales {#locales} + +To allow simultaneous use of packages linked against different versions of `glibc` with different locale archive formats, Nixpkgs patches `glibc` to rely on `LOCALE_ARCHIVE` environment variable. + +On non-NixOS distributions, this variable is obviously not set. This can cause regressions in language support or even crashes in some Nixpkgs-provided programs. The simplest way to mitigate this problem is exporting the `LOCALE_ARCHIVE` variable pointing to `${glibcLocales}/lib/locale/locale-archive`. The drawback (and the reason this is not the default) is the relatively large (a hundred MiB) size of the full set of locales. It is possible to build a custom set of locales by overriding parameters `allLocales` and `locales` of the package. diff --git a/doc/packages/nginx.section.md b/doc/packages/nginx.section.md new file mode 100644 index 00000000000..0704b534e5f --- /dev/null +++ b/doc/packages/nginx.section.md @@ -0,0 +1,11 @@ +# Nginx {#sec-nginx} + +[Nginx](https://nginx.org) is a reverse proxy and lightweight webserver. + +## ETags on static files served from the Nix store {#sec-nginx-etag} + +HTTP has a couple of different mechanisms for caching to prevent clients from having to download the same content repeatedly if a resource has not changed since the last time it was requested. When nginx is used as a server for static files, it implements the caching mechanism based on the [`Last-Modified`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Last-Modified) response header automatically; unfortunately, it works by using filesystem timestamps to determine the value of the `Last-Modified` header. This doesn't give the desired behavior when the file is in the Nix store because all file timestamps are set to 0 (for reasons related to build reproducibility). + +Fortunately, HTTP supports an alternative (and more effective) caching mechanism: the [`ETag`](https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/ETag) response header. The value of the `ETag` header specifies some identifier for the particular content that the server is sending (e.g., a hash). When a client makes a second request for the same resource, it sends that value back in an `If-None-Match` header. If the ETag value is unchanged, then the server does not need to resend the content. + +As of NixOS 19.09, the nginx package in Nixpkgs is patched such that when nginx serves a file out of `/nix/store`, the hash in the store path is used as the `ETag` header in the HTTP response, thus providing proper caching functionality. This happens automatically; you do not need to do modify any configuration to get this behavior. diff --git a/doc/packages/opengl.section.md b/doc/packages/opengl.section.md new file mode 100644 index 00000000000..f4d282267a0 --- /dev/null +++ b/doc/packages/opengl.section.md @@ -0,0 +1,15 @@ +# OpenGL {#sec-opengl} + +OpenGL support varies depending on which hardware is used and which drivers are available and loaded. + +Broadly, we support both GL vendors: Mesa and NVIDIA. + +## NixOS Desktop {#nixos-desktop} + +The NixOS desktop or other non-headless configurations are the primary target for OpenGL libraries and applications. The current solution for discovering which drivers are available is based on [libglvnd](https://gitlab.freedesktop.org/glvnd/libglvnd). `libglvnd` performs "vendor-neutral dispatch", trying a variety of techniques to find the system's GL implementation. In practice, this will be either via standard GLX for X11 users or EGL for Wayland users, and supporting either NVIDIA or Mesa extensions. + +## Nix on GNU/Linux {#nix-on-gnulinux} + +If you are using a non-NixOS GNU/Linux/X11 desktop with free software video drivers, consider launching OpenGL-dependent programs from Nixpkgs with Nixpkgs versions of `libglvnd` and `mesa.drivers` in `LD_LIBRARY_PATH`. For Mesa drivers, the Linux kernel version doesn't have to match nixpkgs. + +For proprietary video drivers, you might have luck with also adding the corresponding video driver package. diff --git a/doc/packages/shell-helpers.section.md b/doc/packages/shell-helpers.section.md new file mode 100644 index 00000000000..e7c2b0abebf --- /dev/null +++ b/doc/packages/shell-helpers.section.md @@ -0,0 +1,12 @@ +# Interactive shell helpers {#sec-shell-helpers} + +Some packages provide the shell integration to be more useful. But unlike other systems, nix doesn't have a standard `share` directory location. This is why a bunch `PACKAGE-share` scripts are shipped that print the location of the corresponding shared folder. Current list of such packages is as following: + +- `fzf` : `fzf-share` + +E.g. `fzf` can then be used in the `.bashrc` like this: + +```bash +source "$(fzf-share)/completion.bash" +source "$(fzf-share)/key-bindings.bash" +``` diff --git a/doc/packages/steam.section.md b/doc/packages/steam.section.md new file mode 100644 index 00000000000..25728aa52ae --- /dev/null +++ b/doc/packages/steam.section.md @@ -0,0 +1,63 @@ +# Steam {#sec-steam} + +## Steam in Nix {#sec-steam-nix} + +Steam is distributed as a `.deb` file, for now only as an i686 package (the amd64 package only has documentation). When unpacked, it has a script called `steam` that in Ubuntu (their target distro) would go to `/usr/bin`. When run for the first time, this script copies some files to the user's home, which include another script that is the ultimate responsible for launching the steam binary, which is also in `$HOME`. + +Nix problems and constraints: + +- We don't have `/bin/bash` and many scripts point there. Same thing for `/usr/bin/python`. +- We don't have the dynamic loader in `/lib`. +- The `steam.sh` script in `$HOME` cannot be patched, as it is checked and rewritten by steam. +- The steam binary cannot be patched, it's also checked. + +The current approach to deploy Steam in NixOS is composing a FHS-compatible chroot environment, as documented [here](http://sandervanderburg.blogspot.nl/2013/09/composing-fhs-compatible-chroot.html). This allows us to have binaries in the expected paths without disrupting the system, and to avoid patching them to work in a non FHS environment. + +## How to play {#sec-steam-play} + +Use `programs.steam.enable = true;` if you want to add steam to `systemPackages` and also enable a few workarounds as well as Steam controller support or other Steam supported controllers such as the DualShock 4 or Nintendo Switch Pro Controller. + +## Troubleshooting {#sec-steam-troub} + +- **Steam fails to start. What do I do?** + + Try to run + + ```ShellSession + strace steam + ``` + + to see what is causing steam to fail. + +- **Using the FOSS Radeon or nouveau (nvidia) drivers** + + - The `newStdcpp` parameter was removed since NixOS 17.09 and should not be needed anymore. + - Steam ships statically linked with a version of `libcrypto` that conflicts with the one dynamically loaded by radeonsi_dri.so. If you get the error: + + ``` + steam.sh: line 713: 7842 Segmentation fault (core dumped) + ``` + + have a look at [this pull request](https://github.com/NixOS/nixpkgs/pull/20269). + +- **Java** + + 1. There is no java in steam chrootenv by default. If you get a message like: + + ``` + /home/foo/.local/share/Steam/SteamApps/common/towns/towns.sh: line 1: java: command not found + ``` + + you need to add: + + ```nix + steam.override { withJava = true; }; + ``` + +## steam-run {#sec-steam-run} + +The FHS-compatible chroot used for Steam can also be used to run other Linux games that expect a FHS environment. To use it, install the `steam-run` package and run the game with: + +``` +steam-run ./foo +``` diff --git a/doc/packages/urxvt.section.md b/doc/packages/urxvt.section.md new file mode 100644 index 00000000000..507feaa6fd8 --- /dev/null +++ b/doc/packages/urxvt.section.md @@ -0,0 +1,71 @@ +# Urxvt {#sec-urxvt} + +Urxvt, also known as rxvt-unicode, is a highly customizable terminal emulator. + +## Configuring urxvt {#sec-urxvt-conf} + +In `nixpkgs`, urxvt is provided by the package `rxvt-unicode`. It can be configured to include your choice of plugins, reducing its closure size from the default configuration which includes all available plugins. To make use of this functionality, use an overlay or directly install an expression that overrides its configuration, such as: + +```nix +rxvt-unicode.override { + configure = { availablePlugins, ... }: { + plugins = with availablePlugins; [ perls resize-font vtwheel ]; + }; +} +``` + +If the `configure` function returns an attrset without the `plugins` attribute, `availablePlugins` will be used automatically. + +In order to add plugins but also keep all default plugins installed, it is possible to use the following method: + +```nix +rxvt-unicode.override { + configure = { availablePlugins, ... }: { + plugins = (builtins.attrValues availablePlugins) ++ [ custom-plugin ]; + }; +} +``` + +To get a list of all the plugins available, open the Nix REPL and run + +```ShellSession +$ nix repl +:l +map (p: p.name) pkgs.rxvt-unicode.plugins +``` + +Alternatively, if your shell is bash or zsh and have completion enabled, simply type `nixpkgs.rxvt-unicode.plugins.`. + +In addition to `plugins` the options `extraDeps` and `perlDeps` can be used to install extra packages. `extraDeps` can be used, for example, to provide `xsel` (a clipboard manager) to the clipboard plugin, without installing it globally: + +```nix +rxvt-unicode.override { + configure = { availablePlugins, ... }: { + pluginsDeps = [ xsel ]; + }; +} +``` + +`perlDeps` is a handy way to provide Perl packages to your custom plugins (in `$HOME/.urxvt/ext`). For example, if you need `AnyEvent` you can do: + +```nix +rxvt-unicode.override { + configure = { availablePlugins, ... }: { + perlDeps = with perlPackages; [ AnyEvent ]; + }; +} +``` + +## Packaging urxvt plugins {#sec-urxvt-pkg} + +Urxvt plugins resides in `pkgs/applications/misc/rxvt-unicode-plugins`. To add a new plugin, create an expression in a subdirectory and add the package to the set in `pkgs/applications/misc/rxvt-unicode-plugins/default.nix`. + +A plugin can be any kind of derivation, the only requirement is that it should always install perl scripts in `$out/lib/urxvt/perl`. Look for existing plugins for examples. + +If the plugin is itself a Perl package that needs to be imported from other plugins or scripts, add the following passthrough: + +```nix +passthru.perlPackages = [ "self" ]; +``` + +This will make the urxvt wrapper pick up the dependency and set up the Perl path accordingly. diff --git a/doc/packages/weechat.section.md b/doc/packages/weechat.section.md new file mode 100644 index 00000000000..755b6e6ad1e --- /dev/null +++ b/doc/packages/weechat.section.md @@ -0,0 +1,85 @@ +# WeeChat {#sec-weechat} + +WeeChat can be configured to include your choice of plugins, reducing its closure size from the default configuration which includes all available plugins. To make use of this functionality, install an expression that overrides its configuration, such as: + +```nix +weechat.override {configure = {availablePlugins, ...}: { + plugins = with availablePlugins; [ python perl ]; + } +} +``` + +If the `configure` function returns an attrset without the `plugins` attribute, `availablePlugins` will be used automatically. + +The plugins currently available are `python`, `perl`, `ruby`, `guile`, `tcl` and `lua`. + +The Python and Perl plugins allows the addition of extra libraries. For instance, the `inotify.py` script in `weechat-scripts` requires D-Bus or libnotify, and the `fish.py` script requires `pycrypto`. To use these scripts, use the plugin's `withPackages` attribute: + +```nix +weechat.override { configure = {availablePlugins, ...}: { + plugins = with availablePlugins; [ + (python.withPackages (ps: with ps; [ pycrypto python-dbus ])) + ]; + }; +} +``` + +In order to also keep all default plugins installed, it is possible to use the following method: + +```nix +weechat.override { configure = { availablePlugins, ... }: { + plugins = builtins.attrValues (availablePlugins // { + python = availablePlugins.python.withPackages (ps: with ps; [ pycrypto python-dbus ]); + }); +}; } +``` + +WeeChat allows to set defaults on startup using the `--run-command`. The `configure` method can be used to pass commands to the program: + +```nix +weechat.override { + configure = { availablePlugins, ... }: { + init = '' + /set foo bar + /server add libera irc.libera.chat + ''; + }; +} +``` + +Further values can be added to the list of commands when running `weechat --run-command "your-commands"`. + +Additionally, it's possible to specify scripts to be loaded when starting `weechat`. These will be loaded before the commands from `init`: + +```nix +weechat.override { + configure = { availablePlugins, ... }: { + scripts = with pkgs.weechatScripts; [ + weechat-xmpp weechat-matrix-bridge wee-slack + ]; + init = '' + /set plugins.var.python.jabber.key "val" + '': + }; +} +``` + +In `nixpkgs` there's a subpackage which contains derivations for WeeChat scripts. Such derivations expect a `passthru.scripts` attribute, which contains a list of all scripts inside the store path. Furthermore, all scripts have to live in `$out/share`. An exemplary derivation looks like this: + +```nix +{ stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "exemplary-weechat-script"; + src = fetchurl { + url = "https://scripts.tld/your-scripts.tar.gz"; + hash = "..."; + }; + passthru.scripts = [ "foo.py" "bar.lua" ]; + installPhase = '' + mkdir $out/share + cp foo.py $out/share + cp bar.lua $out/share + ''; +} +``` diff --git a/doc/packages/xorg.section.md b/doc/packages/xorg.section.md new file mode 100644 index 00000000000..ae885f92346 --- /dev/null +++ b/doc/packages/xorg.section.md @@ -0,0 +1,34 @@ +# X.org {#sec-xorg} + +The Nix expressions for the X.org packages reside in `pkgs/servers/x11/xorg/default.nix`. This file is automatically generated from lists of tarballs in an X.org release. As such it should not be modified directly; rather, you should modify the lists, the generator script or the file `pkgs/servers/x11/xorg/overrides.nix`, in which you can override or add to the derivations produced by the generator. + +## Katamari Tarballs {#katamari-tarballs} + +X.org upstream releases used to include [katamari](https://en.wiktionary.org/wiki/%E3%81%8B%E3%81%9F%E3%81%BE%E3%82%8A) releases, which included a holistic recommended version for each tarball, up until 7.7. To create a list of tarballs in a katamari release: + +```ShellSession +export release="X11R7.7" +export url="mirror://xorg/$release/src/everything/" +cat $(PRINT_PATH=1 nix-prefetch-url $url | tail -n 1) \ + | perl -e 'while (<>) { if (/(href|HREF)="([^"]*.bz2)"/) { print "$ENV{'url'}$2\n"; }; }' \ + | sort > "tarballs-$release.list" +``` + +## Individual Tarballs {#individual-tarballs} + +The upstream release process for [X11R7.8](https://x.org/wiki/Releases/7.8/) does not include a planned katamari. Instead, each component of X.org is released as its own tarball. We maintain `pkgs/servers/x11/xorg/tarballs.list` as a list of tarballs for each individual package. This list includes X.org core libraries and protocol descriptions, extra newer X11 interface libraries, like `xorg.libxcb`, and classic utilities which are largely unused but still available if needed, like `xorg.imake`. + +## Generating Nix Expressions {#generating-nix-expressions} + +The generator is invoked as follows: + +```ShellSession +cd pkgs/servers/x11/xorg + Date: Tue, 31 Oct 2023 03:50:12 +0000 Subject: doc: move section darwin-builder under chapter packages --- doc/builders/special.md | 1 - doc/builders/special/darwin-builder.section.md | 173 ------------------------- doc/packages/darwin-builder.section.md | 173 +++++++++++++++++++++++++ doc/packages/index.md | 1 + 4 files changed, 174 insertions(+), 174 deletions(-) delete mode 100644 doc/builders/special/darwin-builder.section.md create mode 100644 doc/packages/darwin-builder.section.md (limited to 'doc') diff --git a/doc/builders/special.md b/doc/builders/special.md index 6d07fa87f3f..aa6d9e4d98d 100644 --- a/doc/builders/special.md +++ b/doc/builders/special.md @@ -6,6 +6,5 @@ This chapter describes several special builders. special/fhs-environments.section.md special/makesetuphook.section.md special/mkshell.section.md -special/darwin-builder.section.md special/vm-tools.section.md ``` diff --git a/doc/builders/special/darwin-builder.section.md b/doc/builders/special/darwin-builder.section.md deleted file mode 100644 index e37fabe01a3..00000000000 --- a/doc/builders/special/darwin-builder.section.md +++ /dev/null @@ -1,173 +0,0 @@ -# darwin.linux-builder {#sec-darwin-builder} - -`darwin.linux-builder` provides a way to bootstrap a Linux builder on a macOS machine. - -This requires macOS version 12.4 or later. - -The builder runs on host port 31022 by default. -You can change it by overriding `virtualisation.darwin-builder.hostPort`. -See the [example](#sec-darwin-builder-example-flake). - -You will also need to be a trusted user for your Nix installation. In other -words, your `/etc/nix/nix.conf` should have something like: - -``` -extra-trusted-users = -``` - -To launch the builder, run the following flake: - -```ShellSession -$ nix run nixpkgs#darwin.linux-builder -``` - -That will prompt you to enter your `sudo` password: - -``` -+ sudo --reset-timestamp /nix/store/…-install-credentials.sh ./keys -Password: -``` - -… so that it can install a private key used to `ssh` into the build server. -After that the script will launch the virtual machine and automatically log you -in as the `builder` user: - -``` -<<< Welcome to NixOS 22.11.20220901.1bd8d11 (aarch64) - ttyAMA0 >>> - -Run 'nixos-help' for the NixOS manual. - -nixos login: builder (automatic login) - - -[builder@nixos:~]$ -``` - -> Note: When you need to stop the VM, run `shutdown now` as the `builder` user. - -To delegate builds to the remote builder, add the following options to your -`nix.conf` file: - -``` -# - Replace ${ARCH} with either aarch64 or x86_64 to match your host machine -# - Replace ${MAX_JOBS} with the maximum number of builds (pick 4 if you're not sure) -builders = ssh-ng://builder@linux-builder ${ARCH}-linux /etc/nix/builder_ed25519 ${MAX_JOBS} - - - c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUpCV2N4Yi9CbGFxdDFhdU90RStGOFFVV3JVb3RpQzVxQkorVXVFV2RWQ2Igcm9vdEBuaXhvcwo= - -# Not strictly necessary, but this will reduce your disk utilization -builders-use-substitutes = true -``` - -To allow Nix to connect to a builder not running on port 22, you will also need to create a new file at `/etc/ssh/ssh_config.d/100-linux-builder.conf`: - -``` -Host linux-builder - Hostname localhost - HostKeyAlias linux-builder - Port 31022 -``` - -… and then restart your Nix daemon to apply the change: - -```ShellSession -$ sudo launchctl kickstart -k system/org.nixos.nix-daemon -``` - -## Example flake usage {#sec-darwin-builder-example-flake} - -``` -{ - inputs = { - nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-22.11-darwin"; - darwin.url = "github:lnl7/nix-darwin/master"; - darwin.inputs.nixpkgs.follows = "nixpkgs"; - }; - - outputs = { self, darwin, nixpkgs, ... }@inputs: - let - - inherit (darwin.lib) darwinSystem; - system = "aarch64-darwin"; - pkgs = nixpkgs.legacyPackages."${system}"; - linuxSystem = builtins.replaceStrings [ "darwin" ] [ "linux" ] system; - - darwin-builder = nixpkgs.lib.nixosSystem { - system = linuxSystem; - modules = [ - "${nixpkgs}/nixos/modules/profiles/macos-builder.nix" - { virtualisation.host.pkgs = pkgs; } - ]; - }; - in { - - darwinConfigurations = { - machine1 = darwinSystem { - inherit system; - modules = [ - { - nix.distributedBuilds = true; - nix.buildMachines = [{ - hostName = "ssh://builder@localhost"; - system = linuxSystem; - maxJobs = 4; - supportedFeatures = [ "kvm" "benchmark" "big-parallel" ]; - }]; - - launchd.daemons.darwin-builder = { - command = "${darwin-builder.config.system.build.macos-builder-installer}/bin/create-builder"; - serviceConfig = { - KeepAlive = true; - RunAtLoad = true; - StandardOutPath = "/var/log/darwin-builder.log"; - StandardErrorPath = "/var/log/darwin-builder.log"; - }; - }; - } - ]; - }; - }; - - }; -} -``` - -## Reconfiguring the builder {#sec-darwin-builder-reconfiguring} - -Initially you should not change the builder configuration else you will not be -able to use the binary cache. However, after you have the builder running locally -you may use it to build a modified builder with additional storage or memory. - -To do this, you just need to set the `virtualisation.darwin-builder.*` parameters as -in the example below and rebuild. - -``` - darwin-builder = nixpkgs.lib.nixosSystem { - system = linuxSystem; - modules = [ - "${nixpkgs}/nixos/modules/profiles/macos-builder.nix" - { - virtualisation.host.pkgs = pkgs; - virtualisation.darwin-builder.diskSize = 5120; - virtualisation.darwin-builder.memorySize = 1024; - virtualisation.darwin-builder.hostPort = 33022; - virtualisation.darwin-builder.workingDirectory = "/var/lib/darwin-builder"; - } - ]; -``` - -You may make any other changes to your VM in this attribute set. For example, -you could enable Docker or X11 forwarding to your Darwin host. - -## Troubleshooting the generated configuration {#sec-darwin-builder-troubleshoot} - -The `linux-builder` package exposes the attributes `nixosConfig` and `nixosOptions` that allow you to inspect the generated NixOS configuration in the `nix repl`. For example: - -``` -$ nix repl --file ~/src/nixpkgs --argstr system aarch64-darwin - -nix-repl> darwin.linux-builder.nixosConfig.nix.package -«derivation /nix/store/...-nix-2.17.0.drv» - -nix-repl> :p darwin.linux-builder.nixosOptions.virtualisation.memorySize.definitionsWithLocations -[ { file = "/home/user/src/nixpkgs/nixos/modules/profiles/macos-builder.nix"; value = 3072; } ] - -``` diff --git a/doc/packages/darwin-builder.section.md b/doc/packages/darwin-builder.section.md new file mode 100644 index 00000000000..e37fabe01a3 --- /dev/null +++ b/doc/packages/darwin-builder.section.md @@ -0,0 +1,173 @@ +# darwin.linux-builder {#sec-darwin-builder} + +`darwin.linux-builder` provides a way to bootstrap a Linux builder on a macOS machine. + +This requires macOS version 12.4 or later. + +The builder runs on host port 31022 by default. +You can change it by overriding `virtualisation.darwin-builder.hostPort`. +See the [example](#sec-darwin-builder-example-flake). + +You will also need to be a trusted user for your Nix installation. In other +words, your `/etc/nix/nix.conf` should have something like: + +``` +extra-trusted-users = +``` + +To launch the builder, run the following flake: + +```ShellSession +$ nix run nixpkgs#darwin.linux-builder +``` + +That will prompt you to enter your `sudo` password: + +``` ++ sudo --reset-timestamp /nix/store/…-install-credentials.sh ./keys +Password: +``` + +… so that it can install a private key used to `ssh` into the build server. +After that the script will launch the virtual machine and automatically log you +in as the `builder` user: + +``` +<<< Welcome to NixOS 22.11.20220901.1bd8d11 (aarch64) - ttyAMA0 >>> + +Run 'nixos-help' for the NixOS manual. + +nixos login: builder (automatic login) + + +[builder@nixos:~]$ +``` + +> Note: When you need to stop the VM, run `shutdown now` as the `builder` user. + +To delegate builds to the remote builder, add the following options to your +`nix.conf` file: + +``` +# - Replace ${ARCH} with either aarch64 or x86_64 to match your host machine +# - Replace ${MAX_JOBS} with the maximum number of builds (pick 4 if you're not sure) +builders = ssh-ng://builder@linux-builder ${ARCH}-linux /etc/nix/builder_ed25519 ${MAX_JOBS} - - - c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUpCV2N4Yi9CbGFxdDFhdU90RStGOFFVV3JVb3RpQzVxQkorVXVFV2RWQ2Igcm9vdEBuaXhvcwo= + +# Not strictly necessary, but this will reduce your disk utilization +builders-use-substitutes = true +``` + +To allow Nix to connect to a builder not running on port 22, you will also need to create a new file at `/etc/ssh/ssh_config.d/100-linux-builder.conf`: + +``` +Host linux-builder + Hostname localhost + HostKeyAlias linux-builder + Port 31022 +``` + +… and then restart your Nix daemon to apply the change: + +```ShellSession +$ sudo launchctl kickstart -k system/org.nixos.nix-daemon +``` + +## Example flake usage {#sec-darwin-builder-example-flake} + +``` +{ + inputs = { + nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-22.11-darwin"; + darwin.url = "github:lnl7/nix-darwin/master"; + darwin.inputs.nixpkgs.follows = "nixpkgs"; + }; + + outputs = { self, darwin, nixpkgs, ... }@inputs: + let + + inherit (darwin.lib) darwinSystem; + system = "aarch64-darwin"; + pkgs = nixpkgs.legacyPackages."${system}"; + linuxSystem = builtins.replaceStrings [ "darwin" ] [ "linux" ] system; + + darwin-builder = nixpkgs.lib.nixosSystem { + system = linuxSystem; + modules = [ + "${nixpkgs}/nixos/modules/profiles/macos-builder.nix" + { virtualisation.host.pkgs = pkgs; } + ]; + }; + in { + + darwinConfigurations = { + machine1 = darwinSystem { + inherit system; + modules = [ + { + nix.distributedBuilds = true; + nix.buildMachines = [{ + hostName = "ssh://builder@localhost"; + system = linuxSystem; + maxJobs = 4; + supportedFeatures = [ "kvm" "benchmark" "big-parallel" ]; + }]; + + launchd.daemons.darwin-builder = { + command = "${darwin-builder.config.system.build.macos-builder-installer}/bin/create-builder"; + serviceConfig = { + KeepAlive = true; + RunAtLoad = true; + StandardOutPath = "/var/log/darwin-builder.log"; + StandardErrorPath = "/var/log/darwin-builder.log"; + }; + }; + } + ]; + }; + }; + + }; +} +``` + +## Reconfiguring the builder {#sec-darwin-builder-reconfiguring} + +Initially you should not change the builder configuration else you will not be +able to use the binary cache. However, after you have the builder running locally +you may use it to build a modified builder with additional storage or memory. + +To do this, you just need to set the `virtualisation.darwin-builder.*` parameters as +in the example below and rebuild. + +``` + darwin-builder = nixpkgs.lib.nixosSystem { + system = linuxSystem; + modules = [ + "${nixpkgs}/nixos/modules/profiles/macos-builder.nix" + { + virtualisation.host.pkgs = pkgs; + virtualisation.darwin-builder.diskSize = 5120; + virtualisation.darwin-builder.memorySize = 1024; + virtualisation.darwin-builder.hostPort = 33022; + virtualisation.darwin-builder.workingDirectory = "/var/lib/darwin-builder"; + } + ]; +``` + +You may make any other changes to your VM in this attribute set. For example, +you could enable Docker or X11 forwarding to your Darwin host. + +## Troubleshooting the generated configuration {#sec-darwin-builder-troubleshoot} + +The `linux-builder` package exposes the attributes `nixosConfig` and `nixosOptions` that allow you to inspect the generated NixOS configuration in the `nix repl`. For example: + +``` +$ nix repl --file ~/src/nixpkgs --argstr system aarch64-darwin + +nix-repl> darwin.linux-builder.nixosConfig.nix.package +«derivation /nix/store/...-nix-2.17.0.drv» + +nix-repl> :p darwin.linux-builder.nixosOptions.virtualisation.memorySize.definitionsWithLocations +[ { file = "/home/user/src/nixpkgs/nixos/modules/profiles/macos-builder.nix"; value = 3072; } ] + +``` diff --git a/doc/packages/index.md b/doc/packages/index.md index 1f443570240..1f45018ffc4 100644 --- a/doc/packages/index.md +++ b/doc/packages/index.md @@ -4,6 +4,7 @@ This chapter contains information about how to use and maintain the Nix expressi ```{=include=} sections citrix.section.md +darwin-builder.section.md dlib.section.md eclipse.section.md elm.section.md -- cgit 1.4.1 From 70f21a213651a0f4149bea10721fea04485c8a80 Mon Sep 17 00:00:00 2001 From: Yueh-Shun Li Date: Tue, 31 Oct 2023 04:02:25 +0000 Subject: doc: darwin.linux-builder: replace "builder" with "remote builder" --- doc/packages/darwin-builder.section.md | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'doc') diff --git a/doc/packages/darwin-builder.section.md b/doc/packages/darwin-builder.section.md index e37fabe01a3..89c2445667d 100644 --- a/doc/packages/darwin-builder.section.md +++ b/doc/packages/darwin-builder.section.md @@ -1,10 +1,10 @@ # darwin.linux-builder {#sec-darwin-builder} -`darwin.linux-builder` provides a way to bootstrap a Linux builder on a macOS machine. +`darwin.linux-builder` provides a way to bootstrap a Linux remote builder on a macOS machine. This requires macOS version 12.4 or later. -The builder runs on host port 31022 by default. +The remote builder runs on host port 31022 by default. You can change it by overriding `virtualisation.darwin-builder.hostPort`. See the [example](#sec-darwin-builder-example-flake). @@ -15,7 +15,7 @@ words, your `/etc/nix/nix.conf` should have something like: extra-trusted-users = ``` -To launch the builder, run the following flake: +To launch the remote builder, run the following flake: ```ShellSession $ nix run nixpkgs#darwin.linux-builder @@ -57,7 +57,7 @@ builders = ssh-ng://builder@linux-builder ${ARCH}-linux /etc/nix/builder_ed25519 builders-use-substitutes = true ``` -To allow Nix to connect to a builder not running on port 22, you will also need to create a new file at `/etc/ssh/ssh_config.d/100-linux-builder.conf`: +To allow Nix to connect to a remote builder not running on port 22, you will also need to create a new file at `/etc/ssh/ssh_config.d/100-linux-builder.conf`: ``` Host linux-builder @@ -130,11 +130,11 @@ $ sudo launchctl kickstart -k system/org.nixos.nix-daemon } ``` -## Reconfiguring the builder {#sec-darwin-builder-reconfiguring} +## Reconfiguring the remote builder {#sec-darwin-builder-reconfiguring} -Initially you should not change the builder configuration else you will not be -able to use the binary cache. However, after you have the builder running locally -you may use it to build a modified builder with additional storage or memory. +Initially you should not change the remote builder configuration else you will not be +able to use the binary cache. However, after you have the remote builder running locally +you may use it to build a modified remote builder with additional storage or memory. To do this, you just need to set the `virtualisation.darwin-builder.*` parameters as in the example below and rebuild. -- cgit 1.4.1 From 9963ad5c5fbbe55fb310e9477cab2fa685afaac2 Mon Sep 17 00:00:00 2001 From: Yueh-Shun Li Date: Sat, 3 Jun 2023 19:05:54 +0000 Subject: doc: builders -> build helpers to reduce ambigualty --- .github/CODEOWNERS | 4 +- doc/build-helpers.md | 12 + doc/build-helpers/fetchers.chapter.md | 283 +++++++++++ doc/build-helpers/images.md | 13 + doc/build-helpers/images/appimagetools.section.md | 48 ++ doc/build-helpers/images/binarycache.section.md | 49 ++ doc/build-helpers/images/dockertools.section.md | 539 +++++++++++++++++++++ doc/build-helpers/images/makediskimage.section.md | 108 +++++ doc/build-helpers/images/ocitools.section.md | 37 ++ .../images/portableservice.section.md | 81 ++++ doc/build-helpers/images/snaptools.section.md | 71 +++ doc/build-helpers/special.md | 10 + .../special/fhs-environments.section.md | 56 +++ doc/build-helpers/special/makesetuphook.section.md | 37 ++ doc/build-helpers/special/mkshell.section.md | 37 ++ doc/build-helpers/special/vm-tools.section.md | 148 ++++++ doc/build-helpers/testers.chapter.md | 245 ++++++++++ doc/build-helpers/trivial-build-helpers.chapter.md | 240 +++++++++ doc/builders.md | 12 - doc/builders/fetchers.chapter.md | 283 ----------- doc/builders/images.md | 13 - doc/builders/images/appimagetools.section.md | 48 -- doc/builders/images/binarycache.section.md | 49 -- doc/builders/images/dockertools.section.md | 539 --------------------- doc/builders/images/makediskimage.section.md | 108 ----- doc/builders/images/ocitools.section.md | 37 -- doc/builders/images/portableservice.section.md | 81 ---- doc/builders/images/snaptools.section.md | 71 --- doc/builders/special.md | 10 - doc/builders/special/fhs-environments.section.md | 56 --- doc/builders/special/makesetuphook.section.md | 37 -- doc/builders/special/mkshell.section.md | 37 -- doc/builders/special/vm-tools.section.md | 148 ------ doc/builders/testers.chapter.md | 245 ---------- doc/builders/trivial-builders.chapter.md | 240 --------- doc/manual.md.in | 2 +- 36 files changed, 2017 insertions(+), 2017 deletions(-) create mode 100644 doc/build-helpers.md create mode 100644 doc/build-helpers/fetchers.chapter.md create mode 100644 doc/build-helpers/images.md create mode 100644 doc/build-helpers/images/appimagetools.section.md create mode 100644 doc/build-helpers/images/binarycache.section.md create mode 100644 doc/build-helpers/images/dockertools.section.md create mode 100644 doc/build-helpers/images/makediskimage.section.md create mode 100644 doc/build-helpers/images/ocitools.section.md create mode 100644 doc/build-helpers/images/portableservice.section.md create mode 100644 doc/build-helpers/images/snaptools.section.md create mode 100644 doc/build-helpers/special.md create mode 100644 doc/build-helpers/special/fhs-environments.section.md create mode 100644 doc/build-helpers/special/makesetuphook.section.md create mode 100644 doc/build-helpers/special/mkshell.section.md create mode 100644 doc/build-helpers/special/vm-tools.section.md create mode 100644 doc/build-helpers/testers.chapter.md create mode 100644 doc/build-helpers/trivial-build-helpers.chapter.md delete mode 100644 doc/builders.md delete mode 100644 doc/builders/fetchers.chapter.md delete mode 100644 doc/builders/images.md delete mode 100644 doc/builders/images/appimagetools.section.md delete mode 100644 doc/builders/images/binarycache.section.md delete mode 100644 doc/builders/images/dockertools.section.md delete mode 100644 doc/builders/images/makediskimage.section.md delete mode 100644 doc/builders/images/ocitools.section.md delete mode 100644 doc/builders/images/portableservice.section.md delete mode 100644 doc/builders/images/snaptools.section.md delete mode 100644 doc/builders/special.md delete mode 100644 doc/builders/special/fhs-environments.section.md delete mode 100644 doc/builders/special/makesetuphook.section.md delete mode 100644 doc/builders/special/mkshell.section.md delete mode 100644 doc/builders/special/vm-tools.section.md delete mode 100644 doc/builders/testers.chapter.md delete mode 100644 doc/builders/trivial-builders.chapter.md (limited to 'doc') diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index dcec6535563..59348b7b27a 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -61,7 +61,7 @@ /pkgs/build-support/writers @lassulus @Profpatsch # Nixpkgs make-disk-image -/doc/builders/images/makediskimage.section.md @raitobezarius +/doc/build-helpers/images/makediskimage.section.md @raitobezarius /nixos/lib/make-disk-image.nix @raitobezarius # Nixpkgs documentation @@ -272,7 +272,7 @@ pkgs/development/python-modules/buildcatrust/ @ajs124 @lukegb @mweinelt # Docker tools /pkgs/build-support/docker @roberth /nixos/tests/docker-tools* @roberth -/doc/builders/images/dockertools.section.md @roberth +/doc/build-helpers/images/dockertools.section.md @roberth # Blockchains /pkgs/applications/blockchains @mmahut @RaghavSood diff --git a/doc/build-helpers.md b/doc/build-helpers.md new file mode 100644 index 00000000000..40ce7173a22 --- /dev/null +++ b/doc/build-helpers.md @@ -0,0 +1,12 @@ +# Build helpers {#part-builders} + +```{=include=} chapters +build-helpers/fetchers.chapter.md +build-helpers/trivial-build-helpers.chapter.md +build-helpers/testers.chapter.md +build-helpers/special.md +build-helpers/images.md +hooks/index.md +languages-frameworks/index.md +packages/index.md +``` diff --git a/doc/build-helpers/fetchers.chapter.md b/doc/build-helpers/fetchers.chapter.md new file mode 100644 index 00000000000..7bd1bbd6de0 --- /dev/null +++ b/doc/build-helpers/fetchers.chapter.md @@ -0,0 +1,283 @@ +# Fetchers {#chap-pkgs-fetchers} + +Building software with Nix often requires downloading source code and other files from the internet. +To this end, Nixpkgs provides *fetchers*: functions to obtain remote sources via various protocols and services. + +Nixpkgs fetchers differ from built-in fetchers such as [`builtins.fetchTarball`](https://nixos.org/manual/nix/stable/language/builtins.html#builtins-fetchTarball): +- A built-in fetcher will download and cache files at evaluation time and produce a [store path](https://nixos.org/manual/nix/stable/glossary#gloss-store-path). + A Nixpkgs fetcher will create a ([fixed-output](https://nixos.org/manual/nix/stable/glossary#gloss-fixed-output-derivation)) [derivation](https://nixos.org/manual/nix/stable/language/derivations), and files are downloaded at build time. +- Built-in fetchers will invalidate their cache after [`tarball-ttl`](https://nixos.org/manual/nix/stable/command-ref/conf-file#conf-tarball-ttl) expires, and will require network activity to check if the cache entry is up to date. + Nixpkgs fetchers only re-download if the specified hash changes or the store object is not otherwise available. +- Built-in fetchers do not use [substituters](https://nixos.org/manual/nix/stable/command-ref/conf-file#conf-substituters). + Derivations produced by Nixpkgs fetchers will use any configured binary cache transparently. + +This significantly reduces the time needed to evaluate the entirety of Nixpkgs, and allows [Hydra](https://nixos.org/hydra) to retain and re-distribute sources used by Nixpkgs in the [public binary cache](https://cache.nixos.org). +For these reasons, built-in fetchers are not allowed in Nixpkgs source code. + +The following table shows an overview of the differences: + +| Fetchers | Download | Output | Cache | Re-download when | +|-|-|-|-|-| +| `builtins.fetch*` | evaluation time | store path | `/nix/store`, `~/.cache/nix` | `tarball-ttl` expires, cache miss in `~/.cache/nix`, output store object not in local store | +| `pkgs.fetch*` | build time | derivation | `/nix/store`, substituters | output store object not available | + +## Caveats {#chap-pkgs-fetchers-caveats} + +The fact that the hash belongs to the Nix derivation output and not the file itself can lead to confusion. +For example, consider the following fetcher: + +```nix +fetchurl { + url = "http://www.example.org/hello-1.0.tar.gz"; + hash = "sha256-lTeyxzJNQeMdu1IVdovNMtgn77jRIhSybLdMbTkf2Ww="; +}; +``` + +A common mistake is to update a fetcher’s URL, or a version parameter, without updating the hash. + +```nix +fetchurl { + url = "http://www.example.org/hello-1.1.tar.gz"; + hash = "sha256-lTeyxzJNQeMdu1IVdovNMtgn77jRIhSybLdMbTkf2Ww="; +}; +``` + +**This will reuse the old contents**. +Remember to invalidate the hash argument, in this case by setting the `hash` attribute to an empty string. + +```nix +fetchurl { + url = "http://www.example.org/hello-1.1.tar.gz"; + hash = ""; +}; +``` + +Use the resulting error message to determine the correct hash. + +``` +error: hash mismatch in fixed-output derivation '/path/to/my.drv': + specified: sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= + got: sha256-lTeyxzJNQeMdu1IVdovNMtgn77jRIhSybLdMbTkf2Ww= +``` + +A similar problem arises while testing changes to a fetcher's implementation. If the output of the derivation already exists in the Nix store, test failures can go undetected. The [`invalidateFetcherByDrvHash`](#tester-invalidateFetcherByDrvHash) function helps prevent reusing cached derivations. + +## `fetchurl` and `fetchzip` {#fetchurl} + +Two basic fetchers are `fetchurl` and `fetchzip`. Both of these have two required arguments, a URL and a hash. The hash is typically `hash`, although many more hash algorithms are supported. Nixpkgs contributors are currently recommended to use `hash`. This hash will be used by Nix to identify your source. A typical usage of `fetchurl` is provided below. + +```nix +{ stdenv, fetchurl }: + +stdenv.mkDerivation { + name = "hello"; + src = fetchurl { + url = "http://www.example.org/hello.tar.gz"; + hash = "sha256-BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB="; + }; +} +``` + +The main difference between `fetchurl` and `fetchzip` is in how they store the contents. `fetchurl` will store the unaltered contents of the URL within the Nix store. `fetchzip` on the other hand, will decompress the archive for you, making files and directories directly accessible in the future. `fetchzip` can only be used with archives. Despite the name, `fetchzip` is not limited to .zip files and can also be used with any tarball. + +## `fetchpatch` {#fetchpatch} + +`fetchpatch` works very similarly to `fetchurl` with the same arguments expected. It expects patch files as a source and performs normalization on them before computing the checksum. For example, it will remove comments or other unstable parts that are sometimes added by version control systems and can change over time. + +- `relative`: Similar to using `git-diff`'s `--relative` flag, only keep changes inside the specified directory, making paths relative to it. +- `stripLen`: Remove the first `stripLen` components of pathnames in the patch. +- `decode`: Pipe the downloaded data through this command before processing it as a patch. +- `extraPrefix`: Prefix pathnames by this string. +- `excludes`: Exclude files matching these patterns (applies after the above arguments). +- `includes`: Include only files matching these patterns (applies after the above arguments). +- `revert`: Revert the patch. + +Note that because the checksum is computed after applying these effects, using or modifying these arguments will have no effect unless the `hash` argument is changed as well. + + +Most other fetchers return a directory rather than a single file. + + +## `fetchDebianPatch` {#fetchdebianpatch} + +A wrapper around `fetchpatch`, which takes: +- `patch` and `hash`: the patch's filename, + and its hash after normalization by `fetchpatch` ; +- `pname`: the Debian source package's name ; +- `version`: the upstream version number ; +- `debianRevision`: the [Debian revision number] if applicable ; +- the `area` of the Debian archive: `main` (default), `contrib`, or `non-free`. + +Here is an example of `fetchDebianPatch` in action: + +```nix +{ lib +, fetchDebianPatch +, buildPythonPackage +}: + +buildPythonPackage rec { + pname = "pysimplesoap"; + version = "1.16.2"; + src = ...; + + patches = [ + (fetchDebianPatch { + inherit pname version; + debianRevision = "5"; + name = "Add-quotes-to-SOAPAction-header-in-SoapClient.patch"; + hash = "sha256-xA8Wnrpr31H8wy3zHSNfezFNjUJt1HbSXn3qUMzeKc0="; + }) + ]; + + ... +} +``` + +Patches are fetched from `sources.debian.org`, and so must come from a +package version that was uploaded to the Debian archive. Packages may +be removed from there once that specific version isn't in any suite +anymore (stable, testing, unstable, etc.), so maintainers should use +`copy-tarballs.pl` to archive the patch if it needs to be available +longer-term. + +[Debian revision number]: https://www.debian.org/doc/debian-policy/ch-controlfields.html#version + + +## `fetchsvn` {#fetchsvn} + +Used with Subversion. Expects `url` to a Subversion directory, `rev`, and `hash`. + +## `fetchgit` {#fetchgit} + +Used with Git. Expects `url` to a Git repo, `rev`, and `hash`. `rev` in this case can be full the git commit id (SHA1 hash) or a tag name like `refs/tags/v1.0`. + +Additionally, the following optional arguments can be given: `fetchSubmodules = true` makes `fetchgit` also fetch the submodules of a repository. If `deepClone` is set to true, the entire repository is cloned as opposing to just creating a shallow clone. `deepClone = true` also implies `leaveDotGit = true` which means that the `.git` directory of the clone won't be removed after checkout. + +If only parts of the repository are needed, `sparseCheckout` can be used. This will prevent git from fetching unnecessary blobs from server, see [git sparse-checkout](https://git-scm.com/docs/git-sparse-checkout) for more information: + +```nix +{ stdenv, fetchgit }: + +stdenv.mkDerivation { + name = "hello"; + src = fetchgit { + url = "https://..."; + sparseCheckout = [ + "directory/to/be/included" + "another/directory" + ]; + hash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; + }; +} +``` + +## `fetchfossil` {#fetchfossil} + +Used with Fossil. Expects `url` to a Fossil archive, `rev`, and `hash`. + +## `fetchcvs` {#fetchcvs} + +Used with CVS. Expects `cvsRoot`, `tag`, and `hash`. + +## `fetchhg` {#fetchhg} + +Used with Mercurial. Expects `url`, `rev`, and `hash`. + +A number of fetcher functions wrap part of `fetchurl` and `fetchzip`. They are mainly convenience functions intended for commonly used destinations of source code in Nixpkgs. These wrapper fetchers are listed below. + +## `fetchFromGitea` {#fetchfromgitea} + +`fetchFromGitea` expects five arguments. `domain` is the gitea server name. `owner` is a string corresponding to the Gitea user or organization that controls this repository. `repo` corresponds to the name of the software repository. These are located at the top of every Gitea HTML page as `owner`/`repo`. `rev` corresponds to the Git commit hash or tag (e.g `v1.0`) that will be downloaded from Git. Finally, `hash` corresponds to the hash of the extracted directory. Again, other hash algorithms are also available but `hash` is currently preferred. + +## `fetchFromGitHub` {#fetchfromgithub} + +`fetchFromGitHub` expects four arguments. `owner` is a string corresponding to the GitHub user or organization that controls this repository. `repo` corresponds to the name of the software repository. These are located at the top of every GitHub HTML page as `owner`/`repo`. `rev` corresponds to the Git commit hash or tag (e.g `v1.0`) that will be downloaded from Git. Finally, `hash` corresponds to the hash of the extracted directory. Again, other hash algorithms are also available, but `hash` is currently preferred. + +To use a different GitHub instance, use `githubBase` (defaults to `"github.com"`). + +`fetchFromGitHub` uses `fetchzip` to download the source archive generated by GitHub for the specified revision. If `leaveDotGit`, `deepClone` or `fetchSubmodules` are set to `true`, `fetchFromGitHub` will use `fetchgit` instead. Refer to its section for documentation of these options. + +## `fetchFromGitLab` {#fetchfromgitlab} + +This is used with GitLab repositories. It behaves similarly to `fetchFromGitHub`, and expects `owner`, `repo`, `rev`, and `hash`. + +To use a specific GitLab instance, use `domain` (defaults to `"gitlab.com"`). + + +## `fetchFromGitiles` {#fetchfromgitiles} + +This is used with Gitiles repositories. The arguments expected are similar to `fetchgit`. + +## `fetchFromBitbucket` {#fetchfrombitbucket} + +This is used with BitBucket repositories. The arguments expected are very similar to `fetchFromGitHub` above. + +## `fetchFromSavannah` {#fetchfromsavannah} + +This is used with Savannah repositories. The arguments expected are very similar to `fetchFromGitHub` above. + +## `fetchFromRepoOrCz` {#fetchfromrepoorcz} + +This is used with repo.or.cz repositories. The arguments expected are very similar to `fetchFromGitHub` above. + +## `fetchFromSourcehut` {#fetchfromsourcehut} + +This is used with sourcehut repositories. Similar to `fetchFromGitHub` above, +it expects `owner`, `repo`, `rev` and `hash`, but don't forget the tilde (~) +in front of the username! Expected arguments also include `vc` ("git" (default) +or "hg"), `domain` and `fetchSubmodules`. + +If `fetchSubmodules` is `true`, `fetchFromSourcehut` uses `fetchgit` +or `fetchhg` with `fetchSubmodules` or `fetchSubrepos` set to `true`, +respectively. Otherwise, the fetcher uses `fetchzip`. + +## `requireFile` {#requirefile} + +`requireFile` allows requesting files that cannot be fetched automatically, but whose content is known. +This is a useful last-resort workaround for license restrictions that prohibit redistribution, or for downloads that are only accessible after authenticating interactively in a browser. +If the requested file is present in the Nix store, the resulting derivation will not be built, because its expected output is already available. +Otherwise, the builder will run, but fail with a message explaining to the user how to provide the file. The following code, for example: + +``` +requireFile { + name = "jdk-${version}_linux-x64_bin.tar.gz"; + url = "https://www.oracle.com/java/technologies/javase-jdk11-downloads.html"; + hash = "sha256-lL00+F7jjT71nlKJ7HRQuUQ7kkxVYlZh//5msD8sjeI="; +} +``` +results in this error message: +``` +*** +Unfortunately, we cannot download file jdk-11.0.10_linux-x64_bin.tar.gz automatically. +Please go to https://www.oracle.com/java/technologies/javase-jdk11-downloads.html to download it yourself, and add it to the Nix store +using either + nix-store --add-fixed sha256 jdk-11.0.10_linux-x64_bin.tar.gz +or + nix-prefetch-url --type sha256 file:///path/to/jdk-11.0.10_linux-x64_bin.tar.gz + +*** +``` +## `fetchtorrent` {#fetchtorrent} + +`fetchtorrent` expects two arguments. `url` which can either be a Magnet URI (Magnet Link) such as `magnet:?xt=urn:btih:dd8255ecdc7ca55fb0bbf81323d87062db1f6d1c` or an HTTP URL pointing to a `.torrent` file. It can also take a `config` argument which will craft a `settings.json` configuration file and give it to `transmission`, the underlying program that is performing the fetch. The available config options for `transmission` can be found [here](https://github.com/transmission/transmission/blob/main/docs/Editing-Configuration-Files.md#options) + +``` +{ fetchtorrent }: + +fetchtorrent { + config = { peer-limit-global = 100; }; + url = "magnet:?xt=urn:btih:dd8255ecdc7ca55fb0bbf81323d87062db1f6d1c"; + sha256 = ""; +} +``` + +### Parameters {#fetchtorrent-parameters} + +- `url`: Magnet URI (Magnet Link) such as `magnet:?xt=urn:btih:dd8255ecdc7ca55fb0bbf81323d87062db1f6d1c` or an HTTP URL pointing to a `.torrent` file. + +- `backend`: Which bittorrent program to use. Default: `"transmission"`. Valid values are `"rqbit"` or `"transmission"`. These are the two most suitable torrent clients for fetching in a fixed-output derivation at the time of writing, as they can be easily exited after usage. `rqbit` is written in Rust and has a smaller closure size than `transmission`, and the performance and peer discovery properties differs between these clients, requiring experimentation to decide upon which is the best. + +- `config`: When using `transmission` as the `backend`, a json configuration can + be supplied to transmission. Refer to the [upstream documentation](https://github.com/transmission/transmission/blob/main/docs/Editing-Configuration-Files.md) for information on how to configure. + diff --git a/doc/build-helpers/images.md b/doc/build-helpers/images.md new file mode 100644 index 00000000000..5596784bfa4 --- /dev/null +++ b/doc/build-helpers/images.md @@ -0,0 +1,13 @@ +# Images {#chap-images} + +This chapter describes tools for creating various types of images. + +```{=include=} sections +images/appimagetools.section.md +images/dockertools.section.md +images/ocitools.section.md +images/snaptools.section.md +images/portableservice.section.md +images/makediskimage.section.md +images/binarycache.section.md +``` diff --git a/doc/build-helpers/images/appimagetools.section.md b/doc/build-helpers/images/appimagetools.section.md new file mode 100644 index 00000000000..0c72315a26e --- /dev/null +++ b/doc/build-helpers/images/appimagetools.section.md @@ -0,0 +1,48 @@ +# pkgs.appimageTools {#sec-pkgs-appimageTools} + +`pkgs.appimageTools` is a set of functions for extracting and wrapping [AppImage](https://appimage.org/) files. They are meant to be used if traditional packaging from source is infeasible, or it would take too long. To quickly run an AppImage file, `pkgs.appimage-run` can be used as well. + +::: {.warning} +The `appimageTools` API is unstable and may be subject to backwards-incompatible changes in the future. +::: + +## AppImage formats {#ssec-pkgs-appimageTools-formats} + +There are different formats for AppImages, see [the specification](https://github.com/AppImage/AppImageSpec/blob/74ad9ca2f94bf864a4a0dac1f369dd4f00bd1c28/draft.md#image-format) for details. + +- Type 1 images are ISO 9660 files that are also ELF executables. +- Type 2 images are ELF executables with an appended filesystem. + +They can be told apart with `file -k`: + +```ShellSession +$ file -k type1.AppImage +type1.AppImage: ELF 64-bit LSB executable, x86-64, version 1 (SYSV) ISO 9660 CD-ROM filesystem data 'AppImage' (Lepton 3.x), scale 0-0, +spot sensor temperature 0.000000, unit celsius, color scheme 0, calibration: offset 0.000000, slope 0.000000, dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.18, BuildID[sha1]=d629f6099d2344ad82818172add1d38c5e11bc6d, stripped\012- data + +$ file -k type2.AppImage +type2.AppImage: ELF 64-bit LSB executable, x86-64, version 1 (SYSV) (Lepton 3.x), scale 232-60668, spot sensor temperature -4.187500, color scheme 15, show scale bar, calibration: offset -0.000000, slope 0.000000 (Lepton 2.x), scale 4111-45000, spot sensor temperature 412442.250000, color scheme 3, minimum point enabled, calibration: offset -75402534979642766821519867692934234112.000000, slope 5815371847733706829839455140374904832.000000, dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.18, BuildID[sha1]=79dcc4e55a61c293c5e19edbd8d65b202842579f, stripped\012- data +``` + +Note how the type 1 AppImage is described as an `ISO 9660 CD-ROM filesystem`, and the type 2 AppImage is not. + +## Wrapping {#ssec-pkgs-appimageTools-wrapping} + +Depending on the type of AppImage you're wrapping, you'll have to use `wrapType1` or `wrapType2`. + +```nix +appimageTools.wrapType2 { # or wrapType1 + name = "patchwork"; + src = fetchurl { + url = "https://github.com/ssbc/patchwork/releases/download/v3.11.4/Patchwork-3.11.4-linux-x86_64.AppImage"; + hash = "sha256-OqTitCeZ6xmWbqYTXp8sDrmVgTNjPZNW0hzUPW++mq4="; + }; + extraPkgs = pkgs: with pkgs; [ ]; +} +``` + +- `name` specifies the name of the resulting image. +- `src` specifies the AppImage file to extract. +- `extraPkgs` allows you to pass a function to include additional packages inside the FHS environment your AppImage is going to run in. There are a few ways to learn which dependencies an application needs: + - Looking through the extracted AppImage files, reading its scripts and running `patchelf` and `ldd` on its executables. This can also be done in `appimage-run`, by setting `APPIMAGE_DEBUG_EXEC=bash`. + - Running `strace -vfefile` on the wrapped executable, looking for libraries that can't be found. diff --git a/doc/build-helpers/images/binarycache.section.md b/doc/build-helpers/images/binarycache.section.md new file mode 100644 index 00000000000..62e47dad7c6 --- /dev/null +++ b/doc/build-helpers/images/binarycache.section.md @@ -0,0 +1,49 @@ +# pkgs.mkBinaryCache {#sec-pkgs-binary-cache} + +`pkgs.mkBinaryCache` is a function for creating Nix flat-file binary caches. Such a cache exists as a directory on disk, and can be used as a Nix substituter by passing `--substituter file:///path/to/cache` to Nix commands. + +Nix packages are most commonly shared between machines using [HTTP, SSH, or S3](https://nixos.org/manual/nix/stable/package-management/sharing-packages.html), but a flat-file binary cache can still be useful in some situations. For example, you can copy it directly to another machine, or make it available on a network file system. It can also be a convenient way to make some Nix packages available inside a container via bind-mounting. + +Note that this function is meant for advanced use-cases. The more idiomatic way to work with flat-file binary caches is via the [nix-copy-closure](https://nixos.org/manual/nix/stable/command-ref/nix-copy-closure.html) command. You may also want to consider [dockerTools](#sec-pkgs-dockerTools) for your containerization needs. + +## Example {#sec-pkgs-binary-cache-example} + +The following derivation will construct a flat-file binary cache containing the closure of `hello`. + +```nix +mkBinaryCache { + rootPaths = [hello]; +} +``` + +- `rootPaths` specifies a list of root derivations. The transitive closure of these derivations' outputs will be copied into the cache. + +Here's an example of building and using the cache. + +Build the cache on one machine, `host1`: + +```shellSession +nix-build -E 'with import {}; mkBinaryCache { rootPaths = [hello]; }' +``` + +```shellSession +/nix/store/cc0562q828rnjqjyfj23d5q162gb424g-binary-cache +``` + +Copy the resulting directory to the other machine, `host2`: + +```shellSession +scp result host2:/tmp/hello-cache +``` + +Substitute the derivation using the flat-file binary cache on the other machine, `host2`: +```shellSession +nix-build -A hello '' \ + --option require-sigs false \ + --option trusted-substituters file:///tmp/hello-cache \ + --option substituters file:///tmp/hello-cache +``` + +```shellSession +/nix/store/gl5a41azbpsadfkfmbilh9yk40dh5dl0-hello-2.12.1 +``` diff --git a/doc/build-helpers/images/dockertools.section.md b/doc/build-helpers/images/dockertools.section.md new file mode 100644 index 00000000000..42d6e297f52 --- /dev/null +++ b/doc/build-helpers/images/dockertools.section.md @@ -0,0 +1,539 @@ +# pkgs.dockerTools {#sec-pkgs-dockerTools} + +`pkgs.dockerTools` is a set of functions for creating and manipulating Docker images according to the [Docker Image Specification v1.2.0](https://github.com/moby/moby/blob/master/image/spec/v1.2.md#docker-image-specification-v120). Docker itself is not used to perform any of the operations done by these functions. + +## buildImage {#ssec-pkgs-dockerTools-buildImage} + +This function is analogous to the `docker build` command, in that it can be used to build a Docker-compatible repository tarball containing a single image with one or multiple layers. As such, the result is suitable for being loaded in Docker with `docker load`. + +The parameters of `buildImage` with relative example values are described below: + +[]{#ex-dockerTools-buildImage} +[]{#ex-dockerTools-buildImage-runAsRoot} + +```nix +buildImage { + name = "redis"; + tag = "latest"; + + fromImage = someBaseImage; + fromImageName = null; + fromImageTag = "latest"; + + copyToRoot = pkgs.buildEnv { + name = "image-root"; + paths = [ pkgs.redis ]; + pathsToLink = [ "/bin" ]; + }; + + runAsRoot = '' + #!${pkgs.runtimeShell} + mkdir -p /data + ''; + + config = { + Cmd = [ "/bin/redis-server" ]; + WorkingDir = "/data"; + Volumes = { "/data" = { }; }; + }; + + diskSize = 1024; + buildVMMemorySize = 512; +} +``` + +The above example will build a Docker image `redis/latest` from the given base image. Loading and running this image in Docker results in `redis-server` being started automatically. + +- `name` specifies the name of the resulting image. This is the only required argument for `buildImage`. + +- `tag` specifies the tag of the resulting image. By default it's `null`, which indicates that the nix output hash will be used as tag. + +- `fromImage` is the repository tarball containing the base image. It must be a valid Docker image, such as exported by `docker save`. By default it's `null`, which can be seen as equivalent to `FROM scratch` of a `Dockerfile`. + +- `fromImageName` can be used to further specify the base image within the repository, in case it contains multiple images. By default it's `null`, in which case `buildImage` will peek the first image available in the repository. + +- `fromImageTag` can be used to further specify the tag of the base image within the repository, in case an image contains multiple tags. By default it's `null`, in which case `buildImage` will peek the first tag available for the base image. + +- `copyToRoot` is a derivation that will be copied in the new layer of the resulting image. This can be similarly seen as `ADD contents/ /` in a `Dockerfile`. By default it's `null`. + +- `runAsRoot` is a bash script that will run as root in an environment that overlays the existing layers of the base image with the new resulting layer, including the previously copied `contents` derivation. This can be similarly seen as `RUN ...` in a `Dockerfile`. + +> **_NOTE:_** Using this parameter requires the `kvm` device to be available. + +- `config` is used to specify the configuration of the containers that will be started off the built image in Docker. The available options are listed in the [Docker Image Specification v1.2.0](https://github.com/moby/moby/blob/master/image/spec/v1.2.md#image-json-field-descriptions). + +- `architecture` is _optional_ and used to specify the image architecture, this is useful for multi-architecture builds that don't need cross compiling. If not specified it will default to `hostPlatform`. + +- `diskSize` is used to specify the disk size of the VM used to build the image in megabytes. By default it's 1024 MiB. + +- `buildVMMemorySize` is used to specify the memory size of the VM to build the image in megabytes. By default it's 512 MiB. + +After the new layer has been created, its closure (to which `contents`, `config` and `runAsRoot` contribute) will be copied in the layer itself. Only new dependencies that are not already in the existing layers will be copied. + +At the end of the process, only one new single layer will be produced and added to the resulting image. + +The resulting repository will only list the single image `image/tag`. In the case of [the `buildImage` example](#ex-dockerTools-buildImage), it would be `redis/latest`. + +It is possible to inspect the arguments with which an image was built using its `buildArgs` attribute. + +> **_NOTE:_** If you see errors similar to `getProtocolByName: does not exist (no such protocol name: tcp)` you may need to add `pkgs.iana-etc` to `contents`. + +> **_NOTE:_** If you see errors similar to `Error_Protocol ("certificate has unknown CA",True,UnknownCa)` you may need to add `pkgs.cacert` to `contents`. + +By default `buildImage` will use a static date of one second past the UNIX Epoch. This allows `buildImage` to produce binary reproducible images. When listing images with `docker images`, the newly created images will be listed like this: + +```ShellSession +$ docker images +REPOSITORY TAG IMAGE ID CREATED SIZE +hello latest 08c791c7846e 48 years ago 25.2MB +``` + +You can break binary reproducibility but have a sorted, meaningful `CREATED` column by setting `created` to `now`. + +```nix +pkgs.dockerTools.buildImage { + name = "hello"; + tag = "latest"; + created = "now"; + copyToRoot = pkgs.buildEnv { + name = "image-root"; + paths = [ pkgs.hello ]; + pathsToLink = [ "/bin" ]; + }; + + config.Cmd = [ "/bin/hello" ]; +} +``` + +Now the Docker CLI will display a reasonable date and sort the images as expected: + +```ShellSession +$ docker images +REPOSITORY TAG IMAGE ID CREATED SIZE +hello latest de2bf4786de6 About a minute ago 25.2MB +``` + +However, the produced images will not be binary reproducible. + +## buildLayeredImage {#ssec-pkgs-dockerTools-buildLayeredImage} + +Create a Docker image with many of the store paths being on their own layer to improve sharing between images. The image is realized into the Nix store as a gzipped tarball. Depending on the intended usage, many users might prefer to use `streamLayeredImage` instead, which this function uses internally. + +`name` + +: The name of the resulting image. + +`tag` _optional_ + +: Tag of the generated image. + + *Default:* the output path's hash + +`fromImage` _optional_ + +: The repository tarball containing the base image. It must be a valid Docker image, such as one exported by `docker save`. + + *Default:* `null`, which can be seen as equivalent to `FROM scratch` of a `Dockerfile`. + +`contents` _optional_ + +: Top-level paths in the container. Either a single derivation, or a list of derivations. + + *Default:* `[]` + +`config` _optional_ + +`architecture` is _optional_ and used to specify the image architecture, this is useful for multi-architecture builds that don't need cross compiling. If not specified it will default to `hostPlatform`. + +: Run-time configuration of the container. A full list of the options available is in the [Docker Image Specification v1.2.0](https://github.com/moby/moby/blob/master/image/spec/v1.2.md#image-json-field-descriptions). + + *Default:* `{}` + +`created` _optional_ + +: Date and time the layers were created. Follows the same `now` exception supported by `buildImage`. + + *Default:* `1970-01-01T00:00:01Z` + +`maxLayers` _optional_ + +: Maximum number of layers to create. + + *Default:* `100` + + *Maximum:* `125` + +`extraCommands` _optional_ + +: Shell commands to run while building the final layer, without access to most of the layer contents. Changes to this layer are "on top" of all the other layers, so can create additional directories and files. + +`fakeRootCommands` _optional_ + +: Shell commands to run while creating the archive for the final layer in a fakeroot environment. Unlike `extraCommands`, you can run `chown` to change the owners of the files in the archive, changing fakeroot's state instead of the real filesystem. The latter would require privileges that the build user does not have. Static binaries do not interact with the fakeroot environment. By default all files in the archive will be owned by root. + +`enableFakechroot` _optional_ + +: Whether to run in `fakeRootCommands` in `fakechroot`, making programs behave as though `/` is the root of the image being created, while files in the Nix store are available as usual. This allows scripts that perform installation in `/` to work as expected. Considering that `fakechroot` is implemented via the same mechanism as `fakeroot`, the same caveats apply. + + *Default:* `false` + +### Behavior of `contents` in the final image {#dockerTools-buildLayeredImage-arg-contents} + +Each path directly listed in `contents` will have a symlink in the root of the image. + +For example: + +```nix +pkgs.dockerTools.buildLayeredImage { + name = "hello"; + contents = [ pkgs.hello ]; +} +``` + +will create symlinks for all the paths in the `hello` package: + +```ShellSession +/bin/hello -> /nix/store/h1zb1padqbbb7jicsvkmrym3r6snphxg-hello-2.10/bin/hello +/share/info/hello.info -> /nix/store/h1zb1padqbbb7jicsvkmrym3r6snphxg-hello-2.10/share/info/hello.info +/share/locale/bg/LC_MESSAGES/hello.mo -> /nix/store/h1zb1padqbbb7jicsvkmrym3r6snphxg-hello-2.10/share/locale/bg/LC_MESSAGES/hello.mo +``` + +### Automatic inclusion of `config` references {#dockerTools-buildLayeredImage-arg-config} + +The closure of `config` is automatically included in the closure of the final image. + +This allows you to make very simple Docker images with very little code. This container will start up and run `hello`: + +```nix +pkgs.dockerTools.buildLayeredImage { + name = "hello"; + config.Cmd = [ "${pkgs.hello}/bin/hello" ]; +} +``` + +### Adjusting `maxLayers` {#dockerTools-buildLayeredImage-arg-maxLayers} + +Increasing the `maxLayers` increases the number of layers which have a chance to be shared between different images. + +Modern Docker installations support up to 128 layers, but older versions support as few as 42. + +If the produced image will not be extended by other Docker builds, it is safe to set `maxLayers` to `128`. However, it will be impossible to extend the image further. + +The first (`maxLayers-2`) most "popular" paths will have their own individual layers, then layer \#`maxLayers-1` will contain all the remaining "unpopular" paths, and finally layer \#`maxLayers` will contain the Image configuration. + +Docker's Layers are not inherently ordered, they are content-addressable and are not explicitly layered until they are composed in to an Image. + +## streamLayeredImage {#ssec-pkgs-dockerTools-streamLayeredImage} + +Builds a script which, when run, will stream an uncompressed tarball of a Docker image to stdout. The arguments to this function are as for `buildLayeredImage`. This method of constructing an image does not realize the image into the Nix store, so it saves on IO and disk/cache space, particularly with large images. + +The image produced by running the output script can be piped directly into `docker load`, to load it into the local docker daemon: + +```ShellSession +$(nix-build) | docker load +``` + +Alternatively, the image be piped via `gzip` into `skopeo`, e.g., to copy it into a registry: + +```ShellSession +$(nix-build) | gzip --fast | skopeo copy docker-archive:/dev/stdin docker://some_docker_registry/myimage:tag +``` + +## pullImage {#ssec-pkgs-dockerTools-fetchFromRegistry} + +This function is analogous to the `docker pull` command, in that it can be used to pull a Docker image from a Docker registry. By default [Docker Hub](https://hub.docker.com/) is used to pull images. + +Its parameters are described in the example below: + +```nix +pullImage { + imageName = "nixos/nix"; + imageDigest = + "sha256:473a2b527958665554806aea24d0131bacec46d23af09fef4598eeab331850fa"; + finalImageName = "nix"; + finalImageTag = "2.11.1"; + sha256 = "sha256-qvhj+Hlmviz+KEBVmsyPIzTB3QlVAFzwAY1zDPIBGxc="; + os = "linux"; + arch = "x86_64"; +} +``` + +- `imageName` specifies the name of the image to be downloaded, which can also include the registry namespace (e.g. `nixos`). This argument is required. + +- `imageDigest` specifies the digest of the image to be downloaded. This argument is required. + +- `finalImageName`, if specified, this is the name of the image to be created. Note it is never used to fetch the image since we prefer to rely on the immutable digest ID. By default it's equal to `imageName`. + +- `finalImageTag`, if specified, this is the tag of the image to be created. Note it is never used to fetch the image since we prefer to rely on the immutable digest ID. By default it's `latest`. + +- `sha256` is the checksum of the whole fetched image. This argument is required. + +- `os`, if specified, is the operating system of the fetched image. By default it's `linux`. + +- `arch`, if specified, is the cpu architecture of the fetched image. By default it's `x86_64`. + +`nix-prefetch-docker` command can be used to get required image parameters: + +```ShellSession +$ nix run nixpkgs#nix-prefetch-docker -- --image-name mysql --image-tag 5 +``` + +Since a given `imageName` may transparently refer to a manifest list of images which support multiple architectures and/or operating systems, you can supply the `--os` and `--arch` arguments to specify exactly which image you want. By default it will match the OS and architecture of the host the command is run on. + +```ShellSession +$ nix-prefetch-docker --image-name mysql --image-tag 5 --arch x86_64 --os linux +``` + +Desired image name and tag can be set using `--final-image-name` and `--final-image-tag` arguments: + +```ShellSession +$ nix-prefetch-docker --image-name mysql --image-tag 5 --final-image-name eu.gcr.io/my-project/mysql --final-image-tag prod +``` + +## exportImage {#ssec-pkgs-dockerTools-exportImage} + +This function is analogous to the `docker export` command, in that it can be used to flatten a Docker image that contains multiple layers. It is in fact the result of the merge of all the layers of the image. As such, the result is suitable for being imported in Docker with `docker import`. + +> **_NOTE:_** Using this function requires the `kvm` device to be available. + +The parameters of `exportImage` are the following: + +```nix +exportImage { + fromImage = someLayeredImage; + fromImageName = null; + fromImageTag = null; + + name = someLayeredImage.name; +} +``` + +The parameters relative to the base image have the same synopsis as described in [buildImage](#ssec-pkgs-dockerTools-buildImage), except that `fromImage` is the only required argument in this case. + +The `name` argument is the name of the derivation output, which defaults to `fromImage.name`. + +## Environment Helpers {#ssec-pkgs-dockerTools-helpers} + +Some packages expect certain files to be available globally. +When building an image from scratch (i.e. without `fromImage`), these files are missing. +`pkgs.dockerTools` provides some helpers to set up an environment with the necessary files. +You can include them in `copyToRoot` like this: + +```nix +buildImage { + name = "environment-example"; + copyToRoot = with pkgs.dockerTools; [ + usrBinEnv + binSh + caCertificates + fakeNss + ]; +} +``` + +### usrBinEnv {#sssec-pkgs-dockerTools-helpers-usrBinEnv} + +This provides the `env` utility at `/usr/bin/env`. + +### binSh {#sssec-pkgs-dockerTools-helpers-binSh} + +This provides `bashInteractive` at `/bin/sh`. + +### caCertificates {#sssec-pkgs-dockerTools-helpers-caCertificates} + +This sets up `/etc/ssl/certs/ca-certificates.crt`. + +### fakeNss {#sssec-pkgs-dockerTools-helpers-fakeNss} + +Provides `/etc/passwd` and `/etc/group` that contain root and nobody. +Useful when packaging binaries that insist on using nss to look up +username/groups (like nginx). + +### shadowSetup {#ssec-pkgs-dockerTools-shadowSetup} + +This constant string is a helper for setting up the base files for managing users and groups, only if such files don't exist already. It is suitable for being used in a [`buildImage` `runAsRoot`](#ex-dockerTools-buildImage-runAsRoot) script for cases like in the example below: + +```nix +buildImage { + name = "shadow-basic"; + + runAsRoot = '' + #!${pkgs.runtimeShell} + ${pkgs.dockerTools.shadowSetup} + groupadd -r redis + useradd -r -g redis redis + mkdir /data + chown redis:redis /data + ''; +} +``` + +Creating base files like `/etc/passwd` or `/etc/login.defs` is necessary for shadow-utils to manipulate users and groups. + +## fakeNss {#ssec-pkgs-dockerTools-fakeNss} + +If your primary goal is providing a basic skeleton for user lookups to work, +and/or a lesser privileged user, adding `pkgs.fakeNss` to +the container image root might be the better choice than a custom script +running `useradd` and friends. + +It provides a `/etc/passwd` and `/etc/group`, containing `root` and `nobody` +users and groups. + +It also provides a `/etc/nsswitch.conf`, configuring NSS host resolution to +first check `/etc/hosts`, before checking DNS, as the default in the absence of +a config file (`dns [!UNAVAIL=return] files`) is quite unexpected. + +You can pair it with `binSh`, which provides `bin/sh` as a symlink +to `bashInteractive` (as `/bin/sh` is configured as a shell). + +```nix +buildImage { + name = "shadow-basic"; + + copyToRoot = pkgs.buildEnv { + name = "image-root"; + paths = [ binSh pkgs.fakeNss ]; + pathsToLink = [ "/bin" "/etc" "/var" ]; + }; +} +``` + +## buildNixShellImage {#ssec-pkgs-dockerTools-buildNixShellImage} + +Create a Docker image that sets up an environment similar to that of running `nix-shell` on a derivation. +When run in Docker, this environment somewhat resembles the Nix sandbox typically used by `nix-build`, with a major difference being that access to the internet is allowed. +It additionally also behaves like an interactive `nix-shell`, running things like `shellHook` and setting an interactive prompt. +If the derivation is fully buildable (i.e. `nix-build` can be used on it), running `buildDerivation` inside such a Docker image will build the derivation, with all its outputs being available in the correct `/nix/store` paths, pointed to by the respective environment variables like `$out`, etc. + +::: {.warning} +The behavior doesn't match `nix-shell` or `nix-build` exactly and this function is known not to work correctly for e.g. fixed-output derivations, content-addressed derivations, impure derivations and other special types of derivations. +::: + +### Arguments {#ssec-pkgs-dockerTools-buildNixShellImage-arguments} + +`drv` + +: The derivation on which to base the Docker image. + + Adding packages to the Docker image is possible by e.g. extending the list of `nativeBuildInputs` of this derivation like + + ```nix + buildNixShellImage { + drv = someDrv.overrideAttrs (old: { + nativeBuildInputs = old.nativeBuildInputs or [] ++ [ + somethingExtra + ]; + }); + # ... + } + ``` + + Similarly, you can extend the image initialization script by extending `shellHook` + +`name` _optional_ + +: The name of the resulting image. + + *Default:* `drv.name + "-env"` + +`tag` _optional_ + +: Tag of the generated image. + + *Default:* the resulting image derivation output path's hash + +`uid`/`gid` _optional_ + +: The user/group ID to run the container as. This is like a `nixbld` build user. + + *Default:* 1000/1000 + +`homeDirectory` _optional_ + +: The home directory of the user the container is running as + + *Default:* `/build` + +`shell` _optional_ + +: The path to the `bash` binary to use as the shell. This shell is started when running the image. + + *Default:* `pkgs.bashInteractive + "/bin/bash"` + +`command` _optional_ + +: Run this command in the environment of the derivation, in an interactive shell. See the `--command` option in the [`nix-shell` documentation](https://nixos.org/manual/nix/stable/command-ref/nix-shell.html?highlight=nix-shell#options). + + *Default:* (none) + +`run` _optional_ + +: Same as `command`, but runs the command in a non-interactive shell instead. See the `--run` option in the [`nix-shell` documentation](https://nixos.org/manual/nix/stable/command-ref/nix-shell.html?highlight=nix-shell#options). + + *Default:* (none) + +### Example {#ssec-pkgs-dockerTools-buildNixShellImage-example} + +The following shows how to build the `pkgs.hello` package inside a Docker container built with `buildNixShellImage`. + +```nix +with import {}; +dockerTools.buildNixShellImage { + drv = hello; +} +``` + +Build the derivation: + +```console +nix-build hello.nix +``` + + these 8 derivations will be built: + /nix/store/xmw3a5ln29rdalavcxk1w3m4zb2n7kk6-nix-shell-rc.drv + ... + Creating layer 56 from paths: ['/nix/store/crpnj8ssz0va2q0p5ibv9i6k6n52gcya-stdenv-linux'] + Creating layer 57 with customisation... + Adding manifests... + Done. + /nix/store/cpyn1lc897ghx0rhr2xy49jvyn52bazv-hello-2.12-env.tar.gz + +Load the image: + +```console +docker load -i result +``` + + 0d9f4c4cd109: Loading layer [==================================================>] 2.56MB/2.56MB + ... + ab1d897c0697: Loading layer [==================================================>] 10.24kB/10.24kB + Loaded image: hello-2.12-env:pgj9h98nal555415faa43vsydg161bdz + +Run the container: + +```console +docker run -it hello-2.12-env:pgj9h98nal555415faa43vsydg161bdz +``` + + [nix-shell:/build]$ + +In the running container, run the build: + +```console +buildDerivation +``` + + unpacking sources + unpacking source archive /nix/store/8nqv6kshb3vs5q5bs2k600xpj5bkavkc-hello-2.12.tar.gz + ... + patching script interpreter paths in /nix/store/z5wwy5nagzy15gag42vv61c2agdpz2f2-hello-2.12 + checking for references to /build/ in /nix/store/z5wwy5nagzy15gag42vv61c2agdpz2f2-hello-2.12... + +Check the build result: + +```console +$out/bin/hello +``` + + Hello, world! diff --git a/doc/build-helpers/images/makediskimage.section.md b/doc/build-helpers/images/makediskimage.section.md new file mode 100644 index 00000000000..e50479c4e83 --- /dev/null +++ b/doc/build-helpers/images/makediskimage.section.md @@ -0,0 +1,108 @@ +# `` {#sec-make-disk-image} + +`` is a function to create _disk images_ in multiple formats: raw, QCOW2 (QEMU), QCOW2-Compressed (compressed version), VDI (VirtualBox), VPC (VirtualPC). + +This function can create images in two ways: + +- using `cptofs` without any virtual machine to create a Nix store disk image, +- using a virtual machine to create a full NixOS installation. + +When testing early-boot or lifecycle parts of NixOS such as a bootloader or multiple generations, it is necessary to opt for a full NixOS system installation. +Whereas for many web servers, applications, it is possible to work with a Nix store only disk image and is faster to build. + +NixOS tests also use this function when preparing the VM. The `cptofs` method is used when `virtualisation.useBootLoader` is false (the default). Otherwise the second method is used. + +## Features {#sec-make-disk-image-features} + +For reference, read the function signature source code for documentation on arguments: . +Features are separated in various sections depending on if you opt for a Nix-store only image or a full NixOS image. + +### Common {#sec-make-disk-image-features-common} + +- arbitrary NixOS configuration +- automatic or bound disk size: `diskSize` parameter, `additionalSpace` can be set when `diskSize` is `auto` to add a constant of disk space +- multiple partition table layouts: EFI, legacy, legacy + GPT, hybrid, none through `partitionTableType` parameter +- OVMF or EFI firmwares and variables templates can be customized +- root filesystem `fsType` can be customized to whatever `mkfs.${fsType}` exist during operations +- root filesystem label can be customized, defaults to `nix-store` if it's a Nix store image, otherwise `nixpkgs/nixos` +- arbitrary code can be executed after disk image was produced with `postVM` +- the current nixpkgs can be realized as a channel in the disk image, which will change the hash of the image when the sources are updated +- additional store paths can be provided through `additionalPaths` + +### Full NixOS image {#sec-make-disk-image-features-full-image} + +- arbitrary contents with permissions can be placed in the target filesystem using `contents` +- a `/etc/nixpkgs/nixos/configuration.nix` can be provided through `configFile` +- bootloaders are supported +- EFI variables can be mutated during image production and the result is exposed in `$out` +- boot partition size when partition table is `efi` or `hybrid` + +### On bit-to-bit reproducibility {#sec-make-disk-image-features-reproducibility} + +Images are **NOT** deterministic, please do not hesitate to try to fix this, source of determinisms are (not exhaustive) : + +- bootloader installation have timestamps +- SQLite Nix store database contain registration times +- `/etc/shadow` is in a non-deterministic order + +A `deterministic` flag is available for best efforts determinism. + +## Usage {#sec-make-disk-image-usage} + +To produce a Nix-store only image: +```nix +let + pkgs = import {}; + lib = pkgs.lib; + make-disk-image = import ; +in + make-disk-image { + inherit pkgs lib; + config = {}; + additionalPaths = [ ]; + format = "qcow2"; + onlyNixStore = true; + partitionTableType = "none"; + installBootLoader = false; + touchEFIVars = false; + diskSize = "auto"; + additionalSpace = "0M"; # Defaults to 512M. + copyChannel = false; + } +``` + +Some arguments can be left out, they are shown explicitly for the sake of the example. + +Building this derivation will provide a QCOW2 disk image containing only the Nix store and its registration information. + +To produce a NixOS installation image disk with UEFI and bootloader installed: +```nix +let + pkgs = import {}; + lib = pkgs.lib; + make-disk-image = import ; + evalConfig = import ; +in + make-disk-image { + inherit pkgs lib; + config = evalConfig { + modules = [ + { + fileSystems."/" = { device = "/dev/vda"; fsType = "ext4"; autoFormat = true; }; + boot.grub.device = "/dev/vda"; + } + ]; + }; + format = "qcow2"; + onlyNixStore = false; + partitionTableType = "legacy+gpt"; + installBootLoader = true; + touchEFIVars = true; + diskSize = "auto"; + additionalSpace = "0M"; # Defaults to 512M. + copyChannel = false; + memSize = 2048; # Qemu VM memory size in megabytes. Defaults to 1024M. + } +``` + + diff --git a/doc/build-helpers/images/ocitools.section.md b/doc/build-helpers/images/ocitools.section.md new file mode 100644 index 00000000000..c35f65bce00 --- /dev/null +++ b/doc/build-helpers/images/ocitools.section.md @@ -0,0 +1,37 @@ +# pkgs.ociTools {#sec-pkgs-ociTools} + +`pkgs.ociTools` is a set of functions for creating containers according to the [OCI container specification v1.0.0](https://github.com/opencontainers/runtime-spec). Beyond that, it makes no assumptions about the container runner you choose to use to run the created container. + +## buildContainer {#ssec-pkgs-ociTools-buildContainer} + +This function creates a simple OCI container that runs a single command inside of it. An OCI container consists of a `config.json` and a rootfs directory. The nix store of the container will contain all referenced dependencies of the given command. + +The parameters of `buildContainer` with an example value are described below: + +```nix +buildContainer { + args = [ + (with pkgs; + writeScript "run.sh" '' + #!${bash}/bin/bash + exec ${bash}/bin/bash + '').outPath + ]; + + mounts = { + "/data" = { + type = "none"; + source = "/var/lib/mydata"; + options = [ "bind" ]; + }; + }; + + readonly = false; +} +``` + +- `args` specifies a set of arguments to run inside the container. This is the only required argument for `buildContainer`. All referenced packages inside the derivation will be made available inside the container. + +- `mounts` specifies additional mount points chosen by the user. By default only a minimal set of necessary filesystems are mounted into the container (e.g procfs, cgroupfs) + +- `readonly` makes the container's rootfs read-only if it is set to true. The default value is false `false`. diff --git a/doc/build-helpers/images/portableservice.section.md b/doc/build-helpers/images/portableservice.section.md new file mode 100644 index 00000000000..5400928b158 --- /dev/null +++ b/doc/build-helpers/images/portableservice.section.md @@ -0,0 +1,81 @@ +# pkgs.portableService {#sec-pkgs-portableService} + +`pkgs.portableService` is a function to create _portable service images_, +as read-only, immutable, `squashfs` archives. + +systemd supports a concept of [Portable Services](https://systemd.io/PORTABLE_SERVICES/). +Portable Services are a delivery method for system services that uses two specific features of container management: + +* Applications are bundled. I.e. multiple services, their binaries and + all their dependencies are packaged in an image, and are run directly from it. +* Stricter default security policies, i.e. sandboxing of applications. + +This allows using Nix to build images which can be run on many recent Linux distributions. + +The primary tool for interacting with Portable Services is `portablectl`, +and they are managed by the `systemd-portabled` system service. + +::: {.note} +Portable services are supported starting with systemd 239 (released on 2018-06-22). +::: + +A very simple example of using `portableService` is described below: + +[]{#ex-pkgs-portableService} + +```nix +pkgs.portableService { + pname = "demo"; + version = "1.0"; + units = [ demo-service demo-socket ]; +} +``` + +The above example will build an squashfs archive image in `result/$pname_$version.raw`. The image will contain the +file system structure as required by the portable service specification, and a subset of the Nix store with all the +dependencies of the two derivations in the `units` list. +`units` must be a list of derivations, and their names must be prefixed with the service name (`"demo"` in this case). +Otherwise `systemd-portabled` will ignore them. + +::: {.note} +The `.raw` file extension of the image is required by the portable services specification. +::: + +Some other options available are: +- `description`, `homepage` + + Are added to the `/etc/os-release` in the image and are shown by the portable services tooling. + Default to empty values, not added to os-release. +- `symlinks` + + A list of attribute sets {object, symlink}. Symlinks will be created in the root filesystem of the image to + objects in the Nix store. Defaults to an empty list. +- `contents` + + A list of additional derivations to be included in the image Nix store, as-is. Defaults to an empty list. +- `squashfsTools` + + Defaults to `pkgs.squashfsTools`, allows you to override the package that provides `mksquashfs`. +- `squash-compression`, `squash-block-size` + + Options to `mksquashfs`. Default to `"xz -Xdict-size 100%"` and `"1M"` respectively. + +A typical usage of `symlinks` would be: +```nix + symlinks = [ + { object = "${pkgs.cacert}/etc/ssl"; symlink = "/etc/ssl"; } + { object = "${pkgs.bash}/bin/bash"; symlink = "/bin/sh"; } + { object = "${pkgs.php}/bin/php"; symlink = "/usr/bin/php"; } + ]; +``` +to create these symlinks for legacy applications that assume them existing globally. + +Once the image is created, and deployed on a host in `/var/lib/portables/`, you can attach the image and run the service. As root run: +```console +portablectl attach demo_1.0.raw +systemctl enable --now demo.socket +systemctl enable --now demo.service +``` +::: {.note} +See the [man page](https://www.freedesktop.org/software/systemd/man/portablectl.html) of `portablectl` for more info on its usage. +::: diff --git a/doc/build-helpers/images/snaptools.section.md b/doc/build-helpers/images/snaptools.section.md new file mode 100644 index 00000000000..259fa1b0618 --- /dev/null +++ b/doc/build-helpers/images/snaptools.section.md @@ -0,0 +1,71 @@ +# pkgs.snapTools {#sec-pkgs-snapTools} + +`pkgs.snapTools` is a set of functions for creating Snapcraft images. Snap and Snapcraft is not used to perform these operations. + +## The makeSnap Function {#ssec-pkgs-snapTools-makeSnap-signature} + +`makeSnap` takes a single named argument, `meta`. This argument mirrors [the upstream `snap.yaml` format](https://docs.snapcraft.io/snap-format) exactly. + +The `base` should not be specified, as `makeSnap` will force set it. + +Currently, `makeSnap` does not support creating GUI stubs. + +## Build a Hello World Snap {#ssec-pkgs-snapTools-build-a-snap-hello} + +The following expression packages GNU Hello as a Snapcraft snap. + +``` {#ex-snapTools-buildSnap-hello .nix} +let + inherit (import { }) snapTools hello; +in snapTools.makeSnap { + meta = { + name = "hello"; + summary = hello.meta.description; + description = hello.meta.longDescription; + architectures = [ "amd64" ]; + confinement = "strict"; + apps.hello.command = "${hello}/bin/hello"; + }; +} +``` + +`nix-build` this expression and install it with `snap install ./result --dangerous`. `hello` will now be the Snapcraft version of the package. + +## Build a Graphical Snap {#ssec-pkgs-snapTools-build-a-snap-firefox} + +Graphical programs require many more integrations with the host. This example uses Firefox as an example because it is one of the most complicated programs we could package. + +``` {#ex-snapTools-buildSnap-firefox .nix} +let + inherit (import { }) snapTools firefox; +in snapTools.makeSnap { + meta = { + name = "nix-example-firefox"; + summary = firefox.meta.description; + architectures = [ "amd64" ]; + apps.nix-example-firefox = { + command = "${firefox}/bin/firefox"; + plugs = [ + "pulseaudio" + "camera" + "browser-support" + "avahi-observe" + "cups-control" + "desktop" + "desktop-legacy" + "gsettings" + "home" + "network" + "mount-observe" + "removable-media" + "x11" + ]; + }; + confinement = "strict"; + }; +} +``` + +`nix-build` this expression and install it with `snap install ./result --dangerous`. `nix-example-firefox` will now be the Snapcraft version of the Firefox package. + +The specific meaning behind plugs can be looked up in the [Snapcraft interface documentation](https://docs.snapcraft.io/supported-interfaces). diff --git a/doc/build-helpers/special.md b/doc/build-helpers/special.md new file mode 100644 index 00000000000..f88648207fd --- /dev/null +++ b/doc/build-helpers/special.md @@ -0,0 +1,10 @@ +# Special build helpers {#chap-special} + +This chapter describes several special build helpers. + +```{=include=} sections +special/fhs-environments.section.md +special/makesetuphook.section.md +special/mkshell.section.md +special/vm-tools.section.md +``` diff --git a/doc/build-helpers/special/fhs-environments.section.md b/doc/build-helpers/special/fhs-environments.section.md new file mode 100644 index 00000000000..8145fbd730f --- /dev/null +++ b/doc/build-helpers/special/fhs-environments.section.md @@ -0,0 +1,56 @@ +# buildFHSEnv {#sec-fhs-environments} + +`buildFHSEnv` provides a way to build and run FHS-compatible lightweight sandboxes. It creates an isolated root filesystem with the host's `/nix/store`, so its footprint in terms of disk space is quite small. This allows you to run software which is hard or unfeasible to patch for NixOS; 3rd-party source trees with FHS assumptions, games distributed as tarballs, software with integrity checking and/or external self-updated binaries for instance. +It uses Linux' namespaces feature to create temporary lightweight environments which are destroyed after all child processes exit, without requiring elevated privileges. It works similar to containerisation technology such as Docker or FlatPak but provides no security-relevant separation from the host system. + +Accepted arguments are: + +- `name` + The name of the environment and the wrapper executable. +- `targetPkgs` + Packages to be installed for the main host's architecture (i.e. x86_64 on x86_64 installations). Along with libraries binaries are also installed. +- `multiPkgs` + Packages to be installed for all architectures supported by a host (i.e. i686 and x86_64 on x86_64 installations). Only libraries are installed by default. +- `multiArch` + Whether to install 32bit multiPkgs into the FHSEnv in 64bit environments +- `extraBuildCommands` + Additional commands to be executed for finalizing the directory structure. +- `extraBuildCommandsMulti` + Like `extraBuildCommands`, but executed only on multilib architectures. +- `extraOutputsToInstall` + Additional derivation outputs to be linked for both target and multi-architecture packages. +- `extraInstallCommands` + Additional commands to be executed for finalizing the derivation with runner script. +- `runScript` + A shell command to be executed inside the sandbox. It defaults to `bash`. Command line arguments passed to the resulting wrapper are appended to this command by default. + This command must be escaped; i.e. `"foo app" --do-stuff --with "some file"`. See `lib.escapeShellArgs`. +- `profile` + Optional script for `/etc/profile` within the sandbox. + +You can create a simple environment using a `shell.nix` like this: + +```nix +{ pkgs ? import {} }: + +(pkgs.buildFHSEnv { + name = "simple-x11-env"; + targetPkgs = pkgs: (with pkgs; [ + udev + alsa-lib + ]) ++ (with pkgs.xorg; [ + libX11 + libXcursor + libXrandr + ]); + multiPkgs = pkgs: (with pkgs; [ + udev + alsa-lib + ]); + runScript = "bash"; +}).env +``` + +Running `nix-shell` on it would drop you into a shell inside an FHS env where those libraries and binaries are available in FHS-compliant paths. Applications that expect an FHS structure (i.e. proprietary binaries) can run inside this environment without modification. +You can build a wrapper by running your binary in `runScript`, e.g. `./bin/start.sh`. Relative paths work as expected. + +Additionally, the FHS builder links all relocated gsettings-schemas (the glib setup-hook moves them to `share/gsettings-schemas/${name}/glib-2.0/schemas`) to their standard FHS location. This means you don't need to wrap binaries with `wrapGAppsHook`. diff --git a/doc/build-helpers/special/makesetuphook.section.md b/doc/build-helpers/special/makesetuphook.section.md new file mode 100644 index 00000000000..e83164b7eb7 --- /dev/null +++ b/doc/build-helpers/special/makesetuphook.section.md @@ -0,0 +1,37 @@ +# pkgs.makeSetupHook {#sec-pkgs.makeSetupHook} + +`pkgs.makeSetupHook` is a build helper that produces hooks that go in to `nativeBuildInputs` + +## Usage {#sec-pkgs.makeSetupHook-usage} + +```nix +pkgs.makeSetupHook { + name = "something-hook"; + propagatedBuildInputs = [ pkgs.commandsomething ]; + depsTargetTargetPropagated = [ pkgs.libsomething ]; +} ./script.sh +``` + +### setup hook that depends on the hello package and runs hello and @shell@ is substituted with path to bash {#sec-pkgs.makeSetupHook-usage-example} + +```nix +pkgs.makeSetupHook { + name = "run-hello-hook"; + propagatedBuildInputs = [ pkgs.hello ]; + substitutions = { shell = "${pkgs.bash}/bin/bash"; }; + passthru.tests.greeting = callPackage ./test { }; + meta.platforms = lib.platforms.linux; +} (writeScript "run-hello-hook.sh" '' + #!@shell@ + hello +'') +``` + +## Attributes {#sec-pkgs.makeSetupHook-attributes} + +* `name` Set the name of the hook. +* `propagatedBuildInputs` Runtime dependencies (such as binaries) of the hook. +* `depsTargetTargetPropagated` Non-binary dependencies. +* `meta` +* `passthru` +* `substitutions` Variables for `substituteAll` diff --git a/doc/build-helpers/special/mkshell.section.md b/doc/build-helpers/special/mkshell.section.md new file mode 100644 index 00000000000..96d43535955 --- /dev/null +++ b/doc/build-helpers/special/mkshell.section.md @@ -0,0 +1,37 @@ +# pkgs.mkShell {#sec-pkgs-mkShell} + +`pkgs.mkShell` is a specialized `stdenv.mkDerivation` that removes some +repetition when using it with `nix-shell` (or `nix develop`). + +## Usage {#sec-pkgs-mkShell-usage} + +Here is a common usage example: + +```nix +{ pkgs ? import {} }: +pkgs.mkShell { + packages = [ pkgs.gnumake ]; + + inputsFrom = [ pkgs.hello pkgs.gnutar ]; + + shellHook = '' + export DEBUG=1 + ''; +} +``` + +## Attributes {#sec-pkgs-mkShell-attributes} + +* `name` (default: `nix-shell`). Set the name of the derivation. +* `packages` (default: `[]`). Add executable packages to the `nix-shell` environment. +* `inputsFrom` (default: `[]`). Add build dependencies of the listed derivations to the `nix-shell` environment. +* `shellHook` (default: `""`). Bash statements that are executed by `nix-shell`. + +... all the attributes of `stdenv.mkDerivation`. + +## Building the shell {#sec-pkgs-mkShell-building} + +This derivation output will contain a text file that contains a reference to +all the build inputs. This is useful in CI where we want to make sure that +every derivation, and its dependencies, build properly. Or when creating a GC +root so that the build dependencies don't get garbage-collected. diff --git a/doc/build-helpers/special/vm-tools.section.md b/doc/build-helpers/special/vm-tools.section.md new file mode 100644 index 00000000000..8feab04902d --- /dev/null +++ b/doc/build-helpers/special/vm-tools.section.md @@ -0,0 +1,148 @@ +# vmTools {#sec-vm-tools} + +A set of VM related utilities, that help in building some packages in more advanced scenarios. + +## `vmTools.createEmptyImage` {#vm-tools-createEmptyImage} + +A bash script fragment that produces a disk image at `destination`. + +### Attributes {#vm-tools-createEmptyImage-attributes} + +* `size`. The disk size, in MiB. +* `fullName`. Name that will be written to `${destination}/nix-support/full-name`. +* `destination` (optional, default `$out`). Where to write the image files. + +## `vmTools.runInLinuxVM` {#vm-tools-runInLinuxVM} + +Run a derivation in a Linux virtual machine (using Qemu/KVM). +By default, there is no disk image; the root filesystem is a `tmpfs`, and the Nix store is shared with the host (via the [9P protocol](https://wiki.qemu.org/Documentation/9p#9p_Protocol)). +Thus, any pure Nix derivation should run unmodified. + +If the build fails and Nix is run with the `-K/--keep-failed` option, a script `run-vm` will be left behind in the temporary build directory that allows you to boot into the VM and debug it interactively. + +### Attributes {#vm-tools-runInLinuxVM-attributes} + +* `preVM` (optional). Shell command to be evaluated *before* the VM is started (i.e., on the host). +* `memSize` (optional, default `512`). The memory size of the VM in MiB. +* `diskImage` (optional). A file system image to be attached to `/dev/sda`. + Note that currently we expect the image to contain a filesystem, not a full disk image with a partition table etc. + +### Examples {#vm-tools-runInLinuxVM-examples} + +Build the derivation hello inside a VM: +```nix +{ pkgs }: with pkgs; with vmTools; +runInLinuxVM hello +``` + +Build inside a VM with extra memory: +```nix +{ pkgs }: with pkgs; with vmTools; +runInLinuxVM (hello.overrideAttrs (_: { memSize = 1024; })) +``` + +Use VM with a disk image (implicitly sets `diskImage`, see [`vmTools.createEmptyImage`](#vm-tools-createEmptyImage)): +```nix +{ pkgs }: with pkgs; with vmTools; +runInLinuxVM (hello.overrideAttrs (_: { + preVM = createEmptyImage { + size = 1024; + fullName = "vm-image"; + }; +})) +``` + +## `vmTools.extractFs` {#vm-tools-extractFs} + +Takes a file, such as an ISO, and extracts its contents into the store. + +### Attributes {#vm-tools-extractFs-attributes} + +* `file`. Path to the file to be extracted. + Note that currently we expect the image to contain a filesystem, not a full disk image with a partition table etc. +* `fs` (optional). Filesystem of the contents of the file. + +### Examples {#vm-tools-extractFs-examples} + +Extract the contents of an ISO file: +```nix +{ pkgs }: with pkgs; with vmTools; +extractFs { file = ./image.iso; } +``` + +## `vmTools.extractMTDfs` {#vm-tools-extractMTDfs} + +Like [](#vm-tools-extractFs), but it makes use of a [Memory Technology Device (MTD)](https://en.wikipedia.org/wiki/Memory_Technology_Device). + +## `vmTools.runInLinuxImage` {#vm-tools-runInLinuxImage} + +Like [](#vm-tools-runInLinuxVM), but instead of using `stdenv` from the Nix store, run the build using the tools provided by `/bin`, `/usr/bin`, etc. from the specified filesystem image, which typically is a filesystem containing a [FHS](https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard)-based Linux distribution. + +## `vmTools.makeImageTestScript` {#vm-tools-makeImageTestScript} + +Generate a script that can be used to run an interactive session in the given image. + +### Examples {#vm-tools-makeImageTestScript-examples} + +Create a script for running a Fedora 27 VM: +```nix +{ pkgs }: with pkgs; with vmTools; +makeImageTestScript diskImages.fedora27x86_64 +``` + +Create a script for running an Ubuntu 20.04 VM: +```nix +{ pkgs }: with pkgs; with vmTools; +makeImageTestScript diskImages.ubuntu2004x86_64 +``` + +## `vmTools.diskImageFuns` {#vm-tools-diskImageFuns} + +A set of functions that build a predefined set of minimal Linux distributions images. + +### Images {#vm-tools-diskImageFuns-images} + +* Fedora + * `fedora26x86_64` + * `fedora27x86_64` +* CentOS + * `centos6i386` + * `centos6x86_64` + * `centos7x86_64` +* Ubuntu + * `ubuntu1404i386` + * `ubuntu1404x86_64` + * `ubuntu1604i386` + * `ubuntu1604x86_64` + * `ubuntu1804i386` + * `ubuntu1804x86_64` + * `ubuntu2004i386` + * `ubuntu2004x86_64` + * `ubuntu2204i386` + * `ubuntu2204x86_64` +* Debian + * `debian10i386` + * `debian10x86_64` + * `debian11i386` + * `debian11x86_64` + +### Attributes {#vm-tools-diskImageFuns-attributes} + +* `size` (optional, defaults to `4096`). The size of the image, in MiB. +* `extraPackages` (optional). A list names of additional packages from the distribution that should be included in the image. + +### Examples {#vm-tools-diskImageFuns-examples} + +8GiB image containing Firefox in addition to the default packages: +```nix +{ pkgs }: with pkgs; with vmTools; +diskImageFuns.ubuntu2004x86_64 { extraPackages = [ "firefox" ]; size = 8192; } +``` + +## `vmTools.diskImageExtraFuns` {#vm-tools-diskImageExtraFuns} + +Shorthand for `vmTools.diskImageFuns. { extraPackages = ... }`. + +## `vmTools.diskImages` {#vm-tools-diskImages} + +Shorthand for `vmTools.diskImageFuns. { }`. diff --git a/doc/build-helpers/testers.chapter.md b/doc/build-helpers/testers.chapter.md new file mode 100644 index 00000000000..b2a581c3dd8 --- /dev/null +++ b/doc/build-helpers/testers.chapter.md @@ -0,0 +1,245 @@ +# Testers {#chap-testers} +This chapter describes several testing builders which are available in the `testers` namespace. + +## `hasPkgConfigModules` {#tester-hasPkgConfigModules} + + +[]{#tester-hasPkgConfigModule} +Checks whether a package exposes a given list of `pkg-config` modules. +If the `moduleNames` argument is omitted, `hasPkgConfigModules` will +use `meta.pkgConfigModules`. + +Example: + +```nix +passthru.tests.pkg-config = testers.hasPkgConfigModules { + package = finalAttrs.finalPackage; + moduleNames = [ "libfoo" ]; +}; +``` + +If the package in question has `meta.pkgConfigModules` set, it is even simpler: + +```nix +passthru.tests.pkg-config = testers.hasPkgConfigModules { + package = finalAttrs.finalPackage; +}; + +meta.pkgConfigModules = [ "libfoo" ]; +``` + +## `testVersion` {#tester-testVersion} + +Checks the command output contains the specified version + +Although simplistic, this test assures that the main program +can run. While there's no substitute for a real test case, +it does catch dynamic linking errors and such. It also provides +some protection against accidentally building the wrong version, +for example when using an 'old' hash in a fixed-output derivation. + +Examples: + +```nix +passthru.tests.version = testers.testVersion { package = hello; }; + +passthru.tests.version = testers.testVersion { + package = seaweedfs; + command = "weed version"; +}; + +passthru.tests.version = testers.testVersion { + package = key; + command = "KeY --help"; + # Wrong '2.5' version in the code. Drop on next version. + version = "2.5"; +}; + +passthru.tests.version = testers.testVersion { + package = ghr; + # The output needs to contain the 'version' string without any prefix or suffix. + version = "v${version}"; +}; +``` + +## `testBuildFailure` {#tester-testBuildFailure} + +Make sure that a build does not succeed. This is useful for testing testers. + +This returns a derivation with an override on the builder, with the following effects: + + - Fail the build when the original builder succeeds + - Move `$out` to `$out/result`, if it exists (assuming `out` is the default output) + - Save the build log to `$out/testBuildFailure.log` (same) + +Example: + +```nix +runCommand "example" { + failed = testers.testBuildFailure (runCommand "fail" {} '' + echo ok-ish >$out + echo failing though + exit 3 + ''); +} '' + grep -F 'ok-ish' $failed/result + grep -F 'failing though' $failed/testBuildFailure.log + [[ 3 = $(cat $failed/testBuildFailure.exit) ]] + touch $out +''; +``` + +While `testBuildFailure` is designed to keep changes to the original builder's +environment to a minimum, some small changes are inevitable. + + - The file `$TMPDIR/testBuildFailure.log` is present. It should not be deleted. + - `stdout` and `stderr` are a pipe instead of a tty. This could be improved. + - One or two extra processes are present in the sandbox during the original + builder's execution. + - The derivation and output hashes are different, but not unusual. + - The derivation includes a dependency on `buildPackages.bash` and + `expect-failure.sh`, which is built to include a transitive dependency on + `buildPackages.coreutils` and possibly more. These are not added to `PATH` + or any other environment variable, so they should be hard to observe. + +## `testEqualContents` {#tester-equalContents} + +Check that two paths have the same contents. + +Example: + +```nix +testers.testEqualContents { + assertion = "sed -e performs replacement"; + expected = writeText "expected" '' + foo baz baz + ''; + actual = runCommand "actual" { + # not really necessary for a package that's in stdenv + nativeBuildInputs = [ gnused ]; + base = writeText "base" '' + foo bar baz + ''; + } '' + sed -e 's/bar/baz/g' $base >$out + ''; +} +``` + +## `testEqualDerivation` {#tester-testEqualDerivation} + +Checks that two packages produce the exact same build instructions. + +This can be used to make sure that a certain difference of configuration, +such as the presence of an overlay does not cause a cache miss. + +When the derivations are equal, the return value is an empty file. +Otherwise, the build log explains the difference via `nix-diff`. + +Example: + +```nix +testers.testEqualDerivation + "The hello package must stay the same when enabling checks." + hello + (hello.overrideAttrs(o: { doCheck = true; })) +``` + +## `invalidateFetcherByDrvHash` {#tester-invalidateFetcherByDrvHash} + +Use the derivation hash to invalidate the output via name, for testing. + +Type: `(a@{ name, ... } -> Derivation) -> a -> Derivation` + +Normally, fixed output derivations can and should be cached by their output +hash only, but for testing we want to re-fetch everytime the fetcher changes. + +Changes to the fetcher become apparent in the drvPath, which is a hash of +how to fetch, rather than a fixed store path. +By inserting this hash into the name, we can make sure to re-run the fetcher +every time the fetcher changes. + +This relies on the assumption that Nix isn't clever enough to reuse its +database of local store contents to optimize fetching. + +You might notice that the "salted" name derives from the normal invocation, +not the final derivation. `invalidateFetcherByDrvHash` has to invoke the fetcher +function twice: once to get a derivation hash, and again to produce the final +fixed output derivation. + +Example: + +```nix +tests.fetchgit = testers.invalidateFetcherByDrvHash fetchgit { + name = "nix-source"; + url = "https://github.com/NixOS/nix"; + rev = "9d9dbe6ed05854e03811c361a3380e09183f4f4a"; + hash = "sha256-7DszvbCNTjpzGRmpIVAWXk20P0/XTrWZ79KSOGLrUWY="; +}; +``` + +## `runNixOSTest` {#tester-runNixOSTest} + +A helper function that behaves exactly like the NixOS `runTest`, except it also assigns this Nixpkgs package set as the `pkgs` of the test and makes the `nixpkgs.*` options read-only. + +If your test is part of the Nixpkgs repository, or if you need a more general entrypoint, see ["Calling a test" in the NixOS manual](https://nixos.org/manual/nixos/stable/index.html#sec-calling-nixos-tests). + +Example: + +```nix +pkgs.testers.runNixOSTest ({ lib, ... }: { + name = "hello"; + nodes.machine = { pkgs, ... }: { + environment.systemPackages = [ pkgs.hello ]; + }; + testScript = '' + machine.succeed("hello") + ''; +}) +``` + +## `nixosTest` {#tester-nixosTest} + +Run a NixOS VM network test using this evaluation of Nixpkgs. + +NOTE: This function is primarily for external use. NixOS itself uses `make-test-python.nix` directly. Packages defined in Nixpkgs [reuse NixOS tests via `nixosTests`, plural](#ssec-nixos-tests-linking). + +It is mostly equivalent to the function `import ./make-test-python.nix` from the +[NixOS manual](https://nixos.org/nixos/manual/index.html#sec-nixos-tests), +except that the current application of Nixpkgs (`pkgs`) will be used, instead of +letting NixOS invoke Nixpkgs anew. + +If a test machine needs to set NixOS options under `nixpkgs`, it must set only the +`nixpkgs.pkgs` option. + +### Parameter {#tester-nixosTest-parameter} + +A [NixOS VM test network](https://nixos.org/nixos/manual/index.html#sec-nixos-tests), or path to it. Example: + +```nix +{ + name = "my-test"; + nodes = { + machine1 = { lib, pkgs, nodes, ... }: { + environment.systemPackages = [ pkgs.hello ]; + services.foo.enable = true; + }; + # machine2 = ...; + }; + testScript = '' + start_all() + machine1.wait_for_unit("foo.service") + machine1.succeed("hello | foo-send") + ''; +} +``` + +### Result {#tester-nixosTest-result} + +A derivation that runs the VM test. + +Notable attributes: + + * `nodes`: the evaluated NixOS configurations. Useful for debugging and exploring the configuration. + + * `driverInteractive`: a script that launches an interactive Python session in the context of the `testScript`. diff --git a/doc/build-helpers/trivial-build-helpers.chapter.md b/doc/build-helpers/trivial-build-helpers.chapter.md new file mode 100644 index 00000000000..a0cda86a660 --- /dev/null +++ b/doc/build-helpers/trivial-build-helpers.chapter.md @@ -0,0 +1,240 @@ +# Trivial build helpers {#chap-trivial-builders} + +Nixpkgs provides a couple of functions that help with building derivations. The most important one, `stdenv.mkDerivation`, has already been documented above. The following functions wrap `stdenv.mkDerivation`, making it easier to use in certain cases. + +## `runCommand` {#trivial-builder-runCommand} + +`runCommand :: String -> AttrSet -> String -> Derivation` + +`runCommand name drvAttrs buildCommand` returns a derivation that is built by running the specified shell commands. + +`name :: String` +: The name that Nix will append to the store path in the same way that `stdenv.mkDerivation` uses its `name` attribute. + +`drvAttr :: AttrSet` +: Attributes to pass to the underlying call to [`stdenv.mkDerivation`](#chap-stdenv). + +`buildCommand :: String` +: Shell commands to run in the derivation builder. + + ::: {.note} + You have to create a file or directory `$out` for Nix to be able to run the builder successfully. + ::: + +::: {.example #ex-runcommand-simple} +# Invocation of `runCommand` + +```nix +(import {}).runCommand "my-example" {} '' + echo My example command is running + + mkdir $out + + echo I can write data to the Nix store > $out/message + + echo I can also run basic commands like: + + echo ls + ls + + echo whoami + whoami + + echo date + date +'' +``` +::: + +## `runCommandCC` {#trivial-builder-runCommandCC} + +This works just like `runCommand`. The only difference is that it also provides a C compiler in `buildCommand`'s environment. To minimize your dependencies, you should only use this if you are sure you will need a C compiler as part of running your command. + +## `runCommandLocal` {#trivial-builder-runCommandLocal} + +Variant of `runCommand` that forces the derivation to be built locally, it is not substituted. This is intended for very cheap commands (<1s execution time). It saves on the network round-trip and can speed up a build. + +::: {.note} +This sets [`allowSubstitutes` to `false`](https://nixos.org/nix/manual/#adv-attr-allowSubstitutes), so only use `runCommandLocal` if you are certain the user will always have a builder for the `system` of the derivation. This should be true for most trivial use cases (e.g., just copying some files to a different location or adding symlinks) because there the `system` is usually the same as `builtins.currentSystem`. +::: + +## `writeTextFile`, `writeText`, `writeTextDir`, `writeScript`, `writeScriptBin` {#trivial-builder-writeText} + +These functions write `text` to the Nix store. This is useful for creating scripts from Nix expressions. `writeTextFile` takes an attribute set and expects two arguments, `name` and `text`. `name` corresponds to the name used in the Nix store path. `text` will be the contents of the file. You can also set `executable` to true to make this file have the executable bit set. + +Many more commands wrap `writeTextFile` including `writeText`, `writeTextDir`, `writeScript`, and `writeScriptBin`. These are convenience functions over `writeTextFile`. + +Here are a few examples: +```nix +# Writes my-file to /nix/store/ +writeTextFile { + name = "my-file"; + text = '' + Contents of File + ''; +} +# See also the `writeText` helper function below. + +# Writes executable my-file to /nix/store//bin/my-file +writeTextFile { + name = "my-file"; + text = '' + Contents of File + ''; + executable = true; + destination = "/bin/my-file"; +} +# Writes contents of file to /nix/store/ +writeText "my-file" + '' + Contents of File + ''; +# Writes contents of file to /nix/store//share/my-file +writeTextDir "share/my-file" + '' + Contents of File + ''; +# Writes my-file to /nix/store/ and makes executable +writeScript "my-file" + '' + Contents of File + ''; +# Writes my-file to /nix/store//bin/my-file and makes executable. +writeScriptBin "my-file" + '' + Contents of File + ''; +# Writes my-file to /nix/store/ and makes executable. +writeShellScript "my-file" + '' + Contents of File + ''; +# Writes my-file to /nix/store//bin/my-file and makes executable. +writeShellScriptBin "my-file" + '' + Contents of File + ''; + +``` + +## `concatTextFile`, `concatText`, `concatScript` {#trivial-builder-concatText} + +These functions concatenate `files` to the Nix store in a single file. This is useful for configuration files structured in lines of text. `concatTextFile` takes an attribute set and expects two arguments, `name` and `files`. `name` corresponds to the name used in the Nix store path. `files` will be the files to be concatenated. You can also set `executable` to true to make this file have the executable bit set. +`concatText` and`concatScript` are simple wrappers over `concatTextFile`. + +Here are a few examples: +```nix + +# Writes my-file to /nix/store/ +concatTextFile { + name = "my-file"; + files = [ drv1 "${drv2}/path/to/file" ]; +} +# See also the `concatText` helper function below. + +# Writes executable my-file to /nix/store//bin/my-file +concatTextFile { + name = "my-file"; + files = [ drv1 "${drv2}/path/to/file" ]; + executable = true; + destination = "/bin/my-file"; +} +# Writes contents of files to /nix/store/ +concatText "my-file" [ file1 file2 ] + +# Writes contents of files to /nix/store/ +concatScript "my-file" [ file1 file2 ] +``` + +## `writeShellApplication` {#trivial-builder-writeShellApplication} + +This can be used to easily produce a shell script that has some dependencies (`runtimeInputs`). It automatically sets the `PATH` of the script to contain all of the listed inputs, sets some sanity shellopts (`errexit`, `nounset`, `pipefail`), and checks the resulting script with [`shellcheck`](https://github.com/koalaman/shellcheck). + +For example, look at the following code: + +```nix +writeShellApplication { + name = "show-nixos-org"; + + runtimeInputs = [ curl w3m ]; + + text = '' + curl -s 'https://nixos.org' | w3m -dump -T text/html + ''; +} +``` + +Unlike with normal `writeShellScriptBin`, there is no need to manually write out `${curl}/bin/curl`, setting the PATH +was handled by `writeShellApplication`. Moreover, the script is being checked with `shellcheck` for more strict +validation. + +## `symlinkJoin` {#trivial-builder-symlinkJoin} + +This can be used to put many derivations into the same directory structure. It works by creating a new derivation and adding symlinks to each of the paths listed. It expects two arguments, `name`, and `paths`. `name` is the name used in the Nix store path for the created derivation. `paths` is a list of paths that will be symlinked. These paths can be to Nix store derivations or any other subdirectory contained within. +Here is an example: +```nix +# adds symlinks of hello and stack to current build and prints "links added" +symlinkJoin { name = "myexample"; paths = [ pkgs.hello pkgs.stack ]; postBuild = "echo links added"; } +``` +This creates a derivation with a directory structure like the following: +``` +/nix/store/sglsr5g079a5235hy29da3mq3hv8sjmm-myexample +|-- bin +| |-- hello -> /nix/store/qy93dp4a3rqyn2mz63fbxjg228hffwyw-hello-2.10/bin/hello +| `-- stack -> /nix/store/6lzdpxshx78281vy056lbk553ijsdr44-stack-2.1.3.1/bin/stack +`-- share + |-- bash-completion + | `-- completions + | `-- stack -> /nix/store/6lzdpxshx78281vy056lbk553ijsdr44-stack-2.1.3.1/share/bash-completion/completions/stack + |-- fish + | `-- vendor_completions.d + | `-- stack.fish -> /nix/store/6lzdpxshx78281vy056lbk553ijsdr44-stack-2.1.3.1/share/fish/vendor_completions.d/stack.fish +... +``` + +## `writeReferencesToFile` {#trivial-builder-writeReferencesToFile} + +Writes the closure of transitive dependencies to a file. + +This produces the equivalent of `nix-store -q --requisites`. + +For example, + +```nix +writeReferencesToFile (writeScriptBin "hi" ''${hello}/bin/hello'') +``` + +produces an output path `/nix/store/-runtime-deps` containing + +```nix +/nix/store/-hello-2.10 +/nix/store/-hi +/nix/store/-libidn2-2.3.0 +/nix/store/-libunistring-0.9.10 +/nix/store/-glibc-2.32-40 +``` + +You can see that this includes `hi`, the original input path, +`hello`, which is a direct reference, but also +the other paths that are indirectly required to run `hello`. + +## `writeDirectReferencesToFile` {#trivial-builder-writeDirectReferencesToFile} + +Writes the set of references to the output file, that is, their immediate dependencies. + +This produces the equivalent of `nix-store -q --references`. + +For example, + +```nix +writeDirectReferencesToFile (writeScriptBin "hi" ''${hello}/bin/hello'') +``` + +produces an output path `/nix/store/-runtime-references` containing + +```nix +/nix/store/-hello-2.10 +``` + +but none of `hello`'s dependencies because those are not referenced directly +by `hi`'s output. diff --git a/doc/builders.md b/doc/builders.md deleted file mode 100644 index 9a238add083..00000000000 --- a/doc/builders.md +++ /dev/null @@ -1,12 +0,0 @@ -# Builders {#part-builders} - -```{=include=} chapters -builders/fetchers.chapter.md -builders/trivial-builders.chapter.md -builders/testers.chapter.md -builders/special.md -builders/images.md -hooks/index.md -languages-frameworks/index.md -packages/index.md -``` diff --git a/doc/builders/fetchers.chapter.md b/doc/builders/fetchers.chapter.md deleted file mode 100644 index 7bd1bbd6de0..00000000000 --- a/doc/builders/fetchers.chapter.md +++ /dev/null @@ -1,283 +0,0 @@ -# Fetchers {#chap-pkgs-fetchers} - -Building software with Nix often requires downloading source code and other files from the internet. -To this end, Nixpkgs provides *fetchers*: functions to obtain remote sources via various protocols and services. - -Nixpkgs fetchers differ from built-in fetchers such as [`builtins.fetchTarball`](https://nixos.org/manual/nix/stable/language/builtins.html#builtins-fetchTarball): -- A built-in fetcher will download and cache files at evaluation time and produce a [store path](https://nixos.org/manual/nix/stable/glossary#gloss-store-path). - A Nixpkgs fetcher will create a ([fixed-output](https://nixos.org/manual/nix/stable/glossary#gloss-fixed-output-derivation)) [derivation](https://nixos.org/manual/nix/stable/language/derivations), and files are downloaded at build time. -- Built-in fetchers will invalidate their cache after [`tarball-ttl`](https://nixos.org/manual/nix/stable/command-ref/conf-file#conf-tarball-ttl) expires, and will require network activity to check if the cache entry is up to date. - Nixpkgs fetchers only re-download if the specified hash changes or the store object is not otherwise available. -- Built-in fetchers do not use [substituters](https://nixos.org/manual/nix/stable/command-ref/conf-file#conf-substituters). - Derivations produced by Nixpkgs fetchers will use any configured binary cache transparently. - -This significantly reduces the time needed to evaluate the entirety of Nixpkgs, and allows [Hydra](https://nixos.org/hydra) to retain and re-distribute sources used by Nixpkgs in the [public binary cache](https://cache.nixos.org). -For these reasons, built-in fetchers are not allowed in Nixpkgs source code. - -The following table shows an overview of the differences: - -| Fetchers | Download | Output | Cache | Re-download when | -|-|-|-|-|-| -| `builtins.fetch*` | evaluation time | store path | `/nix/store`, `~/.cache/nix` | `tarball-ttl` expires, cache miss in `~/.cache/nix`, output store object not in local store | -| `pkgs.fetch*` | build time | derivation | `/nix/store`, substituters | output store object not available | - -## Caveats {#chap-pkgs-fetchers-caveats} - -The fact that the hash belongs to the Nix derivation output and not the file itself can lead to confusion. -For example, consider the following fetcher: - -```nix -fetchurl { - url = "http://www.example.org/hello-1.0.tar.gz"; - hash = "sha256-lTeyxzJNQeMdu1IVdovNMtgn77jRIhSybLdMbTkf2Ww="; -}; -``` - -A common mistake is to update a fetcher’s URL, or a version parameter, without updating the hash. - -```nix -fetchurl { - url = "http://www.example.org/hello-1.1.tar.gz"; - hash = "sha256-lTeyxzJNQeMdu1IVdovNMtgn77jRIhSybLdMbTkf2Ww="; -}; -``` - -**This will reuse the old contents**. -Remember to invalidate the hash argument, in this case by setting the `hash` attribute to an empty string. - -```nix -fetchurl { - url = "http://www.example.org/hello-1.1.tar.gz"; - hash = ""; -}; -``` - -Use the resulting error message to determine the correct hash. - -``` -error: hash mismatch in fixed-output derivation '/path/to/my.drv': - specified: sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - got: sha256-lTeyxzJNQeMdu1IVdovNMtgn77jRIhSybLdMbTkf2Ww= -``` - -A similar problem arises while testing changes to a fetcher's implementation. If the output of the derivation already exists in the Nix store, test failures can go undetected. The [`invalidateFetcherByDrvHash`](#tester-invalidateFetcherByDrvHash) function helps prevent reusing cached derivations. - -## `fetchurl` and `fetchzip` {#fetchurl} - -Two basic fetchers are `fetchurl` and `fetchzip`. Both of these have two required arguments, a URL and a hash. The hash is typically `hash`, although many more hash algorithms are supported. Nixpkgs contributors are currently recommended to use `hash`. This hash will be used by Nix to identify your source. A typical usage of `fetchurl` is provided below. - -```nix -{ stdenv, fetchurl }: - -stdenv.mkDerivation { - name = "hello"; - src = fetchurl { - url = "http://www.example.org/hello.tar.gz"; - hash = "sha256-BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB="; - }; -} -``` - -The main difference between `fetchurl` and `fetchzip` is in how they store the contents. `fetchurl` will store the unaltered contents of the URL within the Nix store. `fetchzip` on the other hand, will decompress the archive for you, making files and directories directly accessible in the future. `fetchzip` can only be used with archives. Despite the name, `fetchzip` is not limited to .zip files and can also be used with any tarball. - -## `fetchpatch` {#fetchpatch} - -`fetchpatch` works very similarly to `fetchurl` with the same arguments expected. It expects patch files as a source and performs normalization on them before computing the checksum. For example, it will remove comments or other unstable parts that are sometimes added by version control systems and can change over time. - -- `relative`: Similar to using `git-diff`'s `--relative` flag, only keep changes inside the specified directory, making paths relative to it. -- `stripLen`: Remove the first `stripLen` components of pathnames in the patch. -- `decode`: Pipe the downloaded data through this command before processing it as a patch. -- `extraPrefix`: Prefix pathnames by this string. -- `excludes`: Exclude files matching these patterns (applies after the above arguments). -- `includes`: Include only files matching these patterns (applies after the above arguments). -- `revert`: Revert the patch. - -Note that because the checksum is computed after applying these effects, using or modifying these arguments will have no effect unless the `hash` argument is changed as well. - - -Most other fetchers return a directory rather than a single file. - - -## `fetchDebianPatch` {#fetchdebianpatch} - -A wrapper around `fetchpatch`, which takes: -- `patch` and `hash`: the patch's filename, - and its hash after normalization by `fetchpatch` ; -- `pname`: the Debian source package's name ; -- `version`: the upstream version number ; -- `debianRevision`: the [Debian revision number] if applicable ; -- the `area` of the Debian archive: `main` (default), `contrib`, or `non-free`. - -Here is an example of `fetchDebianPatch` in action: - -```nix -{ lib -, fetchDebianPatch -, buildPythonPackage -}: - -buildPythonPackage rec { - pname = "pysimplesoap"; - version = "1.16.2"; - src = ...; - - patches = [ - (fetchDebianPatch { - inherit pname version; - debianRevision = "5"; - name = "Add-quotes-to-SOAPAction-header-in-SoapClient.patch"; - hash = "sha256-xA8Wnrpr31H8wy3zHSNfezFNjUJt1HbSXn3qUMzeKc0="; - }) - ]; - - ... -} -``` - -Patches are fetched from `sources.debian.org`, and so must come from a -package version that was uploaded to the Debian archive. Packages may -be removed from there once that specific version isn't in any suite -anymore (stable, testing, unstable, etc.), so maintainers should use -`copy-tarballs.pl` to archive the patch if it needs to be available -longer-term. - -[Debian revision number]: https://www.debian.org/doc/debian-policy/ch-controlfields.html#version - - -## `fetchsvn` {#fetchsvn} - -Used with Subversion. Expects `url` to a Subversion directory, `rev`, and `hash`. - -## `fetchgit` {#fetchgit} - -Used with Git. Expects `url` to a Git repo, `rev`, and `hash`. `rev` in this case can be full the git commit id (SHA1 hash) or a tag name like `refs/tags/v1.0`. - -Additionally, the following optional arguments can be given: `fetchSubmodules = true` makes `fetchgit` also fetch the submodules of a repository. If `deepClone` is set to true, the entire repository is cloned as opposing to just creating a shallow clone. `deepClone = true` also implies `leaveDotGit = true` which means that the `.git` directory of the clone won't be removed after checkout. - -If only parts of the repository are needed, `sparseCheckout` can be used. This will prevent git from fetching unnecessary blobs from server, see [git sparse-checkout](https://git-scm.com/docs/git-sparse-checkout) for more information: - -```nix -{ stdenv, fetchgit }: - -stdenv.mkDerivation { - name = "hello"; - src = fetchgit { - url = "https://..."; - sparseCheckout = [ - "directory/to/be/included" - "another/directory" - ]; - hash = "sha256-AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA="; - }; -} -``` - -## `fetchfossil` {#fetchfossil} - -Used with Fossil. Expects `url` to a Fossil archive, `rev`, and `hash`. - -## `fetchcvs` {#fetchcvs} - -Used with CVS. Expects `cvsRoot`, `tag`, and `hash`. - -## `fetchhg` {#fetchhg} - -Used with Mercurial. Expects `url`, `rev`, and `hash`. - -A number of fetcher functions wrap part of `fetchurl` and `fetchzip`. They are mainly convenience functions intended for commonly used destinations of source code in Nixpkgs. These wrapper fetchers are listed below. - -## `fetchFromGitea` {#fetchfromgitea} - -`fetchFromGitea` expects five arguments. `domain` is the gitea server name. `owner` is a string corresponding to the Gitea user or organization that controls this repository. `repo` corresponds to the name of the software repository. These are located at the top of every Gitea HTML page as `owner`/`repo`. `rev` corresponds to the Git commit hash or tag (e.g `v1.0`) that will be downloaded from Git. Finally, `hash` corresponds to the hash of the extracted directory. Again, other hash algorithms are also available but `hash` is currently preferred. - -## `fetchFromGitHub` {#fetchfromgithub} - -`fetchFromGitHub` expects four arguments. `owner` is a string corresponding to the GitHub user or organization that controls this repository. `repo` corresponds to the name of the software repository. These are located at the top of every GitHub HTML page as `owner`/`repo`. `rev` corresponds to the Git commit hash or tag (e.g `v1.0`) that will be downloaded from Git. Finally, `hash` corresponds to the hash of the extracted directory. Again, other hash algorithms are also available, but `hash` is currently preferred. - -To use a different GitHub instance, use `githubBase` (defaults to `"github.com"`). - -`fetchFromGitHub` uses `fetchzip` to download the source archive generated by GitHub for the specified revision. If `leaveDotGit`, `deepClone` or `fetchSubmodules` are set to `true`, `fetchFromGitHub` will use `fetchgit` instead. Refer to its section for documentation of these options. - -## `fetchFromGitLab` {#fetchfromgitlab} - -This is used with GitLab repositories. It behaves similarly to `fetchFromGitHub`, and expects `owner`, `repo`, `rev`, and `hash`. - -To use a specific GitLab instance, use `domain` (defaults to `"gitlab.com"`). - - -## `fetchFromGitiles` {#fetchfromgitiles} - -This is used with Gitiles repositories. The arguments expected are similar to `fetchgit`. - -## `fetchFromBitbucket` {#fetchfrombitbucket} - -This is used with BitBucket repositories. The arguments expected are very similar to `fetchFromGitHub` above. - -## `fetchFromSavannah` {#fetchfromsavannah} - -This is used with Savannah repositories. The arguments expected are very similar to `fetchFromGitHub` above. - -## `fetchFromRepoOrCz` {#fetchfromrepoorcz} - -This is used with repo.or.cz repositories. The arguments expected are very similar to `fetchFromGitHub` above. - -## `fetchFromSourcehut` {#fetchfromsourcehut} - -This is used with sourcehut repositories. Similar to `fetchFromGitHub` above, -it expects `owner`, `repo`, `rev` and `hash`, but don't forget the tilde (~) -in front of the username! Expected arguments also include `vc` ("git" (default) -or "hg"), `domain` and `fetchSubmodules`. - -If `fetchSubmodules` is `true`, `fetchFromSourcehut` uses `fetchgit` -or `fetchhg` with `fetchSubmodules` or `fetchSubrepos` set to `true`, -respectively. Otherwise, the fetcher uses `fetchzip`. - -## `requireFile` {#requirefile} - -`requireFile` allows requesting files that cannot be fetched automatically, but whose content is known. -This is a useful last-resort workaround for license restrictions that prohibit redistribution, or for downloads that are only accessible after authenticating interactively in a browser. -If the requested file is present in the Nix store, the resulting derivation will not be built, because its expected output is already available. -Otherwise, the builder will run, but fail with a message explaining to the user how to provide the file. The following code, for example: - -``` -requireFile { - name = "jdk-${version}_linux-x64_bin.tar.gz"; - url = "https://www.oracle.com/java/technologies/javase-jdk11-downloads.html"; - hash = "sha256-lL00+F7jjT71nlKJ7HRQuUQ7kkxVYlZh//5msD8sjeI="; -} -``` -results in this error message: -``` -*** -Unfortunately, we cannot download file jdk-11.0.10_linux-x64_bin.tar.gz automatically. -Please go to https://www.oracle.com/java/technologies/javase-jdk11-downloads.html to download it yourself, and add it to the Nix store -using either - nix-store --add-fixed sha256 jdk-11.0.10_linux-x64_bin.tar.gz -or - nix-prefetch-url --type sha256 file:///path/to/jdk-11.0.10_linux-x64_bin.tar.gz - -*** -``` -## `fetchtorrent` {#fetchtorrent} - -`fetchtorrent` expects two arguments. `url` which can either be a Magnet URI (Magnet Link) such as `magnet:?xt=urn:btih:dd8255ecdc7ca55fb0bbf81323d87062db1f6d1c` or an HTTP URL pointing to a `.torrent` file. It can also take a `config` argument which will craft a `settings.json` configuration file and give it to `transmission`, the underlying program that is performing the fetch. The available config options for `transmission` can be found [here](https://github.com/transmission/transmission/blob/main/docs/Editing-Configuration-Files.md#options) - -``` -{ fetchtorrent }: - -fetchtorrent { - config = { peer-limit-global = 100; }; - url = "magnet:?xt=urn:btih:dd8255ecdc7ca55fb0bbf81323d87062db1f6d1c"; - sha256 = ""; -} -``` - -### Parameters {#fetchtorrent-parameters} - -- `url`: Magnet URI (Magnet Link) such as `magnet:?xt=urn:btih:dd8255ecdc7ca55fb0bbf81323d87062db1f6d1c` or an HTTP URL pointing to a `.torrent` file. - -- `backend`: Which bittorrent program to use. Default: `"transmission"`. Valid values are `"rqbit"` or `"transmission"`. These are the two most suitable torrent clients for fetching in a fixed-output derivation at the time of writing, as they can be easily exited after usage. `rqbit` is written in Rust and has a smaller closure size than `transmission`, and the performance and peer discovery properties differs between these clients, requiring experimentation to decide upon which is the best. - -- `config`: When using `transmission` as the `backend`, a json configuration can - be supplied to transmission. Refer to the [upstream documentation](https://github.com/transmission/transmission/blob/main/docs/Editing-Configuration-Files.md) for information on how to configure. - diff --git a/doc/builders/images.md b/doc/builders/images.md deleted file mode 100644 index 5596784bfa4..00000000000 --- a/doc/builders/images.md +++ /dev/null @@ -1,13 +0,0 @@ -# Images {#chap-images} - -This chapter describes tools for creating various types of images. - -```{=include=} sections -images/appimagetools.section.md -images/dockertools.section.md -images/ocitools.section.md -images/snaptools.section.md -images/portableservice.section.md -images/makediskimage.section.md -images/binarycache.section.md -``` diff --git a/doc/builders/images/appimagetools.section.md b/doc/builders/images/appimagetools.section.md deleted file mode 100644 index 0c72315a26e..00000000000 --- a/doc/builders/images/appimagetools.section.md +++ /dev/null @@ -1,48 +0,0 @@ -# pkgs.appimageTools {#sec-pkgs-appimageTools} - -`pkgs.appimageTools` is a set of functions for extracting and wrapping [AppImage](https://appimage.org/) files. They are meant to be used if traditional packaging from source is infeasible, or it would take too long. To quickly run an AppImage file, `pkgs.appimage-run` can be used as well. - -::: {.warning} -The `appimageTools` API is unstable and may be subject to backwards-incompatible changes in the future. -::: - -## AppImage formats {#ssec-pkgs-appimageTools-formats} - -There are different formats for AppImages, see [the specification](https://github.com/AppImage/AppImageSpec/blob/74ad9ca2f94bf864a4a0dac1f369dd4f00bd1c28/draft.md#image-format) for details. - -- Type 1 images are ISO 9660 files that are also ELF executables. -- Type 2 images are ELF executables with an appended filesystem. - -They can be told apart with `file -k`: - -```ShellSession -$ file -k type1.AppImage -type1.AppImage: ELF 64-bit LSB executable, x86-64, version 1 (SYSV) ISO 9660 CD-ROM filesystem data 'AppImage' (Lepton 3.x), scale 0-0, -spot sensor temperature 0.000000, unit celsius, color scheme 0, calibration: offset 0.000000, slope 0.000000, dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.18, BuildID[sha1]=d629f6099d2344ad82818172add1d38c5e11bc6d, stripped\012- data - -$ file -k type2.AppImage -type2.AppImage: ELF 64-bit LSB executable, x86-64, version 1 (SYSV) (Lepton 3.x), scale 232-60668, spot sensor temperature -4.187500, color scheme 15, show scale bar, calibration: offset -0.000000, slope 0.000000 (Lepton 2.x), scale 4111-45000, spot sensor temperature 412442.250000, color scheme 3, minimum point enabled, calibration: offset -75402534979642766821519867692934234112.000000, slope 5815371847733706829839455140374904832.000000, dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.18, BuildID[sha1]=79dcc4e55a61c293c5e19edbd8d65b202842579f, stripped\012- data -``` - -Note how the type 1 AppImage is described as an `ISO 9660 CD-ROM filesystem`, and the type 2 AppImage is not. - -## Wrapping {#ssec-pkgs-appimageTools-wrapping} - -Depending on the type of AppImage you're wrapping, you'll have to use `wrapType1` or `wrapType2`. - -```nix -appimageTools.wrapType2 { # or wrapType1 - name = "patchwork"; - src = fetchurl { - url = "https://github.com/ssbc/patchwork/releases/download/v3.11.4/Patchwork-3.11.4-linux-x86_64.AppImage"; - hash = "sha256-OqTitCeZ6xmWbqYTXp8sDrmVgTNjPZNW0hzUPW++mq4="; - }; - extraPkgs = pkgs: with pkgs; [ ]; -} -``` - -- `name` specifies the name of the resulting image. -- `src` specifies the AppImage file to extract. -- `extraPkgs` allows you to pass a function to include additional packages inside the FHS environment your AppImage is going to run in. There are a few ways to learn which dependencies an application needs: - - Looking through the extracted AppImage files, reading its scripts and running `patchelf` and `ldd` on its executables. This can also be done in `appimage-run`, by setting `APPIMAGE_DEBUG_EXEC=bash`. - - Running `strace -vfefile` on the wrapped executable, looking for libraries that can't be found. diff --git a/doc/builders/images/binarycache.section.md b/doc/builders/images/binarycache.section.md deleted file mode 100644 index 62e47dad7c6..00000000000 --- a/doc/builders/images/binarycache.section.md +++ /dev/null @@ -1,49 +0,0 @@ -# pkgs.mkBinaryCache {#sec-pkgs-binary-cache} - -`pkgs.mkBinaryCache` is a function for creating Nix flat-file binary caches. Such a cache exists as a directory on disk, and can be used as a Nix substituter by passing `--substituter file:///path/to/cache` to Nix commands. - -Nix packages are most commonly shared between machines using [HTTP, SSH, or S3](https://nixos.org/manual/nix/stable/package-management/sharing-packages.html), but a flat-file binary cache can still be useful in some situations. For example, you can copy it directly to another machine, or make it available on a network file system. It can also be a convenient way to make some Nix packages available inside a container via bind-mounting. - -Note that this function is meant for advanced use-cases. The more idiomatic way to work with flat-file binary caches is via the [nix-copy-closure](https://nixos.org/manual/nix/stable/command-ref/nix-copy-closure.html) command. You may also want to consider [dockerTools](#sec-pkgs-dockerTools) for your containerization needs. - -## Example {#sec-pkgs-binary-cache-example} - -The following derivation will construct a flat-file binary cache containing the closure of `hello`. - -```nix -mkBinaryCache { - rootPaths = [hello]; -} -``` - -- `rootPaths` specifies a list of root derivations. The transitive closure of these derivations' outputs will be copied into the cache. - -Here's an example of building and using the cache. - -Build the cache on one machine, `host1`: - -```shellSession -nix-build -E 'with import {}; mkBinaryCache { rootPaths = [hello]; }' -``` - -```shellSession -/nix/store/cc0562q828rnjqjyfj23d5q162gb424g-binary-cache -``` - -Copy the resulting directory to the other machine, `host2`: - -```shellSession -scp result host2:/tmp/hello-cache -``` - -Substitute the derivation using the flat-file binary cache on the other machine, `host2`: -```shellSession -nix-build -A hello '' \ - --option require-sigs false \ - --option trusted-substituters file:///tmp/hello-cache \ - --option substituters file:///tmp/hello-cache -``` - -```shellSession -/nix/store/gl5a41azbpsadfkfmbilh9yk40dh5dl0-hello-2.12.1 -``` diff --git a/doc/builders/images/dockertools.section.md b/doc/builders/images/dockertools.section.md deleted file mode 100644 index 42d6e297f52..00000000000 --- a/doc/builders/images/dockertools.section.md +++ /dev/null @@ -1,539 +0,0 @@ -# pkgs.dockerTools {#sec-pkgs-dockerTools} - -`pkgs.dockerTools` is a set of functions for creating and manipulating Docker images according to the [Docker Image Specification v1.2.0](https://github.com/moby/moby/blob/master/image/spec/v1.2.md#docker-image-specification-v120). Docker itself is not used to perform any of the operations done by these functions. - -## buildImage {#ssec-pkgs-dockerTools-buildImage} - -This function is analogous to the `docker build` command, in that it can be used to build a Docker-compatible repository tarball containing a single image with one or multiple layers. As such, the result is suitable for being loaded in Docker with `docker load`. - -The parameters of `buildImage` with relative example values are described below: - -[]{#ex-dockerTools-buildImage} -[]{#ex-dockerTools-buildImage-runAsRoot} - -```nix -buildImage { - name = "redis"; - tag = "latest"; - - fromImage = someBaseImage; - fromImageName = null; - fromImageTag = "latest"; - - copyToRoot = pkgs.buildEnv { - name = "image-root"; - paths = [ pkgs.redis ]; - pathsToLink = [ "/bin" ]; - }; - - runAsRoot = '' - #!${pkgs.runtimeShell} - mkdir -p /data - ''; - - config = { - Cmd = [ "/bin/redis-server" ]; - WorkingDir = "/data"; - Volumes = { "/data" = { }; }; - }; - - diskSize = 1024; - buildVMMemorySize = 512; -} -``` - -The above example will build a Docker image `redis/latest` from the given base image. Loading and running this image in Docker results in `redis-server` being started automatically. - -- `name` specifies the name of the resulting image. This is the only required argument for `buildImage`. - -- `tag` specifies the tag of the resulting image. By default it's `null`, which indicates that the nix output hash will be used as tag. - -- `fromImage` is the repository tarball containing the base image. It must be a valid Docker image, such as exported by `docker save`. By default it's `null`, which can be seen as equivalent to `FROM scratch` of a `Dockerfile`. - -- `fromImageName` can be used to further specify the base image within the repository, in case it contains multiple images. By default it's `null`, in which case `buildImage` will peek the first image available in the repository. - -- `fromImageTag` can be used to further specify the tag of the base image within the repository, in case an image contains multiple tags. By default it's `null`, in which case `buildImage` will peek the first tag available for the base image. - -- `copyToRoot` is a derivation that will be copied in the new layer of the resulting image. This can be similarly seen as `ADD contents/ /` in a `Dockerfile`. By default it's `null`. - -- `runAsRoot` is a bash script that will run as root in an environment that overlays the existing layers of the base image with the new resulting layer, including the previously copied `contents` derivation. This can be similarly seen as `RUN ...` in a `Dockerfile`. - -> **_NOTE:_** Using this parameter requires the `kvm` device to be available. - -- `config` is used to specify the configuration of the containers that will be started off the built image in Docker. The available options are listed in the [Docker Image Specification v1.2.0](https://github.com/moby/moby/blob/master/image/spec/v1.2.md#image-json-field-descriptions). - -- `architecture` is _optional_ and used to specify the image architecture, this is useful for multi-architecture builds that don't need cross compiling. If not specified it will default to `hostPlatform`. - -- `diskSize` is used to specify the disk size of the VM used to build the image in megabytes. By default it's 1024 MiB. - -- `buildVMMemorySize` is used to specify the memory size of the VM to build the image in megabytes. By default it's 512 MiB. - -After the new layer has been created, its closure (to which `contents`, `config` and `runAsRoot` contribute) will be copied in the layer itself. Only new dependencies that are not already in the existing layers will be copied. - -At the end of the process, only one new single layer will be produced and added to the resulting image. - -The resulting repository will only list the single image `image/tag`. In the case of [the `buildImage` example](#ex-dockerTools-buildImage), it would be `redis/latest`. - -It is possible to inspect the arguments with which an image was built using its `buildArgs` attribute. - -> **_NOTE:_** If you see errors similar to `getProtocolByName: does not exist (no such protocol name: tcp)` you may need to add `pkgs.iana-etc` to `contents`. - -> **_NOTE:_** If you see errors similar to `Error_Protocol ("certificate has unknown CA",True,UnknownCa)` you may need to add `pkgs.cacert` to `contents`. - -By default `buildImage` will use a static date of one second past the UNIX Epoch. This allows `buildImage` to produce binary reproducible images. When listing images with `docker images`, the newly created images will be listed like this: - -```ShellSession -$ docker images -REPOSITORY TAG IMAGE ID CREATED SIZE -hello latest 08c791c7846e 48 years ago 25.2MB -``` - -You can break binary reproducibility but have a sorted, meaningful `CREATED` column by setting `created` to `now`. - -```nix -pkgs.dockerTools.buildImage { - name = "hello"; - tag = "latest"; - created = "now"; - copyToRoot = pkgs.buildEnv { - name = "image-root"; - paths = [ pkgs.hello ]; - pathsToLink = [ "/bin" ]; - }; - - config.Cmd = [ "/bin/hello" ]; -} -``` - -Now the Docker CLI will display a reasonable date and sort the images as expected: - -```ShellSession -$ docker images -REPOSITORY TAG IMAGE ID CREATED SIZE -hello latest de2bf4786de6 About a minute ago 25.2MB -``` - -However, the produced images will not be binary reproducible. - -## buildLayeredImage {#ssec-pkgs-dockerTools-buildLayeredImage} - -Create a Docker image with many of the store paths being on their own layer to improve sharing between images. The image is realized into the Nix store as a gzipped tarball. Depending on the intended usage, many users might prefer to use `streamLayeredImage` instead, which this function uses internally. - -`name` - -: The name of the resulting image. - -`tag` _optional_ - -: Tag of the generated image. - - *Default:* the output path's hash - -`fromImage` _optional_ - -: The repository tarball containing the base image. It must be a valid Docker image, such as one exported by `docker save`. - - *Default:* `null`, which can be seen as equivalent to `FROM scratch` of a `Dockerfile`. - -`contents` _optional_ - -: Top-level paths in the container. Either a single derivation, or a list of derivations. - - *Default:* `[]` - -`config` _optional_ - -`architecture` is _optional_ and used to specify the image architecture, this is useful for multi-architecture builds that don't need cross compiling. If not specified it will default to `hostPlatform`. - -: Run-time configuration of the container. A full list of the options available is in the [Docker Image Specification v1.2.0](https://github.com/moby/moby/blob/master/image/spec/v1.2.md#image-json-field-descriptions). - - *Default:* `{}` - -`created` _optional_ - -: Date and time the layers were created. Follows the same `now` exception supported by `buildImage`. - - *Default:* `1970-01-01T00:00:01Z` - -`maxLayers` _optional_ - -: Maximum number of layers to create. - - *Default:* `100` - - *Maximum:* `125` - -`extraCommands` _optional_ - -: Shell commands to run while building the final layer, without access to most of the layer contents. Changes to this layer are "on top" of all the other layers, so can create additional directories and files. - -`fakeRootCommands` _optional_ - -: Shell commands to run while creating the archive for the final layer in a fakeroot environment. Unlike `extraCommands`, you can run `chown` to change the owners of the files in the archive, changing fakeroot's state instead of the real filesystem. The latter would require privileges that the build user does not have. Static binaries do not interact with the fakeroot environment. By default all files in the archive will be owned by root. - -`enableFakechroot` _optional_ - -: Whether to run in `fakeRootCommands` in `fakechroot`, making programs behave as though `/` is the root of the image being created, while files in the Nix store are available as usual. This allows scripts that perform installation in `/` to work as expected. Considering that `fakechroot` is implemented via the same mechanism as `fakeroot`, the same caveats apply. - - *Default:* `false` - -### Behavior of `contents` in the final image {#dockerTools-buildLayeredImage-arg-contents} - -Each path directly listed in `contents` will have a symlink in the root of the image. - -For example: - -```nix -pkgs.dockerTools.buildLayeredImage { - name = "hello"; - contents = [ pkgs.hello ]; -} -``` - -will create symlinks for all the paths in the `hello` package: - -```ShellSession -/bin/hello -> /nix/store/h1zb1padqbbb7jicsvkmrym3r6snphxg-hello-2.10/bin/hello -/share/info/hello.info -> /nix/store/h1zb1padqbbb7jicsvkmrym3r6snphxg-hello-2.10/share/info/hello.info -/share/locale/bg/LC_MESSAGES/hello.mo -> /nix/store/h1zb1padqbbb7jicsvkmrym3r6snphxg-hello-2.10/share/locale/bg/LC_MESSAGES/hello.mo -``` - -### Automatic inclusion of `config` references {#dockerTools-buildLayeredImage-arg-config} - -The closure of `config` is automatically included in the closure of the final image. - -This allows you to make very simple Docker images with very little code. This container will start up and run `hello`: - -```nix -pkgs.dockerTools.buildLayeredImage { - name = "hello"; - config.Cmd = [ "${pkgs.hello}/bin/hello" ]; -} -``` - -### Adjusting `maxLayers` {#dockerTools-buildLayeredImage-arg-maxLayers} - -Increasing the `maxLayers` increases the number of layers which have a chance to be shared between different images. - -Modern Docker installations support up to 128 layers, but older versions support as few as 42. - -If the produced image will not be extended by other Docker builds, it is safe to set `maxLayers` to `128`. However, it will be impossible to extend the image further. - -The first (`maxLayers-2`) most "popular" paths will have their own individual layers, then layer \#`maxLayers-1` will contain all the remaining "unpopular" paths, and finally layer \#`maxLayers` will contain the Image configuration. - -Docker's Layers are not inherently ordered, they are content-addressable and are not explicitly layered until they are composed in to an Image. - -## streamLayeredImage {#ssec-pkgs-dockerTools-streamLayeredImage} - -Builds a script which, when run, will stream an uncompressed tarball of a Docker image to stdout. The arguments to this function are as for `buildLayeredImage`. This method of constructing an image does not realize the image into the Nix store, so it saves on IO and disk/cache space, particularly with large images. - -The image produced by running the output script can be piped directly into `docker load`, to load it into the local docker daemon: - -```ShellSession -$(nix-build) | docker load -``` - -Alternatively, the image be piped via `gzip` into `skopeo`, e.g., to copy it into a registry: - -```ShellSession -$(nix-build) | gzip --fast | skopeo copy docker-archive:/dev/stdin docker://some_docker_registry/myimage:tag -``` - -## pullImage {#ssec-pkgs-dockerTools-fetchFromRegistry} - -This function is analogous to the `docker pull` command, in that it can be used to pull a Docker image from a Docker registry. By default [Docker Hub](https://hub.docker.com/) is used to pull images. - -Its parameters are described in the example below: - -```nix -pullImage { - imageName = "nixos/nix"; - imageDigest = - "sha256:473a2b527958665554806aea24d0131bacec46d23af09fef4598eeab331850fa"; - finalImageName = "nix"; - finalImageTag = "2.11.1"; - sha256 = "sha256-qvhj+Hlmviz+KEBVmsyPIzTB3QlVAFzwAY1zDPIBGxc="; - os = "linux"; - arch = "x86_64"; -} -``` - -- `imageName` specifies the name of the image to be downloaded, which can also include the registry namespace (e.g. `nixos`). This argument is required. - -- `imageDigest` specifies the digest of the image to be downloaded. This argument is required. - -- `finalImageName`, if specified, this is the name of the image to be created. Note it is never used to fetch the image since we prefer to rely on the immutable digest ID. By default it's equal to `imageName`. - -- `finalImageTag`, if specified, this is the tag of the image to be created. Note it is never used to fetch the image since we prefer to rely on the immutable digest ID. By default it's `latest`. - -- `sha256` is the checksum of the whole fetched image. This argument is required. - -- `os`, if specified, is the operating system of the fetched image. By default it's `linux`. - -- `arch`, if specified, is the cpu architecture of the fetched image. By default it's `x86_64`. - -`nix-prefetch-docker` command can be used to get required image parameters: - -```ShellSession -$ nix run nixpkgs#nix-prefetch-docker -- --image-name mysql --image-tag 5 -``` - -Since a given `imageName` may transparently refer to a manifest list of images which support multiple architectures and/or operating systems, you can supply the `--os` and `--arch` arguments to specify exactly which image you want. By default it will match the OS and architecture of the host the command is run on. - -```ShellSession -$ nix-prefetch-docker --image-name mysql --image-tag 5 --arch x86_64 --os linux -``` - -Desired image name and tag can be set using `--final-image-name` and `--final-image-tag` arguments: - -```ShellSession -$ nix-prefetch-docker --image-name mysql --image-tag 5 --final-image-name eu.gcr.io/my-project/mysql --final-image-tag prod -``` - -## exportImage {#ssec-pkgs-dockerTools-exportImage} - -This function is analogous to the `docker export` command, in that it can be used to flatten a Docker image that contains multiple layers. It is in fact the result of the merge of all the layers of the image. As such, the result is suitable for being imported in Docker with `docker import`. - -> **_NOTE:_** Using this function requires the `kvm` device to be available. - -The parameters of `exportImage` are the following: - -```nix -exportImage { - fromImage = someLayeredImage; - fromImageName = null; - fromImageTag = null; - - name = someLayeredImage.name; -} -``` - -The parameters relative to the base image have the same synopsis as described in [buildImage](#ssec-pkgs-dockerTools-buildImage), except that `fromImage` is the only required argument in this case. - -The `name` argument is the name of the derivation output, which defaults to `fromImage.name`. - -## Environment Helpers {#ssec-pkgs-dockerTools-helpers} - -Some packages expect certain files to be available globally. -When building an image from scratch (i.e. without `fromImage`), these files are missing. -`pkgs.dockerTools` provides some helpers to set up an environment with the necessary files. -You can include them in `copyToRoot` like this: - -```nix -buildImage { - name = "environment-example"; - copyToRoot = with pkgs.dockerTools; [ - usrBinEnv - binSh - caCertificates - fakeNss - ]; -} -``` - -### usrBinEnv {#sssec-pkgs-dockerTools-helpers-usrBinEnv} - -This provides the `env` utility at `/usr/bin/env`. - -### binSh {#sssec-pkgs-dockerTools-helpers-binSh} - -This provides `bashInteractive` at `/bin/sh`. - -### caCertificates {#sssec-pkgs-dockerTools-helpers-caCertificates} - -This sets up `/etc/ssl/certs/ca-certificates.crt`. - -### fakeNss {#sssec-pkgs-dockerTools-helpers-fakeNss} - -Provides `/etc/passwd` and `/etc/group` that contain root and nobody. -Useful when packaging binaries that insist on using nss to look up -username/groups (like nginx). - -### shadowSetup {#ssec-pkgs-dockerTools-shadowSetup} - -This constant string is a helper for setting up the base files for managing users and groups, only if such files don't exist already. It is suitable for being used in a [`buildImage` `runAsRoot`](#ex-dockerTools-buildImage-runAsRoot) script for cases like in the example below: - -```nix -buildImage { - name = "shadow-basic"; - - runAsRoot = '' - #!${pkgs.runtimeShell} - ${pkgs.dockerTools.shadowSetup} - groupadd -r redis - useradd -r -g redis redis - mkdir /data - chown redis:redis /data - ''; -} -``` - -Creating base files like `/etc/passwd` or `/etc/login.defs` is necessary for shadow-utils to manipulate users and groups. - -## fakeNss {#ssec-pkgs-dockerTools-fakeNss} - -If your primary goal is providing a basic skeleton for user lookups to work, -and/or a lesser privileged user, adding `pkgs.fakeNss` to -the container image root might be the better choice than a custom script -running `useradd` and friends. - -It provides a `/etc/passwd` and `/etc/group`, containing `root` and `nobody` -users and groups. - -It also provides a `/etc/nsswitch.conf`, configuring NSS host resolution to -first check `/etc/hosts`, before checking DNS, as the default in the absence of -a config file (`dns [!UNAVAIL=return] files`) is quite unexpected. - -You can pair it with `binSh`, which provides `bin/sh` as a symlink -to `bashInteractive` (as `/bin/sh` is configured as a shell). - -```nix -buildImage { - name = "shadow-basic"; - - copyToRoot = pkgs.buildEnv { - name = "image-root"; - paths = [ binSh pkgs.fakeNss ]; - pathsToLink = [ "/bin" "/etc" "/var" ]; - }; -} -``` - -## buildNixShellImage {#ssec-pkgs-dockerTools-buildNixShellImage} - -Create a Docker image that sets up an environment similar to that of running `nix-shell` on a derivation. -When run in Docker, this environment somewhat resembles the Nix sandbox typically used by `nix-build`, with a major difference being that access to the internet is allowed. -It additionally also behaves like an interactive `nix-shell`, running things like `shellHook` and setting an interactive prompt. -If the derivation is fully buildable (i.e. `nix-build` can be used on it), running `buildDerivation` inside such a Docker image will build the derivation, with all its outputs being available in the correct `/nix/store` paths, pointed to by the respective environment variables like `$out`, etc. - -::: {.warning} -The behavior doesn't match `nix-shell` or `nix-build` exactly and this function is known not to work correctly for e.g. fixed-output derivations, content-addressed derivations, impure derivations and other special types of derivations. -::: - -### Arguments {#ssec-pkgs-dockerTools-buildNixShellImage-arguments} - -`drv` - -: The derivation on which to base the Docker image. - - Adding packages to the Docker image is possible by e.g. extending the list of `nativeBuildInputs` of this derivation like - - ```nix - buildNixShellImage { - drv = someDrv.overrideAttrs (old: { - nativeBuildInputs = old.nativeBuildInputs or [] ++ [ - somethingExtra - ]; - }); - # ... - } - ``` - - Similarly, you can extend the image initialization script by extending `shellHook` - -`name` _optional_ - -: The name of the resulting image. - - *Default:* `drv.name + "-env"` - -`tag` _optional_ - -: Tag of the generated image. - - *Default:* the resulting image derivation output path's hash - -`uid`/`gid` _optional_ - -: The user/group ID to run the container as. This is like a `nixbld` build user. - - *Default:* 1000/1000 - -`homeDirectory` _optional_ - -: The home directory of the user the container is running as - - *Default:* `/build` - -`shell` _optional_ - -: The path to the `bash` binary to use as the shell. This shell is started when running the image. - - *Default:* `pkgs.bashInteractive + "/bin/bash"` - -`command` _optional_ - -: Run this command in the environment of the derivation, in an interactive shell. See the `--command` option in the [`nix-shell` documentation](https://nixos.org/manual/nix/stable/command-ref/nix-shell.html?highlight=nix-shell#options). - - *Default:* (none) - -`run` _optional_ - -: Same as `command`, but runs the command in a non-interactive shell instead. See the `--run` option in the [`nix-shell` documentation](https://nixos.org/manual/nix/stable/command-ref/nix-shell.html?highlight=nix-shell#options). - - *Default:* (none) - -### Example {#ssec-pkgs-dockerTools-buildNixShellImage-example} - -The following shows how to build the `pkgs.hello` package inside a Docker container built with `buildNixShellImage`. - -```nix -with import {}; -dockerTools.buildNixShellImage { - drv = hello; -} -``` - -Build the derivation: - -```console -nix-build hello.nix -``` - - these 8 derivations will be built: - /nix/store/xmw3a5ln29rdalavcxk1w3m4zb2n7kk6-nix-shell-rc.drv - ... - Creating layer 56 from paths: ['/nix/store/crpnj8ssz0va2q0p5ibv9i6k6n52gcya-stdenv-linux'] - Creating layer 57 with customisation... - Adding manifests... - Done. - /nix/store/cpyn1lc897ghx0rhr2xy49jvyn52bazv-hello-2.12-env.tar.gz - -Load the image: - -```console -docker load -i result -``` - - 0d9f4c4cd109: Loading layer [==================================================>] 2.56MB/2.56MB - ... - ab1d897c0697: Loading layer [==================================================>] 10.24kB/10.24kB - Loaded image: hello-2.12-env:pgj9h98nal555415faa43vsydg161bdz - -Run the container: - -```console -docker run -it hello-2.12-env:pgj9h98nal555415faa43vsydg161bdz -``` - - [nix-shell:/build]$ - -In the running container, run the build: - -```console -buildDerivation -``` - - unpacking sources - unpacking source archive /nix/store/8nqv6kshb3vs5q5bs2k600xpj5bkavkc-hello-2.12.tar.gz - ... - patching script interpreter paths in /nix/store/z5wwy5nagzy15gag42vv61c2agdpz2f2-hello-2.12 - checking for references to /build/ in /nix/store/z5wwy5nagzy15gag42vv61c2agdpz2f2-hello-2.12... - -Check the build result: - -```console -$out/bin/hello -``` - - Hello, world! diff --git a/doc/builders/images/makediskimage.section.md b/doc/builders/images/makediskimage.section.md deleted file mode 100644 index e50479c4e83..00000000000 --- a/doc/builders/images/makediskimage.section.md +++ /dev/null @@ -1,108 +0,0 @@ -# `` {#sec-make-disk-image} - -`` is a function to create _disk images_ in multiple formats: raw, QCOW2 (QEMU), QCOW2-Compressed (compressed version), VDI (VirtualBox), VPC (VirtualPC). - -This function can create images in two ways: - -- using `cptofs` without any virtual machine to create a Nix store disk image, -- using a virtual machine to create a full NixOS installation. - -When testing early-boot or lifecycle parts of NixOS such as a bootloader or multiple generations, it is necessary to opt for a full NixOS system installation. -Whereas for many web servers, applications, it is possible to work with a Nix store only disk image and is faster to build. - -NixOS tests also use this function when preparing the VM. The `cptofs` method is used when `virtualisation.useBootLoader` is false (the default). Otherwise the second method is used. - -## Features {#sec-make-disk-image-features} - -For reference, read the function signature source code for documentation on arguments: . -Features are separated in various sections depending on if you opt for a Nix-store only image or a full NixOS image. - -### Common {#sec-make-disk-image-features-common} - -- arbitrary NixOS configuration -- automatic or bound disk size: `diskSize` parameter, `additionalSpace` can be set when `diskSize` is `auto` to add a constant of disk space -- multiple partition table layouts: EFI, legacy, legacy + GPT, hybrid, none through `partitionTableType` parameter -- OVMF or EFI firmwares and variables templates can be customized -- root filesystem `fsType` can be customized to whatever `mkfs.${fsType}` exist during operations -- root filesystem label can be customized, defaults to `nix-store` if it's a Nix store image, otherwise `nixpkgs/nixos` -- arbitrary code can be executed after disk image was produced with `postVM` -- the current nixpkgs can be realized as a channel in the disk image, which will change the hash of the image when the sources are updated -- additional store paths can be provided through `additionalPaths` - -### Full NixOS image {#sec-make-disk-image-features-full-image} - -- arbitrary contents with permissions can be placed in the target filesystem using `contents` -- a `/etc/nixpkgs/nixos/configuration.nix` can be provided through `configFile` -- bootloaders are supported -- EFI variables can be mutated during image production and the result is exposed in `$out` -- boot partition size when partition table is `efi` or `hybrid` - -### On bit-to-bit reproducibility {#sec-make-disk-image-features-reproducibility} - -Images are **NOT** deterministic, please do not hesitate to try to fix this, source of determinisms are (not exhaustive) : - -- bootloader installation have timestamps -- SQLite Nix store database contain registration times -- `/etc/shadow` is in a non-deterministic order - -A `deterministic` flag is available for best efforts determinism. - -## Usage {#sec-make-disk-image-usage} - -To produce a Nix-store only image: -```nix -let - pkgs = import {}; - lib = pkgs.lib; - make-disk-image = import ; -in - make-disk-image { - inherit pkgs lib; - config = {}; - additionalPaths = [ ]; - format = "qcow2"; - onlyNixStore = true; - partitionTableType = "none"; - installBootLoader = false; - touchEFIVars = false; - diskSize = "auto"; - additionalSpace = "0M"; # Defaults to 512M. - copyChannel = false; - } -``` - -Some arguments can be left out, they are shown explicitly for the sake of the example. - -Building this derivation will provide a QCOW2 disk image containing only the Nix store and its registration information. - -To produce a NixOS installation image disk with UEFI and bootloader installed: -```nix -let - pkgs = import {}; - lib = pkgs.lib; - make-disk-image = import ; - evalConfig = import ; -in - make-disk-image { - inherit pkgs lib; - config = evalConfig { - modules = [ - { - fileSystems."/" = { device = "/dev/vda"; fsType = "ext4"; autoFormat = true; }; - boot.grub.device = "/dev/vda"; - } - ]; - }; - format = "qcow2"; - onlyNixStore = false; - partitionTableType = "legacy+gpt"; - installBootLoader = true; - touchEFIVars = true; - diskSize = "auto"; - additionalSpace = "0M"; # Defaults to 512M. - copyChannel = false; - memSize = 2048; # Qemu VM memory size in megabytes. Defaults to 1024M. - } -``` - - diff --git a/doc/builders/images/ocitools.section.md b/doc/builders/images/ocitools.section.md deleted file mode 100644 index c35f65bce00..00000000000 --- a/doc/builders/images/ocitools.section.md +++ /dev/null @@ -1,37 +0,0 @@ -# pkgs.ociTools {#sec-pkgs-ociTools} - -`pkgs.ociTools` is a set of functions for creating containers according to the [OCI container specification v1.0.0](https://github.com/opencontainers/runtime-spec). Beyond that, it makes no assumptions about the container runner you choose to use to run the created container. - -## buildContainer {#ssec-pkgs-ociTools-buildContainer} - -This function creates a simple OCI container that runs a single command inside of it. An OCI container consists of a `config.json` and a rootfs directory. The nix store of the container will contain all referenced dependencies of the given command. - -The parameters of `buildContainer` with an example value are described below: - -```nix -buildContainer { - args = [ - (with pkgs; - writeScript "run.sh" '' - #!${bash}/bin/bash - exec ${bash}/bin/bash - '').outPath - ]; - - mounts = { - "/data" = { - type = "none"; - source = "/var/lib/mydata"; - options = [ "bind" ]; - }; - }; - - readonly = false; -} -``` - -- `args` specifies a set of arguments to run inside the container. This is the only required argument for `buildContainer`. All referenced packages inside the derivation will be made available inside the container. - -- `mounts` specifies additional mount points chosen by the user. By default only a minimal set of necessary filesystems are mounted into the container (e.g procfs, cgroupfs) - -- `readonly` makes the container's rootfs read-only if it is set to true. The default value is false `false`. diff --git a/doc/builders/images/portableservice.section.md b/doc/builders/images/portableservice.section.md deleted file mode 100644 index 5400928b158..00000000000 --- a/doc/builders/images/portableservice.section.md +++ /dev/null @@ -1,81 +0,0 @@ -# pkgs.portableService {#sec-pkgs-portableService} - -`pkgs.portableService` is a function to create _portable service images_, -as read-only, immutable, `squashfs` archives. - -systemd supports a concept of [Portable Services](https://systemd.io/PORTABLE_SERVICES/). -Portable Services are a delivery method for system services that uses two specific features of container management: - -* Applications are bundled. I.e. multiple services, their binaries and - all their dependencies are packaged in an image, and are run directly from it. -* Stricter default security policies, i.e. sandboxing of applications. - -This allows using Nix to build images which can be run on many recent Linux distributions. - -The primary tool for interacting with Portable Services is `portablectl`, -and they are managed by the `systemd-portabled` system service. - -::: {.note} -Portable services are supported starting with systemd 239 (released on 2018-06-22). -::: - -A very simple example of using `portableService` is described below: - -[]{#ex-pkgs-portableService} - -```nix -pkgs.portableService { - pname = "demo"; - version = "1.0"; - units = [ demo-service demo-socket ]; -} -``` - -The above example will build an squashfs archive image in `result/$pname_$version.raw`. The image will contain the -file system structure as required by the portable service specification, and a subset of the Nix store with all the -dependencies of the two derivations in the `units` list. -`units` must be a list of derivations, and their names must be prefixed with the service name (`"demo"` in this case). -Otherwise `systemd-portabled` will ignore them. - -::: {.note} -The `.raw` file extension of the image is required by the portable services specification. -::: - -Some other options available are: -- `description`, `homepage` - - Are added to the `/etc/os-release` in the image and are shown by the portable services tooling. - Default to empty values, not added to os-release. -- `symlinks` - - A list of attribute sets {object, symlink}. Symlinks will be created in the root filesystem of the image to - objects in the Nix store. Defaults to an empty list. -- `contents` - - A list of additional derivations to be included in the image Nix store, as-is. Defaults to an empty list. -- `squashfsTools` - - Defaults to `pkgs.squashfsTools`, allows you to override the package that provides `mksquashfs`. -- `squash-compression`, `squash-block-size` - - Options to `mksquashfs`. Default to `"xz -Xdict-size 100%"` and `"1M"` respectively. - -A typical usage of `symlinks` would be: -```nix - symlinks = [ - { object = "${pkgs.cacert}/etc/ssl"; symlink = "/etc/ssl"; } - { object = "${pkgs.bash}/bin/bash"; symlink = "/bin/sh"; } - { object = "${pkgs.php}/bin/php"; symlink = "/usr/bin/php"; } - ]; -``` -to create these symlinks for legacy applications that assume them existing globally. - -Once the image is created, and deployed on a host in `/var/lib/portables/`, you can attach the image and run the service. As root run: -```console -portablectl attach demo_1.0.raw -systemctl enable --now demo.socket -systemctl enable --now demo.service -``` -::: {.note} -See the [man page](https://www.freedesktop.org/software/systemd/man/portablectl.html) of `portablectl` for more info on its usage. -::: diff --git a/doc/builders/images/snaptools.section.md b/doc/builders/images/snaptools.section.md deleted file mode 100644 index 259fa1b0618..00000000000 --- a/doc/builders/images/snaptools.section.md +++ /dev/null @@ -1,71 +0,0 @@ -# pkgs.snapTools {#sec-pkgs-snapTools} - -`pkgs.snapTools` is a set of functions for creating Snapcraft images. Snap and Snapcraft is not used to perform these operations. - -## The makeSnap Function {#ssec-pkgs-snapTools-makeSnap-signature} - -`makeSnap` takes a single named argument, `meta`. This argument mirrors [the upstream `snap.yaml` format](https://docs.snapcraft.io/snap-format) exactly. - -The `base` should not be specified, as `makeSnap` will force set it. - -Currently, `makeSnap` does not support creating GUI stubs. - -## Build a Hello World Snap {#ssec-pkgs-snapTools-build-a-snap-hello} - -The following expression packages GNU Hello as a Snapcraft snap. - -``` {#ex-snapTools-buildSnap-hello .nix} -let - inherit (import { }) snapTools hello; -in snapTools.makeSnap { - meta = { - name = "hello"; - summary = hello.meta.description; - description = hello.meta.longDescription; - architectures = [ "amd64" ]; - confinement = "strict"; - apps.hello.command = "${hello}/bin/hello"; - }; -} -``` - -`nix-build` this expression and install it with `snap install ./result --dangerous`. `hello` will now be the Snapcraft version of the package. - -## Build a Graphical Snap {#ssec-pkgs-snapTools-build-a-snap-firefox} - -Graphical programs require many more integrations with the host. This example uses Firefox as an example because it is one of the most complicated programs we could package. - -``` {#ex-snapTools-buildSnap-firefox .nix} -let - inherit (import { }) snapTools firefox; -in snapTools.makeSnap { - meta = { - name = "nix-example-firefox"; - summary = firefox.meta.description; - architectures = [ "amd64" ]; - apps.nix-example-firefox = { - command = "${firefox}/bin/firefox"; - plugs = [ - "pulseaudio" - "camera" - "browser-support" - "avahi-observe" - "cups-control" - "desktop" - "desktop-legacy" - "gsettings" - "home" - "network" - "mount-observe" - "removable-media" - "x11" - ]; - }; - confinement = "strict"; - }; -} -``` - -`nix-build` this expression and install it with `snap install ./result --dangerous`. `nix-example-firefox` will now be the Snapcraft version of the Firefox package. - -The specific meaning behind plugs can be looked up in the [Snapcraft interface documentation](https://docs.snapcraft.io/supported-interfaces). diff --git a/doc/builders/special.md b/doc/builders/special.md deleted file mode 100644 index aa6d9e4d98d..00000000000 --- a/doc/builders/special.md +++ /dev/null @@ -1,10 +0,0 @@ -# Special builders {#chap-special} - -This chapter describes several special builders. - -```{=include=} sections -special/fhs-environments.section.md -special/makesetuphook.section.md -special/mkshell.section.md -special/vm-tools.section.md -``` diff --git a/doc/builders/special/fhs-environments.section.md b/doc/builders/special/fhs-environments.section.md deleted file mode 100644 index 8145fbd730f..00000000000 --- a/doc/builders/special/fhs-environments.section.md +++ /dev/null @@ -1,56 +0,0 @@ -# buildFHSEnv {#sec-fhs-environments} - -`buildFHSEnv` provides a way to build and run FHS-compatible lightweight sandboxes. It creates an isolated root filesystem with the host's `/nix/store`, so its footprint in terms of disk space is quite small. This allows you to run software which is hard or unfeasible to patch for NixOS; 3rd-party source trees with FHS assumptions, games distributed as tarballs, software with integrity checking and/or external self-updated binaries for instance. -It uses Linux' namespaces feature to create temporary lightweight environments which are destroyed after all child processes exit, without requiring elevated privileges. It works similar to containerisation technology such as Docker or FlatPak but provides no security-relevant separation from the host system. - -Accepted arguments are: - -- `name` - The name of the environment and the wrapper executable. -- `targetPkgs` - Packages to be installed for the main host's architecture (i.e. x86_64 on x86_64 installations). Along with libraries binaries are also installed. -- `multiPkgs` - Packages to be installed for all architectures supported by a host (i.e. i686 and x86_64 on x86_64 installations). Only libraries are installed by default. -- `multiArch` - Whether to install 32bit multiPkgs into the FHSEnv in 64bit environments -- `extraBuildCommands` - Additional commands to be executed for finalizing the directory structure. -- `extraBuildCommandsMulti` - Like `extraBuildCommands`, but executed only on multilib architectures. -- `extraOutputsToInstall` - Additional derivation outputs to be linked for both target and multi-architecture packages. -- `extraInstallCommands` - Additional commands to be executed for finalizing the derivation with runner script. -- `runScript` - A shell command to be executed inside the sandbox. It defaults to `bash`. Command line arguments passed to the resulting wrapper are appended to this command by default. - This command must be escaped; i.e. `"foo app" --do-stuff --with "some file"`. See `lib.escapeShellArgs`. -- `profile` - Optional script for `/etc/profile` within the sandbox. - -You can create a simple environment using a `shell.nix` like this: - -```nix -{ pkgs ? import {} }: - -(pkgs.buildFHSEnv { - name = "simple-x11-env"; - targetPkgs = pkgs: (with pkgs; [ - udev - alsa-lib - ]) ++ (with pkgs.xorg; [ - libX11 - libXcursor - libXrandr - ]); - multiPkgs = pkgs: (with pkgs; [ - udev - alsa-lib - ]); - runScript = "bash"; -}).env -``` - -Running `nix-shell` on it would drop you into a shell inside an FHS env where those libraries and binaries are available in FHS-compliant paths. Applications that expect an FHS structure (i.e. proprietary binaries) can run inside this environment without modification. -You can build a wrapper by running your binary in `runScript`, e.g. `./bin/start.sh`. Relative paths work as expected. - -Additionally, the FHS builder links all relocated gsettings-schemas (the glib setup-hook moves them to `share/gsettings-schemas/${name}/glib-2.0/schemas`) to their standard FHS location. This means you don't need to wrap binaries with `wrapGAppsHook`. diff --git a/doc/builders/special/makesetuphook.section.md b/doc/builders/special/makesetuphook.section.md deleted file mode 100644 index eb042412137..00000000000 --- a/doc/builders/special/makesetuphook.section.md +++ /dev/null @@ -1,37 +0,0 @@ -# pkgs.makeSetupHook {#sec-pkgs.makeSetupHook} - -`pkgs.makeSetupHook` is a builder that produces hooks that go in to `nativeBuildInputs` - -## Usage {#sec-pkgs.makeSetupHook-usage} - -```nix -pkgs.makeSetupHook { - name = "something-hook"; - propagatedBuildInputs = [ pkgs.commandsomething ]; - depsTargetTargetPropagated = [ pkgs.libsomething ]; -} ./script.sh -``` - -### setup hook that depends on the hello package and runs hello and @shell@ is substituted with path to bash {#sec-pkgs.makeSetupHook-usage-example} - -```nix -pkgs.makeSetupHook { - name = "run-hello-hook"; - propagatedBuildInputs = [ pkgs.hello ]; - substitutions = { shell = "${pkgs.bash}/bin/bash"; }; - passthru.tests.greeting = callPackage ./test { }; - meta.platforms = lib.platforms.linux; -} (writeScript "run-hello-hook.sh" '' - #!@shell@ - hello -'') -``` - -## Attributes {#sec-pkgs.makeSetupHook-attributes} - -* `name` Set the name of the hook. -* `propagatedBuildInputs` Runtime dependencies (such as binaries) of the hook. -* `depsTargetTargetPropagated` Non-binary dependencies. -* `meta` -* `passthru` -* `substitutions` Variables for `substituteAll` diff --git a/doc/builders/special/mkshell.section.md b/doc/builders/special/mkshell.section.md deleted file mode 100644 index 96d43535955..00000000000 --- a/doc/builders/special/mkshell.section.md +++ /dev/null @@ -1,37 +0,0 @@ -# pkgs.mkShell {#sec-pkgs-mkShell} - -`pkgs.mkShell` is a specialized `stdenv.mkDerivation` that removes some -repetition when using it with `nix-shell` (or `nix develop`). - -## Usage {#sec-pkgs-mkShell-usage} - -Here is a common usage example: - -```nix -{ pkgs ? import {} }: -pkgs.mkShell { - packages = [ pkgs.gnumake ]; - - inputsFrom = [ pkgs.hello pkgs.gnutar ]; - - shellHook = '' - export DEBUG=1 - ''; -} -``` - -## Attributes {#sec-pkgs-mkShell-attributes} - -* `name` (default: `nix-shell`). Set the name of the derivation. -* `packages` (default: `[]`). Add executable packages to the `nix-shell` environment. -* `inputsFrom` (default: `[]`). Add build dependencies of the listed derivations to the `nix-shell` environment. -* `shellHook` (default: `""`). Bash statements that are executed by `nix-shell`. - -... all the attributes of `stdenv.mkDerivation`. - -## Building the shell {#sec-pkgs-mkShell-building} - -This derivation output will contain a text file that contains a reference to -all the build inputs. This is useful in CI where we want to make sure that -every derivation, and its dependencies, build properly. Or when creating a GC -root so that the build dependencies don't get garbage-collected. diff --git a/doc/builders/special/vm-tools.section.md b/doc/builders/special/vm-tools.section.md deleted file mode 100644 index 8feab04902d..00000000000 --- a/doc/builders/special/vm-tools.section.md +++ /dev/null @@ -1,148 +0,0 @@ -# vmTools {#sec-vm-tools} - -A set of VM related utilities, that help in building some packages in more advanced scenarios. - -## `vmTools.createEmptyImage` {#vm-tools-createEmptyImage} - -A bash script fragment that produces a disk image at `destination`. - -### Attributes {#vm-tools-createEmptyImage-attributes} - -* `size`. The disk size, in MiB. -* `fullName`. Name that will be written to `${destination}/nix-support/full-name`. -* `destination` (optional, default `$out`). Where to write the image files. - -## `vmTools.runInLinuxVM` {#vm-tools-runInLinuxVM} - -Run a derivation in a Linux virtual machine (using Qemu/KVM). -By default, there is no disk image; the root filesystem is a `tmpfs`, and the Nix store is shared with the host (via the [9P protocol](https://wiki.qemu.org/Documentation/9p#9p_Protocol)). -Thus, any pure Nix derivation should run unmodified. - -If the build fails and Nix is run with the `-K/--keep-failed` option, a script `run-vm` will be left behind in the temporary build directory that allows you to boot into the VM and debug it interactively. - -### Attributes {#vm-tools-runInLinuxVM-attributes} - -* `preVM` (optional). Shell command to be evaluated *before* the VM is started (i.e., on the host). -* `memSize` (optional, default `512`). The memory size of the VM in MiB. -* `diskImage` (optional). A file system image to be attached to `/dev/sda`. - Note that currently we expect the image to contain a filesystem, not a full disk image with a partition table etc. - -### Examples {#vm-tools-runInLinuxVM-examples} - -Build the derivation hello inside a VM: -```nix -{ pkgs }: with pkgs; with vmTools; -runInLinuxVM hello -``` - -Build inside a VM with extra memory: -```nix -{ pkgs }: with pkgs; with vmTools; -runInLinuxVM (hello.overrideAttrs (_: { memSize = 1024; })) -``` - -Use VM with a disk image (implicitly sets `diskImage`, see [`vmTools.createEmptyImage`](#vm-tools-createEmptyImage)): -```nix -{ pkgs }: with pkgs; with vmTools; -runInLinuxVM (hello.overrideAttrs (_: { - preVM = createEmptyImage { - size = 1024; - fullName = "vm-image"; - }; -})) -``` - -## `vmTools.extractFs` {#vm-tools-extractFs} - -Takes a file, such as an ISO, and extracts its contents into the store. - -### Attributes {#vm-tools-extractFs-attributes} - -* `file`. Path to the file to be extracted. - Note that currently we expect the image to contain a filesystem, not a full disk image with a partition table etc. -* `fs` (optional). Filesystem of the contents of the file. - -### Examples {#vm-tools-extractFs-examples} - -Extract the contents of an ISO file: -```nix -{ pkgs }: with pkgs; with vmTools; -extractFs { file = ./image.iso; } -``` - -## `vmTools.extractMTDfs` {#vm-tools-extractMTDfs} - -Like [](#vm-tools-extractFs), but it makes use of a [Memory Technology Device (MTD)](https://en.wikipedia.org/wiki/Memory_Technology_Device). - -## `vmTools.runInLinuxImage` {#vm-tools-runInLinuxImage} - -Like [](#vm-tools-runInLinuxVM), but instead of using `stdenv` from the Nix store, run the build using the tools provided by `/bin`, `/usr/bin`, etc. from the specified filesystem image, which typically is a filesystem containing a [FHS](https://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard)-based Linux distribution. - -## `vmTools.makeImageTestScript` {#vm-tools-makeImageTestScript} - -Generate a script that can be used to run an interactive session in the given image. - -### Examples {#vm-tools-makeImageTestScript-examples} - -Create a script for running a Fedora 27 VM: -```nix -{ pkgs }: with pkgs; with vmTools; -makeImageTestScript diskImages.fedora27x86_64 -``` - -Create a script for running an Ubuntu 20.04 VM: -```nix -{ pkgs }: with pkgs; with vmTools; -makeImageTestScript diskImages.ubuntu2004x86_64 -``` - -## `vmTools.diskImageFuns` {#vm-tools-diskImageFuns} - -A set of functions that build a predefined set of minimal Linux distributions images. - -### Images {#vm-tools-diskImageFuns-images} - -* Fedora - * `fedora26x86_64` - * `fedora27x86_64` -* CentOS - * `centos6i386` - * `centos6x86_64` - * `centos7x86_64` -* Ubuntu - * `ubuntu1404i386` - * `ubuntu1404x86_64` - * `ubuntu1604i386` - * `ubuntu1604x86_64` - * `ubuntu1804i386` - * `ubuntu1804x86_64` - * `ubuntu2004i386` - * `ubuntu2004x86_64` - * `ubuntu2204i386` - * `ubuntu2204x86_64` -* Debian - * `debian10i386` - * `debian10x86_64` - * `debian11i386` - * `debian11x86_64` - -### Attributes {#vm-tools-diskImageFuns-attributes} - -* `size` (optional, defaults to `4096`). The size of the image, in MiB. -* `extraPackages` (optional). A list names of additional packages from the distribution that should be included in the image. - -### Examples {#vm-tools-diskImageFuns-examples} - -8GiB image containing Firefox in addition to the default packages: -```nix -{ pkgs }: with pkgs; with vmTools; -diskImageFuns.ubuntu2004x86_64 { extraPackages = [ "firefox" ]; size = 8192; } -``` - -## `vmTools.diskImageExtraFuns` {#vm-tools-diskImageExtraFuns} - -Shorthand for `vmTools.diskImageFuns. { extraPackages = ... }`. - -## `vmTools.diskImages` {#vm-tools-diskImages} - -Shorthand for `vmTools.diskImageFuns. { }`. diff --git a/doc/builders/testers.chapter.md b/doc/builders/testers.chapter.md deleted file mode 100644 index b2a581c3dd8..00000000000 --- a/doc/builders/testers.chapter.md +++ /dev/null @@ -1,245 +0,0 @@ -# Testers {#chap-testers} -This chapter describes several testing builders which are available in the `testers` namespace. - -## `hasPkgConfigModules` {#tester-hasPkgConfigModules} - - -[]{#tester-hasPkgConfigModule} -Checks whether a package exposes a given list of `pkg-config` modules. -If the `moduleNames` argument is omitted, `hasPkgConfigModules` will -use `meta.pkgConfigModules`. - -Example: - -```nix -passthru.tests.pkg-config = testers.hasPkgConfigModules { - package = finalAttrs.finalPackage; - moduleNames = [ "libfoo" ]; -}; -``` - -If the package in question has `meta.pkgConfigModules` set, it is even simpler: - -```nix -passthru.tests.pkg-config = testers.hasPkgConfigModules { - package = finalAttrs.finalPackage; -}; - -meta.pkgConfigModules = [ "libfoo" ]; -``` - -## `testVersion` {#tester-testVersion} - -Checks the command output contains the specified version - -Although simplistic, this test assures that the main program -can run. While there's no substitute for a real test case, -it does catch dynamic linking errors and such. It also provides -some protection against accidentally building the wrong version, -for example when using an 'old' hash in a fixed-output derivation. - -Examples: - -```nix -passthru.tests.version = testers.testVersion { package = hello; }; - -passthru.tests.version = testers.testVersion { - package = seaweedfs; - command = "weed version"; -}; - -passthru.tests.version = testers.testVersion { - package = key; - command = "KeY --help"; - # Wrong '2.5' version in the code. Drop on next version. - version = "2.5"; -}; - -passthru.tests.version = testers.testVersion { - package = ghr; - # The output needs to contain the 'version' string without any prefix or suffix. - version = "v${version}"; -}; -``` - -## `testBuildFailure` {#tester-testBuildFailure} - -Make sure that a build does not succeed. This is useful for testing testers. - -This returns a derivation with an override on the builder, with the following effects: - - - Fail the build when the original builder succeeds - - Move `$out` to `$out/result`, if it exists (assuming `out` is the default output) - - Save the build log to `$out/testBuildFailure.log` (same) - -Example: - -```nix -runCommand "example" { - failed = testers.testBuildFailure (runCommand "fail" {} '' - echo ok-ish >$out - echo failing though - exit 3 - ''); -} '' - grep -F 'ok-ish' $failed/result - grep -F 'failing though' $failed/testBuildFailure.log - [[ 3 = $(cat $failed/testBuildFailure.exit) ]] - touch $out -''; -``` - -While `testBuildFailure` is designed to keep changes to the original builder's -environment to a minimum, some small changes are inevitable. - - - The file `$TMPDIR/testBuildFailure.log` is present. It should not be deleted. - - `stdout` and `stderr` are a pipe instead of a tty. This could be improved. - - One or two extra processes are present in the sandbox during the original - builder's execution. - - The derivation and output hashes are different, but not unusual. - - The derivation includes a dependency on `buildPackages.bash` and - `expect-failure.sh`, which is built to include a transitive dependency on - `buildPackages.coreutils` and possibly more. These are not added to `PATH` - or any other environment variable, so they should be hard to observe. - -## `testEqualContents` {#tester-equalContents} - -Check that two paths have the same contents. - -Example: - -```nix -testers.testEqualContents { - assertion = "sed -e performs replacement"; - expected = writeText "expected" '' - foo baz baz - ''; - actual = runCommand "actual" { - # not really necessary for a package that's in stdenv - nativeBuildInputs = [ gnused ]; - base = writeText "base" '' - foo bar baz - ''; - } '' - sed -e 's/bar/baz/g' $base >$out - ''; -} -``` - -## `testEqualDerivation` {#tester-testEqualDerivation} - -Checks that two packages produce the exact same build instructions. - -This can be used to make sure that a certain difference of configuration, -such as the presence of an overlay does not cause a cache miss. - -When the derivations are equal, the return value is an empty file. -Otherwise, the build log explains the difference via `nix-diff`. - -Example: - -```nix -testers.testEqualDerivation - "The hello package must stay the same when enabling checks." - hello - (hello.overrideAttrs(o: { doCheck = true; })) -``` - -## `invalidateFetcherByDrvHash` {#tester-invalidateFetcherByDrvHash} - -Use the derivation hash to invalidate the output via name, for testing. - -Type: `(a@{ name, ... } -> Derivation) -> a -> Derivation` - -Normally, fixed output derivations can and should be cached by their output -hash only, but for testing we want to re-fetch everytime the fetcher changes. - -Changes to the fetcher become apparent in the drvPath, which is a hash of -how to fetch, rather than a fixed store path. -By inserting this hash into the name, we can make sure to re-run the fetcher -every time the fetcher changes. - -This relies on the assumption that Nix isn't clever enough to reuse its -database of local store contents to optimize fetching. - -You might notice that the "salted" name derives from the normal invocation, -not the final derivation. `invalidateFetcherByDrvHash` has to invoke the fetcher -function twice: once to get a derivation hash, and again to produce the final -fixed output derivation. - -Example: - -```nix -tests.fetchgit = testers.invalidateFetcherByDrvHash fetchgit { - name = "nix-source"; - url = "https://github.com/NixOS/nix"; - rev = "9d9dbe6ed05854e03811c361a3380e09183f4f4a"; - hash = "sha256-7DszvbCNTjpzGRmpIVAWXk20P0/XTrWZ79KSOGLrUWY="; -}; -``` - -## `runNixOSTest` {#tester-runNixOSTest} - -A helper function that behaves exactly like the NixOS `runTest`, except it also assigns this Nixpkgs package set as the `pkgs` of the test and makes the `nixpkgs.*` options read-only. - -If your test is part of the Nixpkgs repository, or if you need a more general entrypoint, see ["Calling a test" in the NixOS manual](https://nixos.org/manual/nixos/stable/index.html#sec-calling-nixos-tests). - -Example: - -```nix -pkgs.testers.runNixOSTest ({ lib, ... }: { - name = "hello"; - nodes.machine = { pkgs, ... }: { - environment.systemPackages = [ pkgs.hello ]; - }; - testScript = '' - machine.succeed("hello") - ''; -}) -``` - -## `nixosTest` {#tester-nixosTest} - -Run a NixOS VM network test using this evaluation of Nixpkgs. - -NOTE: This function is primarily for external use. NixOS itself uses `make-test-python.nix` directly. Packages defined in Nixpkgs [reuse NixOS tests via `nixosTests`, plural](#ssec-nixos-tests-linking). - -It is mostly equivalent to the function `import ./make-test-python.nix` from the -[NixOS manual](https://nixos.org/nixos/manual/index.html#sec-nixos-tests), -except that the current application of Nixpkgs (`pkgs`) will be used, instead of -letting NixOS invoke Nixpkgs anew. - -If a test machine needs to set NixOS options under `nixpkgs`, it must set only the -`nixpkgs.pkgs` option. - -### Parameter {#tester-nixosTest-parameter} - -A [NixOS VM test network](https://nixos.org/nixos/manual/index.html#sec-nixos-tests), or path to it. Example: - -```nix -{ - name = "my-test"; - nodes = { - machine1 = { lib, pkgs, nodes, ... }: { - environment.systemPackages = [ pkgs.hello ]; - services.foo.enable = true; - }; - # machine2 = ...; - }; - testScript = '' - start_all() - machine1.wait_for_unit("foo.service") - machine1.succeed("hello | foo-send") - ''; -} -``` - -### Result {#tester-nixosTest-result} - -A derivation that runs the VM test. - -Notable attributes: - - * `nodes`: the evaluated NixOS configurations. Useful for debugging and exploring the configuration. - - * `driverInteractive`: a script that launches an interactive Python session in the context of the `testScript`. diff --git a/doc/builders/trivial-builders.chapter.md b/doc/builders/trivial-builders.chapter.md deleted file mode 100644 index 2cb1f2debcb..00000000000 --- a/doc/builders/trivial-builders.chapter.md +++ /dev/null @@ -1,240 +0,0 @@ -# Trivial builders {#chap-trivial-builders} - -Nixpkgs provides a couple of functions that help with building derivations. The most important one, `stdenv.mkDerivation`, has already been documented above. The following functions wrap `stdenv.mkDerivation`, making it easier to use in certain cases. - -## `runCommand` {#trivial-builder-runCommand} - -`runCommand :: String -> AttrSet -> String -> Derivation` - -`runCommand name drvAttrs buildCommand` returns a derivation that is built by running the specified shell commands. - -`name :: String` -: The name that Nix will append to the store path in the same way that `stdenv.mkDerivation` uses its `name` attribute. - -`drvAttr :: AttrSet` -: Attributes to pass to the underlying call to [`stdenv.mkDerivation`](#chap-stdenv). - -`buildCommand :: String` -: Shell commands to run in the derivation builder. - - ::: {.note} - You have to create a file or directory `$out` for Nix to be able to run the builder successfully. - ::: - -::: {.example #ex-runcommand-simple} -# Invocation of `runCommand` - -```nix -(import {}).runCommand "my-example" {} '' - echo My example command is running - - mkdir $out - - echo I can write data to the Nix store > $out/message - - echo I can also run basic commands like: - - echo ls - ls - - echo whoami - whoami - - echo date - date -'' -``` -::: - -## `runCommandCC` {#trivial-builder-runCommandCC} - -This works just like `runCommand`. The only difference is that it also provides a C compiler in `buildCommand`'s environment. To minimize your dependencies, you should only use this if you are sure you will need a C compiler as part of running your command. - -## `runCommandLocal` {#trivial-builder-runCommandLocal} - -Variant of `runCommand` that forces the derivation to be built locally, it is not substituted. This is intended for very cheap commands (<1s execution time). It saves on the network round-trip and can speed up a build. - -::: {.note} -This sets [`allowSubstitutes` to `false`](https://nixos.org/nix/manual/#adv-attr-allowSubstitutes), so only use `runCommandLocal` if you are certain the user will always have a builder for the `system` of the derivation. This should be true for most trivial use cases (e.g., just copying some files to a different location or adding symlinks) because there the `system` is usually the same as `builtins.currentSystem`. -::: - -## `writeTextFile`, `writeText`, `writeTextDir`, `writeScript`, `writeScriptBin` {#trivial-builder-writeText} - -These functions write `text` to the Nix store. This is useful for creating scripts from Nix expressions. `writeTextFile` takes an attribute set and expects two arguments, `name` and `text`. `name` corresponds to the name used in the Nix store path. `text` will be the contents of the file. You can also set `executable` to true to make this file have the executable bit set. - -Many more commands wrap `writeTextFile` including `writeText`, `writeTextDir`, `writeScript`, and `writeScriptBin`. These are convenience functions over `writeTextFile`. - -Here are a few examples: -```nix -# Writes my-file to /nix/store/ -writeTextFile { - name = "my-file"; - text = '' - Contents of File - ''; -} -# See also the `writeText` helper function below. - -# Writes executable my-file to /nix/store//bin/my-file -writeTextFile { - name = "my-file"; - text = '' - Contents of File - ''; - executable = true; - destination = "/bin/my-file"; -} -# Writes contents of file to /nix/store/ -writeText "my-file" - '' - Contents of File - ''; -# Writes contents of file to /nix/store//share/my-file -writeTextDir "share/my-file" - '' - Contents of File - ''; -# Writes my-file to /nix/store/ and makes executable -writeScript "my-file" - '' - Contents of File - ''; -# Writes my-file to /nix/store//bin/my-file and makes executable. -writeScriptBin "my-file" - '' - Contents of File - ''; -# Writes my-file to /nix/store/ and makes executable. -writeShellScript "my-file" - '' - Contents of File - ''; -# Writes my-file to /nix/store//bin/my-file and makes executable. -writeShellScriptBin "my-file" - '' - Contents of File - ''; - -``` - -## `concatTextFile`, `concatText`, `concatScript` {#trivial-builder-concatText} - -These functions concatenate `files` to the Nix store in a single file. This is useful for configuration files structured in lines of text. `concatTextFile` takes an attribute set and expects two arguments, `name` and `files`. `name` corresponds to the name used in the Nix store path. `files` will be the files to be concatenated. You can also set `executable` to true to make this file have the executable bit set. -`concatText` and`concatScript` are simple wrappers over `concatTextFile`. - -Here are a few examples: -```nix - -# Writes my-file to /nix/store/ -concatTextFile { - name = "my-file"; - files = [ drv1 "${drv2}/path/to/file" ]; -} -# See also the `concatText` helper function below. - -# Writes executable my-file to /nix/store//bin/my-file -concatTextFile { - name = "my-file"; - files = [ drv1 "${drv2}/path/to/file" ]; - executable = true; - destination = "/bin/my-file"; -} -# Writes contents of files to /nix/store/ -concatText "my-file" [ file1 file2 ] - -# Writes contents of files to /nix/store/ -concatScript "my-file" [ file1 file2 ] -``` - -## `writeShellApplication` {#trivial-builder-writeShellApplication} - -This can be used to easily produce a shell script that has some dependencies (`runtimeInputs`). It automatically sets the `PATH` of the script to contain all of the listed inputs, sets some sanity shellopts (`errexit`, `nounset`, `pipefail`), and checks the resulting script with [`shellcheck`](https://github.com/koalaman/shellcheck). - -For example, look at the following code: - -```nix -writeShellApplication { - name = "show-nixos-org"; - - runtimeInputs = [ curl w3m ]; - - text = '' - curl -s 'https://nixos.org' | w3m -dump -T text/html - ''; -} -``` - -Unlike with normal `writeShellScriptBin`, there is no need to manually write out `${curl}/bin/curl`, setting the PATH -was handled by `writeShellApplication`. Moreover, the script is being checked with `shellcheck` for more strict -validation. - -## `symlinkJoin` {#trivial-builder-symlinkJoin} - -This can be used to put many derivations into the same directory structure. It works by creating a new derivation and adding symlinks to each of the paths listed. It expects two arguments, `name`, and `paths`. `name` is the name used in the Nix store path for the created derivation. `paths` is a list of paths that will be symlinked. These paths can be to Nix store derivations or any other subdirectory contained within. -Here is an example: -```nix -# adds symlinks of hello and stack to current build and prints "links added" -symlinkJoin { name = "myexample"; paths = [ pkgs.hello pkgs.stack ]; postBuild = "echo links added"; } -``` -This creates a derivation with a directory structure like the following: -``` -/nix/store/sglsr5g079a5235hy29da3mq3hv8sjmm-myexample -|-- bin -| |-- hello -> /nix/store/qy93dp4a3rqyn2mz63fbxjg228hffwyw-hello-2.10/bin/hello -| `-- stack -> /nix/store/6lzdpxshx78281vy056lbk553ijsdr44-stack-2.1.3.1/bin/stack -`-- share - |-- bash-completion - | `-- completions - | `-- stack -> /nix/store/6lzdpxshx78281vy056lbk553ijsdr44-stack-2.1.3.1/share/bash-completion/completions/stack - |-- fish - | `-- vendor_completions.d - | `-- stack.fish -> /nix/store/6lzdpxshx78281vy056lbk553ijsdr44-stack-2.1.3.1/share/fish/vendor_completions.d/stack.fish -... -``` - -## `writeReferencesToFile` {#trivial-builder-writeReferencesToFile} - -Writes the closure of transitive dependencies to a file. - -This produces the equivalent of `nix-store -q --requisites`. - -For example, - -```nix -writeReferencesToFile (writeScriptBin "hi" ''${hello}/bin/hello'') -``` - -produces an output path `/nix/store/-runtime-deps` containing - -```nix -/nix/store/-hello-2.10 -/nix/store/-hi -/nix/store/-libidn2-2.3.0 -/nix/store/-libunistring-0.9.10 -/nix/store/-glibc-2.32-40 -``` - -You can see that this includes `hi`, the original input path, -`hello`, which is a direct reference, but also -the other paths that are indirectly required to run `hello`. - -## `writeDirectReferencesToFile` {#trivial-builder-writeDirectReferencesToFile} - -Writes the set of references to the output file, that is, their immediate dependencies. - -This produces the equivalent of `nix-store -q --references`. - -For example, - -```nix -writeDirectReferencesToFile (writeScriptBin "hi" ''${hello}/bin/hello'') -``` - -produces an output path `/nix/store/-runtime-references` containing - -```nix -/nix/store/-hello-2.10 -``` - -but none of `hello`'s dependencies because those are not referenced directly -by `hi`'s output. diff --git a/doc/manual.md.in b/doc/manual.md.in index 6b8d351380f..52971ff526c 100644 --- a/doc/manual.md.in +++ b/doc/manual.md.in @@ -9,7 +9,7 @@ preface.chapter.md using-nixpkgs.md lib.md stdenv.md -builders.md +build-helpers.md development.md contributing.md ``` -- cgit 1.4.1 From 8cd8a5152eba81fbee4ccef18f98a9d8f2a1a066 Mon Sep 17 00:00:00 2001 From: Yueh-Shun Li Date: Sun, 28 May 2023 21:48:43 +0800 Subject: doc: add introduction to build helpers Co-authored-by: Valentin Gagarin --- doc/build-helpers.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'doc') diff --git a/doc/build-helpers.md b/doc/build-helpers.md index 40ce7173a22..06737e16676 100644 --- a/doc/build-helpers.md +++ b/doc/build-helpers.md @@ -1,5 +1,21 @@ # Build helpers {#part-builders} +A build helper is a function that produces derivations. + +:::{.warning} +This is not to be confused with the [`builder` argument of the Nix `derivation` primitive](https://nixos.org/manual/nix/unstable/language/derivations.html), which refers to the executable that produces the build result, or [remote builder](https://nixos.org/manual/nix/stable/advanced-topics/distributed-builds.html), which refers to a remote machine that could run such an executable. +::: + +Such a function is usually designed to abstract over a typical workflow for a given programming language or framework. +This allows declaring a build recipe by setting a limited number of options relevant to the particular use case instead of using the `derivation` function directly. + +[`stdenv.mkDerivation`](#part-stdenv) is the most widely used build helper, and serves as a basis for many others. +In addition, it offers various options to customize parts of the builds. + +There is no uniform interface for build helpers. +[Trivial build helpers](#chap-trivial-builders) and [fetchers](#chap-pkgs-fetchers) have various input types for convenience. +[Language- or framework-specific build helpers](#chap-language-support) usually follow the style of `stdenv.mkDerivation`, which accepts an attribute set or a fixed-point function taking an attribute set. + ```{=include=} chapters build-helpers/fetchers.chapter.md build-helpers/trivial-build-helpers.chapter.md -- cgit 1.4.1 From 9d6da5bd1e4324a2bfb6429e46cb1cb2f985bc13 Mon Sep 17 00:00:00 2001 From: Yueh-Shun Li Date: Sat, 3 Jun 2023 21:18:19 +0000 Subject: doc: rename sub-section Recursive attributes in stdenv -> Fixed-point arguments in stdenv Co-authored-by: Valentin Gagarin --- doc/stdenv/stdenv.chapter.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/stdenv/stdenv.chapter.md b/doc/stdenv/stdenv.chapter.md index 1dfe25f0265..53243af5f23 100644 --- a/doc/stdenv/stdenv.chapter.md +++ b/doc/stdenv/stdenv.chapter.md @@ -528,7 +528,7 @@ If the returned array contains exactly one object (e.g. `[{}]`), all values are ``` ::: -### Recursive attributes in `mkDerivation` {#mkderivation-recursive-attributes} +### Fixed-point arguments of `mkDerivation` {#mkderivation-recursive-attributes} If you pass a function to `mkDerivation`, it will receive as its argument the final arguments, including the overrides when reinvoked via `overrideAttrs`. For example: -- cgit 1.4.1 From 2556605a356c59a7269f601f56e9271ed3f487d1 Mon Sep 17 00:00:00 2001 From: Silvan Mosberger Date: Wed, 8 Nov 2023 23:32:53 +0100 Subject: lib.fileset: Remove "somewhat limited" from the docs It's not very limited anymore :) --- doc/functions/fileset.section.md | 3 --- 1 file changed, 3 deletions(-) (limited to 'doc') diff --git a/doc/functions/fileset.section.md b/doc/functions/fileset.section.md index 08b9ba9eaed..c42337feaba 100644 --- a/doc/functions/fileset.section.md +++ b/doc/functions/fileset.section.md @@ -6,11 +6,8 @@ The [`lib.fileset`](#sec-functions-library-fileset) library allows you to work w A file set is a mathematical set of local files that can be added to the Nix store for use in Nix derivations. File sets are easy and safe to use, providing obvious and composable semantics with good error messages to prevent mistakes. -These sections apply to the entire library. See the [function reference](#sec-functions-library-fileset) for function-specific documentation. -The file set library is currently somewhat limited but is being expanded to include more functions over time. - ## Implicit coercion from paths to file sets {#sec-fileset-path-coercion} All functions accepting file sets as arguments can also accept [paths](https://nixos.org/manual/nix/stable/language/values.html#type-path) as arguments. -- cgit 1.4.1 From 224ea037e4de1c0695d937166cb05ce67a974b76 Mon Sep 17 00:00:00 2001 From: natsukium Date: Thu, 9 Nov 2023 09:56:00 +0900 Subject: doc/languages-frameworks/python: update interpreters version --- doc/languages-frameworks/python.section.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) (limited to 'doc') diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md index 69a95f482fb..16e8ff6573c 100644 --- a/doc/languages-frameworks/python.section.md +++ b/doc/languages-frameworks/python.section.md @@ -9,8 +9,8 @@ | python27 | python2, python | CPython 2.7 | | python38 | | CPython 3.8 | | python39 | | CPython 3.9 | -| python310 | python3 | CPython 3.10 | -| python311 | | CPython 3.11 | +| python310 | | CPython 3.10 | +| python311 | python3 | CPython 3.11 | | python312 | | CPython 3.12 | | python313 | | CPython 3.13 | | pypy27 | pypy2, pypy | PyPy2.7 | @@ -64,12 +64,14 @@ sets are * `pkgs.python39Packages` * `pkgs.python310Packages` * `pkgs.python311Packages` +* `pkgs.python312Packages` +* `pkgs.python313Packages` * `pkgs.pypyPackages` and the aliases * `pkgs.python2Packages` pointing to `pkgs.python27Packages` -* `pkgs.python3Packages` pointing to `pkgs.python310Packages` +* `pkgs.python3Packages` pointing to `pkgs.python311Packages` * `pkgs.pythonPackages` pointing to `pkgs.python2Packages` #### `buildPythonPackage` function {#buildpythonpackage-function} @@ -525,7 +527,7 @@ There is a boolean value `lib.inNixShell` set to `true` if nix-shell is invoked. Several versions of the Python interpreter are available on Nix, as well as a high amount of packages. The attribute `python3` refers to the default -interpreter, which is currently CPython 3.10. The attribute `python` refers to +interpreter, which is currently CPython 3.11. The attribute `python` refers to CPython 2.7 for backwards-compatibility. It is also possible to refer to specific versions, e.g. `python311` refers to CPython 3.11, and `pypy` refers to the default PyPy interpreter. -- cgit 1.4.1 From bcb19b212cd068ad265a16e02c888ce5fbbad395 Mon Sep 17 00:00:00 2001 From: natsukium Date: Thu, 9 Nov 2023 10:34:06 +0900 Subject: doc/languages-frameworks/python: switch pythonPackages to python3Packages Replaced with python3Packages except for the following to avoid misuse of pythonPackages 1. which we need for the explanation 2. which are replaced by python3Packages as variables --- doc/languages-frameworks/python.section.md | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) (limited to 'doc') diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md index 16e8ff6573c..afb633d624a 100644 --- a/doc/languages-frameworks/python.section.md +++ b/doc/languages-frameworks/python.section.md @@ -280,7 +280,7 @@ the packages with the version of the interpreter. Because this is irrelevant for applications, the prefix is omitted. When packaging a Python application with [`buildPythonApplication`](#buildpythonapplication-function), it should be -called with `callPackage` and passed `python` or `pythonPackages` (possibly +called with `callPackage` and passed `python3` or `python3Packages` (possibly specifying an interpreter version), like this: ```nix @@ -322,7 +322,7 @@ luigi = callPackage ../applications/networking/cluster/luigi { }; ``` Since the package is an application, a consumer doesn't need to care about -Python versions or modules, which is why they don't go in `pythonPackages`. +Python versions or modules, which is why they don't go in `python3Packages`. #### `toPythonApplication` function {#topythonapplication-function} @@ -338,7 +338,7 @@ the attribute in `python-packages.nix`, and the `toPythonApplication` shall be applied to the reference: ```nix -youtube-dl = with pythonPackages; toPythonApplication youtube-dl; +youtube-dl = with python3Packages; toPythonApplication youtube-dl; ``` #### `toPythonModule` function {#topythonmodule-function} @@ -367,8 +367,8 @@ Saving the following as `default.nix` ```nix with import {}; -python.buildEnv.override { - extraLibs = [ pythonPackages.pyramid ]; +python3.buildEnv.override { + extraLibs = [ python3Packages.pyramid ]; ignoreCollisions = true; } ``` @@ -498,9 +498,9 @@ Given a `default.nix`: ```nix with import {}; -pythonPackages.buildPythonPackage { +python3Packages.buildPythonPackage { name = "myproject"; - buildInputs = with pythonPackages; [ pyramid ]; + buildInputs = with python3Packages; [ pyramid ]; src = ./.; } @@ -512,7 +512,7 @@ the package would be built with `nix-build`. Shortcut to setup environments with C headers/libraries and Python packages: ```shell -nix-shell -p pythonPackages.pyramid zlib libjpeg git +nix-shell -p python3Packages.pyramid zlib libjpeg git ``` ::: {.note} @@ -545,7 +545,7 @@ however, are in separate sets, with one set per interpreter version. The interpreters have several common attributes. One of these attributes is `pkgs`, which is a package set of Python libraries for this specific interpreter. E.g., the `toolz` package corresponding to the default interpreter -is `python.pkgs.toolz`, and the CPython 3.11 version is `python311.pkgs.toolz`. +is `python3.pkgs.toolz`, and the CPython 3.11 version is `python311.pkgs.toolz`. The main package set contains aliases to these package sets, e.g. `pythonPackages` refers to `python.pkgs` and `python311Packages` to `python311.pkgs`. @@ -1837,7 +1837,7 @@ If you need to change a package's attribute(s) from `configuration.nix` you coul }; ``` -`pythonPackages.twisted` is now globally overridden. +`python3Packages.twisted` is now globally overridden. All packages and also all NixOS services that reference `twisted` (such as `services.buildbot-worker`) now use the new definition. Note that `python-super` refers to the old package set and `python-self` @@ -1847,7 +1847,7 @@ To modify only a Python package set instead of a whole Python derivation, use this snippet: ```nix - myPythonPackages = pythonPackages.override { + myPythonPackages = python3Packages.override { overrides = self: super: { twisted = ...; }; @@ -2027,7 +2027,7 @@ The following rules are desired to be respected: disabled individually. Try to avoid disabling the tests altogether. In any case, when you disable tests, leave a comment explaining why. * Commit names of Python libraries should reflect that they are Python - libraries, so write for example `pythonPackages.numpy: 1.11 -> 1.12`. + libraries, so write for example `python3Packages.numpy: 1.11 -> 1.12`. * Attribute names in `python-packages.nix` as well as `pname`s should match the library's name on PyPI, but be normalized according to [PEP 0503](https://www.python.org/dev/peps/pep-0503/#normalized-names). This means -- cgit 1.4.1 From a33d17fadc18ecc7fd7f572e40d6d6b960bef0be Mon Sep 17 00:00:00 2001 From: natsukium Date: Thu, 9 Nov 2023 11:27:22 +0900 Subject: doc/languages-frameworks/python: update recommended commit message --- doc/languages-frameworks/python.section.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md index afb633d624a..9af3f529ae4 100644 --- a/doc/languages-frameworks/python.section.md +++ b/doc/languages-frameworks/python.section.md @@ -2027,7 +2027,9 @@ The following rules are desired to be respected: disabled individually. Try to avoid disabling the tests altogether. In any case, when you disable tests, leave a comment explaining why. * Commit names of Python libraries should reflect that they are Python - libraries, so write for example `python3Packages.numpy: 1.11 -> 1.12`. + libraries, so write for example `python311Packages.numpy: 1.11 -> 1.12`. + It is highly recommended to specify the current default version to enable + automatic build by ofborg. * Attribute names in `python-packages.nix` as well as `pname`s should match the library's name on PyPI, but be normalized according to [PEP 0503](https://www.python.org/dev/peps/pep-0503/#normalized-names). This means -- cgit 1.4.1 From 5aaeafbe2603df195938edaa91c2a68739eb499d Mon Sep 17 00:00:00 2001 From: Yt Date: Thu, 9 Nov 2023 16:19:24 +0000 Subject: buildNpmPackage: make nodejs overridable (#265171) * buildNpmPackage: allow nodejs to be passed as argument * Update doc/languages-frameworks/javascript.section.md Co-authored-by: Lily Foster --------- Co-authored-by: Lily Foster --- doc/languages-frameworks/javascript.section.md | 1 + pkgs/build-support/node/build-npm-package/default.nix | 3 ++- 2 files changed, 3 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/languages-frameworks/javascript.section.md b/doc/languages-frameworks/javascript.section.md index f35fd83cc59..79cb0957250 100644 --- a/doc/languages-frameworks/javascript.section.md +++ b/doc/languages-frameworks/javascript.section.md @@ -209,6 +209,7 @@ In the default `installPhase` set by `buildNpmPackage`, it uses `npm pack --json * `npmPackFlags`: Flags to pass to `npm pack`. * `npmPruneFlags`: Flags to pass to `npm prune`. Defaults to the value of `npmInstallFlags`. * `makeWrapperArgs`: Flags to pass to `makeWrapper`, added to executable calling the generated `.js` with `node` as an interpreter. These scripts are defined in `package.json`. +* `nodejs`: The `nodejs` package to build against, using the corresponding `npm` shipped with that version of `node`. Defaults to `pkgs.nodejs`. #### prefetch-npm-deps {#javascript-buildNpmPackage-prefetch-npm-deps} diff --git a/pkgs/build-support/node/build-npm-package/default.nix b/pkgs/build-support/node/build-npm-package/default.nix index 7cfc0e9f9c0..9babc7ae628 100644 --- a/pkgs/build-support/node/build-npm-package/default.nix +++ b/pkgs/build-support/node/build-npm-package/default.nix @@ -1,4 +1,4 @@ -{ lib, stdenv, fetchNpmDeps, buildPackages, nodejs }: +{ lib, stdenv, fetchNpmDeps, buildPackages, nodejs } @ topLevelArgs: { name ? "${args.pname}-${args.version}" , src ? null @@ -34,6 +34,7 @@ , npmPruneFlags ? npmInstallFlags # Value for npm `--workspace` flag and directory in which the files to be installed are found. , npmWorkspace ? null +, nodejs ? topLevelArgs.nodejs , ... } @ args: -- cgit 1.4.1 From 97b0ae26f7c8a1682b5437a64edcd73ab1798c9b Mon Sep 17 00:00:00 2001 From: Arnout Engelen Date: Thu, 9 Nov 2023 21:48:05 +0100 Subject: doc: avoid 'simply' (#266434) While the word 'simply' is usually added to encourage readers, it often has the opposite effect and may even appear condescending, especially when the reader runs into trouble trying to apply the suggestions from the documentation. It is almost always an improvement to simply drop the word from the sentence. (there are more possible improvements like this, we can apply those in separate PRs) --- doc/hooks/autopatchelf.section.md | 2 +- doc/languages-frameworks/agda.section.md | 4 ++-- doc/languages-frameworks/beam.section.md | 2 +- doc/languages-frameworks/dart.section.md | 2 +- doc/languages-frameworks/haskell.section.md | 4 ++-- doc/languages-frameworks/lisp.section.md | 2 +- doc/languages-frameworks/maven.section.md | 2 +- doc/languages-frameworks/php.section.md | 6 +++--- doc/languages-frameworks/python.section.md | 8 ++++---- doc/languages-frameworks/ruby.section.md | 4 ++-- doc/languages-frameworks/swift.section.md | 4 ++-- doc/packages/urxvt.section.md | 2 +- doc/stdenv/stdenv.chapter.md | 8 ++++---- doc/using/overlays.chapter.md | 2 +- nixos/doc/manual/configuration/declarative-packages.section.md | 2 +- nixos/doc/manual/configuration/modularity.section.md | 4 ++-- nixos/doc/manual/configuration/xfce.chapter.md | 2 +- nixos/doc/manual/development/writing-documentation.chapter.md | 2 +- nixos/doc/manual/installation/installing-pxe.section.md | 2 +- nixos/doc/manual/release-notes/rl-1609.section.md | 2 +- nixos/doc/manual/release-notes/rl-1909.section.md | 2 +- nixos/doc/manual/release-notes/rl-2003.section.md | 2 +- nixos/doc/manual/release-notes/rl-2009.section.md | 2 +- nixos/doc/manual/release-notes/rl-2211.section.md | 2 +- nixos/doc/manual/release-notes/rl-2305.section.md | 2 +- nixos/doc/manual/release-notes/rl-2311.section.md | 2 +- 26 files changed, 39 insertions(+), 39 deletions(-) (limited to 'doc') diff --git a/doc/hooks/autopatchelf.section.md b/doc/hooks/autopatchelf.section.md index 008a90d4614..995204b9021 100644 --- a/doc/hooks/autopatchelf.section.md +++ b/doc/hooks/autopatchelf.section.md @@ -6,6 +6,6 @@ You can also specify a `runtimeDependencies` variable which lists dependencies t In certain situations you may want to run the main command (`autoPatchelf`) of the setup hook on a file or a set of directories instead of unconditionally patching all outputs. This can be done by setting the `dontAutoPatchelf` environment variable to a non-empty value. -By default `autoPatchelf` will fail as soon as any ELF file requires a dependency which cannot be resolved via the given build inputs. In some situations you might prefer to just leave missing dependencies unpatched and continue to patch the rest. This can be achieved by setting the `autoPatchelfIgnoreMissingDeps` environment variable to a non-empty value. `autoPatchelfIgnoreMissingDeps` can be set to a list like `autoPatchelfIgnoreMissingDeps = [ "libcuda.so.1" "libcudart.so.1" ];` or to simply `[ "*" ]` to ignore all missing dependencies. +By default `autoPatchelf` will fail as soon as any ELF file requires a dependency which cannot be resolved via the given build inputs. In some situations you might prefer to just leave missing dependencies unpatched and continue to patch the rest. This can be achieved by setting the `autoPatchelfIgnoreMissingDeps` environment variable to a non-empty value. `autoPatchelfIgnoreMissingDeps` can be set to a list like `autoPatchelfIgnoreMissingDeps = [ "libcuda.so.1" "libcudart.so.1" ];` or to `[ "*" ]` to ignore all missing dependencies. The `autoPatchelf` command also recognizes a `--no-recurse` command line flag, which prevents it from recursing into subdirectories. diff --git a/doc/languages-frameworks/agda.section.md b/doc/languages-frameworks/agda.section.md index ff3d70ef0c6..cb1f12eec23 100644 --- a/doc/languages-frameworks/agda.section.md +++ b/doc/languages-frameworks/agda.section.md @@ -146,7 +146,7 @@ agdaPackages.mkDerivation { ### Building Agda packages {#building-agda-packages} -The default build phase for `agdaPackages.mkDerivation` simply runs `agda` on the `Everything.agda` file. +The default build phase for `agdaPackages.mkDerivation` runs `agda` on the `Everything.agda` file. If something else is needed to build the package (e.g. `make`) then the `buildPhase` should be overridden. Additionally, a `preBuild` or `configurePhase` can be used if there are steps that need to be done prior to checking the `Everything.agda` file. `agda` and the Agda libraries contained in `buildInputs` are made available during the build phase. @@ -250,7 +250,7 @@ Usually, the maintainers will answer within a week or two with a new release. Bumping the version of that reverse dependency should be a further commit on your PR. In the rare case that a new release is not to be expected within an acceptable time, -simply mark the broken package as broken by setting `meta.broken = true;`. +mark the broken package as broken by setting `meta.broken = true;`. This will exclude it from the build test. It can be added later when it is fixed, and does not hinder the advancement of the whole package set in the meantime. diff --git a/doc/languages-frameworks/beam.section.md b/doc/languages-frameworks/beam.section.md index 2cb4863fc53..1e83d4b93c7 100644 --- a/doc/languages-frameworks/beam.section.md +++ b/doc/languages-frameworks/beam.section.md @@ -44,7 +44,7 @@ There is also a `buildMix` helper, whose behavior is closer to that of `buildErl ## How to Install BEAM Packages {#how-to-install-beam-packages} -BEAM builders are not registered at the top level, simply because they are not relevant to the vast majority of Nix users. +BEAM builders are not registered at the top level, because they are not relevant to the vast majority of Nix users. To use any of those builders into your environment, refer to them by their attribute path under `beamPackages`, e.g. `beamPackages.rebar3`: ::: {.example #ex-beam-ephemeral-shell} diff --git a/doc/languages-frameworks/dart.section.md b/doc/languages-frameworks/dart.section.md index 8d9c062f422..9da43714a16 100644 --- a/doc/languages-frameworks/dart.section.md +++ b/doc/languages-frameworks/dart.section.md @@ -8,7 +8,7 @@ It fetches its Dart dependencies automatically through `fetchDartDeps`, and (thr If you are packaging a Flutter desktop application, use [`buildFlutterApplication`](#ssec-dart-flutter) instead. -`vendorHash`: is the hash of the output of the dependency fetcher derivation. To obtain it, simply set it to `lib.fakeHash` (or omit it) and run the build ([more details here](#sec-source-hashes)). +`vendorHash`: is the hash of the output of the dependency fetcher derivation. To obtain it, set it to `lib.fakeHash` (or omit it) and run the build ([more details here](#sec-source-hashes)). If the upstream source is missing a `pubspec.lock` file, you'll have to vendor one and specify it using `pubspecLockFile`. If it is needed, one will be generated for you and printed when attempting to build the derivation. diff --git a/doc/languages-frameworks/haskell.section.md b/doc/languages-frameworks/haskell.section.md index 6b9ce32d173..b0b5f5c3bb2 100644 --- a/doc/languages-frameworks/haskell.section.md +++ b/doc/languages-frameworks/haskell.section.md @@ -177,7 +177,7 @@ exactly one version. Those versions need to satisfy all the version constraints given in the `.cabal` file of your package and all its dependencies. The [Haskell builder in nixpkgs](#haskell-mkderivation) does no such thing. -It will simply take as input packages with names off the desired dependencies +It will take as input packages with names off the desired dependencies and just check whether they fulfill the version bounds and fail if they don’t (by default, see `jailbreak` to circumvent this). @@ -780,7 +780,7 @@ there instead. The top level `pkgs.haskell-language-server` attribute is just a convenience wrapper to make it possible to install HLS for multiple GHC versions at the same time. If you know, that you only use one GHC version, e.g., in a project -specific `nix-shell` you can simply use +specific `nix-shell` you can use `pkgs.haskellPackages.haskell-language-server` or `pkgs.haskell.packages.*.haskell-language-server` from the package set you use. diff --git a/doc/languages-frameworks/lisp.section.md b/doc/languages-frameworks/lisp.section.md index 8712c341206..fe7f2ef80a2 100644 --- a/doc/languages-frameworks/lisp.section.md +++ b/doc/languages-frameworks/lisp.section.md @@ -268,7 +268,7 @@ getting an environment variable for `ext:getenv`. This will load the ### Loading systems {#lisp-loading-systems} -There, you can simply use `asdf:load-system`. This works by setting the right +There, you can use `asdf:load-system`. This works by setting the right values for the `CL_SOURCE_REGISTRY`/`ASDF_OUTPUT_TRANSLATIONS` environment variables, so that systems are found in the Nix store and pre-compiled FASLs are loaded. diff --git a/doc/languages-frameworks/maven.section.md b/doc/languages-frameworks/maven.section.md index 7e287a097c7..b86733a7589 100644 --- a/doc/languages-frameworks/maven.section.md +++ b/doc/languages-frameworks/maven.section.md @@ -53,7 +53,7 @@ After setting `maven.buildMavenPackage`, we then do standard Java `.jar` install Maven defines default versions for its core plugins, e.g. `maven-compiler-plugin`. If your project does not override these versions, an upgrade of Maven will change the version of the used plugins, and therefore the derivation and hash. -When `maven` is upgraded, `mvnHash` for the derivation must be updated as well: otherwise, the project will simply be built on the derivation of old plugins, and fail because the requested plugins are missing. +When `maven` is upgraded, `mvnHash` for the derivation must be updated as well: otherwise, the project will be built on the derivation of old plugins, and fail because the requested plugins are missing. This clearly prevents automatic upgrades of Maven: a manual effort must be made throughout nixpkgs by any maintainer wishing to push the upgrades. diff --git a/doc/languages-frameworks/php.section.md b/doc/languages-frameworks/php.section.md index 377e3947b2a..154d8174f9a 100644 --- a/doc/languages-frameworks/php.section.md +++ b/doc/languages-frameworks/php.section.md @@ -58,7 +58,7 @@ php.withExtensions ({ enabled, all }: ++ [ all.imagick ]) ``` -To build your list of extensions from the ground up, you can simply +To build your list of extensions from the ground up, you can ignore `enabled`: ```nix @@ -140,7 +140,7 @@ Example of building `composer` with additional extensions: ### Overriding PHP packages {#ssec-php-user-guide-overriding-packages} `php-packages.nix` form a scope, allowing us to override the packages defined -within. For example, to apply a patch to a `mysqlnd` extension, you can simply +within. For example, to apply a patch to a `mysqlnd` extension, you can pass an overlay-style function to `php`’s `packageOverrides` argument: ```nix @@ -191,7 +191,7 @@ using the `bin` attribute in `composer.json`, these binaries will be automatically linked and made accessible in the derivation. In this context, "binaries" refer to PHP scripts that are intended to be executable. -To use the helper effectively, simply add the `vendorHash` attribute, which +To use the helper effectively, add the `vendorHash` attribute, which enables the wrapper to handle the heavy lifting. Internally, the helper operates in three stages: diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md index 9af3f529ae4..70150717838 100644 --- a/doc/languages-frameworks/python.section.md +++ b/doc/languages-frameworks/python.section.md @@ -264,7 +264,7 @@ python3MyBlas = pkgs.python3.override { ``` This is particularly useful for numpy and scipy users who want to gain speed with other blas implementations. -Note that using simply `scipy = super.scipy.override { blas = super.pkgs.mkl; };` will likely result in +Note that using `scipy = super.scipy.override { blas = super.pkgs.mkl; };` will likely result in compilation issues, because scipy dependencies need to use the same blas implementation as well. #### `buildPythonApplication` function {#buildpythonapplication-function} @@ -433,7 +433,7 @@ python3.withPackages (ps: [ ps.pyramid ]) Now, `ps` is set to `python3Packages`, matching the version of the interpreter. -As [`python.withPackages`](#python.withpackages-function) simply uses [`python.buildEnv`](#python.buildenv-function) under the hood, it also +As [`python.withPackages`](#python.withpackages-function) uses [`python.buildEnv`](#python.buildenv-function) under the hood, it also supports the `env` attribute. The `shell.nix` file from the previous section can thus be also written like this: @@ -682,7 +682,7 @@ b = np.array([3,4]) print(f"The dot product of {a} and {b} is: {np.dot(a, b)}") ``` -Then we simply execute it, without requiring any environment setup at all! +Then we execute it, without requiring any environment setup at all! ```sh $ ./foo.py @@ -1713,7 +1713,7 @@ This is an example of a `default.nix` for a `nix-shell`, which allows to consume a virtual environment created by `venv`, and install Python modules through `pip` the traditional way. -Create this `default.nix` file, together with a `requirements.txt` and simply +Create this `default.nix` file, together with a `requirements.txt` and execute `nix-shell`. ```nix diff --git a/doc/languages-frameworks/ruby.section.md b/doc/languages-frameworks/ruby.section.md index d3b896686c0..920c84eee68 100644 --- a/doc/languages-frameworks/ruby.section.md +++ b/doc/languages-frameworks/ruby.section.md @@ -94,7 +94,7 @@ $ bundle lock $ bundix ``` -If you already have a `Gemfile.lock`, you can simply run `bundix` and it will work the same. +If you already have a `Gemfile.lock`, you can run `bundix` and it will work the same. To update the gems in your `Gemfile.lock`, you may use the `bundix -l` flag, which will create a new `Gemfile.lock` in case the `Gemfile` has a more recent time of modification. @@ -251,7 +251,7 @@ source 'https://rubygems.org' do end ``` -If you want to package a specific version, you can use the standard Gemfile syntax for that, e.g. `gem 'mdl', '0.5.0'`, but if you want the latest stable version anyway, it's easier to update by simply running the `bundle lock` and `bundix` steps again. +If you want to package a specific version, you can use the standard Gemfile syntax for that, e.g. `gem 'mdl', '0.5.0'`, but if you want the latest stable version anyway, it's easier to update by running the `bundle lock` and `bundix` steps again. Now you can also make a `default.nix` that looks like this: diff --git a/doc/languages-frameworks/swift.section.md b/doc/languages-frameworks/swift.section.md index 1cc452cc9b9..213d444f499 100644 --- a/doc/languages-frameworks/swift.section.md +++ b/doc/languages-frameworks/swift.section.md @@ -32,7 +32,7 @@ look for the following directories: (If not targeting macOS, replace `macosx` with the Xcode platform name.) - On other platforms: `lib/swift/linux/x86_64` (Where `linux` and `x86_64` are from lowercase `uname -sm`.) -- For convenience, Nixpkgs also adds simply `lib/swift` to the search path. +- For convenience, Nixpkgs also adds `lib/swift` to the search path. This can save a bit of work packaging Swift modules, because many Nix builds will produce output for just one target any way. @@ -123,7 +123,7 @@ swiftpmFlags = [ "--disable-dead-strip" ]; The default `buildPhase` already passes `-j` for parallel building. -If these two customization options are insufficient, simply provide your own +If these two customization options are insufficient, provide your own `buildPhase` that invokes `swift build`. ### Running tests {#ssec-swiftpm-running-tests} diff --git a/doc/packages/urxvt.section.md b/doc/packages/urxvt.section.md index 507feaa6fd8..7aff0997dd2 100644 --- a/doc/packages/urxvt.section.md +++ b/doc/packages/urxvt.section.md @@ -34,7 +34,7 @@ $ nix repl map (p: p.name) pkgs.rxvt-unicode.plugins ``` -Alternatively, if your shell is bash or zsh and have completion enabled, simply type `nixpkgs.rxvt-unicode.plugins.`. +Alternatively, if your shell is bash or zsh and have completion enabled, type `nixpkgs.rxvt-unicode.plugins.`. In addition to `plugins` the options `extraDeps` and `perlDeps` can be used to install extra packages. `extraDeps` can be used, for example, to provide `xsel` (a clipboard manager) to the clipboard plugin, without installing it globally: diff --git a/doc/stdenv/stdenv.chapter.md b/doc/stdenv/stdenv.chapter.md index 53243af5f23..26c43bd9e94 100644 --- a/doc/stdenv/stdenv.chapter.md +++ b/doc/stdenv/stdenv.chapter.md @@ -319,7 +319,7 @@ let f(h, h + 1, i) = i + (if i <= 0 then h else h) let f(h, h + 1, i) = i + h ``` -This is where “sum-like” comes in from above: We can just sum all of the host offsets to get the host offset of the transitive dependency. The target offset is the transitive dependency is simply the host offset + 1, just as it was with the dependencies composed to make this transitive one; it can be ignored as it doesn’t add any new information. +This is where “sum-like” comes in from above: We can just sum all of the host offsets to get the host offset of the transitive dependency. The target offset is the transitive dependency is the host offset + 1, just as it was with the dependencies composed to make this transitive one; it can be ignored as it doesn’t add any new information. Because of the bounds checks, the uncommon cases are `h = t` and `h + 2 = t`. In the former case, the motivation for `mapOffset` is that since its host and target platforms are the same, no transitive dependency of it should be able to “discover” an offset greater than its reduced target offsets. `mapOffset` effectively “squashes” all its transitive dependencies’ offsets so that none will ever be greater than the target offset of the original `h = t` package. In the other case, `h + 1` is skipped over between the host and target offsets. Instead of squashing the offsets, we need to “rip” them apart so no transitive dependencies’ offset is that one. @@ -649,7 +649,7 @@ Zip files are unpacked using `unzip`. However, `unzip` is not in the standard en #### Directories in the Nix store {#directories-in-the-nix-store} -These are simply copied to the current directory. The hash part of the file name is stripped, e.g. `/nix/store/1wydxgby13cz...-my-sources` would be copied to `my-sources`. +These are copied to the current directory. The hash part of the file name is stripped, e.g. `/nix/store/1wydxgby13cz...-my-sources` would be copied to `my-sources`. Additional file types can be supported by setting the `unpackCmd` variable (see below). @@ -788,7 +788,7 @@ Hook executed at the end of the configure phase. ### The build phase {#build-phase} -The build phase is responsible for actually building the package (e.g. compiling it). The default `buildPhase` simply calls `make` if a file named `Makefile`, `makefile` or `GNUmakefile` exists in the current directory (or the `makefile` is explicitly set); otherwise it does nothing. +The build phase is responsible for actually building the package (e.g. compiling it). The default `buildPhase` calls `make` if a file named `Makefile`, `makefile` or `GNUmakefile` exists in the current directory (or the `makefile` is explicitly set); otherwise it does nothing. #### Variables controlling the build phase {#variables-controlling-the-build-phase} @@ -1317,7 +1317,7 @@ Nix itself considers a build-time dependency as merely something that should pre In order to alleviate this burden, the setup hook mechanism was written, where any package can include a shell script that \[by convention rather than enforcement by Nix\], any downstream reverse-dependency will source as part of its build process. That allows the downstream dependency to merely specify its dependencies, and lets those dependencies effectively initialize themselves. No boilerplate mirroring the list of dependencies is needed. -The setup hook mechanism is a bit of a sledgehammer though: a powerful feature with a broad and indiscriminate area of effect. The combination of its power and implicit use may be expedient, but isn’t without costs. Nix itself is unchanged, but the spirit of added dependencies being effect-free is violated even if the latter isn’t. For example, if a derivation path is mentioned more than once, Nix itself doesn’t care and simply makes sure the dependency derivation is already built just the same—depending is just needing something to exist, and needing is idempotent. However, a dependency specified twice will have its setup hook run twice, and that could easily change the build environment (though a well-written setup hook will therefore strive to be idempotent so this is in fact not observable). More broadly, setup hooks are anti-modular in that multiple dependencies, whether the same or different, should not interfere and yet their setup hooks may well do so. +The setup hook mechanism is a bit of a sledgehammer though: a powerful feature with a broad and indiscriminate area of effect. The combination of its power and implicit use may be expedient, but isn’t without costs. Nix itself is unchanged, but the spirit of added dependencies being effect-free is violated even if the latter isn’t. For example, if a derivation path is mentioned more than once, Nix itself doesn’t care and makes sure the dependency derivation is already built just the same—depending is just needing something to exist, and needing is idempotent. However, a dependency specified twice will have its setup hook run twice, and that could easily change the build environment (though a well-written setup hook will therefore strive to be idempotent so this is in fact not observable). More broadly, setup hooks are anti-modular in that multiple dependencies, whether the same or different, should not interfere and yet their setup hooks may well do so. The most typical use of the setup hook is actually to add other hooks which are then run (i.e. after all the setup hooks) on each dependency. For example, the C compiler wrapper’s setup hook feeds itself flags for each dependency that contains relevant libraries and headers. This is done by defining a bash function, and appending its name to one of `envBuildBuildHooks`, `envBuildHostHooks`, `envBuildTargetHooks`, `envHostHostHooks`, `envHostTargetHooks`, or `envTargetTargetHooks`. These 6 bash variables correspond to the 6 sorts of dependencies by platform (there’s 12 total but we ignore the propagated/non-propagated axis). diff --git a/doc/using/overlays.chapter.md b/doc/using/overlays.chapter.md index 6ee52215a4e..1e965e5f0c7 100644 --- a/doc/using/overlays.chapter.md +++ b/doc/using/overlays.chapter.md @@ -156,7 +156,7 @@ All programs that are built with [MPI](https://en.wikipedia.org/wiki/Message_Pas - [MVAPICH](https://mvapich.cse.ohio-state.edu/), attribute name `mvapich` -To provide MPI enabled applications that use `MPICH`, instead of the default `Open MPI`, simply use the following overlay: +To provide MPI enabled applications that use `MPICH`, instead of the default `Open MPI`, use the following overlay: ```nix self: super: diff --git a/nixos/doc/manual/configuration/declarative-packages.section.md b/nixos/doc/manual/configuration/declarative-packages.section.md index 02eaa56192e..480e250da8c 100644 --- a/nixos/doc/manual/configuration/declarative-packages.section.md +++ b/nixos/doc/manual/configuration/declarative-packages.section.md @@ -37,7 +37,7 @@ Note: the `nixos` prefix tells us that we want to get the package from the `nixos` channel and works only in CLI tools. In declarative configuration use `pkgs` prefix (variable). -To "uninstall" a package, simply remove it from +To "uninstall" a package, remove it from [](#opt-environment.systemPackages) and run `nixos-rebuild switch`. ```{=include=} sections diff --git a/nixos/doc/manual/configuration/modularity.section.md b/nixos/doc/manual/configuration/modularity.section.md index 2eff1538798..f4a566d6697 100644 --- a/nixos/doc/manual/configuration/modularity.section.md +++ b/nixos/doc/manual/configuration/modularity.section.md @@ -36,8 +36,8 @@ Here, we include two modules from the same directory, `vpn.nix` and Note that both `configuration.nix` and `kde.nix` define the option [](#opt-environment.systemPackages). When multiple modules define an option, NixOS will try to *merge* the definitions. In the case of -[](#opt-environment.systemPackages), that's easy: the lists of -packages can simply be concatenated. The value in `configuration.nix` is +[](#opt-environment.systemPackages) the lists of packages will be +concatenated. The value in `configuration.nix` is merged last, so for list-type options, it will appear at the end of the merged list. If you want it to appear first, you can use `mkBefore`: diff --git a/nixos/doc/manual/configuration/xfce.chapter.md b/nixos/doc/manual/configuration/xfce.chapter.md index a80be2b523e..9ec4a51d6e3 100644 --- a/nixos/doc/manual/configuration/xfce.chapter.md +++ b/nixos/doc/manual/configuration/xfce.chapter.md @@ -28,7 +28,7 @@ manually (system wide), put them into your Thunar (the Xfce file manager) is automatically enabled when Xfce is enabled. To enable Thunar without enabling Xfce, use the configuration -option [](#opt-programs.thunar.enable) instead of simply adding +option [](#opt-programs.thunar.enable) instead of adding `pkgs.xfce.thunar` to [](#opt-environment.systemPackages). If you'd like to add extra plugins to Thunar, add them to diff --git a/nixos/doc/manual/development/writing-documentation.chapter.md b/nixos/doc/manual/development/writing-documentation.chapter.md index 8cb6823d098..c07a2618c07 100644 --- a/nixos/doc/manual/development/writing-documentation.chapter.md +++ b/nixos/doc/manual/development/writing-documentation.chapter.md @@ -50,7 +50,7 @@ pandoc -f markdown_github -t docbook5 docs.md -o my-section.md Pandoc can also quickly convert a single `section.xml` to HTML, which is helpful when drafting. -Sometimes writing valid DocBook is simply too difficult. In this case, +Sometimes writing valid DocBook is too difficult. In this case, submit your documentation updates in a [GitHub Issue](https://github.com/NixOS/nixpkgs/issues/new) and someone will handle the conversion to XML for you. diff --git a/nixos/doc/manual/installation/installing-pxe.section.md b/nixos/doc/manual/installation/installing-pxe.section.md index 4fbd6525f8c..c1cad99d39f 100644 --- a/nixos/doc/manual/installation/installing-pxe.section.md +++ b/nixos/doc/manual/installation/installing-pxe.section.md @@ -4,7 +4,7 @@ Advanced users may wish to install NixOS using an existing PXE or iPXE setup. These instructions assume that you have an existing PXE or iPXE -infrastructure and simply want to add the NixOS installer as another +infrastructure and want to add the NixOS installer as another option. To build the necessary files from your current version of nixpkgs, you can run: diff --git a/nixos/doc/manual/release-notes/rl-1609.section.md b/nixos/doc/manual/release-notes/rl-1609.section.md index ad3478d0ca1..0cbabf58ca0 100644 --- a/nixos/doc/manual/release-notes/rl-1609.section.md +++ b/nixos/doc/manual/release-notes/rl-1609.section.md @@ -46,7 +46,7 @@ When upgrading from a previous release, please be aware of the following incompa Other notable improvements: -- Revamped grsecurity/PaX support. There is now only a single general-purpose distribution kernel and the configuration interface has been streamlined. Desktop users should be able to simply set +- Revamped grsecurity/PaX support. There is now only a single general-purpose distribution kernel and the configuration interface has been streamlined. Desktop users should be able to set ```nix { diff --git a/nixos/doc/manual/release-notes/rl-1909.section.md b/nixos/doc/manual/release-notes/rl-1909.section.md index 22cef05d4fa..2bd04f8dd40 100644 --- a/nixos/doc/manual/release-notes/rl-1909.section.md +++ b/nixos/doc/manual/release-notes/rl-1909.section.md @@ -198,7 +198,7 @@ When upgrading from a previous release, please be aware of the following incompa For nginx, the dependencies are still automatically managed when `services.nginx.virtualhosts..enableACME` is enabled just like before. What changed is that nginx now directly depends on the specific certificates that it needs, instead of depending on the catch-all `acme-certificates.target`. This target unit was also removed from the codebase. This will mean nginx will no longer depend on certificates it isn't explicitly managing and fixes a bug with certificate renewal ordering racing with nginx restarting which could lead to nginx getting in a broken state as described at [NixOS/nixpkgs\#60180](https://github.com/NixOS/nixpkgs/issues/60180). -- The old deprecated `emacs` package sets have been dropped. What used to be called `emacsPackagesNg` is now simply called `emacsPackages`. +- The old deprecated `emacs` package sets have been dropped. What used to be called `emacsPackagesNg` is now called `emacsPackages`. - `services.xserver.desktopManager.xterm` is now disabled by default if `stateVersion` is 19.09 or higher. Previously the xterm desktopManager was enabled when xserver was enabled, but it isn't useful for all people so it didn't make sense to have any desktopManager enabled default. diff --git a/nixos/doc/manual/release-notes/rl-2003.section.md b/nixos/doc/manual/release-notes/rl-2003.section.md index 76cee8858e8..695f8a2c95c 100644 --- a/nixos/doc/manual/release-notes/rl-2003.section.md +++ b/nixos/doc/manual/release-notes/rl-2003.section.md @@ -482,7 +482,7 @@ When upgrading from a previous release, please be aware of the following incompa - If you use `postgresql` on a different server, you don't need to change anything as well since this module was never designed to configure remote databases. - - If you use `postgresql` and configured your synapse initially on `19.09` or older, you simply need to enable postgresql-support explicitly: + - If you use `postgresql` and configured your synapse initially on `19.09` or older, you need to enable postgresql-support explicitly: ```nix { ... }: { diff --git a/nixos/doc/manual/release-notes/rl-2009.section.md b/nixos/doc/manual/release-notes/rl-2009.section.md index 6bb75a04b3e..eac02a8ff44 100644 --- a/nixos/doc/manual/release-notes/rl-2009.section.md +++ b/nixos/doc/manual/release-notes/rl-2009.section.md @@ -422,7 +422,7 @@ When upgrading from a previous release, please be aware of the following incompa - The `systemd-networkd` option `systemd.network.networks._name_.dhcpConfig` has been renamed to [systemd.network.networks._name_.dhcpV4Config](options.html#opt-systemd.network.networks._name_.dhcpV4Config) following upstream systemd's documentation change. See systemd.network 5 for details. -- In the `picom` module, several options that accepted floating point numbers encoded as strings (for example [services.picom.activeOpacity](options.html#opt-services.picom.activeOpacity)) have been changed to the (relatively) new native `float` type. To migrate your configuration simply remove the quotes around the numbers. +- In the `picom` module, several options that accepted floating point numbers encoded as strings (for example [services.picom.activeOpacity](options.html#opt-services.picom.activeOpacity)) have been changed to the (relatively) new native `float` type. To migrate your configuration remove the quotes around the numbers. - When using `buildBazelPackage` from Nixpkgs, `flat` hash mode is now used for dependencies instead of `recursive`. This is to better allow using hashed mirrors where needed. As a result, these hashes will have changed. diff --git a/nixos/doc/manual/release-notes/rl-2211.section.md b/nixos/doc/manual/release-notes/rl-2211.section.md index 37079c20967..1c73d0c9790 100644 --- a/nixos/doc/manual/release-notes/rl-2211.section.md +++ b/nixos/doc/manual/release-notes/rl-2211.section.md @@ -14,7 +14,7 @@ In addition to numerous new and upgraded packages, this release includes the fol - Support for algorithms that `libxcrypt` [does not consider strong](https://github.com/besser82/libxcrypt/blob/v4.4.28/lib/hashes.conf#L41) are **deprecated** as of this release, and will be removed in NixOS 23.05. - This includes system login passwords. Given this, we **strongly encourage** all users to update their system passwords, as you will be unable to login if password hashes are not migrated by the time their support is removed. - When using `users.users..hashedPassword` to configure user passwords, run `mkpasswd`, and use the yescrypt hash that is provided as the new value. - - On the other hand, for interactively configured user passwords, simply re-set the passwords for all users with `passwd`. + - On the other hand, for interactively configured user passwords, re-set the passwords for all users with `passwd`. - This release introduces warnings for the use of deprecated hash algorithms for both methods of configuring passwords. To make sure you migrated correctly, run `nixos-rebuild switch`. - The NixOS documentation is now generated from markdown. While docbook is still part of the documentation build process, it's a big step towards the full migration. diff --git a/nixos/doc/manual/release-notes/rl-2305.section.md b/nixos/doc/manual/release-notes/rl-2305.section.md index 3d27d3fef8f..0b54b8b32a3 100644 --- a/nixos/doc/manual/release-notes/rl-2305.section.md +++ b/nixos/doc/manual/release-notes/rl-2305.section.md @@ -611,7 +611,7 @@ If you are: - adding new rules with `*.rules` - running custom PulseAudio commands with `pulse.cmd` -Simply move the definitions into the drop-in. +Move the definitions into the drop-in. Note that the use of `context.exec` is not recommended and other methods of running your thing are likely a better option. diff --git a/nixos/doc/manual/release-notes/rl-2311.section.md b/nixos/doc/manual/release-notes/rl-2311.section.md index 2b45bbac876..87f045c55d0 100644 --- a/nixos/doc/manual/release-notes/rl-2311.section.md +++ b/nixos/doc/manual/release-notes/rl-2311.section.md @@ -304,7 +304,7 @@ - Emacs macport version 29 was introduced. -- The option `services.networking.networkmanager.enableFccUnlock` was removed in favor of `networking.networkmanager.fccUnlockScripts`, which allows specifying unlock scripts explicitly. The previous option simply did enable all unlock scripts bundled with ModemManager, which is risky, and didn't allow using vendor-provided unlock scripts at all. +- The option `services.networking.networkmanager.enableFccUnlock` was removed in favor of `networking.networkmanager.fccUnlockScripts`, which allows specifying unlock scripts explicitly. The previous option enabled all unlock scripts bundled with ModemManager, which is risky, and didn't allow using vendor-provided unlock scripts at all. - The `html-proofer` package has been updated from major version 3 to major version 5, which includes [breaking changes](https://github.com/gjtorikian/html-proofer/blob/v5.0.8/UPGRADING.md). -- cgit 1.4.1 From e30f48be948272df2d57237ef955023f937f4421 Mon Sep 17 00:00:00 2001 From: Anthony Roussel Date: Mon, 30 Oct 2023 21:41:44 +0100 Subject: treewide: fix redirected and broken URLs Using the script in maintainers/scripts/update-redirected-urls.sh --- CONTRIBUTING.md | 2 +- doc/languages-frameworks/lisp.section.md | 2 +- doc/packages/steam.section.md | 2 +- doc/using/overlays.chapter.md | 2 +- lib/licenses.nix | 10 +++++----- .../haskell/upload-nixos-package-list-to-hackage.sh | 2 +- nixos/doc/manual/configuration/subversion.chapter.md | 4 ++-- .../manual/development/writing-documentation.chapter.md | 8 ++++---- nixos/modules/config/users-groups.nix | 2 +- nixos/modules/installer/tools/nixos-generate-config.pl | 2 +- nixos/modules/programs/npm.nix | 2 +- nixos/modules/programs/zsh/oh-my-zsh.md | 2 +- nixos/modules/security/pam_mount.nix | 6 +++--- nixos/modules/security/polkit.nix | 3 +-- nixos/modules/services/audio/jack.nix | 2 +- nixos/modules/services/computing/boinc/client.nix | 2 +- nixos/modules/services/computing/slurm/slurm.nix | 2 +- nixos/modules/services/databases/couchdb.nix | 2 +- nixos/modules/services/databases/firebird.nix | 2 +- nixos/modules/services/databases/pgmanage.nix | 2 +- nixos/modules/services/databases/postgresql.md | 2 +- nixos/modules/services/databases/postgresql.nix | 2 +- nixos/modules/services/databases/redis.nix | 2 +- nixos/modules/services/hardware/udev.nix | 2 +- nixos/modules/services/logging/logstash.nix | 2 +- nixos/modules/services/misc/mediatomb.nix | 2 +- nixos/modules/services/monitoring/bosun.nix | 2 +- nixos/modules/services/monitoring/grafana.nix | 4 ++-- nixos/modules/services/monitoring/graphite.nix | 2 +- nixos/modules/services/monitoring/munin.nix | 14 +++++++------- nixos/modules/services/monitoring/nagios.nix | 2 +- nixos/modules/services/network-filesystems/xtreemfs.nix | 10 +++++----- nixos/modules/services/networking/asterisk.nix | 2 +- nixos/modules/services/networking/i2pd.nix | 2 +- nixos/modules/services/networking/ntp/ntpd.nix | 2 +- nixos/modules/services/networking/tox-bootstrapd.nix | 2 +- nixos/modules/services/torrent/transmission.nix | 2 +- nixos/modules/services/video/unifi-video.nix | 4 ++-- nixos/modules/services/web-apps/discourse.nix | 4 ++-- nixos/modules/services/web-apps/nextcloud.md | 2 +- nixos/modules/services/web-apps/tt-rss.nix | 2 +- nixos/modules/services/web-servers/lighttpd/default.nix | 6 +++--- nixos/modules/services/web-servers/mighttpd2.nix | 4 ++-- nixos/modules/services/web-servers/nginx/default.nix | 2 +- .../services/x11/desktop-managers/enlightenment.nix | 2 +- nixos/modules/services/x11/desktop-managers/gnome.nix | 2 +- nixos/modules/services/x11/desktop-managers/pantheon.nix | 2 +- nixos/modules/services/x11/display-managers/default.nix | 2 +- nixos/modules/services/x11/display-managers/xpra.nix | 6 +++--- nixos/modules/services/x11/imwheel.nix | 2 +- .../boot/loader/generic-extlinux-compatible/default.nix | 2 +- nixos/modules/system/boot/loader/grub/grub.nix | 2 +- nixos/modules/system/boot/luksroot.nix | 2 +- nixos/modules/system/boot/stage-1.nix | 2 +- pkgs/applications/emulators/gxemul/default.nix | 4 ++-- pkgs/applications/file-managers/dfilemanager/default.nix | 2 +- pkgs/applications/graphics/openscad/default.nix | 2 +- pkgs/applications/graphics/pikopixel/default.nix | 6 +++--- pkgs/applications/graphics/viewnior/default.nix | 2 +- pkgs/applications/misc/yate/default.nix | 2 +- pkgs/applications/networking/irc/kirc/default.nix | 2 +- pkgs/applications/networking/irc/kvirc/default.nix | 2 +- pkgs/applications/networking/p2p/mldonkey/default.nix | 2 +- pkgs/applications/radio/ebook2cw/default.nix | 2 +- pkgs/applications/science/logic/aiger/default.nix | 4 ++-- pkgs/applications/science/logic/cadical/default.nix | 2 +- pkgs/applications/science/logic/cvc3/default.nix | 6 +++--- pkgs/applications/science/logic/kissat/default.nix | 2 +- pkgs/applications/science/logic/picosat/default.nix | 4 ++-- pkgs/applications/science/math/colpack/default.nix | 2 +- pkgs/applications/virtualization/qemu/default.nix | 7 ++----- pkgs/applications/virtualization/virt-manager/default.nix | 2 +- pkgs/applications/virtualization/virt-viewer/default.nix | 2 +- pkgs/data/soundfonts/generaluser/default.nix | 4 ++-- pkgs/development/compilers/pforth/default.nix | 2 +- pkgs/development/compilers/uasm/default.nix | 2 +- pkgs/development/interpreters/picolisp/default.nix | 2 +- pkgs/development/libraries/ctpp2/default.nix | 4 ++-- pkgs/development/libraries/dbus/default.nix | 2 +- pkgs/development/libraries/irrlicht/default.nix | 2 +- pkgs/development/libraries/irrlicht/mac.nix | 2 +- pkgs/development/libraries/libcdr/default.nix | 2 +- pkgs/development/libraries/libevdev/default.nix | 2 +- pkgs/development/libraries/libproxy/default.nix | 2 +- pkgs/development/libraries/libsodium/default.nix | 2 +- pkgs/development/libraries/libtsm/default.nix | 2 +- pkgs/development/libraries/openfx/default.nix | 4 ++-- pkgs/development/libraries/polkit/default.nix | 2 +- pkgs/development/libraries/portaudio/default.nix | 4 ++-- .../development/libraries/startup-notification/default.nix | 2 +- pkgs/development/libraries/vcg/default.nix | 2 +- .../examples/bordeaux-threads.nix | 2 +- pkgs/development/python-modules/cvxopt/default.nix | 2 +- pkgs/development/python-modules/polling/default.nix | 2 +- pkgs/development/python-modules/sqlobject/default.nix | 2 +- pkgs/development/tools/nailgun/default.nix | 2 +- pkgs/games/hedgewars/default.nix | 2 +- pkgs/games/hyperrogue/default.nix | 2 +- pkgs/games/xskat/default.nix | 4 ++-- pkgs/misc/cups/cups-pk-helper.nix | 2 +- pkgs/os-specific/linux/ch9344/default.nix | 2 +- pkgs/os-specific/linux/kmscon/default.nix | 2 +- pkgs/os-specific/linux/microcode/intel.nix | 2 +- pkgs/tools/filesystems/unionfs-fuse/default.nix | 2 +- pkgs/tools/misc/ccal/default.nix | 5 ++--- pkgs/tools/misc/desktop-file-utils/default.nix | 2 +- pkgs/tools/misc/plantuml/default.nix | 2 +- pkgs/tools/networking/redsocks/default.nix | 2 +- pkgs/tools/networking/ripmime/default.nix | 6 +++--- pkgs/tools/security/afl/qemu.nix | 4 ++-- pkgs/tools/security/chkrootkit/default.nix | 4 ++-- 111 files changed, 157 insertions(+), 162 deletions(-) (limited to 'doc') diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 483267935c8..dadda215b0d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -353,7 +353,7 @@ In a case a contributor definitively leaves the Nix community, they should creat # Flow of merged pull requests After a pull request is merged, it eventually makes it to the [official Hydra CI](https://hydra.nixos.org/). -Hydra regularly evaluates and builds Nixpkgs, updating [the official channels](http://channels.nixos.org/) when specific Hydra jobs succeeded. +Hydra regularly evaluates and builds Nixpkgs, updating [the official channels](https://channels.nixos.org/) when specific Hydra jobs succeeded. See [Nix Channel Status](https://status.nixos.org/) for the current channels and their state. Here's a brief overview of the main Git branches and what channels they're used for: diff --git a/doc/languages-frameworks/lisp.section.md b/doc/languages-frameworks/lisp.section.md index fe7f2ef80a2..09193093b08 100644 --- a/doc/languages-frameworks/lisp.section.md +++ b/doc/languages-frameworks/lisp.section.md @@ -66,7 +66,7 @@ buildPhase = '' To save some work of writing Nix expressions, there is a script that imports all the packages distributed by Quicklisp into `imported.nix`. This works by parsing its `releases.txt` and `systems.txt` files, which are published every couple of -months on [quicklisp.org](http://beta.quicklisp.org/dist/quicklisp.txt). +months on [quicklisp.org](https://beta.quicklisp.org/dist/quicklisp.txt). The import process is implemented in the `import` directory as Common Lisp code in the `org.lispbuilds.nix` ASDF system. To run the script, one can diff --git a/doc/packages/steam.section.md b/doc/packages/steam.section.md index 25728aa52ae..a1e88b0d971 100644 --- a/doc/packages/steam.section.md +++ b/doc/packages/steam.section.md @@ -11,7 +11,7 @@ Nix problems and constraints: - The `steam.sh` script in `$HOME` cannot be patched, as it is checked and rewritten by steam. - The steam binary cannot be patched, it's also checked. -The current approach to deploy Steam in NixOS is composing a FHS-compatible chroot environment, as documented [here](http://sandervanderburg.blogspot.nl/2013/09/composing-fhs-compatible-chroot.html). This allows us to have binaries in the expected paths without disrupting the system, and to avoid patching them to work in a non FHS environment. +The current approach to deploy Steam in NixOS is composing a FHS-compatible chroot environment, as documented [here](https://sandervanderburg.blogspot.com/2013/09/composing-fhs-compatible-chroot.html). This allows us to have binaries in the expected paths without disrupting the system, and to avoid patching them to work in a non FHS environment. ## How to play {#sec-steam-play} diff --git a/doc/using/overlays.chapter.md b/doc/using/overlays.chapter.md index 1e965e5f0c7..1bec6586f28 100644 --- a/doc/using/overlays.chapter.md +++ b/doc/using/overlays.chapter.md @@ -77,7 +77,7 @@ In Nixpkgs, we have multiple implementations of the BLAS/LAPACK numerical linear The Nixpkgs attribute is `openblas` for ILP64 (integer width = 64 bits) and `openblasCompat` for LP64 (integer width = 32 bits). `openblasCompat` is the default. -- [LAPACK reference](http://www.netlib.org/lapack/) (also provides BLAS and CBLAS) +- [LAPACK reference](https://www.netlib.org/lapack/) (also provides BLAS and CBLAS) The Nixpkgs attribute is `lapack-reference`. diff --git a/lib/licenses.nix b/lib/licenses.nix index a90bab0b15d..ad6922498ab 100644 --- a/lib/licenses.nix +++ b/lib/licenses.nix @@ -516,17 +516,17 @@ in mkLicense lset) ({ generaluser = { fullName = "GeneralUser GS License v2.0"; - url = "http://www.schristiancollins.com/generaluser.php"; # license included in sources + url = "https://www.schristiancollins.com/generaluser.php"; # license included in sources }; gfl = { fullName = "GUST Font License"; - url = "http://www.gust.org.pl/fonts/licenses/GUST-FONT-LICENSE.txt"; + url = "https://www.gust.org.pl/projects/e-foundry/licenses/GUST-FONT-LICENSE.txt"; }; gfsl = { fullName = "GUST Font Source License"; - url = "http://www.gust.org.pl/fonts/licenses/GUST-FONT-SOURCE-LICENSE.txt"; + url = "https://www.gust.org.pl/projects/e-foundry/licenses/GUST-FONT-SOURCE-LICENSE.txt"; }; gpl1Only = { @@ -613,7 +613,7 @@ in mkLicense lset) ({ info-zip = { spdxId = "Info-ZIP"; fullName = "Info-ZIP License"; - url = "http://www.info-zip.org/pub/infozip/license.html"; + url = "https://infozip.sourceforge.net/license.html"; }; inria-compcert = { @@ -1182,7 +1182,7 @@ in mkLicense lset) ({ xfig = { fullName = "xfig"; - url = "http://mcj.sourceforge.net/authors.html#xfig"; # https is broken + url = "https://mcj.sourceforge.net/authors.html#xfig"; }; zlib = { diff --git a/maintainers/scripts/haskell/upload-nixos-package-list-to-hackage.sh b/maintainers/scripts/haskell/upload-nixos-package-list-to-hackage.sh index 86fecbc3d87..9130941a536 100755 --- a/maintainers/scripts/haskell/upload-nixos-package-list-to-hackage.sh +++ b/maintainers/scripts/haskell/upload-nixos-package-list-to-hackage.sh @@ -39,5 +39,5 @@ fi package_list="$(nix-build -A haskell.package-list)/nixos-hackage-packages.csv" username=$(grep "^username:" "$CABAL_DIR/config" | sed "s/^username: //") password_command=$(grep "^password-command:" "$CABAL_DIR/config" | sed "s/^password-command: //") -curl -u "$username:$($password_command | head -n1)" --digest -H "Content-type: text/csv" -T "$package_list" http://hackage.haskell.org/distro/NixOS/packages.csv +curl -u "$username:$($password_command | head -n1)" --digest -H "Content-type: text/csv" -T "$package_list" https://hackage.haskell.org/distro/NixOS/packages.csv echo diff --git a/nixos/doc/manual/configuration/subversion.chapter.md b/nixos/doc/manual/configuration/subversion.chapter.md index 84f9c270337..ff870f5c40b 100644 --- a/nixos/doc/manual/configuration/subversion.chapter.md +++ b/nixos/doc/manual/configuration/subversion.chapter.md @@ -2,7 +2,7 @@ [Subversion](https://subversion.apache.org/) is a centralized version-control system. It can use a [variety of -protocols](http://svnbook.red-bean.com/en/1.7/svn-book.html#svn.serverconfig.choosing) +protocols](https://svnbook.red-bean.com/en/1.7/svn-book.html#svn.serverconfig.choosing) for communication between client and server. ## Subversion inside Apache HTTP {#module-services-subversion-apache-httpd} @@ -14,7 +14,7 @@ for communication. For more information on the general setup, please refer to the [the appropriate section of the Subversion -book](http://svnbook.red-bean.com/en/1.7/svn-book.html#svn.serverconfig.httpd). +book](https://svnbook.red-bean.com/en/1.7/svn-book.html#svn.serverconfig.httpd). To configure, include in `/etc/nixos/configuration.nix` code to activate Apache HTTP, setting [](#opt-services.httpd.adminAddr) diff --git a/nixos/doc/manual/development/writing-documentation.chapter.md b/nixos/doc/manual/development/writing-documentation.chapter.md index c07a2618c07..3d9bd318cf3 100644 --- a/nixos/doc/manual/development/writing-documentation.chapter.md +++ b/nixos/doc/manual/development/writing-documentation.chapter.md @@ -33,13 +33,13 @@ symlink at `./result/share/doc/nixos/index.html`. ## Editing DocBook XML {#sec-writing-docs-editing-docbook-xml} For general information on how to write in DocBook, see [DocBook 5: The -Definitive Guide](http://www.docbook.org/tdg5/en/html/docbook.html). +Definitive Guide](https://tdg.docbook.org/tdg/5.1/). Emacs nXML Mode is very helpful for editing DocBook XML because it validates the document as you write, and precisely locates errors. To use it, see [](#sec-emacs-docbook-xml). -[Pandoc](http://pandoc.org) can generate DocBook XML from a multitude of +[Pandoc](https://pandoc.org/) can generate DocBook XML from a multitude of formats, which makes a good starting point. Here is an example of Pandoc invocation to convert GitHub-Flavoured MarkDown to DocBook 5 XML: @@ -62,9 +62,9 @@ topic from scratch. Keep the following guidelines in mind when you create and add a topic: -- The NixOS [`book`](http://www.docbook.org/tdg5/en/html/book.html) +- The NixOS [`book`](https://tdg.docbook.org/tdg/5.0/book.html) element is in `nixos/doc/manual/manual.xml`. It includes several - [`parts`](http://www.docbook.org/tdg5/en/html/book.html) which are in + [`parts`](https://tdg.docbook.org/tdg/5.0/book.html) which are in subdirectories. - Store the topic file in the same directory as the `part` to which it diff --git a/nixos/modules/config/users-groups.nix b/nixos/modules/config/users-groups.nix index b4251214876..39aac9fb821 100644 --- a/nixos/modules/config/users-groups.nix +++ b/nixos/modules/config/users-groups.nix @@ -153,7 +153,7 @@ let {file}`pam_mount.conf.xml`. Useful attributes might include `path`, `options`, `fstype`, and `server`. - See + See for more information. ''; }; diff --git a/nixos/modules/installer/tools/nixos-generate-config.pl b/nixos/modules/installer/tools/nixos-generate-config.pl index 85180bf2d1b..71737cd8ebc 100644 --- a/nixos/modules/installer/tools/nixos-generate-config.pl +++ b/nixos/modules/installer/tools/nixos-generate-config.pl @@ -130,7 +130,7 @@ sub pciCheck { debug "\n"; if (defined $module) { - # See the bottom of http://pciids.sourceforge.net/pci.ids for + # See the bottom of https://pciids.sourceforge.net/pci.ids for # device classes. if (# Mass-storage controller. Definitely important. $class =~ /^0x01/ || diff --git a/nixos/modules/programs/npm.nix b/nixos/modules/programs/npm.nix index 48dc48e668f..c41fea32614 100644 --- a/nixos/modules/programs/npm.nix +++ b/nixos/modules/programs/npm.nix @@ -34,7 +34,7 @@ in prefix = ''${HOME}/.npm https-proxy=proxy.example.com init-license=MIT - init-author-url=http://npmjs.org + init-author-url=https://www.npmjs.com/ color=true ''; }; diff --git a/nixos/modules/programs/zsh/oh-my-zsh.md b/nixos/modules/programs/zsh/oh-my-zsh.md index 73d425244ce..6a310006edb 100644 --- a/nixos/modules/programs/zsh/oh-my-zsh.md +++ b/nixos/modules/programs/zsh/oh-my-zsh.md @@ -78,7 +78,7 @@ If third-party customizations (e.g. new themes) are supposed to be added to - Completion scripts are supposed to be stored at `$out/share/zsh/site-functions`. This directory is part of the - [`fpath`](http://zsh.sourceforge.net/Doc/Release/Functions.html) + [`fpath`](https://zsh.sourceforge.io/Doc/Release/Functions.html) and the package should be compatible with pure `ZSH` setups. The module will automatically link the contents of `site-functions` to completions directory in the proper diff --git a/nixos/modules/security/pam_mount.nix b/nixos/modules/security/pam_mount.nix index ad78f38b086..26f906f2a76 100644 --- a/nixos/modules/security/pam_mount.nix +++ b/nixos/modules/security/pam_mount.nix @@ -33,7 +33,7 @@ in default = []; description = lib.mdDoc '' List of volume definitions for pam_mount. - For more information, visit . + For more information, visit . ''; }; @@ -78,7 +78,7 @@ in description = lib.mdDoc '' Sets the Debug-Level. 0 disables debugging, 1 enables pam_mount tracing, and 2 additionally enables tracing in mount.crypt. The default is 0. - For more information, visit . + For more information, visit . ''; }; @@ -88,7 +88,7 @@ in description = lib.mdDoc '' Amount of microseconds to wait until killing remaining processes after final logout. - For more information, visit . + For more information, visit . ''; }; diff --git a/nixos/modules/security/polkit.nix b/nixos/modules/security/polkit.nix index de427ccb295..327f49c0b63 100644 --- a/nixos/modules/security/polkit.nix +++ b/nixos/modules/security/polkit.nix @@ -35,7 +35,7 @@ in description = lib.mdDoc '' Any polkit rules to be added to config (in JavaScript ;-). See: - http://www.freedesktop.org/software/polkit/docs/latest/polkit.8.html#polkit-rules + ''; }; @@ -117,4 +117,3 @@ in }; } - diff --git a/nixos/modules/services/audio/jack.nix b/nixos/modules/services/audio/jack.nix index 105e99cb2f5..b51f2a78c98 100644 --- a/nixos/modules/services/audio/jack.nix +++ b/nixos/modules/services/audio/jack.nix @@ -225,7 +225,7 @@ in { description = "JACK Audio system service user"; isSystemUser = true; }; - # http://jackaudio.org/faq/linux_rt_config.html + # https://jackaudio.org/faq/linux_rt_config.html security.pam.loginLimits = [ { domain = "@jackaudio"; type = "-"; item = "rtprio"; value = "99"; } { domain = "@jackaudio"; type = "-"; item = "memlock"; value = "unlimited"; } diff --git a/nixos/modules/services/computing/boinc/client.nix b/nixos/modules/services/computing/boinc/client.nix index 51475171bf3..ff16795c820 100644 --- a/nixos/modules/services/computing/boinc/client.nix +++ b/nixos/modules/services/computing/boinc/client.nix @@ -54,7 +54,7 @@ in only the hosts listed in {var}`dataDir`/remote_hosts.cfg will be allowed to connect. - See also: + See also: ''; }; diff --git a/nixos/modules/services/computing/slurm/slurm.nix b/nixos/modules/services/computing/slurm/slurm.nix index 344c43a429b..1cbe7b893f8 100644 --- a/nixos/modules/services/computing/slurm/slurm.nix +++ b/nixos/modules/services/computing/slurm/slurm.nix @@ -6,7 +6,7 @@ let cfg = config.services.slurm; opt = options.services.slurm; - # configuration file can be generated by http://slurm.schedmd.com/configurator.html + # configuration file can be generated by https://slurm.schedmd.com/configurator.html defaultUser = "slurm"; diff --git a/nixos/modules/services/databases/couchdb.nix b/nixos/modules/services/databases/couchdb.nix index 0a81a8dceee..bfecfbb3664 100644 --- a/nixos/modules/services/databases/couchdb.nix +++ b/nixos/modules/services/databases/couchdb.nix @@ -79,7 +79,7 @@ in { ''; }; - # couchdb options: http://docs.couchdb.org/en/latest/config/index.html + # couchdb options: https://docs.couchdb.org/en/latest/config/index.html databaseDir = mkOption { type = types.path; diff --git a/nixos/modules/services/databases/firebird.nix b/nixos/modules/services/databases/firebird.nix index 26ed46f0e60..3927c81d953 100644 --- a/nixos/modules/services/databases/firebird.nix +++ b/nixos/modules/services/databases/firebird.nix @@ -17,7 +17,7 @@ # There are at least two ways to run firebird. superserver has been chosen # however there are no strong reasons to prefer this or the other one AFAIK # Eg superserver is said to be most efficiently using resources according to -# http://www.firebirdsql.org/manual/qsg25-classic-or-super.html +# https://www.firebirdsql.org/manual/qsg25-classic-or-super.html with lib; diff --git a/nixos/modules/services/databases/pgmanage.nix b/nixos/modules/services/databases/pgmanage.nix index 12c8253ab49..a0933a5ffc4 100644 --- a/nixos/modules/services/databases/pgmanage.nix +++ b/nixos/modules/services/databases/pgmanage.nix @@ -66,7 +66,7 @@ in { pgmanage requires at least one PostgreSQL server be defined. Detailed information about PostgreSQL connection strings is available at: - + Note that you should not specify your user name or password. That information will be entered on the login screen. If you specify a diff --git a/nixos/modules/services/databases/postgresql.md b/nixos/modules/services/databases/postgresql.md index e4b679a3eee..d65d9616e2f 100644 --- a/nixos/modules/services/databases/postgresql.md +++ b/nixos/modules/services/databases/postgresql.md @@ -5,7 +5,7 @@ *Source:* {file}`modules/services/databases/postgresql.nix` -*Upstream documentation:* +*Upstream documentation:* diff --git a/nixos/modules/services/databases/postgresql.nix b/nixos/modules/services/databases/postgresql.nix index 21e6a60e32a..af4db5c9611 100644 --- a/nixos/modules/services/databases/postgresql.nix +++ b/nixos/modules/services/databases/postgresql.nix @@ -588,7 +588,7 @@ in else "simple"; # Shut down Postgres using SIGINT ("Fast Shutdown mode"). See - # http://www.postgresql.org/docs/current/static/server-shutdown.html + # https://www.postgresql.org/docs/current/server-shutdown.html KillSignal = "SIGINT"; KillMode = "mixed"; diff --git a/nixos/modules/services/databases/redis.nix b/nixos/modules/services/databases/redis.nix index 86b295dadf4..315a0282cd7 100644 --- a/nixos/modules/services/databases/redis.nix +++ b/nixos/modules/services/databases/redis.nix @@ -63,7 +63,7 @@ in { vmOverCommit = mkEnableOption (lib.mdDoc '' setting of vm.overcommit_memory to 1 - (Suggested for Background Saving: http://redis.io/topics/faq) + (Suggested for Background Saving: ) ''); servers = mkOption { diff --git a/nixos/modules/services/hardware/udev.nix b/nixos/modules/services/hardware/udev.nix index 24987374ab0..08ca7a0d247 100644 --- a/nixos/modules/services/hardware/udev.nix +++ b/nixos/modules/services/hardware/udev.nix @@ -279,7 +279,7 @@ in default = true; type = types.bool; description = lib.mdDoc '' - Whether to assign [predictable names to network interfaces](http://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames). + Whether to assign [predictable names to network interfaces](https://www.freedesktop.org/wiki/Software/systemd/PredictableNetworkInterfaceNames/). If enabled, interfaces are assigned names that contain topology information (e.g. `wlp3s0`) and thus should be stable diff --git a/nixos/modules/services/logging/logstash.nix b/nixos/modules/services/logging/logstash.nix index e9e3ae1f14c..42d52a61639 100644 --- a/nixos/modules/services/logging/logstash.nix +++ b/nixos/modules/services/logging/logstash.nix @@ -123,7 +123,7 @@ in example = '' if [type] == "syslog" { # Keep only relevant systemd fields - # http://www.freedesktop.org/software/systemd/man/systemd.journal-fields.html + # https://www.freedesktop.org/software/systemd/man/systemd.journal-fields.html prune { whitelist_names => [ "type", "@timestamp", "@version", diff --git a/nixos/modules/services/misc/mediatomb.nix b/nixos/modules/services/misc/mediatomb.nix index 632b7caaac4..335b1b684b1 100644 --- a/nixos/modules/services/misc/mediatomb.nix +++ b/nixos/modules/services/misc/mediatomb.nix @@ -186,7 +186,7 @@ let defaultFirewallRules = { # udp 1900 port needs to be opened for SSDP (not configurable within # mediatomb/gerbera) cf. - # http://docs.gerbera.io/en/latest/run.html?highlight=udp%20port#network-setup + # https://docs.gerbera.io/en/latest/run.html?highlight=udp%20port#network-setup allowedUDPPorts = [ 1900 cfg.port ]; allowedTCPPorts = [ cfg.port ]; }; diff --git a/nixos/modules/services/monitoring/bosun.nix b/nixos/modules/services/monitoring/bosun.nix index dc75fda6ed8..1dc19743461 100644 --- a/nixos/modules/services/monitoring/bosun.nix +++ b/nixos/modules/services/monitoring/bosun.nix @@ -108,7 +108,7 @@ in { option. A detailed description of the supported syntax can be found at-spi2-atk - http://bosun.org/configuration.html + https://bosun.org/configuration.html ''; }; diff --git a/nixos/modules/services/monitoring/grafana.nix b/nixos/modules/services/monitoring/grafana.nix index e90a0e9d16d..5e21407042b 100644 --- a/nixos/modules/services/monitoring/grafana.nix +++ b/nixos/modules/services/monitoring/grafana.nix @@ -88,7 +88,7 @@ let # Get a submodule without any embedded metadata: _filter = x: filterAttrs (k: v: k != "_module") x; - # http://docs.grafana.org/administration/provisioning/#datasources + # https://grafana.com/docs/grafana/latest/administration/provisioning/#datasources grafanaTypes.datasourceConfig = types.submodule { freeformType = provisioningSettingsFormat.type; @@ -140,7 +140,7 @@ let }; }; - # http://docs.grafana.org/administration/provisioning/#dashboards + # https://grafana.com/docs/grafana/latest/administration/provisioning/#dashboards grafanaTypes.dashboardConfig = types.submodule { freeformType = provisioningSettingsFormat.type; diff --git a/nixos/modules/services/monitoring/graphite.nix b/nixos/modules/services/monitoring/graphite.nix index 65c91b8f79b..cc3d7097620 100644 --- a/nixos/modules/services/monitoring/graphite.nix +++ b/nixos/modules/services/monitoring/graphite.nix @@ -102,7 +102,7 @@ in { default = ""; description = lib.mdDoc '' Graphite webapp settings. See: - + ''; }; }; diff --git a/nixos/modules/services/monitoring/munin.nix b/nixos/modules/services/monitoring/munin.nix index 90a51181ac3..5ed7cac48ae 100644 --- a/nixos/modules/services/monitoring/munin.nix +++ b/nixos/modules/services/monitoring/munin.nix @@ -4,7 +4,7 @@ # TODO: LWP/Pg perl libs aren't recognized # TODO: support fastcgi -# http://guide.munin-monitoring.org/en/latest/example/webserver/apache-cgi.html +# https://guide.munin-monitoring.org/en/latest/example/webserver/apache-cgi.html # spawn-fcgi -s /run/munin/fastcgi-graph.sock -U www-data -u munin -g munin /usr/lib/munin/cgi/munin-cgi-graph # spawn-fcgi -s /run/munin/fastcgi-html.sock -U www-data -u munin -g munin /usr/lib/munin/cgi/munin-cgi-html # https://paste.sh/vofcctHP#-KbDSXVeWoifYncZmLfZzgum @@ -147,7 +147,7 @@ in Enable Munin Node agent. Munin node listens on 0.0.0.0 and by default accepts connections only from 127.0.0.1 for security reasons. - See . + See . ''; }; @@ -156,7 +156,7 @@ in type = types.lines; description = lib.mdDoc '' {file}`munin-node.conf` extra configuration. See - + ''; }; @@ -165,7 +165,7 @@ in type = types.lines; description = lib.mdDoc '' {file}`plugin-conf.d` extra plugin configuration. See - + ''; example = '' [fail2ban_*] @@ -273,9 +273,9 @@ in type = types.lines; description = lib.mdDoc '' {file}`munin.conf` extra global configuration. - See . + See . Useful to setup notifications, see - + ''; example = '' contact.email.command mail -s "Munin notification for ''${var:host}" someone@example.com @@ -288,7 +288,7 @@ in description = lib.mdDoc '' Definitions of hosts of nodes to collect data from. Needs at least one host for cron to succeed. See - + ''; example = literalExpression '' ''' diff --git a/nixos/modules/services/monitoring/nagios.nix b/nixos/modules/services/monitoring/nagios.nix index 8feff22c118..dc5fa1be292 100644 --- a/nixos/modules/services/monitoring/nagios.nix +++ b/nixos/modules/services/monitoring/nagios.nix @@ -88,7 +88,7 @@ in options = { services.nagios = { - enable = mkEnableOption (lib.mdDoc ''[Nagios](http://www.nagios.org/) to monitor your system or network.''); + enable = mkEnableOption (lib.mdDoc ''[Nagios](https://www.nagios.org/) to monitor your system or network.''); objectDefs = mkOption { description = lib.mdDoc '' diff --git a/nixos/modules/services/network-filesystems/xtreemfs.nix b/nixos/modules/services/network-filesystems/xtreemfs.nix index 926c3c3bd52..866661cf4e6 100644 --- a/nixos/modules/services/network-filesystems/xtreemfs.nix +++ b/nixos/modules/services/network-filesystems/xtreemfs.nix @@ -176,7 +176,7 @@ in description = lib.mdDoc '' Configuration of XtreemFS DIR service. WARNING: configuration is saved as plaintext inside nix store. - For more options: http://www.xtreemfs.org/xtfs-guide-1.5.1/index.html + For more options: https://www.xtreemfs.org/xtfs-guide-1.5.1/index.html ''; }; replication = { @@ -218,7 +218,7 @@ in description = lib.mdDoc '' Configuration of XtreemFS DIR replication plugin. WARNING: configuration is saved as plaintext inside nix store. - For more options: http://www.xtreemfs.org/xtfs-guide-1.5.1/index.html + For more options: https://www.xtreemfs.org/xtfs-guide-1.5.1/index.html ''; }; }; @@ -319,7 +319,7 @@ in description = lib.mdDoc '' Configuration of XtreemFS MRC service. WARNING: configuration is saved as plaintext inside nix store. - For more options: http://www.xtreemfs.org/xtfs-guide-1.5.1/index.html + For more options: https://www.xtreemfs.org/xtfs-guide-1.5.1/index.html ''; }; replication = { @@ -361,7 +361,7 @@ in description = lib.mdDoc '' Configuration of XtreemFS MRC replication plugin. WARNING: configuration is saved as plaintext inside nix store. - For more options: http://www.xtreemfs.org/xtfs-guide-1.5.1/index.html + For more options: https://www.xtreemfs.org/xtfs-guide-1.5.1/index.html ''; }; }; @@ -438,7 +438,7 @@ in description = lib.mdDoc '' Configuration of XtreemFS OSD service. WARNING: configuration is saved as plaintext inside nix store. - For more options: http://www.xtreemfs.org/xtfs-guide-1.5.1/index.html + For more options: https://www.xtreemfs.org/xtfs-guide-1.5.1/index.html ''; }; }; diff --git a/nixos/modules/services/networking/asterisk.nix b/nixos/modules/services/networking/asterisk.nix index 5a1d03f0721..279927781ed 100644 --- a/nixos/modules/services/networking/asterisk.nix +++ b/nixos/modules/services/networking/asterisk.nix @@ -139,7 +139,7 @@ in path. See - + for more examples of what is possible here. ''; }; diff --git a/nixos/modules/services/networking/i2pd.nix b/nixos/modules/services/networking/i2pd.nix index f872daf05b8..808e7b66d36 100644 --- a/nixos/modules/services/networking/i2pd.nix +++ b/nixos/modules/services/networking/i2pd.nix @@ -239,7 +239,7 @@ in enable = mkEnableOption (lib.mdDoc "I2Pd daemon") // { description = lib.mdDoc '' Enables I2Pd as a running service upon activation. - Please read http://i2pd.readthedocs.io/en/latest/ for further + Please read for further configuration help. ''; }; diff --git a/nixos/modules/services/networking/ntp/ntpd.nix b/nixos/modules/services/networking/ntp/ntpd.nix index 036a8df635d..2bc690cacf0 100644 --- a/nixos/modules/services/networking/ntp/ntpd.nix +++ b/nixos/modules/services/networking/ntp/ntpd.nix @@ -56,7 +56,7 @@ in The default flags prevent external hosts from using ntpd as a DDoS reflector, setting system time, and querying OS/ntpd version. As recommended in section 6.5.1.1.3, answer "No" of - http://support.ntp.org/bin/view/Support/AccessRestrictions + https://support.ntp.org/Support/AccessRestrictions ''; default = [ "limited" "kod" "nomodify" "notrap" "noquery" "nopeer" ]; }; diff --git a/nixos/modules/services/networking/tox-bootstrapd.nix b/nixos/modules/services/networking/tox-bootstrapd.nix index 5c7e7a4c220..0f310a28d26 100644 --- a/nixos/modules/services/networking/tox-bootstrapd.nix +++ b/nixos/modules/services/networking/tox-bootstrapd.nix @@ -47,7 +47,7 @@ in lib.mdDoc '' Configuration for bootstrap daemon. See - and . + and . ''; }; }; diff --git a/nixos/modules/services/torrent/transmission.nix b/nixos/modules/services/torrent/transmission.nix index b98cb5283a1..5efb9334ea0 100644 --- a/nixos/modules/services/torrent/transmission.nix +++ b/nixos/modules/services/torrent/transmission.nix @@ -148,7 +148,7 @@ in type = types.bool; default = true; description = lib.mdDoc '' - Whether to enable [Micro Transport Protocol (µTP)](http://en.wikipedia.org/wiki/Micro_Transport_Protocol). + Whether to enable [Micro Transport Protocol (µTP)](https://en.wikipedia.org/wiki/Micro_Transport_Protocol). ''; }; options.watch-dir = mkOption { diff --git a/nixos/modules/services/video/unifi-video.nix b/nixos/modules/services/video/unifi-video.nix index cb438a08150..5c93f60cbd7 100644 --- a/nixos/modules/services/video/unifi-video.nix +++ b/nixos/modules/services/video/unifi-video.nix @@ -32,7 +32,7 @@ let name = "mongo.conf"; executable = false; text = '' - # for documentation of all options, see http://docs.mongodb.org/manual/reference/configuration-options/ + # for documentation of all options, see https://www.mongodb.com/docs/manual/reference/configuration-options/ storage: dbPath: ${cfg.dataDir}/db @@ -63,7 +63,7 @@ let executable = false; text = '' # for documentation of all options, see: - # http://docs.mongodb.org/manual/reference/configuration-options/ + # https://www.mongodb.com/docs/manual/reference/configuration-options/ storage: dbPath: ${cfg.dataDir}/db-wt diff --git a/nixos/modules/services/web-apps/discourse.nix b/nixos/modules/services/web-apps/discourse.nix index f80eb6b4c7f..da1dba7d940 100644 --- a/nixos/modules/services/web-apps/discourse.nix +++ b/nixos/modules/services/web-apps/discourse.nix @@ -407,7 +407,7 @@ in type = with lib.types; nullOr (enum ["plain" "login" "cram_md5"]); default = null; description = lib.mdDoc '' - Authentication type to use, see http://api.rubyonrails.org/classes/ActionMailer/Base.html + Authentication type to use, see https://api.rubyonrails.org/classes/ActionMailer/Base.html ''; }; @@ -423,7 +423,7 @@ in type = lib.types.str; default = "peer"; description = lib.mdDoc '' - How OpenSSL checks the certificate, see http://api.rubyonrails.org/classes/ActionMailer/Base.html + How OpenSSL checks the certificate, see https://api.rubyonrails.org/classes/ActionMailer/Base.html ''; }; diff --git a/nixos/modules/services/web-apps/nextcloud.md b/nixos/modules/services/web-apps/nextcloud.md index a25bed30e47..ecc7f380592 100644 --- a/nixos/modules/services/web-apps/nextcloud.md +++ b/nixos/modules/services/web-apps/nextcloud.md @@ -49,7 +49,7 @@ used by the imperative installer and all values are written to an additional fil to ensure that changes can be applied by changing the module's options. In case the application serves multiple domains (those are checked with -[`$_SERVER['HTTP_HOST']`](http://php.net/manual/en/reserved.variables.server.php)) +[`$_SERVER['HTTP_HOST']`](https://www.php.net/manual/en/reserved.variables.server.php)) it's needed to add them to [`services.nextcloud.config.extraTrustedDomains`](#opt-services.nextcloud.config.extraTrustedDomains). diff --git a/nixos/modules/services/web-apps/tt-rss.nix b/nixos/modules/services/web-apps/tt-rss.nix index 592ab253f7d..7b2e3be4295 100644 --- a/nixos/modules/services/web-apps/tt-rss.nix +++ b/nixos/modules/services/web-apps/tt-rss.nix @@ -430,7 +430,7 @@ let background processes while not running tt-rss, this method is generally viable to keep your feeds up to date. Still, there are more robust (and recommended) updating methods - available, you can read about them here: http://tt-rss.org/wiki/UpdatingFeeds + available, you can read about them here: ''; }; diff --git a/nixos/modules/services/web-servers/lighttpd/default.nix b/nixos/modules/services/web-servers/lighttpd/default.nix index 729a633a36c..eaa113c0d52 100644 --- a/nixos/modules/services/web-servers/lighttpd/default.nix +++ b/nixos/modules/services/web-servers/lighttpd/default.nix @@ -10,7 +10,7 @@ let # List of known lighttpd modules, ordered by how the lighttpd documentation # recommends them being imported: - # http://redmine.lighttpd.net/projects/1/wiki/Server_modulesDetails + # https://redmine.lighttpd.net/projects/1/wiki/Server_modulesDetails # # Some modules are always imported and should not appear in the config: # disallowedModules = [ "mod_indexfile" "mod_dirlisting" "mod_staticfile" ]; @@ -84,8 +84,8 @@ let # server.modules += () entries in each sub-service extraConfig snippet, # read this: # - # http://redmine.lighttpd.net/projects/1/wiki/Server_modulesDetails - # http://redmine.lighttpd.net/issues/2337 + # https://redmine.lighttpd.net/projects/1/wiki/Server_modulesDetails + # https://redmine.lighttpd.net/issues/2337 # # Basically, lighttpd doesn't want to load (or even silently ignore) a # module for a second time, and there is no way to check if a module has diff --git a/nixos/modules/services/web-servers/mighttpd2.nix b/nixos/modules/services/web-servers/mighttpd2.nix index 2d887af87c7..bdd6d8b62aa 100644 --- a/nixos/modules/services/web-servers/mighttpd2.nix +++ b/nixos/modules/services/web-servers/mighttpd2.nix @@ -44,7 +44,7 @@ in { type = types.lines; description = lib.mdDoc '' Verbatim config file to use - (see http://www.mew.org/~kazu/proj/mighttpd/en/config.html) + (see https://kazu-yamamoto.github.io/mighttpd2/config.html) ''; }; @@ -78,7 +78,7 @@ in { type = types.lines; description = lib.mdDoc '' Verbatim routing file to use - (see http://www.mew.org/~kazu/proj/mighttpd/en/config.html) + (see https://kazu-yamamoto.github.io/mighttpd2/config.html) ''; }; diff --git a/nixos/modules/services/web-servers/nginx/default.nix b/nixos/modules/services/web-servers/nginx/default.nix index f2e8585a936..cf70dc32594 100644 --- a/nixos/modules/services/web-servers/nginx/default.nix +++ b/nixos/modules/services/web-servers/nginx/default.nix @@ -955,7 +955,7 @@ in default = {}; description = lib.mdDoc '' Configure a proxy cache path entry. - See for documentation. + See for documentation. ''; }; diff --git a/nixos/modules/services/x11/desktop-managers/enlightenment.nix b/nixos/modules/services/x11/desktop-managers/enlightenment.nix index d4b2a50cb8a..28dd408c923 100644 --- a/nixos/modules/services/x11/desktop-managers/enlightenment.nix +++ b/nixos/modules/services/x11/desktop-managers/enlightenment.nix @@ -63,7 +63,7 @@ in # make available for D-BUS user services #export XDG_DATA_DIRS=$XDG_DATA_DIRS''${XDG_DATA_DIRS:+:}:${config.system.path}/share:${e.efl}/share - # Update user dirs as described in http://freedesktop.org/wiki/Software/xdg-user-dirs/ + # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/ ${pkgs.xdg-user-dirs}/bin/xdg-user-dirs-update fi ''; diff --git a/nixos/modules/services/x11/desktop-managers/gnome.nix b/nixos/modules/services/x11/desktop-managers/gnome.nix index 8b5daf83de1..12bdd933337 100644 --- a/nixos/modules/services/x11/desktop-managers/gnome.nix +++ b/nixos/modules/services/x11/desktop-managers/gnome.nix @@ -455,7 +455,7 @@ in pkgs.glib # for gsettings program pkgs.gnome-menus pkgs.gtk3.out # for gtk-launch program - pkgs.xdg-user-dirs # Update user dirs as described in http://freedesktop.org/wiki/Software/xdg-user-dirs/ + pkgs.xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/ ]; in mandatoryPackages diff --git a/nixos/modules/services/x11/desktop-managers/pantheon.nix b/nixos/modules/services/x11/desktop-managers/pantheon.nix index eef7aa14057..d82d19b26cd 100644 --- a/nixos/modules/services/x11/desktop-managers/pantheon.nix +++ b/nixos/modules/services/x11/desktop-managers/pantheon.nix @@ -201,7 +201,7 @@ in onboard orca # elementary/greeter#668 sound-theme-freedesktop - xdg-user-dirs # Update user dirs as described in http://freedesktop.org/wiki/Software/xdg-user-dirs/ + xdg-user-dirs # Update user dirs as described in https://freedesktop.org/wiki/Software/xdg-user-dirs/ ]) ++ (with pkgs.pantheon; [ # Artwork elementary-gtk-theme diff --git a/nixos/modules/services/x11/display-managers/default.nix b/nixos/modules/services/x11/display-managers/default.nix index 1f08ded7c96..16a7ff1a4bd 100644 --- a/nixos/modules/services/x11/display-managers/default.nix +++ b/nixos/modules/services/x11/display-managers/default.nix @@ -96,7 +96,7 @@ let )} # Speed up application start by 50-150ms according to - # http://kdemonkey.blogspot.nl/2008/04/magic-trick.html + # https://kdemonkey.blogspot.com/2008/04/magic-trick.html compose_cache="''${XCOMPOSECACHE:-$HOME/.compose-cache}" mkdir -p "$compose_cache" # To avoid accidentally deleting a wrongly set up XCOMPOSECACHE directory, diff --git a/nixos/modules/services/x11/display-managers/xpra.nix b/nixos/modules/services/x11/display-managers/xpra.nix index cb78f52d9b6..0861530f21e 100644 --- a/nixos/modules/services/x11/display-managers/xpra.nix +++ b/nixos/modules/services/x11/display-managers/xpra.nix @@ -60,11 +60,11 @@ in VertRefresh 1.0 - 200.0 #To add your own modes here, use a modeline calculator, like: # cvt: - # http://www.x.org/archive/X11R7.5/doc/man/man1/cvt.1.html + # https://www.x.org/archive/X11R7.5/doc/man/man1/cvt.1.html # xtiming: - # http://xtiming.sourceforge.net/cgi-bin/xtiming.pl + # https://xtiming.sourceforge.net/cgi-bin/xtiming.pl # gtf: - # http://gtf.sourceforge.net/ + # https://gtf.sourceforge.net/ #This can be used to get a specific DPI, but only for the default resolution: #DisplaySize 508 317 #NOTE: the highest modes will not work without increasing the VideoRam diff --git a/nixos/modules/services/x11/imwheel.nix b/nixos/modules/services/x11/imwheel.nix index 133e64c65cd..bd2bcb7bcd0 100644 --- a/nixos/modules/services/x11/imwheel.nix +++ b/nixos/modules/services/x11/imwheel.nix @@ -37,7 +37,7 @@ in Window class translation rules. /etc/X11/imwheelrc is generated based on this config which means this config is global for all users. - See [official man pages](http://imwheel.sourceforge.net/imwheel.1.html) + See [official man pages](https://imwheel.sourceforge.net/imwheel.1.html) for more information. ''; }; diff --git a/nixos/modules/system/boot/loader/generic-extlinux-compatible/default.nix b/nixos/modules/system/boot/loader/generic-extlinux-compatible/default.nix index 5ef3c5cd52a..13df6090711 100644 --- a/nixos/modules/system/boot/loader/generic-extlinux-compatible/default.nix +++ b/nixos/modules/system/boot/loader/generic-extlinux-compatible/default.nix @@ -25,7 +25,7 @@ in under `/boot/extlinux.conf`. For instance, U-Boot's generic distro boot support uses this file format. - See [U-boot's documentation](http://git.denx.de/?p=u-boot.git;a=blob;f=doc/README.distro;hb=refs/heads/master) + See [U-boot's documentation](https://u-boot.readthedocs.io/en/latest/develop/distro.html) for more information. ''; }; diff --git a/nixos/modules/system/boot/loader/grub/grub.nix b/nixos/modules/system/boot/loader/grub/grub.nix index 468f701ae5b..7097e1d83dc 100644 --- a/nixos/modules/system/boot/loader/grub/grub.nix +++ b/nixos/modules/system/boot/loader/grub/grub.nix @@ -339,7 +339,7 @@ in See the [ GRUB source code - ](http://git.savannah.gnu.org/cgit/grub.git/tree/grub-core/commands/nativedisk.c?h=grub-2.04#n326) + ](https://git.savannah.gnu.org/cgit/grub.git/tree/grub-core/commands/nativedisk.c?h=grub-2.04#n326) for which disk modules are available. The list elements are passed directly as `argv` diff --git a/nixos/modules/system/boot/luksroot.nix b/nixos/modules/system/boot/luksroot.nix index 06c329e006b..ca560d63f3b 100644 --- a/nixos/modules/system/boot/luksroot.nix +++ b/nixos/modules/system/boot/luksroot.nix @@ -537,7 +537,7 @@ in description = lib.mdDoc '' Unless enabled, encryption keys can be easily recovered by an attacker with physical access to any machine with PCMCIA, ExpressCard, ThunderBolt or FireWire port. - More information is available at . + More information is available at . This option blacklists FireWire drivers, but doesn't remove them. You can manually load the drivers if you need to use a FireWire device, but don't forget to unload them! diff --git a/nixos/modules/system/boot/stage-1.nix b/nixos/modules/system/boot/stage-1.nix index 322a234e0c4..13c71e1495e 100644 --- a/nixos/modules/system/boot/stage-1.nix +++ b/nixos/modules/system/boot/stage-1.nix @@ -284,7 +284,7 @@ let # in the NixOS installation CD, so use ID_CDROM_MEDIA in the # corresponding udev rules for now. This was the behaviour in # udev <= 154. See also - # http://www.spinics.net/lists/hotplug/msg03935.html + # https://www.spinics.net/lists/hotplug/msg03935.html substituteInPlace $out/60-persistent-storage.rules \ --replace ID_CDROM_MEDIA_TRACK_COUNT_DATA ID_CDROM_MEDIA ''; # */ diff --git a/pkgs/applications/emulators/gxemul/default.nix b/pkgs/applications/emulators/gxemul/default.nix index cacb521c2fb..05f837b1876 100644 --- a/pkgs/applications/emulators/gxemul/default.nix +++ b/pkgs/applications/emulators/gxemul/default.nix @@ -9,7 +9,7 @@ stdenv.mkDerivation rec { version = "0.7.0"; src = fetchurl { - url = "http://gavare.se/gxemul/src/${pname}-${version}.tar.gz"; + url = "https://gavare.se/gxemul/src/${pname}-${version}.tar.gz"; sha256 = "sha256-ecRDfG+MqQT0bTOsNgYqZf3PSpKiSEeOQIqxEpXPjoM="; }; @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { ''; meta = with lib; { - homepage = "http://gavare.se/gxemul/"; + homepage = "https://gavare.se/gxemul/"; description = "Gavare's experimental emulator"; longDescription = '' GXemul is a framework for full-system computer architecture diff --git a/pkgs/applications/file-managers/dfilemanager/default.nix b/pkgs/applications/file-managers/dfilemanager/default.nix index 2c374511af5..6c5544aded3 100644 --- a/pkgs/applications/file-managers/dfilemanager/default.nix +++ b/pkgs/applications/file-managers/dfilemanager/default.nix @@ -17,7 +17,7 @@ mkDerivation { cmakeFlags = [ "-DQT5BUILD=true" ]; meta = { - homepage = "http://dfilemanager.sourceforge.net/"; + homepage = "https://github.com/probonopd/dfilemanager"; description = "File manager written in Qt/C++"; license = lib.licenses.gpl2; platforms = lib.platforms.unix; diff --git a/pkgs/applications/graphics/openscad/default.nix b/pkgs/applications/graphics/openscad/default.nix index 37fcc0eb48e..fc048d4acae 100644 --- a/pkgs/applications/graphics/openscad/default.nix +++ b/pkgs/applications/graphics/openscad/default.nix @@ -105,7 +105,7 @@ mkDerivation rec { machine parts but pretty sure is not what you are looking for when you are more interested in creating computer-animated movies. ''; - homepage = "http://openscad.org/"; + homepage = "https://openscad.org/"; license = lib.licenses.gpl2; platforms = lib.platforms.unix; maintainers = with lib.maintainers; [ bjornfor raskin gebner ]; diff --git a/pkgs/applications/graphics/pikopixel/default.nix b/pkgs/applications/graphics/pikopixel/default.nix index 58a52aee494..0463958b4c6 100644 --- a/pkgs/applications/graphics/pikopixel/default.nix +++ b/pkgs/applications/graphics/pikopixel/default.nix @@ -13,7 +13,7 @@ in gnustep'.gsmakeDerivation rec { version = "1.0-b10"; src = fetchurl { - url = "http://twilightedge.com/downloads/PikoPixel.Sources.${version}.tar.gz"; + url = "https://twilightedge.com/downloads/PikoPixel.Sources.${version}.tar.gz"; sha256 = "1b27npgsan2nx1p581b9q2krx4506yyd6s34r4sf1r9x9adshm77"; }; @@ -38,8 +38,8 @@ in gnustep'.gsmakeDerivation rec { meta = with lib; { description = "Application for drawing and editing pixel-art images"; - homepage = "http://twilightedge.com/mac/pikopixel/"; - downloadPage = "http://twilightedge.com/mac/pikopixel/"; + homepage = "https://twilightedge.com/mac/pikopixel/"; + downloadPage = "https://twilightedge.com/mac/pikopixel/"; license = licenses.agpl3; maintainers = with maintainers; [ fgaz ]; platforms = platforms.all; diff --git a/pkgs/applications/graphics/viewnior/default.nix b/pkgs/applications/graphics/viewnior/default.nix index 74cc2bdc4e8..7f90c815837 100644 --- a/pkgs/applications/graphics/viewnior/default.nix +++ b/pkgs/applications/graphics/viewnior/default.nix @@ -55,7 +55,7 @@ stdenv.mkDerivation rec { in mind (follows Gnome HIG2). ''; license = licenses.gpl3; - homepage = "http://siyanpanayotov.com/project/viewnior/"; + homepage = "https://siyanpanayotov.com/project/viewnior/"; maintainers = with maintainers; [ smironov artturin ]; platforms = platforms.gnu ++ platforms.linux; }; diff --git a/pkgs/applications/misc/yate/default.nix b/pkgs/applications/misc/yate/default.nix index 07857fbf5e9..76eb27a624c 100644 --- a/pkgs/applications/misc/yate/default.nix +++ b/pkgs/applications/misc/yate/default.nix @@ -33,7 +33,7 @@ stdenv.mkDerivation rec { meta = { description = "Yet another telephony engine"; - homepage = "http://yate.ro/"; + homepage = "https://yate.ro/"; # Yate's license is GPL with an exception for linking with # OpenH323 and PWlib (licensed under MPL). license = lib.licenses.gpl2Only; diff --git a/pkgs/applications/networking/irc/kirc/default.nix b/pkgs/applications/networking/irc/kirc/default.nix index b0e771a80f4..c21a444b61c 100644 --- a/pkgs/applications/networking/irc/kirc/default.nix +++ b/pkgs/applications/networking/irc/kirc/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { installFlags = [ "PREFIX=$(out)" ]; meta = with lib; { - homepage = "http://kirc.io/"; + homepage = "https://mcpcpc.github.io/kirc/"; description = "Tiny IRC client written in C99"; longDescription = '' kirc is a tiny open-source Internet Relay Chat (IRC) client designed with diff --git a/pkgs/applications/networking/irc/kvirc/default.nix b/pkgs/applications/networking/irc/kvirc/default.nix index 8c1a96d5234..eb443666764 100644 --- a/pkgs/applications/networking/irc/kvirc/default.nix +++ b/pkgs/applications/networking/irc/kvirc/default.nix @@ -24,7 +24,7 @@ mkDerivation rec { meta = with lib; { description = "Advanced IRC Client"; - homepage = "http://www.kvirc.net/"; + homepage = "https://www.kvirc.net/"; license = licenses.gpl2; maintainers = [ maintainers.suhr ]; platforms = platforms.linux; diff --git a/pkgs/applications/networking/p2p/mldonkey/default.nix b/pkgs/applications/networking/p2p/mldonkey/default.nix index 7bc5e2f5967..81a625e5210 100644 --- a/pkgs/applications/networking/p2p/mldonkey/default.nix +++ b/pkgs/applications/networking/p2p/mldonkey/default.nix @@ -39,7 +39,7 @@ stdenv.mkDerivation rec { meta = { broken = stdenv.isDarwin; description = "Client for many p2p networks, with multiple frontends"; - homepage = "http://mldonkey.sourceforge.net/"; + homepage = "https://github.com/ygrek/mldonkey"; license = lib.licenses.gpl2Only; platforms = lib.platforms.unix; }; diff --git a/pkgs/applications/radio/ebook2cw/default.nix b/pkgs/applications/radio/ebook2cw/default.nix index 6c3fbc16c40..329d87d80f4 100644 --- a/pkgs/applications/radio/ebook2cw/default.nix +++ b/pkgs/applications/radio/ebook2cw/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Convert ebooks to Morse MP3s/OGGs"; - homepage = "http://fkurz.net/ham/ebook2cw.html"; + homepage = "https://fkurz.net/ham/ebook2cw.html"; license = licenses.gpl2; platforms = platforms.all; maintainers = with maintainers; [ earldouglas ]; diff --git a/pkgs/applications/science/logic/aiger/default.nix b/pkgs/applications/science/logic/aiger/default.nix index 15c45466b13..4f3f585c220 100644 --- a/pkgs/applications/science/logic/aiger/default.nix +++ b/pkgs/applications/science/logic/aiger/default.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation rec { version = "1.9.9"; src = fetchurl { - url = "http://fmv.jku.at/aiger/${pname}-${version}.tar.gz"; + url = "https://fmv.jku.at/aiger/${pname}-${version}.tar.gz"; sha256 = "1ish0dw0nf9gyghxsdhpy1jjiy5wp54c993swp85xp7m6vdx6l0y"; }; @@ -47,7 +47,7 @@ stdenv.mkDerivation rec { meta = { description = "And-Inverter Graph (AIG) utilities"; - homepage = "http://fmv.jku.at/aiger/"; + homepage = "https://fmv.jku.at/aiger/"; license = lib.licenses.mit; maintainers = with lib.maintainers; [ thoughtpolice ]; platforms = lib.platforms.unix; diff --git a/pkgs/applications/science/logic/cadical/default.nix b/pkgs/applications/science/logic/cadical/default.nix index 9bfadc41f60..a9b27877ab1 100644 --- a/pkgs/applications/science/logic/cadical/default.nix +++ b/pkgs/applications/science/logic/cadical/default.nix @@ -43,6 +43,6 @@ stdenv.mkDerivation rec { maintainers = with maintainers; [ shnarazk ]; platforms = platforms.unix; license = licenses.mit; - homepage = "http://fmv.jku.at/cadical"; + homepage = "https://fmv.jku.at/cadical/"; }; } diff --git a/pkgs/applications/science/logic/cvc3/default.nix b/pkgs/applications/science/logic/cvc3/default.nix index cfa8f62990c..0385909610e 100644 --- a/pkgs/applications/science/logic/cvc3/default.nix +++ b/pkgs/applications/science/logic/cvc3/default.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation rec { version = "2.4.1"; src = fetchurl { - url = "http://www.cs.nyu.edu/acsys/cvc3/releases/${version}/${pname}-${version}.tar.gz"; + url = "https://cs.nyu.edu/acsys/cvc3/releases/${version}/${pname}-${version}.tar.gz"; sha256 = "1xxcwhz3y6djrycw8sm6xz83wb4hb12rd1n0skvc7fng0rh1snym"; }; @@ -32,11 +32,11 @@ stdenv.mkDerivation rec { [ raskin ]; platforms = platforms.unix; license = licenses.free; - homepage = "http://www.cs.nyu.edu/acsys/cvc3/index.html"; + homepage = "https://cs.nyu.edu/acsys/cvc3/index.html"; }; passthru = { updateInfo = { - downloadPage = "http://www.cs.nyu.edu/acsys/cvc3/download.html"; + downloadPage = "https://cs.nyu.edu/acsys/cvc3/download.html"; }; }; } diff --git a/pkgs/applications/science/logic/kissat/default.nix b/pkgs/applications/science/logic/kissat/default.nix index 2941952287b..d1703340527 100644 --- a/pkgs/applications/science/logic/kissat/default.nix +++ b/pkgs/applications/science/logic/kissat/default.nix @@ -48,6 +48,6 @@ stdenv.mkDerivation rec { maintainers = with maintainers; [ shnarazk ]; platforms = platforms.unix; license = licenses.mit; - homepage = "http://fmv.jku.at/kissat"; + homepage = "https://fmv.jku.at/kissat"; }; } diff --git a/pkgs/applications/science/logic/picosat/default.nix b/pkgs/applications/science/logic/picosat/default.nix index 48def5fc2e4..1fef05069a6 100644 --- a/pkgs/applications/science/logic/picosat/default.nix +++ b/pkgs/applications/science/logic/picosat/default.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation rec { version = "965"; src = fetchurl { - url = "http://fmv.jku.at/picosat/${pname}-${version}.tar.gz"; + url = "https://fmv.jku.at/picosat/${pname}-${version}.tar.gz"; sha256 = "0m578rpa5rdn08d10kr4lbsdwp4402hpavrz6n7n53xs517rn5hm"; }; @@ -36,7 +36,7 @@ stdenv.mkDerivation rec { meta = { description = "SAT solver with proof and core support"; - homepage = "http://fmv.jku.at/picosat/"; + homepage = "https://fmv.jku.at/picosat/"; license = lib.licenses.mit; platforms = lib.platforms.unix; maintainers = with lib.maintainers; [ roconnor thoughtpolice ]; diff --git a/pkgs/applications/science/math/colpack/default.nix b/pkgs/applications/science/math/colpack/default.nix index 3cc9290a762..d5ab38ff751 100644 --- a/pkgs/applications/science/math/colpack/default.nix +++ b/pkgs/applications/science/math/colpack/default.nix @@ -35,7 +35,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "A package comprising of implementations of algorithms for vertex coloring and derivative computation"; - homepage = "http://cscapes.cs.purdue.edu/coloringpage/software.htm#functionalities"; + homepage = "https://cscapes.cs.purdue.edu/coloringpage/software.htm#functionalities"; license = licenses.lgpl3Plus; platforms = platforms.unix; maintainers = with maintainers; [ edwtjo ]; diff --git a/pkgs/applications/virtualization/qemu/default.nix b/pkgs/applications/virtualization/qemu/default.nix index ea96f7f241b..0dc91af767f 100644 --- a/pkgs/applications/virtualization/qemu/default.nix +++ b/pkgs/applications/virtualization/qemu/default.nix @@ -266,11 +266,8 @@ stdenv.mkDerivation (finalAttrs: { requiredSystemFeatures = [ "big-parallel" ]; meta = with lib; { - homepage = "http://www.qemu.org/"; - description = - if toolsOnly - then "Support tools for qemu, a machine emulator and virtualizer" - else "A generic and open source machine emulator and virtualizer"; + homepage = "https://www.qemu.org/"; + description = "A generic and open source machine emulator and virtualizer"; license = licenses.gpl2Plus; maintainers = with maintainers; [ eelco qyliss ]; platforms = platforms.unix; diff --git a/pkgs/applications/virtualization/virt-manager/default.nix b/pkgs/applications/virtualization/virt-manager/default.nix index 163812bdccf..4e4d7e7d0a9 100644 --- a/pkgs/applications/virtualization/virt-manager/default.nix +++ b/pkgs/applications/virtualization/virt-manager/default.nix @@ -83,7 +83,7 @@ python3.pkgs.buildPythonApplication rec { ''; meta = with lib; { - homepage = "http://virt-manager.org"; + homepage = "https://virt-manager.org"; description = "Desktop user interface for managing virtual machines"; longDescription = '' The virt-manager application is a desktop user interface for managing diff --git a/pkgs/applications/virtualization/virt-viewer/default.nix b/pkgs/applications/virtualization/virt-viewer/default.nix index 0e24dd9b08f..58d9edb269a 100644 --- a/pkgs/applications/virtualization/virt-viewer/default.nix +++ b/pkgs/applications/virtualization/virt-viewer/default.nix @@ -104,7 +104,7 @@ stdenv.mkDerivation rec { }; passthru = { updateInfo = { - downloadPage = "http://virt-manager.org/download.html"; + downloadPage = "https://virt-manager.org/download.html"; }; }; } diff --git a/pkgs/data/soundfonts/generaluser/default.nix b/pkgs/data/soundfonts/generaluser/default.nix index 5191199e647..abe1ea4ceac 100644 --- a/pkgs/data/soundfonts/generaluser/default.nix +++ b/pkgs/data/soundfonts/generaluser/default.nix @@ -6,7 +6,7 @@ stdenv.mkDerivation rec { # we can't use fetchurl since stdenv does not handle unpacking *.zip's by default. src = fetchzip { - # Linked on http://www.schristiancollins.com/generaluser.php: + # Linked on https://www.schristiancollins.com/generaluser.php: url = "https://www.dropbox.com/s/4x27l49kxcwamp5/GeneralUser_GS_${version}.zip"; sha256 = "sha256-lwUlWubXiVZ8fijKuNF54YQjT0uigjNAbjKaNjmC51s="; }; @@ -17,7 +17,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "a SoundFont bank featuring 259 instrument presets and 11 drum kits"; - homepage = "http://www.schristiancollins.com/generaluser.php"; + homepage = "https://www.schristiancollins.com/generaluser.php"; license = licenses.generaluser; platforms = platforms.all; maintainers = with maintainers; [ ckie ]; diff --git a/pkgs/development/compilers/pforth/default.nix b/pkgs/development/compilers/pforth/default.nix index d0766fe1376..aadc72c174e 100644 --- a/pkgs/development/compilers/pforth/default.nix +++ b/pkgs/development/compilers/pforth/default.nix @@ -38,7 +38,7 @@ stdenv.mkDerivation (finalAttrs: { ''; meta = { - homepage = "http://www.softsynth.com/pforth/"; + homepage = "https://www.softsynth.com/pforth/"; description = "Portable Portable ANS-like Forth written in ANSI 'C'"; changelog = "https://github.com/philburk/pforth/blob/v${finalAttrs.version}/RELEASES.md"; license = lib.licenses.bsd0; diff --git a/pkgs/development/compilers/uasm/default.nix b/pkgs/development/compilers/uasm/default.nix index cae9a17ccca..9fe0e42cb13 100644 --- a/pkgs/development/compilers/uasm/default.nix +++ b/pkgs/development/compilers/uasm/default.nix @@ -54,7 +54,7 @@ stdenv.mkDerivation rec { }; meta = with lib; { - homepage = "http://www.terraspace.co.uk/uasm.html"; + homepage = "https://www.terraspace.co.uk/uasm.html"; description = "A free MASM-compatible assembler based on JWasm"; platforms = platforms.unix; maintainers = with maintainers; [ thiagokokada ]; diff --git a/pkgs/development/interpreters/picolisp/default.nix b/pkgs/development/interpreters/picolisp/default.nix index b85f99a7b52..4e589cb722e 100644 --- a/pkgs/development/interpreters/picolisp/default.nix +++ b/pkgs/development/interpreters/picolisp/default.nix @@ -60,7 +60,7 @@ stdenv.mkDerivation rec { passthru = { updateInfo = { - downloadPage = "http://www.software-lab.de/down.html"; + downloadPage = "https://www.software-lab.de/down.html"; }; }; } diff --git a/pkgs/development/libraries/ctpp2/default.nix b/pkgs/development/libraries/ctpp2/default.nix index c8bc708a2aa..5aac0850a74 100644 --- a/pkgs/development/libraries/ctpp2/default.nix +++ b/pkgs/development/libraries/ctpp2/default.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation rec { version = "2.8.3"; src = fetchurl { - url = "http://ctpp.havoc.ru/download/${pname}-${version}.tar.gz"; + url = "https://ctpp.havoc.ru/download/${pname}-${version}.tar.gz"; sha256 = "1z22zfw9lb86z4hcan9hlvji49c9b7vznh7gjm95gnvsh43zsgx8"; }; @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "A high performance templating engine"; - homepage = "http://ctpp.havoc.ru"; + homepage = "https://ctpp.havoc.ru/"; maintainers = [ maintainers.robbinch ]; platforms = platforms.linux; license = licenses.bsd2; diff --git a/pkgs/development/libraries/dbus/default.nix b/pkgs/development/libraries/dbus/default.nix index e9f0f013fe2..a809eda31c0 100644 --- a/pkgs/development/libraries/dbus/default.nix +++ b/pkgs/development/libraries/dbus/default.nix @@ -114,7 +114,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Simple interprocess messaging system"; - homepage = "http://www.freedesktop.org/wiki/Software/dbus/"; + homepage = "https://www.freedesktop.org/wiki/Software/dbus/"; changelog = "https://gitlab.freedesktop.org/dbus/dbus/-/blob/dbus-${version}/NEWS"; license = licenses.gpl2Plus; # most is also under AFL-2.1 maintainers = teams.freedesktop.members ++ (with maintainers; [ ]); diff --git a/pkgs/development/libraries/irrlicht/default.nix b/pkgs/development/libraries/irrlicht/default.nix index 7a68f130663..fa5d2b3b0c9 100644 --- a/pkgs/development/libraries/irrlicht/default.nix +++ b/pkgs/development/libraries/irrlicht/default.nix @@ -37,7 +37,7 @@ stdenv.mkDerivation rec { ] ++ lib.optional stdenv.isAarch64 zlib; meta = { - homepage = "http://irrlicht.sourceforge.net/"; + homepage = "https://irrlicht.sourceforge.io/"; license = lib.licenses.zlib; description = "Open source high performance realtime 3D engine written in C++"; platforms = lib.platforms.linux ++ lib.platforms.darwin; diff --git a/pkgs/development/libraries/irrlicht/mac.nix b/pkgs/development/libraries/irrlicht/mac.nix index a7901466081..b3ef27e3877 100644 --- a/pkgs/development/libraries/irrlicht/mac.nix +++ b/pkgs/development/libraries/irrlicht/mac.nix @@ -35,7 +35,7 @@ stdenv.mkDerivation rec { buildInputs = [ OpenGL Cocoa IOKit ]; meta = { - homepage = "http://irrlicht.sourceforge.net/"; + homepage = "https://irrlicht.sourceforge.net/"; license = lib.licenses.zlib; description = "Open source high performance realtime 3D engine written in C++"; platforms = lib.platforms.darwin; diff --git a/pkgs/development/libraries/libcdr/default.nix b/pkgs/development/libraries/libcdr/default.nix index b3087f0abea..64695aaa55d 100644 --- a/pkgs/development/libraries/libcdr/default.nix +++ b/pkgs/development/libraries/libcdr/default.nix @@ -19,7 +19,7 @@ stdenv.mkDerivation rec { meta = { description = "A library providing ability to interpret and import Corel Draw drawings into various applications"; - homepage = "http://www.freedesktop.org/wiki/Software/libcdr"; + homepage = "https://wiki.documentfoundation.org/DLP/Libraries/libcdr"; platforms = lib.platforms.all; license = lib.licenses.mpl20; }; diff --git a/pkgs/development/libraries/libevdev/default.nix b/pkgs/development/libraries/libevdev/default.nix index 90853d5f2db..c8db600dce8 100644 --- a/pkgs/development/libraries/libevdev/default.nix +++ b/pkgs/development/libraries/libevdev/default.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Wrapper library for evdev devices"; - homepage = "http://www.freedesktop.org/software/libevdev/doc/latest/index.html"; + homepage = "https://www.freedesktop.org/software/libevdev/doc/latest/index.html"; license = licenses.mit; platforms = platforms.linux; maintainers = [ maintainers.amorsillo ]; diff --git a/pkgs/development/libraries/libproxy/default.nix b/pkgs/development/libraries/libproxy/default.nix index 62ddcd67390..5c7a3162502 100644 --- a/pkgs/development/libraries/libproxy/default.nix +++ b/pkgs/development/libraries/libproxy/default.nix @@ -76,7 +76,7 @@ stdenv.mkDerivation rec { meta = with lib; { platforms = platforms.linux ++ platforms.darwin; license = licenses.lgpl21; - homepage = "http://libproxy.github.io/libproxy/"; + homepage = "https://libproxy.github.io/libproxy/"; description = "A library that provides automatic proxy configuration management"; }; } diff --git a/pkgs/development/libraries/libsodium/default.nix b/pkgs/development/libraries/libsodium/default.nix index 14e730d69e5..b4eeed32d59 100644 --- a/pkgs/development/libraries/libsodium/default.nix +++ b/pkgs/development/libraries/libsodium/default.nix @@ -32,7 +32,7 @@ stdenv.mkDerivation (finalAttrs: { meta = with lib; { description = "A modern and easy-to-use crypto library"; - homepage = "http://doc.libsodium.org/"; + homepage = "https://doc.libsodium.org/"; license = licenses.isc; maintainers = with maintainers; [ raskin ]; pkgConfigModules = [ "libsodium" ]; diff --git a/pkgs/development/libraries/libtsm/default.nix b/pkgs/development/libraries/libtsm/default.nix index 75773296fab..c8e00cf4a94 100644 --- a/pkgs/development/libraries/libtsm/default.nix +++ b/pkgs/development/libraries/libtsm/default.nix @@ -24,7 +24,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Terminal-emulator State Machine"; - homepage = "http://www.freedesktop.org/wiki/Software/kmscon/libtsm/"; + homepage = "https://www.freedesktop.org/wiki/Software/kmscon/libtsm/"; license = licenses.mit; maintainers = with maintainers; [ ]; platforms = platforms.linux; diff --git a/pkgs/development/libraries/openfx/default.nix b/pkgs/development/libraries/openfx/default.nix index 201bf16ad64..2bfb0870858 100644 --- a/pkgs/development/libraries/openfx/default.nix +++ b/pkgs/development/libraries/openfx/default.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation { version = "1.4"; src = fetchFromGitHub { - owner = "ofxa"; + owner = "AcademySoftwareFoundation"; repo = "openfx"; rev = "OFX_Release_1_4_TAG"; sha256 = "0k9ggzr6bisn77mipjfvawg3mv4bz50b63v8f7w1jhldi1sfy548"; @@ -27,7 +27,7 @@ stdenv.mkDerivation { meta = with lib; { description = "Image processing plug-in standard"; - homepage = "http://openeffects.org/"; + homepage = "https://openeffects.org/"; license = licenses.bsd3; platforms = platforms.all; maintainers = [ maintainers.guibou ]; diff --git a/pkgs/development/libraries/polkit/default.nix b/pkgs/development/libraries/polkit/default.nix index 5dbb7dc98b2..80badcdd4db 100644 --- a/pkgs/development/libraries/polkit/default.nix +++ b/pkgs/development/libraries/polkit/default.nix @@ -181,7 +181,7 @@ stdenv.mkDerivation rec { ''; meta = with lib; { - homepage = "http://www.freedesktop.org/wiki/Software/polkit"; + homepage = "https://gitlab.freedesktop.org/polkit/polkit/"; description = "A toolkit for defining and handling the policy that allows unprivileged processes to speak to privileged processes"; license = licenses.lgpl2Plus; platforms = platforms.linux; diff --git a/pkgs/development/libraries/portaudio/default.nix b/pkgs/development/libraries/portaudio/default.nix index 589cf7cdf95..a109aad97b9 100644 --- a/pkgs/development/libraries/portaudio/default.nix +++ b/pkgs/development/libraries/portaudio/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { version = "190700_20210406"; src = fetchurl { - url = "http://files.portaudio.com/archives/pa_stable_v${version}.tgz"; + url = "https://files.portaudio.com/archives/pa_stable_v${version}.tgz"; sha256 = "1vrdrd42jsnffh6rq8ap2c6fr4g9fcld89z649fs06bwqx1bzvs7"; }; @@ -54,7 +54,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Portable cross-platform Audio API"; - homepage = "http://www.portaudio.com/"; + homepage = "https://www.portaudio.com/"; # Not exactly a bsd license, but alike license = licenses.mit; maintainers = with maintainers; [ lovek323 ]; diff --git a/pkgs/development/libraries/startup-notification/default.nix b/pkgs/development/libraries/startup-notification/default.nix index 001123ead60..c1c5819ad42 100644 --- a/pkgs/development/libraries/startup-notification/default.nix +++ b/pkgs/development/libraries/startup-notification/default.nix @@ -16,7 +16,7 @@ stdenv.mkDerivation rec { buildInputs = [ libX11 libxcb xcbutil ]; meta = { - homepage = "http://www.freedesktop.org/software/startup-notification"; + homepage = "https://www.freedesktop.org/software/startup-notification"; description = "Application startup notification and feedback library"; license = lib.licenses.lgpl2; }; diff --git a/pkgs/development/libraries/vcg/default.nix b/pkgs/development/libraries/vcg/default.nix index 8b86df2e1c1..e7e818cbea5 100644 --- a/pkgs/development/libraries/vcg/default.nix +++ b/pkgs/development/libraries/vcg/default.nix @@ -20,7 +20,7 @@ stdenv.mkDerivation rec { ''; meta = with lib; { - homepage = "http://vcg.isti.cnr.it/vcglib/install.html"; + homepage = "https://vcg.isti.cnr.it/vcglib/install.html"; description = "C++ library for manipulation, processing and displaying with OpenGL of triangle and tetrahedral meshes"; license = licenses.gpl3; platforms = platforms.all; diff --git a/pkgs/development/lisp-modules-new-obsolete/examples/bordeaux-threads.nix b/pkgs/development/lisp-modules-new-obsolete/examples/bordeaux-threads.nix index 42afb6d2706..31a53b0f949 100644 --- a/pkgs/development/lisp-modules-new-obsolete/examples/bordeaux-threads.nix +++ b/pkgs/development/lisp-modules-new-obsolete/examples/bordeaux-threads.nix @@ -33,7 +33,7 @@ let pname = "bordeaux-threads"; version = "0.8.8"; src = pkgs.fetchzip { - url = "http://github.com/sionescu/bordeaux-threads/archive/v0.8.8.tar.gz"; + url = "https://github.com/sionescu/bordeaux-threads/archive/v0.8.8.tar.gz"; sha256 = "19i443fz3488v1pbbr9x24y8h8vlyhny9vj6c9jk5prm702awrp6"; }; lisp = sbcl; diff --git a/pkgs/development/python-modules/cvxopt/default.nix b/pkgs/development/python-modules/cvxopt/default.nix index 0a2b13ad4c8..f6135ecba74 100644 --- a/pkgs/development/python-modules/cvxopt/default.nix +++ b/pkgs/development/python-modules/cvxopt/default.nix @@ -68,7 +68,7 @@ buildPythonPackage rec { unittestFlagsArray = [ "-s" "tests" ]; meta = with lib; { - homepage = "http://cvxopt.org/"; + homepage = "https://cvxopt.org/"; description = "Python Software for Convex Optimization"; longDescription = '' CVXOPT is a free software package for convex optimization based on the diff --git a/pkgs/development/python-modules/polling/default.nix b/pkgs/development/python-modules/polling/default.nix index 22e7e0c3916..ee816585893 100644 --- a/pkgs/development/python-modules/polling/default.nix +++ b/pkgs/development/python-modules/polling/default.nix @@ -35,7 +35,7 @@ buildPythonPackage rec { meta = with lib; { description = "Powerful polling utility in Python"; - homepage = "http://github.com/justiniso/polling"; + homepage = "https://github.com/justiniso/polling"; license = licenses.mit; maintainers = with maintainers; [ ]; }; diff --git a/pkgs/development/python-modules/sqlobject/default.nix b/pkgs/development/python-modules/sqlobject/default.nix index 6a4ea78b82e..06d2534eb23 100644 --- a/pkgs/development/python-modules/sqlobject/default.nix +++ b/pkgs/development/python-modules/sqlobject/default.nix @@ -44,7 +44,7 @@ buildPythonPackage rec { meta = with lib; { description = "Object Relational Manager for providing an object interface to your database"; - homepage = "http://www.sqlobject.org/"; + homepage = "https://www.sqlobject.org/"; changelog = "https://github.com/sqlobject/sqlobject/blob/${version}/docs/News.rst"; license = licenses.lgpl21Only; maintainers = with maintainers; [ ]; diff --git a/pkgs/development/tools/nailgun/default.nix b/pkgs/development/tools/nailgun/default.nix index 2d8b075a685..6c71e374ffc 100644 --- a/pkgs/development/tools/nailgun/default.nix +++ b/pkgs/development/tools/nailgun/default.nix @@ -11,7 +11,7 @@ let commonMeta = { license = lib.licenses.asl20; - homepage = "http://www.martiansoftware.com/nailgun/"; + homepage = "https://www.martiansoftware.com/nailgun/"; platforms = lib.platforms.linux; maintainers = with lib.maintainers; [ ]; }; diff --git a/pkgs/games/hedgewars/default.nix b/pkgs/games/hedgewars/default.nix index 6674c85c332..94f8a28add9 100644 --- a/pkgs/games/hedgewars/default.nix +++ b/pkgs/games/hedgewars/default.nix @@ -56,7 +56,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Turn-based strategy artillery game similar to Worms"; - homepage = "http://hedgewars.org/"; + homepage = "https://hedgewars.org/"; license = licenses.gpl2; longDescription = '' Each player controls a team of several hedgehogs. During the course of diff --git a/pkgs/games/hyperrogue/default.nix b/pkgs/games/hyperrogue/default.nix index cd24a44f92a..2735cfff194 100644 --- a/pkgs/games/hyperrogue/default.nix +++ b/pkgs/games/hyperrogue/default.nix @@ -60,7 +60,7 @@ stdenv.mkDerivation rec { enableParallelBuilding = true; meta = with lib; { - homepage = "http://www.roguetemple.com/z/hyper/"; + homepage = "https://www.roguetemple.com/z/hyper/"; description = "A roguelike game set in hyperbolic geometry"; maintainers = with maintainers; [ rardiol ]; license = licenses.gpl2; diff --git a/pkgs/games/xskat/default.nix b/pkgs/games/xskat/default.nix index 74c2be586ce..6baf397ad67 100644 --- a/pkgs/games/xskat/default.nix +++ b/pkgs/games/xskat/default.nix @@ -8,7 +8,7 @@ stdenv.mkDerivation rec { buildInputs = [ libX11 imake ]; src = fetchurl { - url = "http://www.xskat.de/xskat-${version }.tar.gz"; + url = "https://web.archive.org/web/20220331112433if_/https://www.xskat.de/xskat-${version}.tar.gz"; sha256 = "8ba52797ccbd131dce69b96288f525b0d55dee5de4008733f7a5a51deb831c10"; }; @@ -25,6 +25,6 @@ stdenv.mkDerivation rec { platforms = platforms.unix; license = licenses.free; longDescription = "Play the german card game Skat against the AI or over IRC."; - homepage = "http://www.xskat.de/"; + homepage = "https://web.archive.org/web/20221003060115/https://www.xskat.de/xskat.html"; }; } diff --git a/pkgs/misc/cups/cups-pk-helper.nix b/pkgs/misc/cups/cups-pk-helper.nix index f5edc729340..1a3b4ebfbef 100644 --- a/pkgs/misc/cups/cups-pk-helper.nix +++ b/pkgs/misc/cups/cups-pk-helper.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "PolicyKit helper to configure cups with fine-grained privileges"; - homepage = "http://www.freedesktop.org/wiki/Software/cups-pk-helper/"; + homepage = "https://www.freedesktop.org/wiki/Software/cups-pk-helper/"; license = licenses.gpl2; platforms = platforms.linux; maintainers = [ maintainers.bjornfor ]; diff --git a/pkgs/os-specific/linux/ch9344/default.nix b/pkgs/os-specific/linux/ch9344/default.nix index 8f258d227bb..e7da864b90c 100644 --- a/pkgs/os-specific/linux/ch9344/default.nix +++ b/pkgs/os-specific/linux/ch9344/default.nix @@ -37,7 +37,7 @@ stdenv.mkDerivation rec { ''; meta = with lib; { - homepage = "http://www.wch-ic.com/"; + homepage = "https://www.wch-ic.com/"; downloadPage = "https://www.wch.cn/downloads/CH9344SER_LINUX_ZIP.html"; description = "WCH CH9344/CH348 UART driver"; longDescription = '' diff --git a/pkgs/os-specific/linux/kmscon/default.nix b/pkgs/os-specific/linux/kmscon/default.nix index 0d146613542..4762b63eda9 100644 --- a/pkgs/os-specific/linux/kmscon/default.nix +++ b/pkgs/os-specific/linux/kmscon/default.nix @@ -72,7 +72,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "KMS/DRM based System Console"; - homepage = "http://www.freedesktop.org/wiki/Software/kmscon/"; + homepage = "https://www.freedesktop.org/wiki/Software/kmscon/"; license = licenses.mit; maintainers = with maintainers; [ omasanori ]; platforms = platforms.linux; diff --git a/pkgs/os-specific/linux/microcode/intel.nix b/pkgs/os-specific/linux/microcode/intel.nix index b58d471680b..c489e746886 100644 --- a/pkgs/os-specific/linux/microcode/intel.nix +++ b/pkgs/os-specific/linux/microcode/intel.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { ''; meta = with lib; { - homepage = "http://www.intel.com/"; + homepage = "https://www.intel.com/"; description = "Microcode for Intel processors"; license = licenses.unfreeRedistributableFirmware; platforms = platforms.linux; diff --git a/pkgs/tools/filesystems/unionfs-fuse/default.nix b/pkgs/tools/filesystems/unionfs-fuse/default.nix index 8f008c3a346..4dc9ca9de6e 100644 --- a/pkgs/tools/filesystems/unionfs-fuse/default.nix +++ b/pkgs/tools/filesystems/unionfs-fuse/default.nix @@ -14,7 +14,7 @@ stdenv.mkDerivation rec { patches = [ # Prevent the unionfs daemon from being killed during # shutdown. See - # http://www.freedesktop.org/wiki/Software/systemd/RootStorageDaemons/ + # https://www.freedesktop.org/wiki/Software/systemd/RootStorageDaemons/ # for details. ./prevent-kill-on-shutdown.patch ]; diff --git a/pkgs/tools/misc/ccal/default.nix b/pkgs/tools/misc/ccal/default.nix index 55ccb7f774c..e7a01795f0d 100644 --- a/pkgs/tools/misc/ccal/default.nix +++ b/pkgs/tools/misc/ccal/default.nix @@ -9,7 +9,7 @@ stdenv.mkDerivation rec { pname = "ccal"; version = "2.5.3"; src = fetchurl { - url = "http://ccal.chinesebay.com/ccal/${pname}-${version}.tar.gz"; + url = "https://ccal.chinesebay.com/${pname}-${version}.tar.gz"; sha256 = "sha256-PUy9yfkFzgKrSEBB+79/C3oxmuajUMbBbWNuGlpQ35Y="; }; @@ -25,11 +25,10 @@ stdenv.mkDerivation rec { ''; meta = { - homepage = "http://ccal.chinesebay.com/ccal.htm"; + homepage = "https://ccal.chinesebay.com/ccal.htm"; description = "Command line Chinese calendar viewer, similar to cal"; license = lib.licenses.gpl3; maintainers = with lib.maintainers; [ sharzy ]; platforms = lib.platforms.all; }; } - diff --git a/pkgs/tools/misc/desktop-file-utils/default.nix b/pkgs/tools/misc/desktop-file-utils/default.nix index 218eed5eb8b..b58a7d819ba 100644 --- a/pkgs/tools/misc/desktop-file-utils/default.nix +++ b/pkgs/tools/misc/desktop-file-utils/default.nix @@ -50,7 +50,7 @@ stdenv.mkDerivation rec { setupHook = ./setup-hook.sh; meta = with lib; { - homepage = "http://www.freedesktop.org/wiki/Software/desktop-file-utils"; + homepage = "https://www.freedesktop.org/wiki/Software/desktop-file-utils"; description = "Command line utilities for working with .desktop files"; platforms = platforms.linux ++ platforms.darwin; license = licenses.gpl2Plus; diff --git a/pkgs/tools/misc/plantuml/default.nix b/pkgs/tools/misc/plantuml/default.nix index 9a6698ecfd4..eb6cfb7ebcb 100644 --- a/pkgs/tools/misc/plantuml/default.nix +++ b/pkgs/tools/misc/plantuml/default.nix @@ -25,7 +25,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Draw UML diagrams using a simple and human readable text description"; - homepage = "http://plantuml.sourceforge.net/"; + homepage = "https://plantuml.com/"; sourceProvenance = with sourceTypes; [ binaryBytecode ]; # "plantuml -license" says GPLv3 or later license = licenses.gpl3Plus; diff --git a/pkgs/tools/networking/redsocks/default.nix b/pkgs/tools/networking/redsocks/default.nix index 9b8989f30c2..cebec2cb2b6 100644 --- a/pkgs/tools/networking/redsocks/default.nix +++ b/pkgs/tools/networking/redsocks/default.nix @@ -22,7 +22,7 @@ stdenv.mkDerivation rec { meta = { description = "Transparent redirector of any TCP connection to proxy"; - homepage = "http://darkk.net.ru/redsocks/"; + homepage = "https://darkk.net.ru/redsocks/"; license = lib.licenses.asl20; maintainers = [ lib.maintainers.ekleog ]; platforms = lib.platforms.linux; diff --git a/pkgs/tools/networking/ripmime/default.nix b/pkgs/tools/networking/ripmime/default.nix index 6584edca5e6..7cfb31ff985 100644 --- a/pkgs/tools/networking/ripmime/default.nix +++ b/pkgs/tools/networking/ripmime/default.nix @@ -4,7 +4,7 @@ stdenv.mkDerivation rec { pname = "ripmime"; version = "1.4.0.10"; src = fetchurl { - url = "http://www.pldaniels.com/${pname}/${pname}-${version}.tar.gz"; + url = "https://pldaniels.com/${pname}/${pname}-${version}.tar.gz"; sha256 = "0sj06ibmlzy34n8v0mnlq2gwidy7n2aqcwgjh0xssz3vi941aqc9"; }; @@ -19,13 +19,13 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Attachment extractor for MIME messages"; maintainers = with maintainers; [ raskin ]; - homepage = "http://www.pldaniels.com/ripmime/"; + homepage = "https://pldaniels.com/ripmime/"; platforms = platforms.all; }; passthru = { updateInfo = { - downloadPage = "http://www.pldaniels.com/ripmime/"; + downloadPage = "https://pldaniels.com/ripmime/"; }; }; } diff --git a/pkgs/tools/security/afl/qemu.nix b/pkgs/tools/security/afl/qemu.nix index 9a8b4b3ca36..845d9fa3e6f 100644 --- a/pkgs/tools/security/afl/qemu.nix +++ b/pkgs/tools/security/afl/qemu.nix @@ -13,7 +13,7 @@ stdenv.mkDerivation rec { srcs = [ (fetchurl { - url = "http://wiki.qemu.org/download/qemu-${version}.tar.bz2"; + url = "https://download.qemu.org/qemu-${version}.tar.bz2"; sha256 = "0j3dfxzrzdp1w21k21fjvmakzc6lcha1rsclaicwqvbf63hkk7vy"; }) afl.src @@ -68,7 +68,7 @@ stdenv.mkDerivation rec { ]; meta = with lib; { - homepage = "http://www.qemu.org/"; + homepage = "https://www.qemu.org/"; description = "Fork of QEMU with AFL instrumentation support"; license = licenses.gpl2Plus; maintainers = with maintainers; [ thoughtpolice ]; diff --git a/pkgs/tools/security/chkrootkit/default.nix b/pkgs/tools/security/chkrootkit/default.nix index b365fa62f95..7c3af075a55 100644 --- a/pkgs/tools/security/chkrootkit/default.nix +++ b/pkgs/tools/security/chkrootkit/default.nix @@ -5,7 +5,7 @@ stdenv.mkDerivation rec { version = "0.55"; src = fetchurl { - url = "ftp://ftp.pangeia.com.br/pub/seg/pac/${pname}-${version}.tar.gz"; + url = "ftp://ftp.chkrootkit.org/pub/seg/pac/${pname}-${version}.tar.gz"; sha256 = "sha256-qBwChuxEkxP5U3ASAqAOgbIE/Cz0PieFhaEcEqXgJYs="; }; @@ -29,7 +29,7 @@ stdenv.mkDerivation rec { meta = with lib; { description = "Locally checks for signs of a rootkit"; - homepage = "http://www.chkrootkit.org/"; + homepage = "https://www.chkrootkit.org/"; license = licenses.bsd2; platforms = with platforms; linux; }; -- cgit 1.4.1 From ae7b2678f39431cf06ab5f80829b82b57ba88be4 Mon Sep 17 00:00:00 2001 From: Adam Joseph Date: Sat, 11 Nov 2023 22:12:01 -0800 Subject: rust: add tutorial on git-bisecting rustc This commits adds to the manual a tutorial showing how to troubleshoot breakage caused by a rustc upgrade in *downstream* packages. --- doc/languages-frameworks/rust.section.md | 64 ++++++++++++++++++++++++++++++++ 1 file changed, 64 insertions(+) (limited to 'doc') diff --git a/doc/languages-frameworks/rust.section.md b/doc/languages-frameworks/rust.section.md index 3bd8e1c7651..a2d132a2050 100644 --- a/doc/languages-frameworks/rust.section.md +++ b/doc/languages-frameworks/rust.section.md @@ -939,3 +939,67 @@ Fenix also has examples with `buildRustPackage`, [crane](https://github.com/ipetkov/crane), [naersk](https://github.com/nix-community/naersk), and cross compilation in its [Examples](https://github.com/nix-community/fenix#examples) section. +## Using `git bisect` on the Rust compiler {#using-git-bisect-on-the-rust-compiler} + +Sometimes an upgrade of the Rust compiler (`rustc`) will break a +downstream package. In these situations, being able to `git bisect` +the `rustc` version history to find the offending commit is quite +useful. Nixpkgs makes it easy to do this. + +First, roll back your nixpkgs to a commit in which its `rustc` used +*the most recent one which doesn't have the problem.* You'll need +to do this because of `rustc`'s extremely aggressive +version-pinning. + +Next, add the following overlay, updating the Rust version to the +one in your rolled-back nixpkgs, and replacing `/git/scratch/rust` +with the path into which you have `git clone`d the `rustc` git +repository: + +```nix + (final: prev: /*lib.optionalAttrs prev.stdenv.targetPlatform.isAarch64*/ { + rust_1_72 = + lib.updateManyAttrsByPath [{ + path = [ "packages" "stable" ]; + update = old: old.overrideScope(final: prev: { + rustc = prev.rustc.overrideAttrs (_: { + src = lib.cleanSource /git/scratch/rust; + # do *not* put passthru.isReleaseTarball=true here + }); + }); + }] + prev.rust_1_72; + }) +``` + +If the problem you're troubleshooting only manifests when +cross-compiling you can uncomment the `lib.optionalAttrs` in the +example above, and replace `isAarch64` with the target that is +having problems. This will speed up your bisect quite a bit, since +the host compiler won't need to be rebuilt. + +Now, you can start a `git bisect` in the directory where you checked +out the `rustc` source code. It is recommended to select the +endpoint commits by searching backwards from `origin/master` for the +*commits which added the release notes for the versions in +question.* If you set the endpoints to commits on the release +branches (i.e. the release tags), git-bisect will often get confused +by the complex merge-commit structures it will need to traverse. + +The command loop you'll want to use for bisecting looks like this: + +```bash +git bisect {good,bad} # depending on result of last build +git submodule update --init +CARGO_NET_OFFLINE=false cargo vendor \ + --sync ./src/tools/cargo/Cargo.toml \ + --sync ./src/tools/rust-analyzer/Cargo.toml \ + --sync ./compiler/rustc_codegen_cranelift/Cargo.toml \ + --sync ./src/bootstrap/Cargo.toml +nix-build $NIXPKGS -A package-broken-by-rust-changes +``` + +The `git submodule update --init` and `cargo vendor` commands above +require network access, so they can't be performed from within the +`rustc` derivation, unfortunately. + -- cgit 1.4.1 From d43e8d5549d4991d7b875a4cfb7c09e9bb6901d2 Mon Sep 17 00:00:00 2001 From: Adam Joseph <54836058+amjoseph-nixpkgs@users.noreply.github.com> Date: Sun, 12 Nov 2023 09:31:39 +0000 Subject: Update doc/languages-frameworks/rust.section.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jörg Thalheim --- doc/languages-frameworks/rust.section.md | 1 + 1 file changed, 1 insertion(+) (limited to 'doc') diff --git a/doc/languages-frameworks/rust.section.md b/doc/languages-frameworks/rust.section.md index a2d132a2050..d18b048b911 100644 --- a/doc/languages-frameworks/rust.section.md +++ b/doc/languages-frameworks/rust.section.md @@ -939,6 +939,7 @@ Fenix also has examples with `buildRustPackage`, [crane](https://github.com/ipetkov/crane), [naersk](https://github.com/nix-community/naersk), and cross compilation in its [Examples](https://github.com/nix-community/fenix#examples) section. + ## Using `git bisect` on the Rust compiler {#using-git-bisect-on-the-rust-compiler} Sometimes an upgrade of the Rust compiler (`rustc`) will break a -- cgit 1.4.1 From cfd0999b5a95fbe00612aca7d3aeef59fef7351b Mon Sep 17 00:00:00 2001 From: Fabian <36223345+tufteddeer@users.noreply.github.com> Date: Sun, 12 Nov 2023 19:32:37 +0100 Subject: docs/javascript/introduction: fix GitHub search link --- doc/languages-frameworks/javascript.section.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/languages-frameworks/javascript.section.md b/doc/languages-frameworks/javascript.section.md index 79cb0957250..0bb9959a510 100644 --- a/doc/languages-frameworks/javascript.section.md +++ b/doc/languages-frameworks/javascript.section.md @@ -13,7 +13,7 @@ If you find you are lacking inspiration for packing javascript applications, the ### Github {#javascript-finding-examples-github} - Searching Nix files for `mkYarnPackage`: -- Searching just `flake.nix` files for `mkYarnPackage`: +- Searching just `flake.nix` files for `mkYarnPackage`: ### Gitlab {#javascript-finding-examples-gitlab} -- cgit 1.4.1 From e93a3d7b586022f900f176cf46e7a3bf211cfaf9 Mon Sep 17 00:00:00 2001 From: DS Date: Mon, 23 Oct 2023 19:51:50 -0700 Subject: doc: separate commit header conventions for each area, info on docs changes. --- CONTRIBUTING.md | 33 ++++++++++----------------------- doc/README.md | 21 +++++++++++++++++++++ lib/README.md | 20 ++++++++++++++++++++ nixos/README.md | 21 +++++++++++++++++++++ pkgs/README.md | 19 +++++++++++++++++++ 5 files changed, 91 insertions(+), 23 deletions(-) (limited to 'doc') diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 06b9c10dfec..ed1b04cf5fe 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -322,6 +322,8 @@ All the review template samples provided in this section are generic and meant a To get more information about how to review specific parts of Nixpkgs, refer to the documents linked to in the [overview section][overview]. +If a pull request contains documentation changes that might require feedback from the documentation team, ping @NixOS/documentation-team on the pull request. + If you consider having enough knowledge and experience in a topic and would like to be a long-term reviewer for related submissions, please contact the current reviewers for that topic. They will give you information about the reviewing process. The main reviewers for a topic can be hard to find as there is no list, but checking past pull requests to see who reviewed or git-blaming the code to see who committed to that topic can give some hints. Container system, boot system and library changes are some examples of the pull requests fitting this category. @@ -512,34 +514,19 @@ To get a sense for what changes are considered mass rebuilds, see [previously me - If you have commits `pkg-name: oh, forgot to insert whitespace`: squash commits in this case. Use `git rebase -i`. -- Format the commit messages in the following way: - - ``` - (pkg-name | nixos/): (from -> to | init at version | refactor | etc) - - (Motivation for change. Link to release notes. Additional information.) - ``` - - For consistency, there should not be a period at the end of the commit message's summary line (the first line of the commit message). +- For consistency, there should not be a period at the end of the commit message's summary line (the first line of the commit message). - Examples: - - * nginx: init at 2.0.1 - * firefox: 54.0.1 -> 55.0 - - https://www.mozilla.org/en-US/firefox/55.0/releasenotes/ - * nixos/hydra: add bazBaz option - - Dual baz behavior is needed to do foo. - * nixos/nginx: refactor config generation - - The old config generation system used impure shell scripts and could break in specific circumstances (see #1234). - - When adding yourself as maintainer, in the same pull request, make a separate +- When adding yourself as maintainer in the same pull request, make a separate commit with the message `maintainers: add `. Add the commit before those making changes to the package or module. See [Nixpkgs Maintainers](./maintainers/README.md) for details. +- Make sure you read about any commit conventions specific to the area you're touching. See: + - [Commit conventions](./pkgs/README.md#commit-conventions) for changes to `pkgs`. + - [Commit conventions](./lib/README.md#commit-conventions) for changes to `lib`. + - [Commit conventions](./nixos/README.md#commit-conventions) for changes to `nixos`. + - [Commit conventions](./doc/README.md#commit-conventions) for changes to `doc`, the Nixpkgs manual. + ### Writing good commit messages In addition to writing properly formatted commit messages, it's important to include relevant information so other developers can later understand *why* a change was made. While this information usually can be found by digging code, mailing list/Discourse archives, pull request discussions or upstream changes, it may require a lot of work. diff --git a/doc/README.md b/doc/README.md index 3f9aff1a38a..9dee2d30d73 100644 --- a/doc/README.md +++ b/doc/README.md @@ -114,3 +114,24 @@ pear watermelon : green fruit with red flesh ``` + +## Commit conventions + +- Make sure you read about the [commit conventions](../CONTRIBUTING.md#commit-conventions) common to Nixpkgs as a whole. + +- If creating a commit purely for documentation changes, format the commit message in the following way: + + ``` + doc: (documentation summary) + + (Motivation for change, relevant links, additional information.) + ``` + + Examples: + + * doc: update the kernel config documentation to use `nix-shell` + * doc: add information about `nix-update-script` + + Closes #216321. + +- If the commit contains more than just documentation changes, follow the commit message format relevant for the rest of the changes. diff --git a/lib/README.md b/lib/README.md index 627086843db..220940bc212 100644 --- a/lib/README.md +++ b/lib/README.md @@ -74,3 +74,23 @@ path/tests/prop.sh # Run the lib.fileset tests fileset/tests.sh ``` + +## Commit conventions + +- Make sure you read about the [commit conventions](../CONTRIBUTING.md#commit-conventions) common to Nixpkgs as a whole. + +- Format the commit messages in the following way: + + ``` + lib.(section): (init | add additional argument | refactor | etc) + + (Motivation for change. Additional information.) + ``` + + Examples: + + * lib.getExe': check arguments + * lib.fileset: Add an additional argument in the design docs + + Closes #264537 + diff --git a/nixos/README.md b/nixos/README.md index b3cd9d234fa..7f258eb393a 100644 --- a/nixos/README.md +++ b/nixos/README.md @@ -8,6 +8,27 @@ https://nixos.org/nixos and in the manual in doc/manual. You can add new module to your NixOS configuration file (usually it’s `/etc/nixos/configuration.nix`). And do `sudo nixos-rebuild test -I nixpkgs= --fast`. +## Commit conventions + +- Make sure you read about the [commit conventions](../CONTRIBUTING.md#commit-conventions) common to Nixpkgs as a whole. + +- Format the commit messages in the following way: + + ``` + nixos/(module): (init module | add setting | refactor | etc) + + (Motivation for change. Link to release notes. Additional information.) + ``` + + Examples: + + * nixos/hydra: add bazBaz option + + Dual baz behavior is needed to do foo. + * nixos/nginx: refactor config generation + + The old config generation system used impure shell scripts and could break in specific circumstances (see #1234). + ## Reviewing contributions When changing the bootloader installation process, extra care must be taken. Grub installations cannot be rolled back, hence changes may break people’s installations forever. For any non-trivial change to the bootloader please file a PR asking for review, especially from \@edolstra. diff --git a/pkgs/README.md b/pkgs/README.md index 642833d968f..fc33ecea199 100644 --- a/pkgs/README.md +++ b/pkgs/README.md @@ -114,6 +114,25 @@ Now that this is out of the way. To add a package to Nixpkgs: 7. Optionally commit the new package and open a pull request [to nixpkgs](https://github.com/NixOS/nixpkgs/pulls), or use [the Patches category](https://discourse.nixos.org/t/about-the-patches-category/477) on Discourse for sending a patch without a GitHub account. +## Commit conventions + +- Make sure you read about the [commit conventions](../CONTRIBUTING.md#commit-conventions) common to Nixpkgs as a whole. + +- Format the commit messages in the following way: + + ``` + (pkg-name): (from -> to | init at version | refactor | etc) + + (Motivation for change. Link to release notes. Additional information.) + ``` + + Examples: + + * nginx: init at 2.0.1 + * firefox: 54.0.1 -> 55.0 + + https://www.mozilla.org/en-US/firefox/55.0/releasenotes/ + ## Category Hierarchy [categories]: #category-hierarchy -- cgit 1.4.1 From c3104c4cad14301c1866f76f0d374364feae4d29 Mon Sep 17 00:00:00 2001 From: Aaron Jheng Date: Sat, 30 Sep 2023 14:15:02 +0000 Subject: buildGoModule: deprecate vendorSha256 attribute --- doc/languages-frameworks/go.section.md | 2 +- nixos/doc/manual/release-notes/rl-2311.section.md | 2 ++ pkgs/build-support/go/module.nix | 1 + 3 files changed, 4 insertions(+), 1 deletion(-) (limited to 'doc') diff --git a/doc/languages-frameworks/go.section.md b/doc/languages-frameworks/go.section.md index 59856b92c9e..884ebcebf7f 100644 --- a/doc/languages-frameworks/go.section.md +++ b/doc/languages-frameworks/go.section.md @@ -20,7 +20,7 @@ In the following is an example expression using `buildGoModule`, the following a To obtain the actual hash, set `vendorHash = lib.fakeHash;` and run the build ([more details here](#sec-source-hashes)). - `proxyVendor`: Fetches (go mod download) and proxies the vendor directory. This is useful if your code depends on c code and go mod tidy does not include the needed sources to build or if any dependency has case-insensitive conflicts which will produce platform-dependent `vendorHash` checksums. -- `modPostBuild`: Shell commands to run after the build of the goModules executes `go mod vendor`, and before calculating fixed output derivation's `vendorHash` (or `vendorSha256`). Note that if you change this attribute, you need to update `vendorHash` (or `vendorSha256`) attribute. +- `modPostBuild`: Shell commands to run after the build of the goModules executes `go mod vendor`, and before calculating fixed output derivation's `vendorHash`. Note that if you change this attribute, you need to update `vendorHash` attribute. ```nix pet = buildGoModule rec { diff --git a/nixos/doc/manual/release-notes/rl-2311.section.md b/nixos/doc/manual/release-notes/rl-2311.section.md index 051c0e7c663..4f1a89781e1 100644 --- a/nixos/doc/manual/release-notes/rl-2311.section.md +++ b/nixos/doc/manual/release-notes/rl-2311.section.md @@ -521,6 +521,8 @@ The module update takes care of the new config syntax and the data itself (user - The Home Assistant module now offers support for installing custom components and lovelace modules. Available at [`services.home-assistant.customComponents`](#opt-services.home-assistant.customComponents) and [`services.home-assistant.customLovelaceModules`](#opt-services.home-assistant.customLovelaceModules). +- The argument `vendorSha256` of `buildGoModule` is deprecated. Use `vendorHash` instead. ([\#259999](https://github.com/NixOS/nixpkgs/pull/259999)) + ## Nixpkgs internals {#sec-release-23.11-nixpkgs-internals} - The use of `sourceRoot = "source";`, `sourceRoot = "source/subdir";`, and similar lines in package derivations using the default `unpackPhase` is deprecated as it requires `unpackPhase` to always produce a directory named "source". Use `sourceRoot = src.name`, `sourceRoot = "${src.name}/subdir";`, or `setSourceRoot = "sourceRoot=$(echo */subdir)";` or similar instead. diff --git a/pkgs/build-support/go/module.nix b/pkgs/build-support/go/module.nix index 09b43063fb9..d0fd8928c91 100644 --- a/pkgs/build-support/go/module.nix +++ b/pkgs/build-support/go/module.nix @@ -297,6 +297,7 @@ let } // meta; }); in +lib.warnIf (args' ? vendorSha256) "`vendorSha256` is deprecated. Use `vendorHash` instead" lib.warnIf (buildFlags != "" || buildFlagsArray != "") "Use the `ldflags` and/or `tags` attributes instead of `buildFlags`/`buildFlagsArray`" package -- cgit 1.4.1 From 2b08a064e11062e6ef3d995fe3c30c2ad671abd5 Mon Sep 17 00:00:00 2001 From: ajs124 Date: Tue, 14 Nov 2023 14:03:02 +0100 Subject: docs/hooks/qt-4: remove was missed when qt4 was removed --- doc/hooks/index.md | 1 - doc/hooks/qt-4.section.md | 3 --- 2 files changed, 4 deletions(-) delete mode 100644 doc/hooks/qt-4.section.md (limited to 'doc') diff --git a/doc/hooks/index.md b/doc/hooks/index.md index 363d627e525..1534ef85ccb 100644 --- a/doc/hooks/index.md +++ b/doc/hooks/index.md @@ -25,7 +25,6 @@ perl.section.md pkg-config.section.md postgresql-test-hook.section.md python.section.md -qt-4.section.md scons.section.md tetex-tex-live.section.md unzip.section.md diff --git a/doc/hooks/qt-4.section.md b/doc/hooks/qt-4.section.md deleted file mode 100644 index 4b704df4959..00000000000 --- a/doc/hooks/qt-4.section.md +++ /dev/null @@ -1,3 +0,0 @@ -# Qt 4 {#qt-4} - -Sets the `QTDIR` environment variable to Qt’s path. -- cgit 1.4.1 From 7fb490674fbe789dafe09f018ae7470143ed5a3c Mon Sep 17 00:00:00 2001 From: happysalada Date: Thu, 9 Nov 2023 18:51:35 +0100 Subject: buildNpmPackage: allow passing npmDeps --- doc/languages-frameworks/javascript.section.md | 1 + pkgs/build-support/node/build-npm-package/default.nix | 11 +++++------ 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'doc') diff --git a/doc/languages-frameworks/javascript.section.md b/doc/languages-frameworks/javascript.section.md index 0bb9959a510..152974b465a 100644 --- a/doc/languages-frameworks/javascript.section.md +++ b/doc/languages-frameworks/javascript.section.md @@ -210,6 +210,7 @@ In the default `installPhase` set by `buildNpmPackage`, it uses `npm pack --json * `npmPruneFlags`: Flags to pass to `npm prune`. Defaults to the value of `npmInstallFlags`. * `makeWrapperArgs`: Flags to pass to `makeWrapper`, added to executable calling the generated `.js` with `node` as an interpreter. These scripts are defined in `package.json`. * `nodejs`: The `nodejs` package to build against, using the corresponding `npm` shipped with that version of `node`. Defaults to `pkgs.nodejs`. +* `npmDeps`: The dependencies used to build the npm package. Especially useful to not have to recompute workspace depedencies. #### prefetch-npm-deps {#javascript-buildNpmPackage-prefetch-npm-deps} diff --git a/pkgs/build-support/node/build-npm-package/default.nix b/pkgs/build-support/node/build-npm-package/default.nix index 9babc7ae628..2aefab8ac7a 100644 --- a/pkgs/build-support/node/build-npm-package/default.nix +++ b/pkgs/build-support/node/build-npm-package/default.nix @@ -35,16 +35,15 @@ # Value for npm `--workspace` flag and directory in which the files to be installed are found. , npmWorkspace ? null , nodejs ? topLevelArgs.nodejs +, npmDeps ? fetchNpmDeps { + inherit forceGitDeps src srcs sourceRoot prePatch patches postPatch; + name = "${name}-npm-deps"; + hash = npmDepsHash; +} , ... } @ args: let - npmDeps = fetchNpmDeps { - inherit forceGitDeps src srcs sourceRoot prePatch patches postPatch; - name = "${name}-npm-deps"; - hash = npmDepsHash; - }; - # .override {} negates splicing, so we need to use buildPackages explicitly npmHooks = buildPackages.npmHooks.override { inherit nodejs; -- cgit 1.4.1