diff --git a/doc/languages-frameworks/python.section.md b/doc/languages-frameworks/python.section.md index d171e8419188..78b3559ac014 100644 --- a/doc/languages-frameworks/python.section.md +++ b/doc/languages-frameworks/python.section.md @@ -1,5 +1,512 @@ # Python {#python} +## Reference {#reference} + +### Interpreters {#interpreters} + +| Package | Aliases | Interpreter | +|------------|-----------------|-------------| +| python27 | python2, python | CPython 2.7 | +| python38 | | CPython 3.8 | +| python39 | | CPython 3.9 | +| python310 | python3 | CPython 3.10 | +| python311 | | CPython 3.11 | +| python312 | | CPython 3.12 | +| pypy27 | pypy2, pypy | PyPy2.7 | +| pypy39 | pypy3 | PyPy 3.9 | + +The Nix expressions for the interpreters can be found in +`pkgs/development/interpreters/python`. + +All packages depending on any Python interpreter get appended +`out/{python.sitePackages}` to `$PYTHONPATH` if such directory +exists. + +#### Missing `tkinter` module standard library {#missing-tkinter-module-standard-library} + +To reduce closure size the `Tkinter`/`tkinter` is available as a separate package, `pythonPackages.tkinter`. + +#### Attributes on interpreters packages {#attributes-on-interpreters-packages} + +Each interpreter has the following attributes: + +- `libPrefix`. Name of the folder in `${python}/lib/` for corresponding interpreter. +- `interpreter`. Alias for `${python}/bin/${executable}`. +- `buildEnv`. Function to build python interpreter environments with extra packages bundled together. See section *python.buildEnv function* for usage and documentation. +- `withPackages`. Simpler interface to `buildEnv`. See section *python.withPackages function* for usage and documentation. +- `sitePackages`. Alias for `lib/${libPrefix}/site-packages`. +- `executable`. Name of the interpreter executable, e.g. `python3.10`. +- `pkgs`. Set of Python packages for that specific interpreter. The package set can be modified by overriding the interpreter and passing `packageOverrides`. + +### Building packages and applications {#building-packages-and-applications} + +Python libraries and applications that use `setuptools` or +`distutils` are typically built with respectively the `buildPythonPackage` and +`buildPythonApplication` functions. These two functions also support installing a `wheel`. + +All Python packages reside in `pkgs/top-level/python-packages.nix` and all +applications elsewhere. In case a package is used as both a library and an +application, then the package should be in `pkgs/top-level/python-packages.nix` +since only those packages are made available for all interpreter versions. The +preferred location for library expressions is in +`pkgs/development/python-modules`. It is important that these packages are +called from `pkgs/top-level/python-packages.nix` and not elsewhere, to guarantee +the right version of the package is built. + +Based on the packages defined in `pkgs/top-level/python-packages.nix` an +attribute set is created for each available Python interpreter. The available +sets are + +* `pkgs.python27Packages` +* `pkgs.python3Packages` +* `pkgs.python38Packages` +* `pkgs.python39Packages` +* `pkgs.python310Packages` +* `pkgs.python311Packages` +* `pkgs.pypyPackages` + +and the aliases + +* `pkgs.python2Packages` pointing to `pkgs.python27Packages` +* `pkgs.python3Packages` pointing to `pkgs.python310Packages` +* `pkgs.pythonPackages` pointing to `pkgs.python2Packages` + +#### `buildPythonPackage` function {#buildpythonpackage-function} + +The `buildPythonPackage` function is implemented in +`pkgs/development/interpreters/python/mk-python-derivation.nix` +using setup hooks. + +The following is an example: + +```nix +{ lib +, buildPythonPackage +, fetchPypi + +# build-system +, setuptools-scm + +# dependencies +, attrs +, pluggy +, py +, setuptools +, six + +# tests +, hypothesis + }: + +buildPythonPackage rec { + pname = "pytest"; + version = "3.3.1"; + format = "setuptools"; + + src = fetchPypi { + inherit pname version; + hash = "sha256-z4Q23FnYaVNG/NOrKW3kZCXsqwDWQJbOvnn7Ueyy65M="; + }; + + postPatch = '' + # don't test bash builtins + rm testing/test_argcomplete.py + ''; + + nativeBuildInputs = [ + setuptools-scm + ]; + + propagatedBuildInputs = [ + attrs + py + setuptools + six + pluggy + ]; + + nativeCheckInputs = [ + hypothesis + ]; + + meta = with lib; { + changelog = "https://github.com/pytest-dev/pytest/releases/tag/${version}"; + description = "Framework for writing tests"; + homepage = "https://github.com/pytest-dev/pytest"; + license = licenses.mit; + maintainers = with maintainers; [ domenkozar lovek323 madjar lsix ]; + }; +} +``` + +The `buildPythonPackage` mainly does four things: + +* In the `buildPhase`, it calls `${python.pythonForBuild.interpreter} setup.py bdist_wheel` to + build a wheel binary zipfile. +* In the `installPhase`, it installs the wheel file using `pip install *.whl`. +* In the `postFixup` phase, the `wrapPythonPrograms` bash function is called to + wrap all programs in the `$out/bin/*` directory to include `$PATH` + environment variable and add dependent libraries to script's `sys.path`. +* In the `installCheck` phase, `${python.interpreter} setup.py test` is run. + +By default tests are run because `doCheck = true`. Test dependencies, like +e.g. the test runner, should be added to `nativeCheckInputs`. + +By default `meta.platforms` is set to the same value +as the interpreter unless overridden otherwise. + +##### `buildPythonPackage` parameters {#buildpythonpackage-parameters} + +All parameters from `stdenv.mkDerivation` function are still supported. The +following are specific to `buildPythonPackage`: + +* `catchConflicts ? true`: If `true`, abort package build if a package name + appears more than once in dependency tree. Default is `true`. +* `disabled ? false`: If `true`, package is not built for the particular Python + interpreter version. +* `dontWrapPythonPrograms ? false`: Skip wrapping of Python programs. +* `permitUserSite ? false`: Skip setting the `PYTHONNOUSERSITE` environment + variable in wrapped programs. +* `format ? "setuptools"`: Format of the source. Valid options are + `"setuptools"`, `"pyproject"`, `"flit"`, `"wheel"`, and `"other"`. + `"setuptools"` is for when the source has a `setup.py` and `setuptools` is + used to build a wheel, `flit`, in case `flit` should be used to build a wheel, + and `wheel` in case a wheel is provided. Use `other` when a custom + `buildPhase` and/or `installPhase` is needed. +* `makeWrapperArgs ? []`: A list of strings. Arguments to be passed to + `makeWrapper`, which wraps generated binaries. By default, the arguments to + `makeWrapper` set `PATH` and `PYTHONPATH` environment variables before calling + the binary. Additional arguments here can allow a developer to set environment + variables which will be available when the binary is run. For example, + `makeWrapperArgs = ["--set FOO BAR" "--set BAZ QUX"]`. +* `namePrefix`: Prepends text to `${name}` parameter. In case of libraries, this + defaults to `"python3.8-"` for Python 3.8, etc., and in case of applications to `""`. +* `pipInstallFlags ? []`: A list of strings. Arguments to be passed to `pip + install`. To pass options to `python setup.py install`, use + `--install-option`. E.g., `pipInstallFlags=["--install-option='--cpp_implementation'"]`. +* `pipBuildFlags ? []`: A list of strings. Arguments to be passed to `pip wheel`. +* `pypaBuildFlags ? []`: A list of strings. Arguments to be passed to `python -m build --wheel`. +* `pythonPath ? []`: List of packages to be added into `$PYTHONPATH`. Packages + in `pythonPath` are not propagated (contrary to `propagatedBuildInputs`). +* `preShellHook`: Hook to execute commands before `shellHook`. +* `postShellHook`: Hook to execute commands after `shellHook`. +* `removeBinByteCode ? true`: Remove bytecode from `/bin`. Bytecode is only + created when the filenames end with `.py`. +* `setupPyGlobalFlags ? []`: List of flags passed to `setup.py` command. +* `setupPyBuildFlags ? []`: List of flags passed to `setup.py build_ext` command. + +The `stdenv.mkDerivation` function accepts various parameters for describing +build inputs (see "Specifying dependencies"). The following are of special +interest for Python packages, either because these are primarily used, or +because their behaviour is different: + +* `nativeBuildInputs ? []`: Build-time only dependencies. Typically executables + as well as the items listed in `setup_requires`. +* `buildInputs ? []`: Build and/or run-time dependencies that need to be + compiled for the host machine. Typically non-Python libraries which are being + linked. +* `nativeCheckInputs ? []`: Dependencies needed for running the `checkPhase`. These + are added to `nativeBuildInputs` when `doCheck = true`. Items listed in + `tests_require` go here. +* `propagatedBuildInputs ? []`: Aside from propagating dependencies, + `buildPythonPackage` also injects code into and wraps executables with the + paths included in this list. Items listed in `install_requires` go here. + +##### Overriding Python packages {#overriding-python-packages} + +The `buildPythonPackage` function has a `overridePythonAttrs` method that can be +used to override the package. In the following example we create an environment +where we have the `blaze` package using an older version of `pandas`. We +override first the Python interpreter and pass `packageOverrides` which contains +the overrides for packages in the package set. + +```nix +with import {}; + +(let + python = let + packageOverrides = self: super: { + pandas = super.pandas.overridePythonAttrs(old: rec { + version = "0.19.1"; + src = fetchPypi { + pname = "pandas"; + inherit version; + hash = "sha256-JQn+rtpy/OA2deLszSKEuxyttqBzcAil50H+JDHUdCE="; + }; + }); + }; + in pkgs.python3.override {inherit packageOverrides; self = python;}; + +in python.withPackages(ps: [ ps.blaze ])).env +``` + +The next example shows a non trivial overriding of the `blas` implementation to +be used through out all of the Python package set: + +```nix +python3MyBlas = pkgs.python3.override { + packageOverrides = self: super: { + # We need toPythonModule for the package set to evaluate this + blas = super.toPythonModule(super.pkgs.blas.override { + blasProvider = super.pkgs.mkl; + }); + lapack = super.toPythonModule(super.pkgs.lapack.override { + lapackProvider = super.pkgs.mkl; + }); + }; +}; +``` + +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 +compilation issues, because scipy dependencies need to use the same blas implementation as well. + +#### `buildPythonApplication` function {#buildpythonapplication-function} + +The `buildPythonApplication` function is practically the same as +`buildPythonPackage`. The main purpose of this function is to build a Python +package where one is interested only in the executables, and not importable +modules. For that reason, when adding this package to a `python.buildEnv`, the +modules won't be made available. + +Another difference is that `buildPythonPackage` by default prefixes the names of +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`, it should be +called with `callPackage` and passed `python` or `pythonPackages` (possibly +specifying an interpreter version), like this: + +```nix +{ lib +, python3 +, fetchPypi +}: + +python3.pkgs.buildPythonApplication rec { + pname = "luigi"; + version = "2.7.9"; + format = "setuptools"; + + src = fetchPypi { + inherit pname version; + hash = "sha256-Pe229rT0aHwA98s+nTHQMEFKZPo/yw6sot8MivFDvAw="; + }; + + propagatedBuildInputs = with python3.pkgs; [ + tornado + python-daemon + ]; + + meta = with lib; { + ... + }; +} +``` + +This is then added to `all-packages.nix` just as any other application would be. + +```nix +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`. + +#### `toPythonApplication` function {#topythonapplication-function} + +A distinction is made between applications and libraries, however, sometimes a +package is used as both. In this case the package is added as a library to +`python-packages.nix` and as an application to `all-packages.nix`. To reduce +duplication the `toPythonApplication` can be used to convert a library to an +application. + +The Nix expression shall use `buildPythonPackage` and be called from +`python-packages.nix`. A reference shall be created from `all-packages.nix` to +the attribute in `python-packages.nix`, and the `toPythonApplication` shall be +applied to the reference: + +```nix +youtube-dl = with pythonPackages; toPythonApplication youtube-dl; +``` + +#### `toPythonModule` function {#topythonmodule-function} + +In some cases, such as bindings, a package is created using +`stdenv.mkDerivation` and added as attribute in `all-packages.nix`. The Python +bindings should be made available from `python-packages.nix`. The +`toPythonModule` function takes a derivation and makes certain Python-specific +modifications. + +```nix +opencv = toPythonModule (pkgs.opencv.override { + enablePython = true; + pythonPackages = self; +}); +``` + +Do pay attention to passing in the right Python version! + +#### `python.buildEnv` function {#python.buildenv-function} + +Python environments can be created using the low-level `pkgs.buildEnv` function. +This example shows how to create an environment that has the Pyramid Web Framework. +Saving the following as `default.nix` + +```nix +with import {}; + +python.buildEnv.override { + extraLibs = [ pythonPackages.pyramid ]; + ignoreCollisions = true; +} +``` + +and running `nix-build` will create + +``` +/nix/store/cf1xhjwzmdki7fasgr4kz6di72ykicl5-python-2.7.8-env +``` + +with wrapped binaries in `bin/`. + +You can also use the `env` attribute to create local environments with needed +packages installed. This is somewhat comparable to `virtualenv`. For example, +running `nix-shell` with the following `shell.nix` + +```nix +with import {}; + +(python3.buildEnv.override { + extraLibs = with python3Packages; [ + numpy + requests + ]; +}).env +``` + +will drop you into a shell where Python will have the +specified packages in its path. + +##### `python.buildEnv` arguments {#python.buildenv-arguments} + + +* `extraLibs`: List of packages installed inside the environment. +* `postBuild`: Shell command executed after the build of environment. +* `ignoreCollisions`: Ignore file collisions inside the environment (default is `false`). +* `permitUserSite`: Skip setting the `PYTHONNOUSERSITE` environment variable in + wrapped binaries in the environment. + +#### `python.withPackages` function {#python.withpackages-function} + +The `python.withPackages` function provides a simpler interface to the `python.buildEnv` functionality. +It takes a function as an argument that is passed the set of python packages and returns the list +of the packages to be included in the environment. Using the `withPackages` function, the previous +example for the Pyramid Web Framework environment can be written like this: + +```nix +with import {}; + +python.withPackages (ps: [ ps.pyramid ]) +``` + +`withPackages` passes the correct package set for the specific interpreter +version as an argument to the function. In the above example, `ps` equals +`pythonPackages`. But you can also easily switch to using python3: + +```nix +with import {}; + +python3.withPackages (ps: [ ps.pyramid ]) +``` + +Now, `ps` is set to `python3Packages`, matching the version of the interpreter. + +As `python.withPackages` simply uses `python.buildEnv` under the hood, it also +supports the `env` attribute. The `shell.nix` file from the previous section can +thus be also written like this: + +```nix +with import {}; + +(python3.withPackages (ps: with ps; [ + numpy + requests +])).env +``` + +In contrast to `python.buildEnv`, `python.withPackages` does not support the +more advanced options such as `ignoreCollisions = true` or `postBuild`. If you +need them, you have to use `python.buildEnv`. + +Python 2 namespace packages may provide `__init__.py` that collide. In that case +`python.buildEnv` should be used with `ignoreCollisions = true`. + +#### Setup hooks {#setup-hooks} + +The following are setup hooks specifically for Python packages. Most of these +are used in `buildPythonPackage`. + +- `eggUnpackhook` to move an egg to the correct folder so it can be installed + with the `eggInstallHook` +- `eggBuildHook` to skip building for eggs. +- `eggInstallHook` to install eggs. +- `flitBuildHook` to build a wheel using `flit`. +- `pipBuildHook` to build a wheel using `pip` and PEP 517. Note a build system + (e.g. `setuptools` or `flit`) should still be added as `nativeBuildInput`. +- `pypaBuildHook` to build a wheel using + [`pypa/build`](https://pypa-build.readthedocs.io/en/latest/index.html) and + PEP 517/518. Note a build system (e.g. `setuptools` or `flit`) should still + be added as `nativeBuildInput`. +- `pipInstallHook` to install wheels. +- `pytestCheckHook` to run tests with `pytest`. See [example usage](#using-pytestcheckhook). +- `pythonCatchConflictsHook` to check whether a Python package is not already existing. +- `pythonImportsCheckHook` to check whether importing the listed modules works. +- `pythonRelaxDepsHook` will relax Python dependencies restrictions for the package. + See [example usage](#using-pythonrelaxdepshook). +- `pythonRemoveBinBytecode` to remove bytecode from the `/bin` folder. +- `setuptoolsBuildHook` to build a wheel using `setuptools`. +- `setuptoolsCheckHook` to run tests with `python setup.py test`. +- `sphinxHook` to build documentation and manpages using Sphinx. +- `venvShellHook` to source a Python 3 `venv` at the `venvDir` location. A + `venv` is created if it does not yet exist. `postVenvCreation` can be used to + to run commands only after venv is first created. +- `wheelUnpackHook` to move a wheel to the correct folder so it can be installed + with the `pipInstallHook`. +- `unittestCheckHook` will run tests with `python -m unittest discover`. See [example usage](#using-unittestcheckhook). + +### Development mode {#development-mode} + +Development or editable mode is supported. To develop Python packages +`buildPythonPackage` has additional logic inside `shellPhase` to run `pip +install -e . --prefix $TMPDIR/`for the package. + +Warning: `shellPhase` is executed only if `setup.py` exists. + +Given a `default.nix`: + +```nix +with import {}; + +pythonPackages.buildPythonPackage { + name = "myproject"; + buildInputs = with pythonPackages; [ pyramid ]; + + src = ./.; +} +``` + +Running `nix-shell` with no arguments should give you the environment in which +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 +``` + +Note: There is a boolean value `lib.inNixShell` set to `true` if nix-shell is invoked. + ## User Guide {#user-guide} ### Using Python {#using-python} @@ -993,615 +1500,6 @@ don't explicitly define which `python` derivation should be used. In the above example we use `buildPythonPackage` that is part of the set `python3Packages`, and in this case the `python3` interpreter is automatically used. -## Reference {#reference} - -### Interpreters {#interpreters} - -| Package | Aliases | Interpreter | -|------------|-----------------|-------------| -| python27 | python2, python | CPython 2.7 | -| python38 | | CPython 3.8 | -| python39 | | CPython 3.9 | -| python310 | python3 | CPython 3.10 | -| python311 | | CPython 3.11 | -| python312 | | CPython 3.12 | -| pypy27 | pypy2, pypy | PyPy2.7 | -| pypy39 | pypy3 | PyPy 3.9 | - -The Nix expressions for the interpreters can be found in -`pkgs/development/interpreters/python`. - -All packages depending on any Python interpreter get appended -`out/{python.sitePackages}` to `$PYTHONPATH` if such directory -exists. - -#### Missing `tkinter` module standard library {#missing-tkinter-module-standard-library} - -To reduce closure size the `Tkinter`/`tkinter` is available as a separate package, `pythonPackages.tkinter`. - -#### Attributes on interpreters packages {#attributes-on-interpreters-packages} - -Each interpreter has the following attributes: - -- `libPrefix`. Name of the folder in `${python}/lib/` for corresponding interpreter. -- `interpreter`. Alias for `${python}/bin/${executable}`. -- `buildEnv`. Function to build python interpreter environments with extra packages bundled together. See section *python.buildEnv function* for usage and documentation. -- `withPackages`. Simpler interface to `buildEnv`. See section *python.withPackages function* for usage and documentation. -- `sitePackages`. Alias for `lib/${libPrefix}/site-packages`. -- `executable`. Name of the interpreter executable, e.g. `python3.10`. -- `pkgs`. Set of Python packages for that specific interpreter. The package set can be modified by overriding the interpreter and passing `packageOverrides`. - -### Optimizations {#optimizations} - -The Python interpreters are by default not built with optimizations enabled, because -the builds are in that case not reproducible. To enable optimizations, override the -interpreter of interest, e.g using - -``` -let - pkgs = import ./. {}; - mypython = pkgs.python3.override { - enableOptimizations = true; - reproducibleBuild = false; - self = mypython; - }; -in mypython -``` - -### Building packages and applications {#building-packages-and-applications} - -Python libraries and applications that use `setuptools` or -`distutils` are typically built with respectively the `buildPythonPackage` and -`buildPythonApplication` functions. These two functions also support installing a `wheel`. - -All Python packages reside in `pkgs/top-level/python-packages.nix` and all -applications elsewhere. In case a package is used as both a library and an -application, then the package should be in `pkgs/top-level/python-packages.nix` -since only those packages are made available for all interpreter versions. The -preferred location for library expressions is in -`pkgs/development/python-modules`. It is important that these packages are -called from `pkgs/top-level/python-packages.nix` and not elsewhere, to guarantee -the right version of the package is built. - -Based on the packages defined in `pkgs/top-level/python-packages.nix` an -attribute set is created for each available Python interpreter. The available -sets are - -* `pkgs.python27Packages` -* `pkgs.python3Packages` -* `pkgs.python38Packages` -* `pkgs.python39Packages` -* `pkgs.python310Packages` -* `pkgs.python311Packages` -* `pkgs.pypyPackages` - -and the aliases - -* `pkgs.python2Packages` pointing to `pkgs.python27Packages` -* `pkgs.python3Packages` pointing to `pkgs.python310Packages` -* `pkgs.pythonPackages` pointing to `pkgs.python2Packages` - -#### `buildPythonPackage` function {#buildpythonpackage-function} - -The `buildPythonPackage` function is implemented in -`pkgs/development/interpreters/python/mk-python-derivation.nix` -using setup hooks. - -The following is an example: - -```nix -{ lib -, buildPythonPackage -, fetchPypi - -# build-system -, setuptools-scm - -# dependencies -, attrs -, pluggy -, py -, setuptools -, six - -# tests -, hypothesis - }: - -buildPythonPackage rec { - pname = "pytest"; - version = "3.3.1"; - format = "setuptools"; - - src = fetchPypi { - inherit pname version; - hash = "sha256-z4Q23FnYaVNG/NOrKW3kZCXsqwDWQJbOvnn7Ueyy65M="; - }; - - postPatch = '' - # don't test bash builtins - rm testing/test_argcomplete.py - ''; - - nativeBuildInputs = [ - setuptools-scm - ]; - - propagatedBuildInputs = [ - attrs - py - setuptools - six - pluggy - ]; - - nativeCheckInputs = [ - hypothesis - ]; - - meta = with lib; { - changelog = "https://github.com/pytest-dev/pytest/releases/tag/${version}"; - description = "Framework for writing tests"; - homepage = "https://github.com/pytest-dev/pytest"; - license = licenses.mit; - maintainers = with maintainers; [ domenkozar lovek323 madjar lsix ]; - }; -} -``` - -The `buildPythonPackage` mainly does four things: - -* In the `buildPhase`, it calls `${python.pythonForBuild.interpreter} setup.py bdist_wheel` to - build a wheel binary zipfile. -* In the `installPhase`, it installs the wheel file using `pip install *.whl`. -* In the `postFixup` phase, the `wrapPythonPrograms` bash function is called to - wrap all programs in the `$out/bin/*` directory to include `$PATH` - environment variable and add dependent libraries to script's `sys.path`. -* In the `installCheck` phase, `${python.interpreter} setup.py test` is run. - -By default tests are run because `doCheck = true`. Test dependencies, like -e.g. the test runner, should be added to `nativeCheckInputs`. - -By default `meta.platforms` is set to the same value -as the interpreter unless overridden otherwise. - -##### `buildPythonPackage` parameters {#buildpythonpackage-parameters} - -All parameters from `stdenv.mkDerivation` function are still supported. The -following are specific to `buildPythonPackage`: - -* `catchConflicts ? true`: If `true`, abort package build if a package name - appears more than once in dependency tree. Default is `true`. -* `disabled ? false`: If `true`, package is not built for the particular Python - interpreter version. -* `dontWrapPythonPrograms ? false`: Skip wrapping of Python programs. -* `permitUserSite ? false`: Skip setting the `PYTHONNOUSERSITE` environment - variable in wrapped programs. -* `format ? "setuptools"`: Format of the source. Valid options are - `"setuptools"`, `"pyproject"`, `"flit"`, `"wheel"`, and `"other"`. - `"setuptools"` is for when the source has a `setup.py` and `setuptools` is - used to build a wheel, `flit`, in case `flit` should be used to build a wheel, - and `wheel` in case a wheel is provided. Use `other` when a custom - `buildPhase` and/or `installPhase` is needed. -* `makeWrapperArgs ? []`: A list of strings. Arguments to be passed to - `makeWrapper`, which wraps generated binaries. By default, the arguments to - `makeWrapper` set `PATH` and `PYTHONPATH` environment variables before calling - the binary. Additional arguments here can allow a developer to set environment - variables which will be available when the binary is run. For example, - `makeWrapperArgs = ["--set FOO BAR" "--set BAZ QUX"]`. -* `namePrefix`: Prepends text to `${name}` parameter. In case of libraries, this - defaults to `"python3.8-"` for Python 3.8, etc., and in case of applications to `""`. -* `pipInstallFlags ? []`: A list of strings. Arguments to be passed to `pip - install`. To pass options to `python setup.py install`, use - `--install-option`. E.g., `pipInstallFlags=["--install-option='--cpp_implementation'"]`. -* `pipBuildFlags ? []`: A list of strings. Arguments to be passed to `pip wheel`. -* `pypaBuildFlags ? []`: A list of strings. Arguments to be passed to `python -m build --wheel`. -* `pythonPath ? []`: List of packages to be added into `$PYTHONPATH`. Packages - in `pythonPath` are not propagated (contrary to `propagatedBuildInputs`). -* `preShellHook`: Hook to execute commands before `shellHook`. -* `postShellHook`: Hook to execute commands after `shellHook`. -* `removeBinByteCode ? true`: Remove bytecode from `/bin`. Bytecode is only - created when the filenames end with `.py`. -* `setupPyGlobalFlags ? []`: List of flags passed to `setup.py` command. -* `setupPyBuildFlags ? []`: List of flags passed to `setup.py build_ext` command. - -The `stdenv.mkDerivation` function accepts various parameters for describing -build inputs (see "Specifying dependencies"). The following are of special -interest for Python packages, either because these are primarily used, or -because their behaviour is different: - -* `nativeBuildInputs ? []`: Build-time only dependencies. Typically executables - as well as the items listed in `setup_requires`. -* `buildInputs ? []`: Build and/or run-time dependencies that need to be - compiled for the host machine. Typically non-Python libraries which are being - linked. -* `nativeCheckInputs ? []`: Dependencies needed for running the `checkPhase`. These - are added to `nativeBuildInputs` when `doCheck = true`. Items listed in - `tests_require` go here. -* `propagatedBuildInputs ? []`: Aside from propagating dependencies, - `buildPythonPackage` also injects code into and wraps executables with the - paths included in this list. Items listed in `install_requires` go here. - -##### Overriding Python packages {#overriding-python-packages} - -The `buildPythonPackage` function has a `overridePythonAttrs` method that can be -used to override the package. In the following example we create an environment -where we have the `blaze` package using an older version of `pandas`. We -override first the Python interpreter and pass `packageOverrides` which contains -the overrides for packages in the package set. - -```nix -with import {}; - -(let - python = let - packageOverrides = self: super: { - pandas = super.pandas.overridePythonAttrs(old: rec { - version = "0.19.1"; - src = fetchPypi { - pname = "pandas"; - inherit version; - hash = "sha256-JQn+rtpy/OA2deLszSKEuxyttqBzcAil50H+JDHUdCE="; - }; - }); - }; - in pkgs.python3.override {inherit packageOverrides; self = python;}; - -in python.withPackages(ps: [ ps.blaze ])).env -``` - -The next example shows a non trivial overriding of the `blas` implementation to -be used through out all of the Python package set: - -```nix -python3MyBlas = pkgs.python3.override { - packageOverrides = self: super: { - # We need toPythonModule for the package set to evaluate this - blas = super.toPythonModule(super.pkgs.blas.override { - blasProvider = super.pkgs.mkl; - }); - lapack = super.toPythonModule(super.pkgs.lapack.override { - lapackProvider = super.pkgs.mkl; - }); - }; -}; -``` - -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 -compilation issues, because scipy dependencies need to use the same blas implementation as well. - -#### Optional extra dependencies {#python-optional-dependencies} - -Some packages define optional dependencies for additional features. With -`setuptools` this is called `extras_require` and `flit` calls it -`extras-require`, while PEP 621 calls these `optional-dependencies`. A -method for supporting this is by declaring the extras of a package in its -`passthru`, e.g. in case of the package `dask` - -```nix -passthru.optional-dependencies = { - complete = [ distributed ]; -}; -``` - -and letting the package requiring the extra add the list to its dependencies - -```nix -propagatedBuildInputs = [ - ... -] ++ dask.optional-dependencies.complete; -``` - -Note this method is preferred over adding parameters to builders, as that can -result in packages depending on different variants and thereby causing -collisions. - -#### `buildPythonApplication` function {#buildpythonapplication-function} - -The `buildPythonApplication` function is practically the same as -`buildPythonPackage`. The main purpose of this function is to build a Python -package where one is interested only in the executables, and not importable -modules. For that reason, when adding this package to a `python.buildEnv`, the -modules won't be made available. - -Another difference is that `buildPythonPackage` by default prefixes the names of -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`, it should be -called with `callPackage` and passed `python` or `pythonPackages` (possibly -specifying an interpreter version), like this: - -```nix -{ lib -, python3 -, fetchPypi -}: - -python3.pkgs.buildPythonApplication rec { - pname = "luigi"; - version = "2.7.9"; - format = "setuptools"; - - src = fetchPypi { - inherit pname version; - hash = "sha256-Pe229rT0aHwA98s+nTHQMEFKZPo/yw6sot8MivFDvAw="; - }; - - propagatedBuildInputs = with python3.pkgs; [ - tornado - python-daemon - ]; - - meta = with lib; { - ... - }; -} -``` - -This is then added to `all-packages.nix` just as any other application would be. - -```nix -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`. - -#### `toPythonApplication` function {#topythonapplication-function} - -A distinction is made between applications and libraries, however, sometimes a -package is used as both. In this case the package is added as a library to -`python-packages.nix` and as an application to `all-packages.nix`. To reduce -duplication the `toPythonApplication` can be used to convert a library to an -application. - -The Nix expression shall use `buildPythonPackage` and be called from -`python-packages.nix`. A reference shall be created from `all-packages.nix` to -the attribute in `python-packages.nix`, and the `toPythonApplication` shall be -applied to the reference: - -```nix -youtube-dl = with pythonPackages; toPythonApplication youtube-dl; -``` - -#### `toPythonModule` function {#topythonmodule-function} - -In some cases, such as bindings, a package is created using -`stdenv.mkDerivation` and added as attribute in `all-packages.nix`. The Python -bindings should be made available from `python-packages.nix`. The -`toPythonModule` function takes a derivation and makes certain Python-specific -modifications. - -```nix -opencv = toPythonModule (pkgs.opencv.override { - enablePython = true; - pythonPackages = self; -}); -``` - -Do pay attention to passing in the right Python version! - -#### `python.buildEnv` function {#python.buildenv-function} - -Python environments can be created using the low-level `pkgs.buildEnv` function. -This example shows how to create an environment that has the Pyramid Web Framework. -Saving the following as `default.nix` - -```nix -with import {}; - -python.buildEnv.override { - extraLibs = [ pythonPackages.pyramid ]; - ignoreCollisions = true; -} -``` - -and running `nix-build` will create - -``` -/nix/store/cf1xhjwzmdki7fasgr4kz6di72ykicl5-python-2.7.8-env -``` - -with wrapped binaries in `bin/`. - -You can also use the `env` attribute to create local environments with needed -packages installed. This is somewhat comparable to `virtualenv`. For example, -running `nix-shell` with the following `shell.nix` - -```nix -with import {}; - -(python3.buildEnv.override { - extraLibs = with python3Packages; [ - numpy - requests - ]; -}).env -``` - -will drop you into a shell where Python will have the -specified packages in its path. - -##### `python.buildEnv` arguments {#python.buildenv-arguments} - - -* `extraLibs`: List of packages installed inside the environment. -* `postBuild`: Shell command executed after the build of environment. -* `ignoreCollisions`: Ignore file collisions inside the environment (default is `false`). -* `permitUserSite`: Skip setting the `PYTHONNOUSERSITE` environment variable in - wrapped binaries in the environment. - -#### `python.withPackages` function {#python.withpackages-function} - -The `python.withPackages` function provides a simpler interface to the `python.buildEnv` functionality. -It takes a function as an argument that is passed the set of python packages and returns the list -of the packages to be included in the environment. Using the `withPackages` function, the previous -example for the Pyramid Web Framework environment can be written like this: - -```nix -with import {}; - -python.withPackages (ps: [ ps.pyramid ]) -``` - -`withPackages` passes the correct package set for the specific interpreter -version as an argument to the function. In the above example, `ps` equals -`pythonPackages`. But you can also easily switch to using python3: - -```nix -with import {}; - -python3.withPackages (ps: [ ps.pyramid ]) -``` - -Now, `ps` is set to `python3Packages`, matching the version of the interpreter. - -As `python.withPackages` simply uses `python.buildEnv` under the hood, it also -supports the `env` attribute. The `shell.nix` file from the previous section can -thus be also written like this: - -```nix -with import {}; - -(python3.withPackages (ps: with ps; [ - numpy - requests -])).env -``` - -In contrast to `python.buildEnv`, `python.withPackages` does not support the -more advanced options such as `ignoreCollisions = true` or `postBuild`. If you -need them, you have to use `python.buildEnv`. - -Python 2 namespace packages may provide `__init__.py` that collide. In that case -`python.buildEnv` should be used with `ignoreCollisions = true`. - -#### Setup hooks {#setup-hooks} - -The following are setup hooks specifically for Python packages. Most of these -are used in `buildPythonPackage`. - -- `eggUnpackhook` to move an egg to the correct folder so it can be installed - with the `eggInstallHook` -- `eggBuildHook` to skip building for eggs. -- `eggInstallHook` to install eggs. -- `flitBuildHook` to build a wheel using `flit`. -- `pipBuildHook` to build a wheel using `pip` and PEP 517. Note a build system - (e.g. `setuptools` or `flit`) should still be added as `nativeBuildInput`. -- `pypaBuildHook` to build a wheel using - [`pypa/build`](https://pypa-build.readthedocs.io/en/latest/index.html) and - PEP 517/518. Note a build system (e.g. `setuptools` or `flit`) should still - be added as `nativeBuildInput`. -- `pipInstallHook` to install wheels. -- `pytestCheckHook` to run tests with `pytest`. See [example usage](#using-pytestcheckhook). -- `pythonCatchConflictsHook` to check whether a Python package is not already existing. -- `pythonImportsCheckHook` to check whether importing the listed modules works. -- `pythonRelaxDepsHook` will relax Python dependencies restrictions for the package. - See [example usage](#using-pythonrelaxdepshook). -- `pythonRemoveBinBytecode` to remove bytecode from the `/bin` folder. -- `setuptoolsBuildHook` to build a wheel using `setuptools`. -- `setuptoolsCheckHook` to run tests with `python setup.py test`. -- `sphinxHook` to build documentation and manpages using Sphinx. -- `venvShellHook` to source a Python 3 `venv` at the `venvDir` location. A - `venv` is created if it does not yet exist. `postVenvCreation` can be used to - to run commands only after venv is first created. -- `wheelUnpackHook` to move a wheel to the correct folder so it can be installed - with the `pipInstallHook`. -- `unittestCheckHook` will run tests with `python -m unittest discover`. See [example usage](#using-unittestcheckhook). - -### Development mode {#development-mode} - -Development or editable mode is supported. To develop Python packages -`buildPythonPackage` has additional logic inside `shellPhase` to run `pip -install -e . --prefix $TMPDIR/`for the package. - -Warning: `shellPhase` is executed only if `setup.py` exists. - -Given a `default.nix`: - -```nix -with import {}; - -pythonPackages.buildPythonPackage { - name = "myproject"; - buildInputs = with pythonPackages; [ pyramid ]; - - src = ./.; -} -``` - -Running `nix-shell` with no arguments should give you the environment in which -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 -``` - -Note: There is a boolean value `lib.inNixShell` set to `true` if nix-shell is invoked. - -### Tools {#tools} - -Packages inside nixpkgs must use the `buildPythonPackage` or `buildPythonApplication` function directly, -because we can only provide security support for non-vendored dependencies. - -We recommend [nix-init](https://github.com/nix-community/nix-init) for creating new python packages within nixpkgs, -as it already prefetches the source, parses dependencies for common formats and prefills most things in `meta`. - -### Deterministic builds {#deterministic-builds} - -The Python interpreters are now built deterministically. Minor modifications had -to be made to the interpreters in order to generate deterministic bytecode. This -has security implications and is relevant for those using Python in a -`nix-shell`. - -When the environment variable `DETERMINISTIC_BUILD` is set, all bytecode will -have timestamp 1. The `buildPythonPackage` function sets `DETERMINISTIC_BUILD=1` -and [PYTHONHASHSEED=0](https://docs.python.org/3.11/using/cmdline.html#envvar-PYTHONHASHSEED). -Both are also exported in `nix-shell`. - -### Automatic tests {#automatic-tests} - -It is recommended to test packages as part of the build process. -Source distributions (`sdist`) often include test files, but not always. - -By default the command `python setup.py test` is run as part of the -`checkPhase`, but often it is necessary to pass a custom `checkPhase`. An -example of such a situation is when `py.test` is used. - -#### Common issues {#common-issues} - -* Non-working tests can often be deselected. By default `buildPythonPackage` - runs `python setup.py test`. which is deprecated. Most Python modules however - do follow the standard test protocol where the pytest runner can be used - instead. `pytest` supports the `-k` and `--ignore` parameters to ignore test - methods or classes as well as whole files. For `pytestCheckHook` these are - conveniently exposed as `disabledTests` and `disabledTestPaths` respectively. - - ```nix - buildPythonPackage { - # ... - nativeCheckInputs = [ - pytestCheckHook - ]; - - disabledTests = [ - "function_name" - "other_function" - ]; - - disabledTestPaths = [ - "this/file.py" - ]; - } - ``` - -* Tests that attempt to access `$HOME` can be fixed by using the following - work-around before running tests (e.g. `preCheck`): `export HOME=$(mktemp -d)` - ## FAQ {#faq} ### How to solve circular dependencies? {#how-to-solve-circular-dependencies} @@ -1950,6 +1848,108 @@ In a `setup.py` or `setup.cfg` it is common to declare dependencies: * `install_requires` corresponds to `propagatedBuildInputs` * `tests_require` corresponds to `nativeCheckInputs` +### How to enable interpreter optimizations? {#optimizations} + +The Python interpreters are by default not built with optimizations enabled, because +the builds are in that case not reproducible. To enable optimizations, override the +interpreter of interest, e.g using + +``` +let + pkgs = import ./. {}; + mypython = pkgs.python3.override { + enableOptimizations = true; + reproducibleBuild = false; + self = mypython; + }; +in mypython +``` + +### How to add optional dependencies? {#python-optional-dependencies} + +Some packages define optional dependencies for additional features. With +`setuptools` this is called `extras_require` and `flit` calls it +`extras-require`, while PEP 621 calls these `optional-dependencies`. A +method for supporting this is by declaring the extras of a package in its +`passthru`, e.g. in case of the package `dask` + +```nix +passthru.optional-dependencies = { + complete = [ distributed ]; +}; +``` + +and letting the package requiring the extra add the list to its dependencies + +```nix +propagatedBuildInputs = [ + ... +] ++ dask.optional-dependencies.complete; +``` + +Note this method is preferred over adding parameters to builders, as that can +result in packages depending on different variants and thereby causing +collisions. + +### How to contribute a Python package to nixpkgs? {#tools} + +Packages inside nixpkgs must use the `buildPythonPackage` or `buildPythonApplication` function directly, +because we can only provide security support for non-vendored dependencies. + +We recommend [nix-init](https://github.com/nix-community/nix-init) for creating new python packages within nixpkgs, +as it already prefetches the source, parses dependencies for common formats and prefills most things in `meta`. + +### Are Python interpreters built deterministically? {#deterministic-builds} + +The Python interpreters are now built deterministically. Minor modifications had +to be made to the interpreters in order to generate deterministic bytecode. This +has security implications and is relevant for those using Python in a +`nix-shell`. + +When the environment variable `DETERMINISTIC_BUILD` is set, all bytecode will +have timestamp 1. The `buildPythonPackage` function sets `DETERMINISTIC_BUILD=1` +and [PYTHONHASHSEED=0](https://docs.python.org/3.11/using/cmdline.html#envvar-PYTHONHASHSEED). +Both are also exported in `nix-shell`. + +### How to provide automatic tests to Python packages? {#automatic-tests} + +It is recommended to test packages as part of the build process. +Source distributions (`sdist`) often include test files, but not always. + +By default the command `python setup.py test` is run as part of the +`checkPhase`, but often it is necessary to pass a custom `checkPhase`. An +example of such a situation is when `py.test` is used. + +#### Common issues {#common-issues} + +* Non-working tests can often be deselected. By default `buildPythonPackage` + runs `python setup.py test`. which is deprecated. Most Python modules however + do follow the standard test protocol where the pytest runner can be used + instead. `pytest` supports the `-k` and `--ignore` parameters to ignore test + methods or classes as well as whole files. For `pytestCheckHook` these are + conveniently exposed as `disabledTests` and `disabledTestPaths` respectively. + + ```nix + buildPythonPackage { + # ... + nativeCheckInputs = [ + pytestCheckHook + ]; + + disabledTests = [ + "function_name" + "other_function" + ]; + + disabledTestPaths = [ + "this/file.py" + ]; + } + ``` + +* Tests that attempt to access `$HOME` can be fixed by using the following + work-around before running tests (e.g. `preCheck`): `export HOME=$(mktemp -d)` + ## Contributing {#contributing} ### Contributing guidelines {#contributing-guidelines} diff --git a/maintainers/maintainer-list.nix b/maintainers/maintainer-list.nix index c1649ea3c440..9140acf8572e 100644 --- a/maintainers/maintainer-list.nix +++ b/maintainers/maintainer-list.nix @@ -13950,6 +13950,12 @@ githubId = 115877; name = "Kenny Shen"; }; + quadradical = { + email = "nixos@henryhiles.com"; + github = "Henry-Hiles"; + githubId = 71790868; + name = "Henry Hiles"; + }; quag = { email = "quaggy@gmail.com"; github = "quag"; diff --git a/pkgs/applications/editors/vim/plugins/generated.nix b/pkgs/applications/editors/vim/plugins/generated.nix index 67cde22eb848..3c8e92c3ce4c 100644 --- a/pkgs/applications/editors/vim/plugins/generated.nix +++ b/pkgs/applications/editors/vim/plugins/generated.nix @@ -967,12 +967,12 @@ final: prev: base46 = buildVimPluginFrom2Nix { pname = "base46"; - version = "2023-07-29"; + version = "2023-08-12"; src = fetchFromGitHub { owner = "nvchad"; repo = "base46"; - rev = "1a3faca5fdb6da541a28c37efdb60d99b34c15cc"; - sha256 = "1yjhfd8cc8k449qxbf4c7mm5fgi3qblbh6775byrib73hbli7p2c"; + rev = "e56d8b27addf13504ac112ecdb37acb5ac16065b"; + sha256 = "0wzi5fkzdxx5xcbs20a9a52yb8b6v60gbd8j3n76bppss06h0lmg"; }; meta.homepage = "https://github.com/nvchad/base46/"; }; @@ -1235,8 +1235,8 @@ final: prev: src = fetchFromGitHub { owner = "ms-jpq"; repo = "chadtree"; - rev = "7dbc8b17c6d22a7511a8818636a8f7a428cf56f8"; - sha256 = "1vqw7g4kqjrcjfqzq4r995lh0yc466pa88d24ii38vwzmzp27z10"; + rev = "f897f9caaee339c8447280838c6d0c6770ef534a"; + sha256 = "1ckpch1i1d3lfmrm5mxw9dikrbsa2mhp5q3fwm7yrlx1mlvh1ahg"; }; meta.homepage = "https://github.com/ms-jpq/chadtree/"; }; @@ -2033,6 +2033,18 @@ final: prev: meta.homepage = "https://github.com/Exafunction/codeium.vim/"; }; + codewindow-nvim = buildVimPluginFrom2Nix { + pname = "codewindow.nvim"; + version = "2023-07-23"; + src = fetchFromGitHub { + owner = "gorbit99"; + repo = "codewindow.nvim"; + rev = "11fb5520898d22a563fe6a124a61c0d2887f3d3f"; + sha256 = "1rnw5z3vwc183gvk3v3xciyzgqwfp0jsd5vckj5gpig1lg9l4yzf"; + }; + meta.homepage = "https://github.com/gorbit99/codewindow.nvim/"; + }; + codi-vim = buildVimPluginFrom2Nix { pname = "codi.vim"; version = "2023-02-28"; @@ -2947,6 +2959,18 @@ final: prev: meta.homepage = "https://github.com/direnv/direnv.vim/"; }; + distant-nvim = buildVimPluginFrom2Nix { + pname = "distant.nvim"; + version = "2023-07-24"; + src = fetchFromGitHub { + owner = "chipsenkbeil"; + repo = "distant.nvim"; + rev = "17bcd37f8d91dcb987456be456d8a95db1a772ba"; + sha256 = "0z6if0p7n8bi5gd4p3h7i7z3kq8q2yr864nfq0bvzy9ps131z9wl"; + }; + meta.homepage = "https://github.com/chipsenkbeil/distant.nvim/"; + }; + doki-theme-vim = buildVimPluginFrom2Nix { pname = "doki-theme-vim"; version = "2023-01-07"; @@ -3299,12 +3323,12 @@ final: prev: firenvim = buildVimPluginFrom2Nix { pname = "firenvim"; - version = "2023-08-07"; + version = "2023-08-12"; src = fetchFromGitHub { owner = "glacambre"; repo = "firenvim"; - rev = "2a709e2bf9e2ff065e13619d21b5a672e51023f6"; - sha256 = "1bk5fdsv55cydbqli86xq9fw170qm46zi3m7l1jfz2hd1dlw4q1z"; + rev = "1acdf0270bdd9b83a876a15c99dca3c9b40fbaa5"; + sha256 = "0fi5rf408ii5k3zkjkvc2n8n18g1wd54c3k4a8ir0bzgsiwqv767"; }; meta.homepage = "https://github.com/glacambre/firenvim/"; }; @@ -3418,6 +3442,18 @@ final: prev: meta.homepage = "https://github.com/akinsho/flutter-tools.nvim/"; }; + fold-preview-nvim = buildVimPluginFrom2Nix { + pname = "fold-preview.nvim"; + version = "2023-01-27"; + src = fetchFromGitHub { + owner = "anuvyklack"; + repo = "fold-preview.nvim"; + rev = "b7920cb0aba2b48a6b679bff45f98c3ebc0f0b89"; + sha256 = "1hjzwcs7cdyf8sn3hj4vl5zpn3lzd2qvsg44wzvlslnynqcxkg0l"; + }; + meta.homepage = "https://github.com/anuvyklack/fold-preview.nvim/"; + }; + formatter-nvim = buildVimPluginFrom2Nix { pname = "formatter.nvim"; version = "2023-07-13"; @@ -3852,12 +3888,12 @@ final: prev: grammar-guard-nvim = buildVimPluginFrom2Nix { pname = "grammar-guard.nvim"; - version = "2022-01-03"; + version = "2023-08-12"; src = fetchFromGitHub { owner = "brymer-meneses"; repo = "grammar-guard.nvim"; - rev = "ea163c4adfd68fdd40e095cdf39cb506bf3ce3b2"; - sha256 = "0wdbpkg1y0s7fhaybyj735dxdkvfgnng49i8k0zrsy16d75md4bs"; + rev = "265e5a0eba8cf5b14702a93841b218d4c05be43b"; + sha256 = "040m6gpvgqh1h9cysbbrmklbf5vw13ij4ffvxbnzs33xfbl8q058"; }; meta.homepage = "https://github.com/brymer-meneses/grammar-guard.nvim/"; }; @@ -4150,12 +4186,12 @@ final: prev: hotpot-nvim = buildVimPluginFrom2Nix { pname = "hotpot.nvim"; - version = "2023-08-11"; + version = "2023-08-12"; src = fetchFromGitHub { owner = "rktjmp"; repo = "hotpot.nvim"; - rev = "42cb3f364a7ac6c2dfca08c8b86f950b00097657"; - sha256 = "0y1049gmg6ia594ms00hx485d06cjmj9g65wgqnmziyjkssvbjan"; + rev = "e5bb83d608271a9d977718f30f1b6bc9bd1b0dbe"; + sha256 = "18nakf34apry57c4b3jprkc40ixg4p3a4nws7rh9i5dfi504blr7"; }; meta.homepage = "https://github.com/rktjmp/hotpot.nvim/"; }; @@ -4246,12 +4282,12 @@ final: prev: image-nvim = buildVimPluginFrom2Nix { pname = "image.nvim"; - version = "2023-07-17"; + version = "2023-07-22"; src = fetchFromGitHub { owner = "3rd"; repo = "image.nvim"; - rev = "24c312191ca6bc04e45610a7bcb984d3bf208820"; - sha256 = "1fy024nd01wryrasibc4b8divcfzx3a7xxfzx968l4a4l1q3l6vc"; + rev = "5d8b8b3acbe2ec6fcfe782cbda3a8ebdad9c1b51"; + sha256 = "0s7s803gg2b4wilfx973kf4c2gppsyr747wkwjlms3yjbx8iyb8k"; }; meta.homepage = "https://github.com/3rd/image.nvim/"; }; @@ -4581,6 +4617,18 @@ final: prev: meta.homepage = "https://github.com/kmonad/kmonad-vim/"; }; + knap = buildVimPluginFrom2Nix { + pname = "knap"; + version = "2023-07-25"; + src = fetchFromGitHub { + owner = "frabjous"; + repo = "knap"; + rev = "503010f541696e99ed5c62f658620e546cebf8b0"; + sha256 = "1aqfy1c4h95p94npdvyd7dhkr19f4qbnmr05sg1wbvqd9lfkslym"; + }; + meta.homepage = "https://github.com/frabjous/knap/"; + }; + kommentary = buildVimPluginFrom2Nix { pname = "kommentary"; version = "2023-01-06"; @@ -5265,6 +5313,18 @@ final: prev: meta.homepage = "https://github.com/iamcco/markdown-preview.nvim/"; }; + markid = buildVimPluginFrom2Nix { + pname = "markid"; + version = "2023-07-01"; + src = fetchFromGitHub { + owner = "David-Kunz"; + repo = "markid"; + rev = "46d03e1b7d82c07bbf06ef2f6595fea73ae6410b"; + sha256 = "1mk96p5if9zd3apv7d2kn4c3h2ik39v80apr0qf10h8lwx5zx19c"; + }; + meta.homepage = "https://github.com/David-Kunz/markid/"; + }; + marks-nvim = buildVimPluginFrom2Nix { pname = "marks.nvim"; version = "2023-02-25"; @@ -5385,14 +5445,26 @@ final: prev: meta.homepage = "https://github.com/savq/melange-nvim/"; }; + mind-nvim = buildVimPluginFrom2Nix { + pname = "mind.nvim"; + version = "2023-03-22"; + src = fetchFromGitHub { + owner = "phaazon"; + repo = "mind.nvim"; + rev = "002137dd7cf97865ebd01b6a260209d2daf2da66"; + sha256 = "1p7gb8p1jrb2wx3x67lv7am3k1a14kvwsq89fdpb8b060s2l1214"; + }; + meta.homepage = "https://github.com/phaazon/mind.nvim/"; + }; + mini-nvim = buildVimPluginFrom2Nix { pname = "mini.nvim"; - version = "2023-08-08"; + version = "2023-08-12"; src = fetchFromGitHub { owner = "echasnovski"; repo = "mini.nvim"; - rev = "1b52c4ce7880b95d6c80eeb3cfe8e2da27d19db4"; - sha256 = "02262ykxldwxhwf6aw0q9hsz3qda43qcj770hmr1fn6xmg4b6zyl"; + rev = "654c723046d8f06151c7e940819c66030df011e7"; + sha256 = "1glvdrws6q2ynmmnhhw88704lb1q5npqnl4vwls8yy3pvwwz78l8"; }; meta.homepage = "https://github.com/echasnovski/mini.nvim/"; }; @@ -5505,6 +5577,18 @@ final: prev: meta.homepage = "https://github.com/yegappan/mru/"; }; + nabla-nvim = buildVimPluginFrom2Nix { + pname = "nabla.nvim"; + version = "2023-04-22"; + src = fetchFromGitHub { + owner = "jbyuki"; + repo = "nabla.nvim"; + rev = "8c143ad2b3ab3b8ffbd51e238ccfcbd246452a7e"; + sha256 = "17iw6ca9b8mrw68f4zkghnf3if76yrpj5fn8cp8829zpm722l6b1"; + }; + meta.homepage = "https://github.com/jbyuki/nabla.nvim/"; + }; + ncm2 = buildVimPluginFrom2Nix { pname = "ncm2"; version = "2022-03-17"; @@ -5735,24 +5819,24 @@ final: prev: neco-vim = buildVimPluginFrom2Nix { pname = "neco-vim"; - version = "2023-07-31"; + version = "2023-08-12"; src = fetchFromGitHub { owner = "Shougo"; repo = "neco-vim"; - rev = "c1803742fed623212e675909ed74657cf6a77a2f"; - sha256 = "1w4gqdjiv624izl5j92sjrrc2p72k9vq6pq1gwkyvhhvvaqnxhzs"; + rev = "98f142bc8279d467e4e8ad81f1f007b1fe13d0a1"; + sha256 = "0a5v767ad746m4vhzj5lq11h7zxc78zz4mxs4dr0s5n9a3g6z9sl"; }; meta.homepage = "https://github.com/Shougo/neco-vim/"; }; neo-tree-nvim = buildVimPluginFrom2Nix { pname = "neo-tree.nvim"; - version = "2023-08-07"; + version = "2023-08-12"; src = fetchFromGitHub { owner = "nvim-neo-tree"; repo = "neo-tree.nvim"; - rev = "38293fe690981aba6cfef5e440f26d8b956d463e"; - sha256 = "1mr6wllc1nv6zdrw4hzya5hmhzw1vclfim6f90xhln3vkbyci88b"; + rev = "76c43f4017b26127b4749570f947385d0c872224"; + sha256 = "12qja6fw5pmpwn914gmgkk0ck55g61z9ndlqpadk1z8d3939rnbp"; }; meta.homepage = "https://github.com/nvim-neo-tree/neo-tree.nvim/"; }; @@ -5795,24 +5879,24 @@ final: prev: neodev-nvim = buildVimPluginFrom2Nix { pname = "neodev.nvim"; - version = "2023-08-10"; + version = "2023-08-12"; src = fetchFromGitHub { owner = "folke"; repo = "neodev.nvim"; - rev = "81a893eb94d502b2cbb08ed3871eeaadfd240131"; - sha256 = "1b3lhl2hr42vhh7nvjhm4isp034n80il4d5x6b415vcacc0187ag"; + rev = "9a5c0f0de5c15fba52d4fb83d425d3f4fa7abfa1"; + sha256 = "1yvshl98nlza20lzay9q3rwv16xcnbrvjiwqn0f71zxrs7hzzs66"; }; meta.homepage = "https://github.com/folke/neodev.nvim/"; }; neoformat = buildVimPluginFrom2Nix { pname = "neoformat"; - version = "2023-08-03"; + version = "2023-08-12"; src = fetchFromGitHub { owner = "sbdchd"; repo = "neoformat"; - rev = "08a621bd659511379e753970a4f3adebd45be8f4"; - sha256 = "04dbccd9nfqj2vv5iv7a9fdz2mdk8kvpyd5gqwjzwsy84v7qx89h"; + rev = "159e3e24fc018e16a937286488be17602aff8e3c"; + sha256 = "1fyg3s8sqavmg5gqvpfdrywbyx8rfg2qrkc7qlhgs767k6dnp1vw"; }; meta.homepage = "https://github.com/sbdchd/neoformat/"; }; @@ -5831,12 +5915,12 @@ final: prev: neogit = buildVimPluginFrom2Nix { pname = "neogit"; - version = "2023-08-11"; + version = "2023-08-12"; src = fetchFromGitHub { owner = "NeogitOrg"; repo = "neogit"; - rev = "e80cd6424a8a85d93bac25b8cd8d1758105f2b0f"; - sha256 = "1x5cp250qim36l63qgikqpygmsdcciq7i69gcs3qfx9jxfgih4fh"; + rev = "b92d229086f201b983f561a41f3eb18fef7f0e53"; + sha256 = "00xwhyiwcyrmbh9zmlbxsrw956vafnn673vdrg06rfx9mqkjzy2f"; }; meta.homepage = "https://github.com/NeogitOrg/neogit/"; }; @@ -5889,6 +5973,18 @@ final: prev: meta.homepage = "https://github.com/rafamadriz/neon/"; }; + neorepl-nvim = buildVimPluginFrom2Nix { + pname = "neorepl.nvim"; + version = "2022-11-07"; + src = fetchFromGitHub { + owner = "ii14"; + repo = "neorepl.nvim"; + rev = "bc819bb42edca9c4a6b6e5d00f09f94a49c3b735"; + sha256 = "05fd3ygqpw5vyqgwc7iwbm8a7y70fl438khp6lz62bcsdd28yirs"; + }; + meta.homepage = "https://github.com/ii14/neorepl.nvim/"; + }; + neorg = buildVimPluginFrom2Nix { pname = "neorg"; version = "2023-08-09"; @@ -6215,12 +6311,12 @@ final: prev: nerdcommenter = buildVimPluginFrom2Nix { pname = "nerdcommenter"; - version = "2023-06-26"; + version = "2023-08-12"; src = fetchFromGitHub { owner = "preservim"; repo = "nerdcommenter"; - rev = "ab2ae4d502a26bc591db78a8548823ddd04bbc9c"; - sha256 = "1my8nkc1fvs1awlzxqdy8q4448niwbg9ay5jliwly8aiiaxp2qvr"; + rev = "d2e21d417f6c788b11ae3b90d7ac478930dead36"; + sha256 = "140xp1kqj76gyn440bs62ff85b4xvlvxiyidvb5r4w0imrlacnpc"; }; meta.homepage = "https://github.com/preservim/nerdcommenter/"; }; @@ -6455,12 +6551,12 @@ final: prev: null-ls-nvim = buildVimPluginFrom2Nix { pname = "null-ls.nvim"; - version = "2023-07-06"; + version = "2023-08-12"; src = fetchFromGitHub { owner = "jose-elias-alvarez"; repo = "null-ls.nvim"; - rev = "db09b6c691def0038c456551e4e2772186449f35"; - sha256 = "133qcapq5klinnbhvbqmww5ibwfrrqn9ysg5gjx1kg2vva7nv8p8"; + rev = "0010ea927ab7c09ef0ce9bf28c2b573fc302f5a7"; + sha256 = "00nkg77y9mp7ac46bdcaga36bbbrwbp7k1d6ajjgg9qf76pk8q3i"; }; meta.homepage = "https://github.com/jose-elias-alvarez/null-ls.nvim/"; }; @@ -6599,12 +6695,12 @@ final: prev: nvim-cmp = buildNeovimPlugin { pname = "nvim-cmp"; - version = "2023-08-10"; + version = "2023-08-12"; src = fetchFromGitHub { owner = "hrsh7th"; repo = "nvim-cmp"; - rev = "3b9f28061a67b19cadc13946de981426a6425e4a"; - sha256 = "11vxrizzkgk3x2hnd5cjdg53m5hjlf8548hi8aqfnfpr977d3v9s"; + rev = "51f1e11a89ec701221877532ee1a23557d291dd5"; + sha256 = "11v940v6md7sj1digh7kwckb80zbxxp3shlszi44c43iw9viznxi"; }; meta.homepage = "https://github.com/hrsh7th/nvim-cmp/"; }; @@ -6815,12 +6911,12 @@ final: prev: nvim-gdb = buildVimPluginFrom2Nix { pname = "nvim-gdb"; - version = "2023-08-11"; + version = "2023-08-12"; src = fetchFromGitHub { owner = "sakhnik"; repo = "nvim-gdb"; - rev = "a15b1a6a060d77e5a0047ac2962b90c0d47c9903"; - sha256 = "088n6ix7hz0k49ykwmpyxphw7mqs1dxdkl43ba0b9nnwbfr6ii1z"; + rev = "31511c2b27b7c69ab64e6b369d54cbd4b82348e2"; + sha256 = "1ff1b9wgi3711hyx0xr48g4wis0x5hhsrymclrpjiykyvmrjibc2"; }; meta.homepage = "https://github.com/sakhnik/nvim-gdb/"; }; @@ -6909,6 +7005,17 @@ final: prev: meta.homepage = "https://github.com/gennaro-tedesco/nvim-jqx/"; }; + nvim-julia-autotest = buildVimPluginFrom2Nix { + pname = "nvim-julia-autotest"; + version = "2022-10-31"; + src = fetchgit { + url = "https://gitlab.com/usmcamp0811/nvim-julia-autotest"; + rev = "b74e2f9c961e604cb56cc23f87188348bfa0f33f"; + sha256 = "0jd6r5chh4rdj1jyrsqhb67glwqjcygzvk8gyp0v7axr2xn6r8r1"; + }; + meta.homepage = "https://gitlab.com/usmcamp0811/nvim-julia-autotest"; + }; + nvim-lastplace = buildVimPluginFrom2Nix { pname = "nvim-lastplace"; version = "2023-07-27"; @@ -7203,12 +7310,24 @@ final: prev: src = fetchFromGitHub { owner = "dstein64"; repo = "nvim-scrollview"; - rev = "f3991f78682fd24ad65d936d55715f4c7363016e"; - sha256 = "0csf3z48zl3zbj255sd0h823ggi4y2lg6gxy8qr4j0gwrphq1qsc"; + rev = "69edd48b8cf0b0502566a436967b78f42ca56a14"; + sha256 = "1s8vb06v6hcr71kv4jia2h1kjcd2wci7bcd1imhiqbkh5y5pxh2a"; }; meta.homepage = "https://github.com/dstein64/nvim-scrollview/"; }; + nvim-search-and-replace = buildVimPluginFrom2Nix { + pname = "nvim-search-and-replace"; + version = "2022-09-06"; + src = fetchFromGitHub { + owner = "s1n7ax"; + repo = "nvim-search-and-replace"; + rev = "1b455cf945c42fa28f95d111d1a1110d24b37175"; + sha256 = "054qj69i45lgjflzrfck4jdmsl41mfvk9d092h68a19znsms1i30"; + }; + meta.homepage = "https://github.com/s1n7ax/nvim-search-and-replace/"; + }; + nvim-snippy = buildVimPluginFrom2Nix { pname = "nvim-snippy"; version = "2023-05-15"; @@ -7319,12 +7438,12 @@ final: prev: nvim-treesitter = buildVimPluginFrom2Nix { pname = "nvim-treesitter"; - version = "2023-08-11"; + version = "2023-08-12"; src = fetchFromGitHub { owner = "nvim-treesitter"; repo = "nvim-treesitter"; - rev = "fa414da96f4a2e60c2ac8082f0c1802b8f3c8f6c"; - sha256 = "027702lqkkn1pmwnypmwx1s8bz6lg6ix882g1rcwyrpn3lb85489"; + rev = "800b2f388b0f880be8a2fcd29494f7459af30a21"; + sha256 = "18zyqj9s071fx8i9m3rmwsy98rv6h2mcl2i8vblhaa55nv6f7y4j"; }; meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/"; }; @@ -7389,6 +7508,18 @@ final: prev: meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects/"; }; + nvim-treesitter-textsubjects = buildVimPluginFrom2Nix { + pname = "nvim-treesitter-textsubjects"; + version = "2023-08-03"; + src = fetchFromGitHub { + owner = "RRethy"; + repo = "nvim-treesitter-textsubjects"; + rev = "df75fcec548014f158cda6498ac38c4622c221e1"; + sha256 = "0fx8b9w03zn6v8db2w6h29y8hpbjckvm27nh49vvsis3icqyk7iv"; + }; + meta.homepage = "https://github.com/RRethy/nvim-treesitter-textsubjects/"; + }; + nvim-ts-autotag = buildVimPluginFrom2Nix { pname = "nvim-ts-autotag"; version = "2023-06-16"; @@ -7448,6 +7579,18 @@ final: prev: meta.homepage = "https://github.com/kevinhwang91/nvim-ufo/"; }; + nvim-unception = buildVimPluginFrom2Nix { + pname = "nvim-unception"; + version = "2023-04-11"; + src = fetchFromGitHub { + owner = "samjwill"; + repo = "nvim-unception"; + rev = "0cbf11a6c5c4314e88245b69d460f85f30885d2e"; + sha256 = "12fy3nchbg7w8yyhk1ym5amx8kvvx73wmlqgi8ss2ikywc7n5d0c"; + }; + meta.homepage = "https://github.com/samjwill/nvim-unception/"; + }; + nvim-web-devicons = buildVimPluginFrom2Nix { pname = "nvim-web-devicons"; version = "2023-08-09"; @@ -7558,12 +7701,12 @@ final: prev: oil-nvim = buildVimPluginFrom2Nix { pname = "oil.nvim"; - version = "2023-08-09"; + version = "2023-08-12"; src = fetchFromGitHub { owner = "stevearc"; repo = "oil.nvim"; - rev = "0e5fca35cdc743cf3a448cea1a6251cf25cebafa"; - sha256 = "16imjy6hyy9k1s6krkwl1z5vlra81a6fig2553hmwgndi7cjg3x8"; + rev = "0ccf95ae5d0ea731de8d427304f95d384a0664c4"; + sha256 = "0md4ih34kcfs15vf9g1acnnyzpcja214zdzr8yxzis9idqyh3liz"; fetchSubmodules = true; }; meta.homepage = "https://github.com/stevearc/oil.nvim/"; @@ -7882,6 +8025,18 @@ final: prev: meta.homepage = "https://github.com/motus/pig.vim/"; }; + plantuml-previewer-vim = buildVimPluginFrom2Nix { + pname = "plantuml-previewer.vim"; + version = "2023-03-07"; + src = fetchFromGitHub { + owner = "weirongxu"; + repo = "plantuml-previewer.vim"; + rev = "1dd4d0f2b09cd80a217f76d82f93830dbbe689b3"; + sha256 = "0pvdiyyqd9j65q9wf3y6jxgry4lxvnbd2ah1761a4vbn02zdrr2v"; + }; + meta.homepage = "https://github.com/weirongxu/plantuml-previewer.vim/"; + }; + plantuml-syntax = buildVimPluginFrom2Nix { pname = "plantuml-syntax"; version = "2022-08-26"; @@ -8003,6 +8158,18 @@ final: prev: meta.homepage = "https://github.com/ewilazarus/preto/"; }; + pretty-fold-nvim = buildVimPluginFrom2Nix { + pname = "pretty-fold.nvim"; + version = "2022-07-20"; + src = fetchFromGitHub { + owner = "anuvyklack"; + repo = "pretty-fold.nvim"; + rev = "a7d8b424abe0eedf50116c460fbe6dfd5783b1d5"; + sha256 = "0fjjd5zyh588czz886v29wff8jy5fwa4nbjfailwph4p9b1xj0rx"; + }; + meta.homepage = "https://github.com/anuvyklack/pretty-fold.nvim/"; + }; + prev_indent = buildVimPluginFrom2Nix { pname = "prev_indent"; version = "2014-03-08"; @@ -9306,24 +9473,24 @@ final: prev: telescope-file-browser-nvim = buildVimPluginFrom2Nix { pname = "telescope-file-browser.nvim"; - version = "2023-07-30"; + version = "2023-08-12"; src = fetchFromGitHub { owner = "nvim-telescope"; repo = "telescope-file-browser.nvim"; - rev = "6fe423eea6604c2fcbb906ff5f7e27f748a6ed87"; - sha256 = "1hckw1jq0azx33sqawganlk256a88vzifa3f4x0h1q4579j38n1x"; + rev = "0e054a9dd786280a4226c50e85e447992f6b3ff0"; + sha256 = "1a4q9dfmb5dbsznbpnd3iaqnysa1y29jnpy6kqhk22iwqgj8hwnz"; }; meta.homepage = "https://github.com/nvim-telescope/telescope-file-browser.nvim/"; }; telescope-frecency-nvim = buildVimPluginFrom2Nix { pname = "telescope-frecency.nvim"; - version = "2023-08-11"; + version = "2023-08-12"; src = fetchFromGitHub { owner = "nvim-telescope"; repo = "telescope-frecency.nvim"; - rev = "9b17c177447915f066cf78952892fe771c3e43c5"; - sha256 = "0c9f7ahlhvky1n9wkc4vfkbiqnwf5d6b4mphcj7grrpm1imxfj8d"; + rev = "2ac311a2666edb447db5139b326777c44adc1e2a"; + sha256 = "1p8wi76mpr6gsyksbf7xcd6b4888csrrgj1g6hif9yb3d6r7fzm6"; }; meta.homepage = "https://github.com/nvim-telescope/telescope-frecency.nvim/"; }; @@ -9957,12 +10124,12 @@ final: prev: typescript-nvim = buildVimPluginFrom2Nix { pname = "typescript.nvim"; - version = "2023-06-28"; + version = "2023-08-12"; src = fetchFromGitHub { owner = "jose-elias-alvarez"; repo = "typescript.nvim"; - rev = "de304087e6e49981fde01af8ccc5b21e8519306f"; - sha256 = "0l3i9fj76y3yl63fh6hprs5fja0h0jl11lidv3p76bdr041gw06g"; + rev = "4de85ef699d7e6010528dcfbddc2ed4c2c421467"; + sha256 = "0rx29i3hmzh2knxx098fvfc0iafx3j08bs1zbv4dxadq56dnhaxm"; }; meta.homepage = "https://github.com/jose-elias-alvarez/typescript.nvim/"; }; @@ -11887,6 +12054,18 @@ final: prev: meta.homepage = "https://github.com/rhysd/vim-grammarous/"; }; + vim-graphical-preview = buildVimPluginFrom2Nix { + pname = "vim-graphical-preview"; + version = "2022-11-28"; + src = fetchFromGitHub { + owner = "bytesnake"; + repo = "vim-graphical-preview"; + rev = "d5692493d33d5c9d776e94c9d77493741a3293c8"; + sha256 = "1w7w46359s9s8n2ndihd39bwv69jc4nwjsjy3bgzgrd2qni9xf6p"; + }; + meta.homepage = "https://github.com/bytesnake/vim-graphical-preview/"; + }; + vim-graphql = buildVimPluginFrom2Nix { pname = "vim-graphql"; version = "2023-01-16"; @@ -13368,12 +13547,12 @@ final: prev: vim-pasta = buildVimPluginFrom2Nix { pname = "vim-pasta"; - version = "2018-09-08"; + version = "2023-08-12"; src = fetchFromGitHub { owner = "ku1ik"; repo = "vim-pasta"; - rev = "cb4501a123d74fc7d66ac9f10b80c9d393746c66"; - sha256 = "14rswwx24i75xzgkbx1hywan1msn2ki26353ly2pyvznnqss1pwq"; + rev = "2b786703eef9f82ae7a56f3de4ee43e1e5efaaa5"; + sha256 = "1q4d512rq57awasb441slqp29mkzi3jxmy8clrp2s9ydwdbndwlx"; }; meta.homepage = "https://github.com/ku1ik/vim-pasta/"; }; @@ -15458,12 +15637,12 @@ final: prev: yats-vim = buildVimPluginFrom2Nix { pname = "yats.vim"; - version = "2023-08-04"; + version = "2023-08-12"; src = fetchFromGitHub { owner = "HerringtonDarkholme"; repo = "yats.vim"; - rev = "6d569339acf5866c468df9c2a06e050c0407ada3"; - sha256 = "1zz38g545ar0jis3i8dasfdifnnd0l40q6pclwphwspx6idlzajd"; + rev = "8878bdd7fc01eec647267d4433a763474b6a5db4"; + sha256 = "0070r63v9kjl3cx9w8xsilyww9nwyharc6l274y7mg4bfhddpbr3"; fetchSubmodules = true; }; meta.homepage = "https://github.com/HerringtonDarkholme/yats.vim/"; @@ -15757,6 +15936,18 @@ final: prev: meta.homepage = "https://github.com/rose-pine/neovim/"; }; + samodostal-image-nvim = buildVimPluginFrom2Nix { + pname = "samodostal-image-nvim"; + version = "2023-06-08"; + src = fetchFromGitHub { + owner = "samodostal"; + repo = "image.nvim"; + rev = "dcabdf47b0b974b61d08eeafa2c519927e37cf27"; + sha256 = "1c0s460nzw1imvvzj6b9hsalv60jmcyrfga5gldbskz58hyj739m"; + }; + meta.homepage = "https://github.com/samodostal/image.nvim/"; + }; + tinykeymap = buildVimPluginFrom2Nix { pname = "tinykeymap"; version = "2019-03-15"; diff --git a/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix b/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix index 848c15db27e8..d03ea0bb52ad 100644 --- a/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix +++ b/pkgs/applications/editors/vim/plugins/nvim-treesitter/generated.nix @@ -1929,12 +1929,12 @@ }; teal = buildGrammar { language = "teal"; - version = "0.0.0+rev=2158ecc"; + version = "0.0.0+rev=33482c9"; src = fetchFromGitHub { owner = "euclidianAce"; repo = "tree-sitter-teal"; - rev = "2158ecce11ea542f9b791baf2c7fb33798174ed2"; - hash = "sha256-Vofqs1AW5/a7kdPjY8+fu/t/mfBpaXiFFeG1Y0hsP6E="; + rev = "33482c92a0dfa694491d34e167a1d2f52b0dccb1"; + hash = "sha256-6T9hn+Tvz8AYMsAu2J8vt6WkRQRrdGwGJcw3c85W14I="; }; generate = true; meta.homepage = "https://github.com/euclidianAce/tree-sitter-teal"; @@ -2187,12 +2187,12 @@ }; wing = buildGrammar { language = "wing"; - version = "0.0.0+rev=f416d4b"; + version = "0.0.0+rev=9399564"; src = fetchFromGitHub { owner = "winglang"; repo = "wing"; - rev = "f416d4b76141d803ea2ebadf0629fca164133723"; - hash = "sha256-xSt6C64PmNJOqZxon4TWbAIlMzSaRClPc47wi9Sxdpk="; + rev = "9399564d1e32864c6af2d49c0dcd1f76d54443f2"; + hash = "sha256-Me+AhVl0a38w54vWa4yvxOPHMwVnJw1wewrn0bBC9AM="; }; location = "libs/tree-sitter-wing"; generate = true; diff --git a/pkgs/applications/editors/vim/plugins/vim-plugin-names b/pkgs/applications/editors/vim/plugins/vim-plugin-names index 0577fb46ec6b..60d051b72aca 100644 --- a/pkgs/applications/editors/vim/plugins/vim-plugin-names +++ b/pkgs/applications/editors/vim/plugins/vim-plugin-names @@ -169,6 +169,7 @@ https://github.com/iamcco/coc-tailwindcss/,, https://github.com/neoclide/coc.nvim/,release, https://github.com/manicmaniac/coconut.vim/,HEAD, https://github.com/Exafunction/codeium.vim/,HEAD, +https://github.com/gorbit99/codewindow.nvim/,HEAD, https://github.com/metakirby5/codi.vim/,, https://github.com/tjdevries/colorbuddy.nvim/,, https://github.com/lilydjwg/colorizer/,, @@ -245,6 +246,7 @@ https://github.com/monaqa/dial.nvim/,HEAD, https://github.com/sindrets/diffview.nvim/,, https://github.com/elihunter173/dirbuf.nvim/,HEAD, https://github.com/direnv/direnv.vim/,, +https://github.com/chipsenkbeil/distant.nvim/,HEAD, https://github.com/doki-theme/doki-theme-vim/,, https://github.com/Mofiqul/dracula.nvim/,HEAD, https://github.com/stevearc/dressing.nvim/,, @@ -285,6 +287,7 @@ https://github.com/liangxianzhe/floating-input.nvim/,HEAD, https://github.com/fhill2/floating.nvim/,, https://github.com/floobits/floobits-neovim/,, https://github.com/akinsho/flutter-tools.nvim/,HEAD, +https://github.com/anuvyklack/fold-preview.nvim/,HEAD, https://github.com/mhartington/formatter.nvim/,, https://github.com/megaannum/forms/,, https://github.com/rafamadriz/friendly-snippets/,, @@ -356,6 +359,7 @@ https://github.com/cocopon/iceberg.vim/,, https://github.com/idris-hackers/idris-vim/,, https://github.com/edwinb/idris2-vim/,, https://github.com/3rd/image.nvim/,HEAD, +https://github.com/samodostal/image.nvim/,HEAD,samodostal-image-nvim https://github.com/lewis6991/impatient.nvim/,, https://github.com/smjonas/inc-rename.nvim/,HEAD, https://github.com/nishigori/increment-activator/,, @@ -383,6 +387,7 @@ https://github.com/JuliaEditorSupport/julia-vim/,, https://github.com/rebelot/kanagawa.nvim/,, https://github.com/anuvyklack/keymap-layer.nvim/,HEAD, https://github.com/kmonad/kmonad-vim/,, +https://github.com/frabjous/knap/,HEAD, https://github.com/b3nj5m1n/kommentary/,, https://github.com/udalov/kotlin-vim/,, https://github.com/qnighy/lalrpop.vim/,, @@ -440,6 +445,7 @@ https://github.com/mkasa/lushtags/,, https://github.com/WhiteBlackGoose/magma-nvim-goose/,HEAD, https://github.com/winston0410/mark-radar.nvim/,HEAD, https://github.com/iamcco/markdown-preview.nvim/,, +https://github.com/David-Kunz/markid/,HEAD, https://github.com/chentoast/marks.nvim/,, https://github.com/williamboman/mason-lspconfig.nvim/,HEAD, https://github.com/WhoIsSethDaniel/mason-tool-installer.nvim/,HEAD, @@ -450,6 +456,7 @@ https://github.com/kaicataldo/material.vim/,HEAD, https://github.com/vim-scripts/mayansmoke/,, https://github.com/chikamichi/mediawiki.vim/,HEAD, https://github.com/savq/melange-nvim/,, +https://github.com/phaazon/mind.nvim/,HEAD, https://github.com/echasnovski/mini.nvim/,, https://github.com/wfxr/minimap.vim/,, https://github.com/jghauser/mkdir.nvim/,main, @@ -461,6 +468,7 @@ https://github.com/loctvl842/monokai-pro.nvim/,HEAD, https://github.com/shaunsingh/moonlight.nvim/,,pure-lua https://github.com/leafo/moonscript-vim/,HEAD, https://github.com/yegappan/mru/,, +https://github.com/jbyuki/nabla.nvim/,HEAD, https://github.com/ncm2/ncm2/,, https://github.com/ncm2/ncm2-bufword/,, https://github.com/ncm2/ncm2-cssomni/,, @@ -493,6 +501,7 @@ https://github.com/Shougo/neoinclude.vim/,, https://github.com/neomake/neomake/,, https://github.com/Shougo/neomru.vim/,, https://github.com/rafamadriz/neon/,, +https://github.com/ii14/neorepl.nvim/,HEAD, https://github.com/nvim-neorg/neorg/,, https://github.com/nvim-neorg/neorg-telescope/,HEAD, https://github.com/karb94/neoscroll.nvim/,, @@ -580,6 +589,7 @@ https://github.com/kevinhwang91/nvim-hlslens/,, https://github.com/neovimhaskell/nvim-hs.vim/,, https://github.com/mfussenegger/nvim-jdtls/,, https://github.com/gennaro-tedesco/nvim-jqx/,, +https://gitlab.com/usmcamp0811/nvim-julia-autotest,HEAD, https://github.com/ethanholz/nvim-lastplace/,HEAD, https://github.com/kosayoda/nvim-lightbulb/,, https://github.com/josa42/nvim-lightline-lsp/,, @@ -605,6 +615,7 @@ https://github.com/yorickpeterse/nvim-pqf/,HEAD, https://github.com/olrtg/nvim-rename-state/,HEAD, https://github.com/petertriho/nvim-scrollbar/,HEAD, https://github.com/dstein64/nvim-scrollview/,, +https://github.com/s1n7ax/nvim-search-and-replace/,HEAD, https://github.com/dcampos/nvim-snippy/,HEAD, https://github.com/ishan9299/nvim-solarized-lua/,, https://github.com/nvim-pack/nvim-spectre/,, @@ -620,11 +631,13 @@ https://github.com/RRethy/nvim-treesitter-endwise/,HEAD, https://github.com/eddiebergman/nvim-treesitter-pyfold/,, https://github.com/nvim-treesitter/nvim-treesitter-refactor/,, https://github.com/nvim-treesitter/nvim-treesitter-textobjects/,, +https://github.com/RRethy/nvim-treesitter-textsubjects/,HEAD, https://github.com/windwp/nvim-ts-autotag/,, https://github.com/joosepalviste/nvim-ts-context-commentstring/,, https://github.com/mrjones2014/nvim-ts-rainbow/,, https://gitlab.com/HiPhish/nvim-ts-rainbow2,HEAD, https://github.com/kevinhwang91/nvim-ufo/,HEAD, +https://github.com/samjwill/nvim-unception/,HEAD, https://github.com/kyazdani42/nvim-web-devicons/,, https://github.com/AckslD/nvim-whichkey-setup.lua/,, https://github.com/roxma/nvim-yarp/,, @@ -661,6 +674,7 @@ https://github.com/andsild/peskcolor.vim/,, https://github.com/pest-parser/pest.vim/,HEAD, https://github.com/lifepillar/pgsql.vim/,, https://github.com/motus/pig.vim/,, +https://github.com/weirongxu/plantuml-previewer.vim/,HEAD, https://github.com/aklt/plantuml-syntax/,, https://github.com/nvim-treesitter/playground/,, https://github.com/nvim-lua/plenary.nvim/,, @@ -671,6 +685,7 @@ https://github.com/nvim-lua/popup.nvim/,, https://github.com/andweeb/presence.nvim/,, https://github.com/sotte/presenting.vim/,, https://github.com/ewilazarus/preto/,HEAD, +https://github.com/anuvyklack/pretty-fold.nvim/,HEAD, https://github.com/vim-scripts/prev_indent/,, https://github.com/ahmedkhalf/project.nvim/,, https://github.com/kevinhwang91/promise-async/,HEAD, diff --git a/pkgs/applications/misc/get_iplayer/default.nix b/pkgs/applications/misc/get_iplayer/default.nix index dae647f6c5d0..f42f16a6167c 100644 --- a/pkgs/applications/misc/get_iplayer/default.nix +++ b/pkgs/applications/misc/get_iplayer/default.nix @@ -1,4 +1,4 @@ -{ lib, fetchFromGitHub, atomicparsley, flvstreamer, ffmpeg, makeWrapper, perl, perlPackages, rtmpdump}: +{ lib, fetchFromGitHub, stdenv, shortenPerlShebang, atomicparsley, flvstreamer, ffmpeg, makeWrapper, perl, perlPackages, rtmpdump}: perlPackages.buildPerlPackage rec { pname = "get_iplayer"; @@ -12,7 +12,7 @@ perlPackages.buildPerlPackage rec { }; nativeBuildInputs = [ makeWrapper ]; - buildInputs = [ perl ]; + buildInputs = [ perl ] ++ lib.optional stdenv.isDarwin shortenPerlShebang; propagatedBuildInputs = with perlPackages; [ HTMLParser HTTPCookies LWP LWPProtocolHttps XMLLibXML XMLSimple Mojolicious ]; @@ -27,13 +27,16 @@ perlPackages.buildPerlPackage rec { wrapProgram $out/bin/get_iplayer --suffix PATH : ${lib.makeBinPath [ atomicparsley ffmpeg flvstreamer rtmpdump ]} --prefix PERL5LIB : $PERL5LIB cp get_iplayer.1 $out/share/man/man1 ''; + postInstall = lib.optionalString stdenv.isDarwin '' + shortenPerlShebang $out/bin/.get_iplayer-wrapped + ''; meta = with lib; { description = "Downloads TV and radio from BBC iPlayer"; license = licenses.gpl3Plus; homepage = "https://squarepenguin.co.uk/"; platforms = platforms.all; - maintainers = with maintainers; [ rika ]; + maintainers = with maintainers; [ rika jgarcia ]; }; } diff --git a/pkgs/applications/networking/browsers/chromium/common.nix b/pkgs/applications/networking/browsers/chromium/common.nix index f555ab289391..6d24f18ec94c 100644 --- a/pkgs/applications/networking/browsers/chromium/common.nix +++ b/pkgs/applications/networking/browsers/chromium/common.nix @@ -361,7 +361,6 @@ let # Optional features: use_gio = true; - use_gnome_keyring = false; # Superseded by libsecret use_cups = cupsSupport; # Feature overrides: @@ -384,6 +383,8 @@ let # We do intentionally not set rustc_version as nixpkgs will never do incremental # rebuilds, thus leaving this empty is fine. rust_sysroot_absolute = "${rustc}"; + # Building with rust is disabled for now - this matches the flags in other major distributions. + enable_rust = false; } // lib.optionalAttrs (!(stdenv.buildPlatform.canExecute stdenv.hostPlatform)) { # https://www.mail-archive.com/v8-users@googlegroups.com/msg14528.html arm_control_flow_integrity = "none"; diff --git a/pkgs/applications/networking/browsers/chromium/upstream-info.nix b/pkgs/applications/networking/browsers/chromium/upstream-info.nix index e53706340011..908310356122 100644 --- a/pkgs/applications/networking/browsers/chromium/upstream-info.nix +++ b/pkgs/applications/networking/browsers/chromium/upstream-info.nix @@ -35,31 +35,31 @@ }; deps = { gn = { - rev = "e9e83d9095d3234adf68f3e2866f25daf766d5c7"; - sha256 = "0y07c18xskq4mclqiz3a63fz8jicz2kqridnvdhqdf75lhp61f8a"; + rev = "4bd1a77e67958fb7f6739bd4542641646f264e5d"; + sha256 = "14h9jqspb86sl5lhh6q0kk2rwa9zcak63f8drp7kb3r4dx08vzsw"; url = "https://gn.googlesource.com/gn"; - version = "2023-05-19"; + version = "2023-06-09"; }; }; - sha256 = "1h3j24ihn76qkvckzg703pm1jsh6nbkc48n2zx06kia8wz96567z"; - sha256bin64 = "04jklk2zwkyy8i70v9nk7nw35w2g9pyxdw9w3sn9mddgbjjph5z9"; - version = "115.0.5790.170"; + sha256 = "108wrm64pig0v24n44zd52jfzsy2kda84r5k8abfvg4sjlm0bh8y"; + sha256bin64 = "1sr7wfssayw94x8bfn7bk03040221npj7612ccxgzdgr4x5i4adl"; + version = "116.0.5845.96"; }; ungoogled-chromium = { deps = { gn = { - rev = "e9e83d9095d3234adf68f3e2866f25daf766d5c7"; - sha256 = "0y07c18xskq4mclqiz3a63fz8jicz2kqridnvdhqdf75lhp61f8a"; + rev = "4bd1a77e67958fb7f6739bd4542641646f264e5d"; + sha256 = "14h9jqspb86sl5lhh6q0kk2rwa9zcak63f8drp7kb3r4dx08vzsw"; url = "https://gn.googlesource.com/gn"; - version = "2023-05-19"; + version = "2023-06-09"; }; ungoogled-patches = { - rev = "115.0.5790.170-1"; - sha256 = "0vk82jacadb4id16596s4751j4idq6903w6sl2s7cj4ppxd6pyf1"; + rev = "116.0.5845.96-1"; + sha256 = "14smm0vmqzn2664qdbv7asm8n2gg88zcvwrjpsn54qwk0njv7zlr"; }; }; - sha256 = "1h3j24ihn76qkvckzg703pm1jsh6nbkc48n2zx06kia8wz96567z"; - sha256bin64 = "04jklk2zwkyy8i70v9nk7nw35w2g9pyxdw9w3sn9mddgbjjph5z9"; - version = "115.0.5790.170"; + sha256 = "108wrm64pig0v24n44zd52jfzsy2kda84r5k8abfvg4sjlm0bh8y"; + sha256bin64 = "1sr7wfssayw94x8bfn7bk03040221npj7612ccxgzdgr4x5i4adl"; + version = "116.0.5845.96"; }; } diff --git a/pkgs/applications/networking/twingate/default.nix b/pkgs/applications/networking/twingate/default.nix index cd72539f77cd..09b3000c875d 100644 --- a/pkgs/applications/networking/twingate/default.nix +++ b/pkgs/applications/networking/twingate/default.nix @@ -13,11 +13,11 @@ stdenv.mkDerivation rec { pname = "twingate"; - version = "1.0.83+88994"; + version = "2023.227.93197"; src = fetchurl { url = "https://binaries.twingate.com/client/linux/DEB/x86_64/${version}/twingate-amd64.deb"; - hash = "sha256-rPYjGSrjSNSdjMZRP0Gd7a9lRC+I06oOvZZEUEJ6s5k="; + hash = "sha256-YV56U+RXpTOJvyufVKtTY1c460//ZJcifq2XroTQLXU="; }; buildInputs = [ diff --git a/pkgs/applications/radio/qdmr/default.nix b/pkgs/applications/radio/qdmr/default.nix index 3b9641672413..440c1c955ab0 100644 --- a/pkgs/applications/radio/qdmr/default.nix +++ b/pkgs/applications/radio/qdmr/default.nix @@ -22,13 +22,13 @@ in stdenv.mkDerivation rec { pname = "qdmr"; - version = "0.11.2"; + version = "0.11.3"; src = fetchFromGitHub { owner = "hmatuschek"; repo = "qdmr"; rev = "v${version}"; - sha256 = "sha256-zT31tzsm5OM99vz8DzGCdPmnemiwiJpKccYwECnUgOQ="; + sha256 = "sha256-YLGsKGcKIPd0ihd5IzlT71dYkxZfeH7BpnKQMEyY8dI="; }; nativeBuildInputs = [ diff --git a/pkgs/applications/video/alass/default.nix b/pkgs/applications/video/alass/default.nix index 73b017ffeff4..d6b6da1fd6b5 100644 --- a/pkgs/applications/video/alass/default.nix +++ b/pkgs/applications/video/alass/default.nix @@ -25,9 +25,10 @@ rustPlatform.buildRustPackage rec { ''; meta = with lib; { - description = "Automatic Language-Agnostic Subtitle Synchronization"; + description = "Automatic Language-Agnostic Subtitles Synchronization"; homepage = "https://github.com/kaegi/alass"; license = licenses.gpl3Plus; maintainers = with maintainers; [ erictapen ]; + mainProgram = "alass-cli"; }; } diff --git a/pkgs/data/icons/google-cursor/default.nix b/pkgs/data/icons/google-cursor/default.nix new file mode 100644 index 000000000000..c3fb5aad29a3 --- /dev/null +++ b/pkgs/data/icons/google-cursor/default.nix @@ -0,0 +1,51 @@ +{ stdenvNoCC +, fetchzip +, lib +}: + +let + colors = [ + { + name = "Black"; + hash = "sha256-pb2U9j1m8uJaILxUxKqp8q9FGuwzZsQvhPP3bfGZL5I="; + } + { + name = "Blue"; + hash = "sha256-PmJeGShQLIC7ceRwQvSbphqz19fKptksZeHKi9QSL5Y="; + } + { + name = "Red"; + hash = "sha256-/X81jLoWaw4UMoDRf1f6oaKKRWexQc4PAACy3doV4Kc="; + } + { + name = "White"; + hash = "sha256-eT/Zy6O6TBD6G8q/dg+9rNYDHutLLxEY1lvLDP90b+g="; + } + ]; +in +stdenvNoCC.mkDerivation (finalAttrs: { + pname = "google-cursor"; + version = "2.0.0"; + + sourceRoot = "."; + srcs = map + (color: (fetchzip { + url = "https://github.com/ful1e5/Google_Cursor/releases/download/v${finalAttrs.version}/GoogleDot-${color.name}.tar.gz"; + name = "GoogleDot-${color.name}"; + hash = color.hash; + })) + colors; + + postInstall = '' + mkdir -p $out/share/icons + cp -r GoogleDot-* $out/share/icons + ''; + + meta = with lib; { + description = "An opensource cursor theme inspired by Google"; + homepage = "https://github.com/ful1e5/Google_Cursor"; + license = licenses.gpl3Plus; + platforms = platforms.all; + maintainers = with maintainers; [ quadradical ]; + }; +}) diff --git a/pkgs/development/libraries/libxc/default.nix b/pkgs/development/libraries/libxc/default.nix index 2bda413a7326..ff47a3881e04 100644 --- a/pkgs/development/libraries/libxc/default.nix +++ b/pkgs/development/libraries/libxc/default.nix @@ -11,6 +11,13 @@ stdenv.mkDerivation rec { hash = "sha256-JYhuyW95I7Q0edLIe7H//+ej5vh6MdAGxXjmNxDMuhQ="; }; + # Timeout increase has already been included upstream in master. + # Check upon updates if this can be removed. + postPatch = '' + substituteInPlace testsuite/CMakeLists.txt \ + --replace "PROPERTIES TIMEOUT 1" "PROPERTIES TIMEOUT 30" + ''; + nativeBuildInputs = [ perl cmake gfortran ]; preConfigure = '' diff --git a/pkgs/development/python-modules/numba/default.nix b/pkgs/development/python-modules/numba/default.nix index a4f566df43ea..874cbe2376d1 100644 --- a/pkgs/development/python-modules/numba/default.nix +++ b/pkgs/development/python-modules/numba/default.nix @@ -83,7 +83,7 @@ in buildPythonPackage rec { postPatch = '' substituteInPlace setup.py --replace "version=versioneer.get_version()" "version='0.57.1'" substituteInPlace numba/_version.py \ - --replace 'git_refnames = ""' 'git_refnames = "0.57.1"' + --replace 'git_refnames = " (HEAD -> main)"' 'git_refnames = "tag: 0.57.1"' ''; postFixup = lib.optionalString cudaSupport '' diff --git a/pkgs/development/python-modules/pyplatec/default.nix b/pkgs/development/python-modules/pyplatec/default.nix index aff4d54abc4d..209c0d587eb5 100644 --- a/pkgs/development/python-modules/pyplatec/default.nix +++ b/pkgs/development/python-modules/pyplatec/default.nix @@ -13,11 +13,12 @@ buildPythonPackage rec { sha256 = "0kqx33flcrrlipccmqs78d14pj5749bp85b6k5fgaq2c7yzz02jg"; }; + env.NIX_CFLAGS_COMPILE = "-std=c++11"; + meta = with lib; { description = "Library to simulate plate tectonics with Python bindings"; homepage = "https://github.com/Mindwerks/plate-tectonics"; license = licenses.lgpl3; - broken = stdenv.isLinux; }; } diff --git a/pkgs/development/python-modules/qbittorrent-api/default.nix b/pkgs/development/python-modules/qbittorrent-api/default.nix new file mode 100644 index 000000000000..2785ad3a32d9 --- /dev/null +++ b/pkgs/development/python-modules/qbittorrent-api/default.nix @@ -0,0 +1,48 @@ +{ lib +, buildPythonPackage +, fetchPypi +, requests +, six +, urllib3 +, packaging +, setuptools +, wheel +}: + +buildPythonPackage rec { + pname = "qbittorrent-api"; + version = "2023.7.52"; + format = "pyproject"; + + src = fetchPypi { + inherit pname version; + hash = "sha256-RHOupNo0jteUpxcxAojOfnBGGBt293j0OCHeKEritpQ="; + }; + + propagatedBuildInputs = [ + requests + six + urllib3 + packaging + ]; + + nativeBuildInputs = [ + setuptools + wheel + ]; + + # Tests require internet access + doCheck = false; + + pythonImportsCheck = [ + "qbittorrentapi" + ]; + + meta = with lib; { + description = "Python client implementation for qBittorrent's Web API"; + homepage = "https://github.com/rmartin16/qbittorrent-api"; + changelog = "https://github.com/rmartin16/qbittorrent-api/blob/v${version}/CHANGELOG.md"; + license = licenses.mit; + maintainers = with maintainers; [ savyajha ]; + }; +} diff --git a/pkgs/development/python-modules/scikit-build-core/default.nix b/pkgs/development/python-modules/scikit-build-core/default.nix index 7688ff6d3d71..c3fac4ea34df 100644 --- a/pkgs/development/python-modules/scikit-build-core/default.nix +++ b/pkgs/development/python-modules/scikit-build-core/default.nix @@ -8,6 +8,7 @@ , hatchling , cattrs , cmake +, ninja , packaging , pathspec , pyproject-metadata @@ -18,13 +19,13 @@ buildPythonPackage rec { pname = "scikit-build-core"; - version = "0.2.0"; + version = "0.4.8"; format = "pyproject"; src = fetchPypi { pname = "scikit_build_core"; inherit version; - hash = "sha256-0qdtlEekEgONxeJd0lmwPCUnhmGgx8Padmu5ccGprNI="; + hash = "sha256-n6wcrBo4uhFoGQt72Y9irs8GzUbbcYXsjCeyfg2krUs="; }; postPatch = '' @@ -58,14 +59,17 @@ buildPythonPackage rec { nativeCheckInputs = [ cattrs cmake + ninja pytest-subprocess pytestCheckHook ] ++ passthru.optional-dependencies.pyproject; disabledTestPaths = [ # runs pip, requires network access + "tests/test_custom_modules.py" "tests/test_pyproject_pep517.py" "tests/test_pyproject_pep518.py" + "tests/test_pyproject_pep660.py" "tests/test_setuptools_pep517.py" "tests/test_setuptools_pep518.py" ]; @@ -77,6 +81,7 @@ buildPythonPackage rec { meta = with lib; { description = "A next generation Python CMake adaptor and Python API for plugins"; homepage = "https://github.com/scikit-build/scikit-build-core"; + changelog = "https://github.com/scikit-build/scikit-build-core/releases/tag/v${version}"; license = with licenses; [ asl20 ]; maintainers = with maintainers; [ veprbl ]; }; diff --git a/pkgs/development/python-modules/worldengine/default.nix b/pkgs/development/python-modules/worldengine/default.nix index cda6fdb6ebdd..32c69b001249 100644 --- a/pkgs/development/python-modules/worldengine/default.nix +++ b/pkgs/development/python-modules/worldengine/default.nix @@ -68,7 +68,7 @@ buildPythonPackage rec { ]; meta = with lib; { - homepage = "http://world-engine.org"; + homepage = "https://github.com/mindwerks/worldengine"; description = "World generator using simulation of plates, rain shadow, erosion, etc"; license = licenses.mit; maintainers = with maintainers; [ rardiol ]; diff --git a/pkgs/servers/mail/public-inbox/default.nix b/pkgs/servers/mail/public-inbox/default.nix index 302473b975a9..9918d075a733 100644 --- a/pkgs/servers/mail/public-inbox/default.nix +++ b/pkgs/servers/mail/public-inbox/default.nix @@ -55,6 +55,9 @@ let # got: 'makefile' # expected: 'make' "hl_mod" + # Hangs on "inbox unlocked on initial fetch, waiting for IDLE". + # Fixed in HEAD: 7234e671 ("t/imapd: workaround a Perl 5.36.0 readline regression") + "imapd" # Failed test 'clone + index v1 synced ->created_at' # at t/lei-mirror.t line 175. # got: '1638378723' diff --git a/pkgs/tools/graphics/timg/default.nix b/pkgs/tools/graphics/timg/default.nix index 765b830e297a..43a2ae16ed34 100644 --- a/pkgs/tools/graphics/timg/default.nix +++ b/pkgs/tools/graphics/timg/default.nix @@ -1,26 +1,28 @@ -{ lib -, stdenv +{ cmake , fetchFromGitHub -, cmake -, pkg-config , ffmpeg , graphicsmagick +, lib , libdeflate , libexif , libjpeg , libsixel , openslide +, pkg-config +, stb +, qoi +, stdenv }: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "timg"; - version = "1.5.1"; + version = "1.5.2"; src = fetchFromGitHub { owner = "hzeller"; repo = "timg"; - rev = "v${version}"; - hash = "sha256-hGQL6MAsaSVV/w5fDKAcd4KIBuh2pvl3D2QUzi/aeG0="; + rev = "v${finalAttrs.version}"; + hash = "sha256-e2Uy1jvS0+gdhto4Sgz6YlqEqXJ7KGUAA6iuixfvvJg="; }; buildInputs = [ @@ -31,6 +33,8 @@ stdenv.mkDerivation rec { libjpeg libsixel openslide + qoi.dev + stb ]; nativeBuildInputs = [ cmake pkg-config ]; @@ -43,11 +47,12 @@ stdenv.mkDerivation rec { "-DWITH_LIBSIXEL=On" ]; - meta = with lib; { - homepage = "https://timg.sh/"; + meta = { description = "A terminal image and video viewer"; - license = licenses.gpl2Only; - platforms = platforms.unix; - maintainers = with maintainers; [ hzeller ]; + homepage = "https://timg.sh/"; + license = lib.licenses.gpl2Only; + mainProgram = "timg"; + maintainers = with lib.maintainers; [ hzeller ]; + platforms = lib.platforms.unix; }; -} +}) diff --git a/pkgs/tools/networking/ip2unix/default.nix b/pkgs/tools/networking/ip2unix/default.nix index fabbbb40e7a7..93bd2507bf6f 100644 --- a/pkgs/tools/networking/ip2unix/default.nix +++ b/pkgs/tools/networking/ip2unix/default.nix @@ -5,19 +5,15 @@ stdenv.mkDerivation rec { pname = "ip2unix"; - version = "2.1.4"; + version = "2.2.0"; src = fetchFromGitHub { owner = "nixcloud"; repo = "ip2unix"; rev = "v${version}"; - sha256 = "1pl8ayadxb0zzh5s26yschkjhr1xffbzzv347m88f9y0jv34d24r"; + hash = "sha256-7Q2s7wBkt5OTbQnx7Q5mGRWBOtr6yRsFBh+CUu8CmMQ"; }; - postPatch = '' - sed '1i#include ' -i src/dynports/dynports.cc # gcc12 - ''; - nativeBuildInputs = [ meson ninja pkg-config asciidoc libxslt.bin docbook_xml_dtd_45 docbook_xsl libxml2.bin docbook5 python3Packages.pytest python3Packages.pytest-timeout diff --git a/pkgs/tools/package-management/nvd/default.nix b/pkgs/tools/package-management/nvd/default.nix index 066b23cbd8d8..8f33b4a5fbfa 100644 --- a/pkgs/tools/package-management/nvd/default.nix +++ b/pkgs/tools/package-management/nvd/default.nix @@ -1,19 +1,28 @@ -{ fetchFromGitLab, installShellFiles, lib, python3, stdenv }: +{ fetchFromGitLab +, installShellFiles +, lib +, python3 +, stdenv +}: -stdenv.mkDerivation rec { +stdenv.mkDerivation (finalAttrs: { pname = "nvd"; version = "0.2.3"; src = fetchFromGitLab { owner = "khumba"; - repo = pname; - rev = "refs/tags/v${version}"; - sha256 = "sha256:005nh24j01s0hd5j0g0qp67wpivpjwryxyyh6y44jijb4arrfrjf"; + repo = "nvd"; + rev = "refs/tags/v${finalAttrs.version}"; + hash = "sha256-TmaXsyJLRkmIN9D77jOXd8fLj7kYPCBLg0AHIImAtgA="; }; - buildInputs = [ python3 ]; + buildInputs = [ + python3 + ]; - nativeBuildInputs = [ installShellFiles ]; + nativeBuildInputs = [ + installShellFiles + ]; installPhase = '' runHook preInstall @@ -22,11 +31,12 @@ stdenv.mkDerivation rec { runHook postInstall ''; - meta = with lib; { + meta = { description = "Nix/NixOS package version diff tool"; homepage = "https://gitlab.com/khumba/nvd"; - license = licenses.asl20; - maintainers = with maintainers; [ khumba ]; - platforms = platforms.all; + license = lib.licenses.asl20; + mainProgram = "nvd"; + maintainers = with lib.maintainers; [ khumba ]; + platforms = lib.platforms.all; }; -} +}) diff --git a/pkgs/tools/text/mmdoc/default.nix b/pkgs/tools/text/mmdoc/default.nix index 470e14988947..a570d0b9558e 100644 --- a/pkgs/tools/text/mmdoc/default.nix +++ b/pkgs/tools/text/mmdoc/default.nix @@ -12,13 +12,13 @@ stdenv.mkDerivation rec { pname = "mmdoc"; - version = "0.14.0"; + version = "0.15.0"; src = fetchFromGitHub { owner = "ryantm"; repo = "mmdoc"; rev = version; - hash = "sha256-1e6TS4TjshicUdT7wuvLsDpotr2LUxbn15r+eNXMo2M="; + hash = "sha256-xOi91BSQh+AN13V6YyAzOe7kUsyPAvUKWTJ+PUPlPJQ="; }; nativeBuildInputs = [ ninja meson pkg-config xxd ]; diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index 35952886eb42..0ed3d17d7859 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -5400,6 +5400,8 @@ with pkgs; go-thumbnailer = callPackage ../applications/misc/go-thumbnailer { }; + google-cursor = callPackage ../data/icons/google-cursor { }; + geckodriver = callPackage ../development/tools/geckodriver { inherit (darwin.apple_sdk.frameworks) Security; }; diff --git a/pkgs/top-level/python-packages.nix b/pkgs/top-level/python-packages.nix index 5827312ad67c..2fbff829622b 100644 --- a/pkgs/top-level/python-packages.nix +++ b/pkgs/top-level/python-packages.nix @@ -10704,6 +10704,8 @@ self: super: with self; { pyzufall = callPackage ../development/python-modules/pyzufall { }; + qbittorrent-api = callPackage ../development/python-modules/qbittorrent-api { }; + qcelemental = callPackage ../development/python-modules/qcelemental { }; qcengine = callPackage ../development/python-modules/qcengine { };