Merge master into haskell-updates
This commit is contained in:
commit
3f15695b1a
@ -365,8 +365,8 @@ If `pname` and `version` are specified, `fetchurl` will use those values and wil
|
||||
_Default value:_ `{}`.
|
||||
|
||||
`passthru` (Attribute Set; _optional_)
|
||||
: Specifies any extra [passthru](#var-stdenv-passthru) attributes for the derivation returned by `fetchurl`.
|
||||
Note that `fetchurl` defines [passthru attributes of its own](#ssec-pkgs-fetchers-fetchurl-passthru-outputs).
|
||||
: Specifies any extra [`passthru`](#chap-passthru) attributes for the derivation returned by `fetchurl`.
|
||||
Note that `fetchurl` defines [`passthru` attributes of its own](#ssec-pkgs-fetchers-fetchurl-passthru-outputs).
|
||||
Attributes specified in `passthru` can override the default attributes returned by `fetchurl`.
|
||||
|
||||
_Default value:_ `{}`.
|
||||
@ -387,7 +387,7 @@ If `pname` and `version` are specified, `fetchurl` will use those values and wil
|
||||
|
||||
### Passthru outputs {#ssec-pkgs-fetchers-fetchurl-passthru-outputs}
|
||||
|
||||
`fetchurl` also defines its own [`passthru`](#var-stdenv-passthru) attributes:
|
||||
`fetchurl` also defines its own [`passthru`](#chap-passthru) attributes:
|
||||
|
||||
`url` (String)
|
||||
|
||||
|
@ -191,7 +191,7 @@ Similarly, if you encounter errors similar to `Error_Protocol ("certificate has
|
||||
|
||||
### Passthru outputs {#ssec-pkgs-dockerTools-buildImage-passthru-outputs}
|
||||
|
||||
`buildImage` defines a few [`passthru`](#var-stdenv-passthru) attributes:
|
||||
`buildImage` defines a few [`passthru`](#chap-passthru) attributes:
|
||||
|
||||
`buildArgs` (Attribute Set)
|
||||
|
||||
@ -576,13 +576,13 @@ This allows the function to produce reproducible images.
|
||||
|
||||
`passthru` (Attribute Set; _optional_)
|
||||
|
||||
: Use this to pass any attributes as [passthru](#var-stdenv-passthru) for the resulting derivation.
|
||||
: Use this to pass any attributes as [`passthru`](#chap-passthru) for the resulting derivation.
|
||||
|
||||
_Default value:_ `{}`
|
||||
|
||||
### Passthru outputs {#ssec-pkgs-dockerTools-streamLayeredImage-passthru-outputs}
|
||||
|
||||
`streamLayeredImage` also defines its own [`passthru`](#var-stdenv-passthru) attributes:
|
||||
`streamLayeredImage` also defines its own [`passthru`](#chap-passthru) attributes:
|
||||
|
||||
`imageTag` (String)
|
||||
|
||||
|
@ -31,8 +31,8 @@ Each interpreter has the following attributes:
|
||||
|
||||
### Building packages and applications {#building-packages-and-applications}
|
||||
|
||||
Python libraries and applications that use `setuptools` or
|
||||
`distutils` are typically built with respectively the [`buildPythonPackage`](#buildpythonpackage-function) and
|
||||
Python libraries and applications that use tools to follow PEP 517 (e.g. `setuptools` or `hatchling`, etc.) or
|
||||
previous tools such as `distutils` are typically built with respectively the [`buildPythonPackage`](#buildpythonpackage-function) and
|
||||
[`buildPythonApplication`](#buildpythonapplication-function) functions. These two functions also support installing a `wheel`.
|
||||
|
||||
All Python packages reside in `pkgs/top-level/python-packages.nix` and all
|
||||
@ -78,6 +78,7 @@ The following is an example:
|
||||
, fetchPypi
|
||||
|
||||
# build-system
|
||||
, setuptools
|
||||
, setuptools-scm
|
||||
|
||||
# dependencies
|
||||
@ -107,6 +108,7 @@ buildPythonPackage rec {
|
||||
'';
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
setuptools-scm
|
||||
];
|
||||
|
||||
@ -134,13 +136,13 @@ buildPythonPackage rec {
|
||||
|
||||
The `buildPythonPackage` mainly does four things:
|
||||
|
||||
* In the [`buildPhase`](#build-phase), it calls `${python.pythonOnBuildForHost.interpreter} setup.py bdist_wheel` to
|
||||
* In the [`buildPhase`](#build-phase), it calls `${python.pythonOnBuildForHost.interpreter} -m build --wheel` to
|
||||
build a wheel binary zipfile.
|
||||
* In the [`installPhase`](#ssec-install-phase), it installs the wheel file using `pip install *.whl`.
|
||||
* In the [`installPhase`](#ssec-install-phase), it installs the wheel file using `${python.pythonOnBuildForHost.interpreter} -m installer *.whl`.
|
||||
* In the [`postFixup`](#var-stdenv-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`](#ssec-installCheck-phase) phase, `${python.interpreter} setup.py test` is run.
|
||||
* In the [`installCheck`](#ssec-installCheck-phase) phase, `${python.interpreter} -m pytest` is run.
|
||||
|
||||
By default tests are run because [`doCheck = true`](#var-stdenv-doCheck). Test dependencies, like
|
||||
e.g. the test runner, should be added to [`nativeCheckInputs`](#var-stdenv-nativeCheckInputs).
|
||||
@ -177,10 +179,6 @@ following are specific to `buildPythonPackage`:
|
||||
`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`](#var-stdenv-propagatedBuildInputs)).
|
||||
@ -298,7 +296,6 @@ python3Packages.buildPythonApplication rec {
|
||||
|
||||
build-system = with python3Packages; [
|
||||
setuptools
|
||||
wheel
|
||||
];
|
||||
|
||||
dependencies = with python3Packages; [
|
||||
@ -465,13 +462,11 @@ are used in [`buildPythonPackage`](#buildpythonpackage-function).
|
||||
with the `eggInstallHook`
|
||||
- `eggBuildHook` to skip building for eggs.
|
||||
- `eggInstallHook` to install eggs.
|
||||
- `pipBuildHook` to build a wheel using `pip` and PEP 517. Note a build system
|
||||
(e.g. `setuptools` or `flit`) should still be added as `build-system`.
|
||||
- `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 `build-system`.
|
||||
- `pipInstallHook` to install wheels.
|
||||
- `pypaInstallHook` to install wheels.
|
||||
- `pytestCheckHook` to run tests with `pytest`. See [example usage](#using-pytestcheckhook).
|
||||
- `pythonCatchConflictsHook` to fail if the package depends on two different versions of the same dependency.
|
||||
- `pythonImportsCheckHook` to check whether importing the listed modules works.
|
||||
@ -609,7 +604,8 @@ that sets up an interpreter pointing to them. This matters much more for "big"
|
||||
modules like `pytorch` or `tensorflow`.
|
||||
|
||||
Module names usually match their names on [pypi.org](https://pypi.org/), but
|
||||
you can use the [Nixpkgs search website](https://nixos.org/nixos/packages.html)
|
||||
normalized according to PEP 503/508. (e.g. Foo__Bar.baz -> foo-bar-baz)
|
||||
You can use the [Nixpkgs search website](https://nixos.org/nixos/packages.html)
|
||||
to find them as well (along with non-python packages).
|
||||
|
||||
At this point we can create throwaway experimental Python environments with
|
||||
@ -837,7 +833,6 @@ building Python libraries is [`buildPythonPackage`](#buildpythonpackage-function
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, setuptools
|
||||
, wheel
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
@ -852,7 +847,6 @@ buildPythonPackage rec {
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
wheel
|
||||
];
|
||||
|
||||
# has no tests
|
||||
@ -876,7 +870,7 @@ buildPythonPackage rec {
|
||||
What happens here? The function [`buildPythonPackage`](#buildpythonpackage-function) is called and as argument
|
||||
it accepts a set. In this case the set is a recursive set, `rec`. One of the
|
||||
arguments is the name of the package, which consists of a basename (generally
|
||||
following the name on PyPi) and a version. Another argument, `src` specifies the
|
||||
following the name on PyPI) and a version. Another argument, `src` specifies the
|
||||
source, which in this case is fetched from PyPI using the helper function
|
||||
`fetchPypi`. The argument `doCheck` is used to set whether tests should be run
|
||||
when building the package. Since there are no tests, we rely on [`pythonImportsCheck`](#using-pythonimportscheck)
|
||||
@ -911,7 +905,6 @@ with import <nixpkgs> {};
|
||||
|
||||
build-system = [
|
||||
python311.pkgs.setuptools
|
||||
python311.pkgs.wheel
|
||||
];
|
||||
|
||||
# has no tests
|
||||
@ -964,13 +957,13 @@ order to build [`datashape`](https://github.com/blaze/datashape).
|
||||
, fetchPypi
|
||||
|
||||
# build dependencies
|
||||
, setuptools, wheel
|
||||
, setuptools
|
||||
|
||||
# dependencies
|
||||
, numpy, multipledispatch, python-dateutil
|
||||
|
||||
# tests
|
||||
, pytest
|
||||
, pytestCheckHook
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
@ -985,7 +978,6 @@ buildPythonPackage rec {
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
wheel
|
||||
];
|
||||
|
||||
dependencies = [
|
||||
@ -995,7 +987,7 @@ buildPythonPackage rec {
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
pytest
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
meta = {
|
||||
@ -1008,8 +1000,8 @@ buildPythonPackage rec {
|
||||
```
|
||||
|
||||
We can see several runtime dependencies, `numpy`, `multipledispatch`, and
|
||||
`python-dateutil`. Furthermore, we have [`nativeCheckInputs`](#var-stdenv-nativeCheckInputs) with `pytest`.
|
||||
`pytest` is a test runner and is only used during the [`checkPhase`](#ssec-check-phase) and is
|
||||
`python-dateutil`. Furthermore, we have [`nativeCheckInputs`](#var-stdenv-nativeCheckInputs) with `pytestCheckHook`.
|
||||
`pytestCheckHook` is a test runner hook and is only used during the [`checkPhase`](#ssec-check-phase) and is
|
||||
therefore not added to `dependencies`.
|
||||
|
||||
In the previous case we had only dependencies on other Python packages to consider.
|
||||
@ -1022,7 +1014,6 @@ when building the bindings and are therefore added as [`buildInputs`](#var-stden
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, setuptools
|
||||
, wheel
|
||||
, libxml2
|
||||
, libxslt
|
||||
}:
|
||||
@ -1039,7 +1030,6 @@ buildPythonPackage rec {
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
wheel
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
@ -1047,6 +1037,14 @@ buildPythonPackage rec {
|
||||
libxslt
|
||||
];
|
||||
|
||||
# tests are meant to be ran "in-place" in the same directory as src
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [
|
||||
"lxml"
|
||||
"lxml.etree"
|
||||
];
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/lxml/lxml/releases/tag/lxml-${version}";
|
||||
description = "Pythonic binding for the libxml2 and libxslt libraries";
|
||||
@ -1074,7 +1072,6 @@ therefore we have to set `LDFLAGS` and `CFLAGS`.
|
||||
|
||||
# build dependencies
|
||||
, setuptools
|
||||
, wheel
|
||||
|
||||
# dependencies
|
||||
, fftw
|
||||
@ -1085,7 +1082,7 @@ therefore we have to set `LDFLAGS` and `CFLAGS`.
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pyFFTW";
|
||||
pname = "pyfftw";
|
||||
version = "0.9.2";
|
||||
pyproject = true;
|
||||
|
||||
@ -1096,7 +1093,6 @@ buildPythonPackage rec {
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
wheel
|
||||
];
|
||||
|
||||
buildInputs = [
|
||||
@ -1118,6 +1114,8 @@ buildPythonPackage rec {
|
||||
# Tests cannot import pyfftw. pyfftw works fine though.
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [ "pyfftw" ];
|
||||
|
||||
meta = {
|
||||
changelog = "https://github.com/pyFFTW/pyFFTW/releases/tag/v${version}";
|
||||
description = "A pythonic wrapper around FFTW, the FFT library, presenting a unified interface for all the supported transforms";
|
||||
@ -1133,10 +1131,8 @@ Note also the line [`doCheck = false;`](#var-stdenv-doCheck), we explicitly disa
|
||||
|
||||
It is highly encouraged to have testing as part of the package build. This
|
||||
helps to avoid situations where the package was able to build and install,
|
||||
but is not usable at runtime. Currently, all packages will use the `test`
|
||||
command provided by the setup.py (i.e. `python setup.py test`). However,
|
||||
this is currently deprecated https://github.com/pypa/setuptools/pull/1878
|
||||
and your package should provide its own [`checkPhase`](#ssec-check-phase).
|
||||
but is not usable at runtime.
|
||||
Your package should provide its own [`checkPhase`](#ssec-check-phase).
|
||||
|
||||
::: {.note}
|
||||
The [`checkPhase`](#ssec-check-phase) for python maps to the `installCheckPhase` on a
|
||||
@ -1207,9 +1203,11 @@ been removed, in this case, it's recommended to use `pytestCheckHook`.
|
||||
|
||||
#### Using pytestCheckHook {#using-pytestcheckhook}
|
||||
|
||||
`pytestCheckHook` is a convenient hook which will substitute the setuptools
|
||||
`test` command for a [`checkPhase`](#ssec-check-phase) which runs `pytest`. This is also beneficial
|
||||
`pytestCheckHook` is a convenient hook which will set up (or configure)
|
||||
a [`checkPhase`](#ssec-check-phase) to run `pytest`. This is also beneficial
|
||||
when a package may need many items disabled to run the test suite.
|
||||
Most packages use `pytest` or `unittest`, which is compatible with `pytest`,
|
||||
so you will most likely use `pytestCheckHook`.
|
||||
|
||||
Using the example above, the analogous `pytestCheckHook` usage would be:
|
||||
|
||||
@ -1364,10 +1362,12 @@ instead of a dev dependency).
|
||||
Keep in mind that while the examples above are done with `requirements.txt`,
|
||||
`pythonRelaxDepsHook` works by modifying the resulting wheel file, so it should
|
||||
work with any of the [existing hooks](#setup-hooks).
|
||||
It indicates that `pythonRelaxDepsHook` has no effect on build time dependencies, such as in `build-system`.
|
||||
If a package requires incompatible build time dependencies, they should be removed in `postPatch` with `substituteInPlace` or something similar.
|
||||
|
||||
#### Using unittestCheckHook {#using-unittestcheckhook}
|
||||
|
||||
`unittestCheckHook` is a hook which will substitute the setuptools `test` command for a [`checkPhase`](#ssec-check-phase) which runs `python -m unittest discover`:
|
||||
`unittestCheckHook` is a hook which will set up (or configure) a [`checkPhase`](#ssec-check-phase) to run `python -m unittest discover`:
|
||||
|
||||
```nix
|
||||
{
|
||||
@ -1381,6 +1381,8 @@ work with any of the [existing hooks](#setup-hooks).
|
||||
}
|
||||
```
|
||||
|
||||
`pytest` is compatible with `unittest`, so in most cases you can use `pytestCheckHook` instead.
|
||||
|
||||
#### Using sphinxHook {#using-sphinxhook}
|
||||
|
||||
The `sphinxHook` is a helpful tool to build documentation and manpages
|
||||
@ -1459,7 +1461,6 @@ We first create a function that builds `toolz` in `~/path/to/toolz/release.nix`
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
, setuptools
|
||||
, wheel
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
@ -1474,7 +1475,6 @@ buildPythonPackage rec {
|
||||
|
||||
build-system = [
|
||||
setuptools
|
||||
wheel
|
||||
];
|
||||
|
||||
meta = {
|
||||
@ -1494,10 +1494,9 @@ with import <nixpkgs> {};
|
||||
|
||||
( let
|
||||
toolz = callPackage /path/to/toolz/release.nix {
|
||||
buildPythonPackage = python310
|
||||
Packages.buildPythonPackage;
|
||||
buildPythonPackage = python3Packages.buildPythonPackage;
|
||||
};
|
||||
in python310.withPackages (ps: [
|
||||
in python3.withPackages (ps: [
|
||||
ps.numpy
|
||||
toolz
|
||||
])
|
||||
@ -1918,6 +1917,8 @@ 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`.
|
||||
|
||||
See also [contributing section](#contributing).
|
||||
|
||||
### Are Python interpreters built deterministically? {#deterministic-builds}
|
||||
|
||||
The Python interpreters are now built deterministically. Minor modifications had
|
||||
@ -1935,16 +1936,15 @@ Both are also exported in `nix-shell`.
|
||||
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`](#ssec-check-phase), but often it is necessary to pass a custom [`checkPhase`](#ssec-check-phase). An
|
||||
example of such a situation is when `py.test` is used.
|
||||
The best practice today is to pass a test hook (e.g. pytestCheckHook, unittestCheckHook) into nativeCheckInputs.
|
||||
This will reconfigure the checkPhase to make use of that particular test framework.
|
||||
Occasionally packages don't make use of a common test framework, which may then require a custom checkPhase.
|
||||
|
||||
#### Common issues {#common-issues}
|
||||
|
||||
* Non-working tests can often be deselected. By default [`buildPythonPackage`](#buildpythonpackage-function)
|
||||
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
|
||||
* Non-working tests can often be deselected. Most Python modules
|
||||
do follow the standard test protocol where the pytest runner can be used.
|
||||
`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.
|
||||
|
||||
@ -1985,14 +1985,25 @@ The following rules are desired to be respected:
|
||||
* Python applications live outside of `python-packages.nix` and are packaged
|
||||
with [`buildPythonApplication`](#buildpythonapplication-function).
|
||||
* Make sure libraries build for all Python interpreters.
|
||||
* By default we enable tests. Make sure the tests are found and, in the case of
|
||||
If it fails to build on some Python versions, consider disabling them by setting `disable = pythonAtLeast "3.x"` along with a comment.
|
||||
* The two parameters, `pyproject` and `build-system` are set to avoid the legacy setuptools/distutils build.
|
||||
* Only unversioned attributes (e.g. `pydantic`, but not `pypdantic_1`) can be included in `dependencies`,
|
||||
since due to `PYTHONPATH` limitations we can only ever support a single version for libraries
|
||||
without running into duplicate module name conflicts.
|
||||
* The version restrictions of `dependencies` can be relaxed by [`pythonRelaxDepsHook`](#using-pythonrelaxdepshook).
|
||||
* Make sure the tests are enabled using for example [`pytestCheckHook`](#using-pytestcheckhook) and, in the case of
|
||||
libraries, are passing for all interpreters. If certain tests fail they can be
|
||||
disabled individually. Try to avoid disabling the tests altogether. In any
|
||||
case, when you disable tests, leave a comment explaining why.
|
||||
* `pythonImportsCheck` is set. This is still a good smoke test even if `pytestCheckHook` is set.
|
||||
* `meta.platforms` takes the default value in many cases.
|
||||
It does not need to be set explicitly unless the package requires a specific platform.
|
||||
* The file is formatted with `nixfmt-rfc-style`.
|
||||
* Commit names of Python libraries should reflect that they are Python
|
||||
libraries, so write for example `python311Packages.numpy: 1.11 -> 1.12`.
|
||||
It is highly recommended to specify the current default version to enable
|
||||
automatic build by ofborg.
|
||||
Note that `pythonPackages` is an alias for `python27Packages`.
|
||||
* Attribute names in `python-packages.nix` as well as `pname`s should match the
|
||||
library's name on PyPI, but be normalized according to [PEP
|
||||
0503](https://www.python.org/dev/peps/pep-0503/#normalized-names). This means
|
||||
@ -2006,6 +2017,8 @@ The following rules are desired to be respected:
|
||||
* Attribute names in `python-packages.nix` should be sorted alphanumerically to
|
||||
avoid merge conflicts and ease locating attributes.
|
||||
|
||||
This list is useful for reviewers as well as for self-checking when submitting packages.
|
||||
|
||||
## Package set maintenance {#python-package-set-maintenance}
|
||||
|
||||
The whole Python package set has a lot of packages that do not see regular
|
||||
|
@ -40,31 +40,29 @@ pkgs.linux_latest.override {
|
||||
## Manual kernel configuration {#sec-manual-kernel-configuration}
|
||||
|
||||
Sometimes it may not be desirable to use kernels built with `pkgs.buildLinux`, especially if most of the common configuration has to be altered or disabled to achieve a kernel as expected by the target use case.
|
||||
An example of this is building a kernel for use in a VM or micro VM. You can use `pkgs.linuxManualConfig` in these cases. It requires the `src`, `version`, and `configfile` attributes to be specified.
|
||||
An example of this is building a kernel for use in a VM or micro VM. You can use `pkgs.linuxPackages_custom` in these cases. It requires the `src`, `version`, and `configfile` attributes to be specified.
|
||||
|
||||
:::{.example #ex-using-linux-manual-config}
|
||||
|
||||
# Using `pkgs.linuxManualConfig` with a specific source, version, and config file
|
||||
# Using `pkgs.linuxPackages_custom` with a specific source, version, and config file
|
||||
|
||||
```nix
|
||||
{ pkgs, ... }: {
|
||||
{ pkgs, ... }:
|
||||
pkgs.linuxPackages_custom {
|
||||
version = "6.1.55";
|
||||
src = pkgs.fetchurl {
|
||||
url = "https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-${version}.tar.xz";
|
||||
hash = "sha256:1h0mzx52q9pvdv7rhnvb8g68i7bnlc9rf8gy9qn4alsxq4g28zm8";
|
||||
};
|
||||
configfile = ./path_to_config_file;
|
||||
linux = pkgs.linuxManualConfig {
|
||||
inherit version src configfile;
|
||||
allowImportFromDerivation = true;
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
If necessary, the version string can be slightly modified to explicitly mark it as a custom version. If you do so, ensure the `modDirVersion` attribute matches the source's version, otherwise the build will fail.
|
||||
|
||||
```nix
|
||||
{ pkgs, ... }: {
|
||||
{ pkgs, ... }:
|
||||
pkgs.linuxPackages_custom {
|
||||
version = "6.1.55-custom";
|
||||
modDirVersion = "6.1.55";
|
||||
src = pkgs.fetchurl {
|
||||
@ -72,16 +70,12 @@ If necessary, the version string can be slightly modified to explicitly mark it
|
||||
hash = "sha256:1h0mzx52q9pvdv7rhnvb8g68i7bnlc9rf8gy9qn4alsxq4g28zm8";
|
||||
};
|
||||
configfile = ./path_to_config_file;
|
||||
linux = pkgs.linuxManualConfig {
|
||||
inherit version modDirVersion src configfile;
|
||||
allowImportFromDerivation = true;
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
:::
|
||||
|
||||
Additional attributes can be used with `linuxManualConfig` for further customisation. You're encouraged to read [the `pkgs.linuxManualConfig` source code](https://github.com/NixOS/nixpkgs/blob/d77bda728d5041c1294a68fb25c79e2d161f62b9/pkgs/os-specific/linux/kernel/manual-config.nix) to understand how to use them.
|
||||
Additional attributes can be used with `linuxManualConfig` for further customisation instead of `linuxPackages_custom`. You're encouraged to read [the `pkgs.linuxManualConfig` source code](https://github.com/NixOS/nixpkgs/blob/d77bda728d5041c1294a68fb25c79e2d161f62b9/pkgs/os-specific/linux/kernel/manual-config.nix) to understand how to use them.
|
||||
|
||||
To edit the `.config` file for Linux X.Y from within Nix, proceed as follows:
|
||||
|
||||
|
@ -3,6 +3,7 @@
|
||||
```{=include=} chapters
|
||||
stdenv/stdenv.chapter.md
|
||||
stdenv/meta.chapter.md
|
||||
stdenv/passthru.chapter.md
|
||||
stdenv/multiple-output.chapter.md
|
||||
stdenv/cross-compilation.chapter.md
|
||||
stdenv/platform-notes.chapter.md
|
||||
|
@ -110,107 +110,6 @@ Some packages use this to automatically detect the maximum set of features with
|
||||
For example, `systemd` [requires dynamic linking](https://github.com/systemd/systemd/issues/20600#issuecomment-912338965), and [has a `meta.badPlatforms` setting](https://github.com/NixOS/nixpkgs/blob/b03ac42b0734da3e7be9bf8d94433a5195734b19/pkgs/os-specific/linux/systemd/default.nix#L752) similar to the one above.
|
||||
Packages which can be built with or without `systemd` support will use `lib.meta.availableOn` to detect whether or not `systemd` is available on the [`hostPlatform`](#ssec-cross-platform-parameters) for which they are being built; if it is not available (e.g. due to a statically-linked host platform like `pkgsStatic`) this support will be disabled by default.
|
||||
|
||||
### `tests` {#var-meta-tests}
|
||||
|
||||
::: {.warning}
|
||||
This attribute is special in that it is not actually under the `meta` attribute set but rather under the `passthru` attribute set. This is due to how `meta` attributes work, and the fact that they are supposed to contain only metadata, not derivations.
|
||||
:::
|
||||
|
||||
An attribute set with tests as values. A test is a derivation that builds when the test passes and fails to build otherwise.
|
||||
|
||||
You can run these tests with:
|
||||
|
||||
```ShellSession
|
||||
$ cd path/to/nixpkgs
|
||||
$ nix-build -A your-package.tests
|
||||
```
|
||||
|
||||
Note that Hydra and [`nixpkgs-review`](https://github.com/Mic92/nixpkgs-review) don't build these derivations by default, and that ([`@ofborg`](https://github.com/NixOS/ofborg)) only builds them when evaluating PRs for that particular package (or when manually instructed).
|
||||
|
||||
#### Package tests {#var-meta-tests-packages}
|
||||
|
||||
Tests that are part of the source package are often executed in the `installCheckPhase`. This phase is also suitable for performing a `--version` test for packages that support such flag. Here's an example:
|
||||
|
||||
```nix
|
||||
# Say the package is git
|
||||
stdenv.mkDerivation(finalAttrs: {
|
||||
pname = "git";
|
||||
version = "...";
|
||||
# ...
|
||||
|
||||
doInstallCheck = true;
|
||||
installCheckPhase = ''
|
||||
runHook preInstallCheck
|
||||
|
||||
echo checking if 'git --version' mentions ${finalAttrs.version}
|
||||
$out/bin/git --version | grep ${finalAttrs.version}
|
||||
|
||||
runHook postInstallCheck
|
||||
'';
|
||||
# ...
|
||||
})
|
||||
```
|
||||
|
||||
Most programs distributed by Nixpkgs support such a `--version` flag, and it can help give confidence that the package at least got compiled properly. However, tests that are slightly non trivial will better fit into `passthru.tests`, because:
|
||||
|
||||
* `passthru.tests` tests the 'real' package, independently from the environment in which it was built
|
||||
* We can run and debug a `passthru.tests` independently, after the package was built (useful if it takes a long time).
|
||||
* `installCheckPhase` adds overhead to each build
|
||||
|
||||
It is also possible to still use `passthru.tests` to test the version, with [testVersion](#tester-testVersion).
|
||||
|
||||
For more on how to write and run package tests, see [`pkgs/README.md`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#package-tests).
|
||||
|
||||
#### NixOS tests {#var-meta-tests-nixos}
|
||||
|
||||
The NixOS tests are available as `nixosTests` in parameters of derivations. For instance, the OpenSMTPD derivation includes lines similar to:
|
||||
|
||||
```nix
|
||||
{ /* ... , */ nixosTests }:
|
||||
{
|
||||
# ...
|
||||
passthru.tests = {
|
||||
basic-functionality-and-dovecot-integration = nixosTests.opensmtpd;
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
NixOS tests run in a VM, so they are slower than regular package tests. For more information see [NixOS module tests](https://nixos.org/manual/nixos/stable/#sec-nixos-tests).
|
||||
|
||||
Alternatively, you can specify other derivations as tests. You can make use of
|
||||
the optional parameter to inject the correct package without
|
||||
relying on non-local definitions, even in the presence of `overrideAttrs`.
|
||||
Here that's `finalAttrs.finalPackage`, but you could choose a different name if
|
||||
`finalAttrs` already exists in your scope.
|
||||
|
||||
`(mypkg.overrideAttrs f).passthru.tests` will be as expected, as long as the
|
||||
definition of `tests` does not rely on the original `mypkg` or overrides it in
|
||||
all places.
|
||||
|
||||
```nix
|
||||
# my-package/default.nix
|
||||
{ stdenv, callPackage }:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
# ...
|
||||
passthru.tests.example = callPackage ./example.nix { my-package = finalAttrs.finalPackage; };
|
||||
})
|
||||
```
|
||||
|
||||
```nix
|
||||
# my-package/example.nix
|
||||
{ runCommand, lib, my-package, ... }:
|
||||
runCommand "my-package-test" {
|
||||
nativeBuildInputs = [ my-package ];
|
||||
src = lib.sources.sourcesByRegex ./. [ ".*.in" ".*.expected" ];
|
||||
} ''
|
||||
my-package --help
|
||||
my-package <example.in >example.actual
|
||||
diff -U3 --color=auto example.expected example.actual
|
||||
mkdir $out
|
||||
''
|
||||
```
|
||||
|
||||
|
||||
### `timeout` {#var-meta-timeout}
|
||||
|
||||
A timeout (in seconds) for building the derivation. If the derivation takes longer than this time to build, Hydra will fail it due to breaking the timeout. However, all computers do not have the same computing power, hence some builders may decide to apply a multiplicative factor to this value. When filling this value in, try to keep it approximately consistent with other values already present in `nixpkgs`.
|
||||
|
157
doc/stdenv/passthru.chapter.md
Normal file
157
doc/stdenv/passthru.chapter.md
Normal file
@ -0,0 +1,157 @@
|
||||
# Passthru-attributes {#chap-passthru}
|
||||
[]{#var-stdenv-passthru} []{#special-variables} <!-- legacy anchors -->
|
||||
|
||||
As opposed to most other `mkDerivation` input attributes, `passthru` is not passed to the derivation's [`builder` executable](https://nixos.org/manual/nix/stable/expressions/derivations.html#attr-builder).
|
||||
Changing it will not trigger a rebuild – it is "passed through".
|
||||
Its value can be accessed as if it was set inside a derivation.
|
||||
|
||||
::: {.note}
|
||||
`passthru` attributes follow no particular schema, but there are a few [conventional patterns](#sec-common-passthru-attributes).
|
||||
:::
|
||||
|
||||
:::{.example #ex-accessing-passthru}
|
||||
|
||||
## Setting and accessing `passthru` attributes
|
||||
|
||||
```nix
|
||||
{ stdenv, fetchGit }:
|
||||
let
|
||||
hello = stdenv.mkDerivation {
|
||||
pname = "hello";
|
||||
src = fetchGit { /* ... */ };
|
||||
|
||||
passthru = {
|
||||
foo = "bar";
|
||||
baz = {
|
||||
value1 = 4;
|
||||
value2 = 5;
|
||||
};
|
||||
};
|
||||
};
|
||||
in
|
||||
hello.baz.value1
|
||||
```
|
||||
|
||||
```
|
||||
4
|
||||
```
|
||||
:::
|
||||
|
||||
## Common `passthru`-attributes {#sec-common-passthru-attributes}
|
||||
|
||||
Many `passthru` attributes are situational, so this section only lists recurring patterns.
|
||||
They fall in one of these categories:
|
||||
|
||||
- Global conventions, which are applied almost universally in Nixpkgs.
|
||||
|
||||
Generally these don't entail any special support built into the derivation they belong to.
|
||||
Common examples of this type are [`passthru.tests`](#var-passthru-tests) and [`passthru.updateScript`](#var-passthru-updateScript).
|
||||
|
||||
- Conventions for adding extra functionality to a derivation.
|
||||
|
||||
These tend to entail support from the derivation or the `passthru` attribute in question.
|
||||
Common examples of this type are `passthru.optional-dependencies`, `passthru.withPlugins`, and `passthru.withPackages`.
|
||||
All of those allow associating the package with a set of components built for that specific package, such as when building Python runtime environments using (`python.withPackages`)[#python.withpackages-function].
|
||||
|
||||
Attributes that apply only to particular [build helpers](#part-builders) or [language ecosystems](#chap-language-support) are documented there.
|
||||
|
||||
### `passthru.tests` {#var-passthru-tests}
|
||||
[]{#var-meta-tests} <!-- legacy anchor -->
|
||||
|
||||
An attribute set with tests as values.
|
||||
A test is a derivation that builds when the test passes and fails to build otherwise.
|
||||
|
||||
Run these tests with:
|
||||
|
||||
```ShellSession
|
||||
$ cd path/to/nixpkgs
|
||||
$ nix-build -A your-package.tests
|
||||
```
|
||||
|
||||
:::{.note}
|
||||
The Nixpkgs systems for continuous integration [Hydra](https://hydra.nixos.org/) and [`nixpkgs-review`](https://github.com/Mic92/nixpkgs-review) don't build these derivations by default, and ([`@ofborg`](https://github.com/NixOS/ofborg)) only builds them when evaluating pull requests for that particular package, or when manually instructed.
|
||||
:::
|
||||
|
||||
#### Package tests {#var-passthru-tests-packages}
|
||||
[]{#var-meta-tests-packages} <!-- legacy anchor -->
|
||||
|
||||
Tests that are part of the source package, if they run quickly, are typically executed in the [`installCheckPhase`](#var-stdenv-phases).
|
||||
This phase is also suitable for performing a `--version` test for packages that support such flag.
|
||||
Most programs distributed by Nixpkgs support such a `--version` flag, and successfully calling the program with that flag indicates that the package at least got compiled properly.
|
||||
|
||||
:::{.example #ex-checking-build-installCheckPhase}
|
||||
|
||||
## Checking builds with `installCheckPhase`
|
||||
|
||||
When building `git`, a rudimentary test for successful compilation would be running `git --version`:
|
||||
|
||||
```nix
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "git";
|
||||
version = "1.2.3";
|
||||
# ...
|
||||
doInstallCheck = true;
|
||||
installCheckPhase = ''
|
||||
runHook preInstallCheck
|
||||
echo checking if 'git --version' mentions ${finalAttrs.version}
|
||||
$out/bin/git --version | grep ${finalAttrs.version}
|
||||
runHook postInstallCheck
|
||||
'';
|
||||
# ...
|
||||
})
|
||||
```
|
||||
:::
|
||||
|
||||
However, tests that are non-trivial will better fit into `passthru.tests` because they:
|
||||
|
||||
- Access the package as consumers would, independently from the environment in which it was built
|
||||
- Can be run and debugged without rebuilding the package, which is useful if that takes a long time
|
||||
- Don't add overhad to each build, as opposed to `installCheckPhase`
|
||||
|
||||
It is also possible to use `passthru.tests` to test the version with [`testVersion`](#tester-testVersion).
|
||||
|
||||
<!-- NOTE(@fricklerhandwerk): one may argue whether that testing guide should rather be in the user's manual -->
|
||||
For more on how to write and run package tests for Nixpkgs, see the [testing section in the package contributor guide](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#package-tests).
|
||||
|
||||
#### NixOS tests {#var-passthru-tests-nixos}
|
||||
[]{#var-meta-tests-nixos} <!-- legacy anchor -->
|
||||
|
||||
Tests written for NixOS are available as the `nixosTests` argument to package recipes.
|
||||
For instance, the [OpenSMTPD derivation](https://search.nixos.org/packages?show=opensmtpd) includes lines similar to:
|
||||
|
||||
```nix
|
||||
{ nixosTests, ... }:
|
||||
{
|
||||
# ...
|
||||
passthru.tests = {
|
||||
basic-functionality-and-dovecot-integration = nixosTests.opensmtpd;
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
NixOS tests run in a virtual machine (VM), so they are slower than regular package tests.
|
||||
For more information see the NixOS manual on [NixOS module tests](https://nixos.org/manual/nixos/stable/#sec-nixos-tests).
|
||||
|
||||
### `passthru.updateScript` {#var-passthru-updateScript}
|
||||
<!-- legacy anchors -->
|
||||
[]{#var-passthru-updateScript-command}
|
||||
[]{#var-passthru-updateScript-set-command}
|
||||
[]{#var-passthru-updateScript-set-attrPath}
|
||||
[]{#var-passthru-updateScript-set-supportedFeatures}
|
||||
[]{#var-passthru-updateScript-env-UPDATE_NIX_NAME}
|
||||
[]{#var-passthru-updateScript-env-UPDATE_NIX_PNAME}
|
||||
[]{#var-passthru-updateScript-env-UPDATE_NIX_OLD_VERSION}
|
||||
[]{#var-passthru-updateScript-env-UPDATE_NIX_ATTR_PATH}
|
||||
[]{#var-passthru-updateScript-execution}
|
||||
[]{#var-passthru-updateScript-supported-features}
|
||||
[]{#var-passthru-updateScript-commit}
|
||||
[]{#var-passthru-updateScript-commit-attrPath}
|
||||
[]{#var-passthru-updateScript-commit-oldVersion}
|
||||
[]{#var-passthru-updateScript-commit-newVersion}
|
||||
[]{#var-passthru-updateScript-commit-files}
|
||||
[]{#var-passthru-updateScript-commit-commitBody}
|
||||
[]{#var-passthru-updateScript-commit-commitMessage}
|
||||
[]{#var-passthru-updateScript-example-commit}
|
||||
|
||||
Nixpkgs tries to automatically update all packages that have an `passthru.updateScript` attribute.
|
||||
See the [section on automatic package updates in the package contributor guide](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#automatic-package-updates) for details.
|
@ -442,145 +442,6 @@ If set to `true`, `stdenv` will pass specific flags to `make` and other build to
|
||||
|
||||
Unless set to `false`, some build systems with good support for parallel building including `cmake`, `meson`, and `qmake` will set it to `true`.
|
||||
|
||||
### Special variables {#special-variables}
|
||||
|
||||
#### `passthru` {#var-stdenv-passthru}
|
||||
|
||||
This is an attribute set which can be filled with arbitrary values. For example:
|
||||
|
||||
```nix
|
||||
{
|
||||
passthru = {
|
||||
foo = "bar";
|
||||
baz = {
|
||||
value1 = 4;
|
||||
value2 = 5;
|
||||
};
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
Values inside it are not passed to the builder, so you can change them without triggering a rebuild. However, they can be accessed outside of a derivation directly, as if they were set inside a derivation itself, e.g. `hello.baz.value1`. We don’t specify any usage or schema of `passthru` - it is meant for values that would be useful outside the derivation in other parts of a Nix expression (e.g. in other derivations). An example would be to convey some specific dependency of your derivation which contains a program with plugins support. Later, others who make derivations with plugins can use passed-through dependency to ensure that their plugin would be binary-compatible with built program.
|
||||
|
||||
#### `passthru.updateScript` {#var-passthru-updateScript}
|
||||
|
||||
A script to be run by `maintainers/scripts/update.nix` when the package is matched. The attribute can contain one of the following:
|
||||
|
||||
- []{#var-passthru-updateScript-command} an executable file, either on the file system:
|
||||
|
||||
```nix
|
||||
{
|
||||
passthru.updateScript = ./update.sh;
|
||||
}
|
||||
```
|
||||
|
||||
or inside the expression itself:
|
||||
|
||||
```nix
|
||||
{
|
||||
passthru.updateScript = writeScript "update-zoom-us" ''
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p curl pcre2 common-updater-scripts
|
||||
|
||||
set -eu -o pipefail
|
||||
|
||||
version="$(curl -sI https://zoom.us/client/latest/zoom_x86_64.tar.xz | grep -Fi 'Location:' | pcre2grep -o1 '/(([0-9]\.?)+)/')"
|
||||
update-source-version zoom-us "$version"
|
||||
'';
|
||||
}
|
||||
```
|
||||
|
||||
- a list, a script followed by arguments to be passed to it:
|
||||
|
||||
```nix
|
||||
{
|
||||
passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ];
|
||||
}
|
||||
```
|
||||
|
||||
- an attribute set containing:
|
||||
- [`command`]{#var-passthru-updateScript-set-command} – a string or list in the [format expected by `passthru.updateScript`](#var-passthru-updateScript-command).
|
||||
- [`attrPath`]{#var-passthru-updateScript-set-attrPath} (optional) – a string containing the canonical attribute path for the package. If present, it will be passed to the update script instead of the attribute path on which the package was discovered during Nixpkgs traversal.
|
||||
- [`supportedFeatures`]{#var-passthru-updateScript-set-supportedFeatures} (optional) – a list of the [extra features](#var-passthru-updateScript-supported-features) the script supports.
|
||||
|
||||
```nix
|
||||
{
|
||||
passthru.updateScript = {
|
||||
command = [ ../../update.sh pname ];
|
||||
attrPath = pname;
|
||||
supportedFeatures = [ /* ... */ ];
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
::: {.tip}
|
||||
A common pattern is to use the [`nix-update-script`](https://github.com/NixOS/nixpkgs/blob/master/pkgs/common-updater/nix-update.nix) attribute provided in Nixpkgs, which runs [`nix-update`](https://github.com/Mic92/nix-update):
|
||||
|
||||
```nix
|
||||
{
|
||||
passthru.updateScript = nix-update-script { };
|
||||
}
|
||||
```
|
||||
|
||||
For simple packages, this is often enough, and will ensure that the package is updated automatically by [`nixpkgs-update`](https://ryantm.github.io/nixpkgs-update) when a new version is released. The [update bot](https://nix-community.org/update-bot) runs periodically to attempt to automatically update packages, and will run `passthru.updateScript` if set. While not strictly necessary if the project is listed on [Repology](https://repology.org), using `nix-update-script` allows the package to update via many more sources (e.g. GitHub releases).
|
||||
:::
|
||||
|
||||
##### How update scripts are executed? {#var-passthru-updateScript-execution}
|
||||
|
||||
Update scripts are to be invoked by `maintainers/scripts/update.nix` script. You can run `nix-shell maintainers/scripts/update.nix` in the root of Nixpkgs repository for information on how to use it. `update.nix` offers several modes for selecting packages to update (e.g. select by attribute path, traverse Nixpkgs and filter by maintainer, etc.), and it will execute update scripts for all matched packages that have an `updateScript` attribute.
|
||||
|
||||
Each update script will be passed the following environment variables:
|
||||
|
||||
- [`UPDATE_NIX_NAME`]{#var-passthru-updateScript-env-UPDATE_NIX_NAME} – content of the `name` attribute of the updated package.
|
||||
- [`UPDATE_NIX_PNAME`]{#var-passthru-updateScript-env-UPDATE_NIX_PNAME} – content of the `pname` attribute of the updated package.
|
||||
- [`UPDATE_NIX_OLD_VERSION`]{#var-passthru-updateScript-env-UPDATE_NIX_OLD_VERSION} – content of the `version` attribute of the updated package.
|
||||
- [`UPDATE_NIX_ATTR_PATH`]{#var-passthru-updateScript-env-UPDATE_NIX_ATTR_PATH} – attribute path the `update.nix` discovered the package on (or the [canonical `attrPath`](#var-passthru-updateScript-set-attrPath) when available). Example: `pantheon.elementary-terminal`
|
||||
|
||||
::: {.note}
|
||||
An update script will be usually run from the root of the Nixpkgs repository but you should not rely on that. Also note that `update.nix` executes update scripts in parallel by default so you should avoid running `git commit` or any other commands that cannot handle that.
|
||||
:::
|
||||
|
||||
::: {.tip}
|
||||
While update scripts should not create commits themselves, `maintainers/scripts/update.nix` supports automatically creating commits when running it with `--argstr commit true`. If you need to customize commit message, you can have the update script implement [`commit`](#var-passthru-updateScript-commit) feature.
|
||||
:::
|
||||
|
||||
##### Supported features {#var-passthru-updateScript-supported-features}
|
||||
###### `commit` {#var-passthru-updateScript-commit}
|
||||
|
||||
This feature allows update scripts to *ask* `update.nix` to create Git commits.
|
||||
|
||||
When support of this feature is declared, whenever the update script exits with `0` return status, it is expected to print a JSON list containing an object described below for each updated attribute to standard output.
|
||||
|
||||
When `update.nix` is run with `--argstr commit true` arguments, it will create a separate commit for each of the objects. An empty list can be returned when the script did not update any files, for example, when the package is already at the latest version.
|
||||
|
||||
The commit object contains the following values:
|
||||
|
||||
- [`attrPath`]{#var-passthru-updateScript-commit-attrPath} – a string containing attribute path.
|
||||
- [`oldVersion`]{#var-passthru-updateScript-commit-oldVersion} – a string containing old version.
|
||||
- [`newVersion`]{#var-passthru-updateScript-commit-newVersion} – a string containing new version.
|
||||
- [`files`]{#var-passthru-updateScript-commit-files} – a non-empty list of file paths (as strings) to add to the commit.
|
||||
- [`commitBody`]{#var-passthru-updateScript-commit-commitBody} (optional) – a string with extra content to be appended to the default commit message (useful for adding changelog links).
|
||||
- [`commitMessage`]{#var-passthru-updateScript-commit-commitMessage} (optional) – a string to use instead of the default commit message.
|
||||
|
||||
If the returned array contains exactly one object (e.g. `[{}]`), all values are optional and will be determined automatically.
|
||||
|
||||
::: {.example #var-passthru-updateScript-example-commit}
|
||||
# Standard output of an update script using commit feature
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
"attrPath": "volume_key",
|
||||
"oldVersion": "0.3.11",
|
||||
"newVersion": "0.3.12",
|
||||
"files": [
|
||||
"/path/to/nixpkgs/pkgs/development/libraries/volume-key/default.nix"
|
||||
]
|
||||
}
|
||||
]
|
||||
```
|
||||
:::
|
||||
|
||||
### Fixed-point arguments of `mkDerivation` {#mkderivation-recursive-attributes}
|
||||
|
||||
If you pass a function to `mkDerivation`, it will receive as its argument the final arguments, including the overrides when reinvoked via `overrideAttrs`. For example:
|
||||
@ -633,7 +494,7 @@ in pkg
|
||||
|
||||
Unlike the `pkg` binding in the above example, the `finalAttrs` parameter always references the final attributes. For instance `(pkg.overrideAttrs(x)).finalAttrs.finalPackage` is identical to `pkg.overrideAttrs(x)`, whereas `(pkg.overrideAttrs(x)).original` is the same as the original `pkg`.
|
||||
|
||||
See also the section about [`passthru.tests`](#var-meta-tests).
|
||||
See also the section about [`passthru.tests`](#var-passthru-tests).
|
||||
|
||||
## Phases {#sec-stdenv-phases}
|
||||
|
||||
@ -1145,7 +1006,7 @@ This setup works as follows:
|
||||
The installCheck phase checks whether the package was installed correctly by running its test suite against the installed directories. The default `installCheck` calls `make installcheck`.
|
||||
|
||||
It is often better to add tests that are not part of the source distribution to `passthru.tests` (see
|
||||
[](#var-meta-tests)). This avoids adding overhead to every build and enables us to run them independently.
|
||||
[](#var-passthru-tests)). This avoids adding overhead to every build and enables us to run them independently.
|
||||
|
||||
#### Variables controlling the installCheck phase {#variables-controlling-the-installcheck-phase}
|
||||
|
||||
|
21
flake.nix
21
flake.nix
@ -5,14 +5,15 @@
|
||||
|
||||
outputs = { self }:
|
||||
let
|
||||
jobs = import ./pkgs/top-level/release.nix {
|
||||
nixpkgs = self;
|
||||
};
|
||||
|
||||
libVersionInfoOverlay = import ./lib/flake-version-info.nix self;
|
||||
lib = (import ./lib).extend libVersionInfoOverlay;
|
||||
|
||||
forAllSystems = lib.genAttrs lib.systems.flakeExposed;
|
||||
|
||||
jobs = forAllSystems (system: import ./pkgs/top-level/release.nix {
|
||||
nixpkgs = self;
|
||||
inherit system;
|
||||
});
|
||||
in
|
||||
{
|
||||
lib = lib.extend (final: prev: {
|
||||
@ -43,12 +44,14 @@
|
||||
);
|
||||
});
|
||||
|
||||
checks.x86_64-linux = {
|
||||
tarball = jobs.tarball;
|
||||
checks = forAllSystems (system: {
|
||||
tarball = jobs.${system}.tarball;
|
||||
} // lib.optionalAttrs (self.legacyPackages.${system}.stdenv.isLinux) {
|
||||
# Test that ensures that the nixosSystem function can accept a lib argument
|
||||
# Note: prefer not to extend or modify `lib`, especially if you want to share reusable modules
|
||||
# alternatives include: `import` a file, or put a custom library in an option or in `_module.args.<libname>`
|
||||
nixosSystemAcceptsLib = (self.lib.nixosSystem {
|
||||
pkgs = self.legacyPackages.${system};
|
||||
lib = self.lib.extend (final: prev: {
|
||||
ifThisFunctionIsMissingTheTestFails = final.id;
|
||||
});
|
||||
@ -64,13 +67,13 @@
|
||||
})
|
||||
];
|
||||
}).config.system.build.toplevel;
|
||||
};
|
||||
});
|
||||
|
||||
htmlDocs = {
|
||||
nixpkgsManual = jobs.manual;
|
||||
nixpkgsManual = builtins.mapAttrs (_: jobSet: jobSet.manual) jobs;
|
||||
nixosManual = (import ./nixos/release-small.nix {
|
||||
nixpkgs = self;
|
||||
}).nixos.manual.x86_64-linux;
|
||||
}).nixos.manual;
|
||||
};
|
||||
|
||||
# The "legacy" in `legacyPackages` doesn't imply that the packages exposed
|
||||
|
@ -24,7 +24,9 @@ in
|
||||
#
|
||||
# https://github.com/NixOS/nixpkgs/issues/272591
|
||||
#
|
||||
[(import ../../pkgs/test/release {})]
|
||||
[(import ../../pkgs/test/release {
|
||||
inherit pkgs lib nix;
|
||||
})]
|
||||
;
|
||||
|
||||
}
|
||||
|
@ -3308,6 +3308,16 @@
|
||||
github = "CaptainJawZ";
|
||||
githubId = 43111068;
|
||||
};
|
||||
caralice = {
|
||||
name = "Alice Carroll";
|
||||
email = "nix@alice-carroll.pet";
|
||||
github = "thecaralice";
|
||||
githubId = 43097806;
|
||||
keys = [
|
||||
{ fingerprint = "C7EA B182 2AB1 246C 0FB8 DD72 0514 0B67 902C D3AF"; }
|
||||
{ fingerprint = "DA77 EDDB 4AF5 244C 665E 9176 A05E A86A 5834 1AA8"; }
|
||||
];
|
||||
};
|
||||
CardboardTurkey = {
|
||||
name = "Kiran Ostrolenk";
|
||||
email = "kiran@ostrolenk.co.uk";
|
||||
@ -7074,6 +7084,12 @@
|
||||
githubId = 46672819;
|
||||
name = "Frido Friedemann";
|
||||
};
|
||||
friedow = {
|
||||
email = "christian@friedow.com";
|
||||
github = "friedow";
|
||||
githubId = 17351844;
|
||||
name = "Christian Friedow";
|
||||
};
|
||||
friedrichaltheide = {
|
||||
github = "friedrichaltheide";
|
||||
githubId = 11352905;
|
||||
|
@ -288,7 +288,7 @@ in
|
||||
softdep nvidia post: nvidia-uvm
|
||||
'';
|
||||
};
|
||||
systemd.tmpfiles.rules = lib.mkIf config.virtualisation.docker.enableNvidia "L+ /run/nvidia-docker/bin - - - - ${nvidia_x11.bin}/origBin";
|
||||
systemd.tmpfiles.rules = lib.mkIf config.virtualisation.docker.enableNvidia [ "L+ /run/nvidia-docker/bin - - - - ${nvidia_x11.bin}/origBin" ];
|
||||
services.udev.extraRules = ''
|
||||
# Create /dev/nvidia-uvm when the nvidia-uvm module is loaded.
|
||||
KERNEL=="nvidia", RUN+="${pkgs.runtimeShell} -c 'mknod -m 666 /dev/nvidiactl c 195 255'"
|
||||
|
@ -1,24 +1,22 @@
|
||||
{ config, lib, pkgs, ... }:
|
||||
|
||||
with lib;
|
||||
|
||||
let
|
||||
cfg = config.services.locate;
|
||||
isMLocate = hasPrefix "mlocate" cfg.package.name;
|
||||
isPLocate = hasPrefix "plocate" cfg.package.name;
|
||||
isMLocate = lib.hasPrefix "mlocate" cfg.package.name;
|
||||
isPLocate = lib.hasPrefix "plocate" cfg.package.name;
|
||||
isMorPLocate = isMLocate || isPLocate;
|
||||
isFindutils = hasPrefix "findutils" cfg.package.name;
|
||||
isFindutils = lib.hasPrefix "findutils" cfg.package.name;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
(mkRenamedOptionModule [ "services" "locate" "period" ] [ "services" "locate" "interval" ])
|
||||
(mkRenamedOptionModule [ "services" "locate" "locate" ] [ "services" "locate" "package" ])
|
||||
(mkRemovedOptionModule [ "services" "locate" "includeStore" ] "Use services.locate.prunePaths")
|
||||
(lib.mkRenamedOptionModule [ "services" "locate" "period" ] [ "services" "locate" "interval" ])
|
||||
(lib.mkRenamedOptionModule [ "services" "locate" "locate" ] [ "services" "locate" "package" ])
|
||||
(lib.mkRemovedOptionModule [ "services" "locate" "includeStore" ] "Use services.locate.prunePaths")
|
||||
];
|
||||
|
||||
options.services.locate = with types; {
|
||||
enable = mkOption {
|
||||
type = bool;
|
||||
options.services.locate = {
|
||||
enable = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
If enabled, NixOS will periodically update the database of
|
||||
@ -26,12 +24,12 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
package = mkPackageOption pkgs [ "findutils" "locate" ] {
|
||||
package = lib.mkPackageOption pkgs [ "findutils" "locate" ] {
|
||||
example = "mlocate";
|
||||
};
|
||||
|
||||
interval = mkOption {
|
||||
type = str;
|
||||
interval = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "02:15";
|
||||
example = "hourly";
|
||||
description = ''
|
||||
@ -46,24 +44,24 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
extraFlags = mkOption {
|
||||
type = listOf str;
|
||||
extraFlags = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default = [ ];
|
||||
description = ''
|
||||
Extra flags to pass to {command}`updatedb`.
|
||||
'';
|
||||
};
|
||||
|
||||
output = mkOption {
|
||||
type = path;
|
||||
output = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
default = "/var/cache/locatedb";
|
||||
description = ''
|
||||
The database file to build.
|
||||
'';
|
||||
};
|
||||
|
||||
localuser = mkOption {
|
||||
type = nullOr str;
|
||||
localuser = lib.mkOption {
|
||||
type = lib.types.nullOr lib.types.str;
|
||||
default = "nobody";
|
||||
description = ''
|
||||
The user to search non-network directories as, using
|
||||
@ -71,8 +69,8 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
pruneFS = mkOption {
|
||||
type = listOf str;
|
||||
pruneFS = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default = [
|
||||
"afs"
|
||||
"anon_inodefs"
|
||||
@ -158,8 +156,8 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
prunePaths = mkOption {
|
||||
type = listOf path;
|
||||
prunePaths = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.path;
|
||||
default = [
|
||||
"/tmp"
|
||||
"/var/tmp"
|
||||
@ -175,10 +173,10 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
pruneNames = mkOption {
|
||||
type = listOf str;
|
||||
pruneNames = lib.mkOption {
|
||||
type = lib.types.listOf lib.types.str;
|
||||
default = lib.optionals (!isFindutils) [ ".bzr" ".cache" ".git" ".hg" ".svn" ];
|
||||
defaultText = literalMD ''
|
||||
defaultText = lib.literalMD ''
|
||||
`[ ".bzr" ".cache" ".git" ".hg" ".svn" ]`, if
|
||||
supported by the locate implementation (i.e. mlocate or plocate).
|
||||
'';
|
||||
@ -187,8 +185,8 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
pruneBindMounts = mkOption {
|
||||
type = bool;
|
||||
pruneBindMounts = lib.mkOption {
|
||||
type = lib.types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Whether not to index bind mounts
|
||||
@ -197,10 +195,10 @@ in
|
||||
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
users.groups = mkMerge [
|
||||
(mkIf isMLocate { mlocate = { }; })
|
||||
(mkIf isPLocate { plocate = { }; })
|
||||
config = lib.mkIf cfg.enable {
|
||||
users.groups = lib.mkMerge [
|
||||
(lib.mkIf isMLocate { mlocate = { }; })
|
||||
(lib.mkIf isPLocate { plocate = { }; })
|
||||
];
|
||||
|
||||
security.wrappers =
|
||||
@ -211,46 +209,46 @@ in
|
||||
setgid = true;
|
||||
setuid = false;
|
||||
};
|
||||
mlocate = mkIf isMLocate {
|
||||
mlocate = lib.mkIf isMLocate {
|
||||
group = "mlocate";
|
||||
source = "${cfg.package}/bin/locate";
|
||||
};
|
||||
plocate = mkIf isPLocate {
|
||||
plocate = lib.mkIf isPLocate {
|
||||
group = "plocate";
|
||||
source = "${cfg.package}/bin/plocate";
|
||||
};
|
||||
in
|
||||
mkIf isMorPLocate {
|
||||
locate = mkMerge [ common mlocate plocate ];
|
||||
plocate = mkIf isPLocate (mkMerge [ common plocate ]);
|
||||
lib.mkIf isMorPLocate {
|
||||
locate = lib.mkMerge [ common mlocate plocate ];
|
||||
plocate = lib.mkIf isPLocate (lib.mkMerge [ common plocate ]);
|
||||
};
|
||||
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
|
||||
environment.variables.LOCATE_PATH = cfg.output;
|
||||
|
||||
environment.etc = {
|
||||
environment = {
|
||||
# write /etc/updatedb.conf for manual calls to `updatedb`
|
||||
"updatedb.conf" = {
|
||||
text = ''
|
||||
PRUNEFS="${lib.concatStringsSep " " cfg.pruneFS}"
|
||||
PRUNENAMES="${lib.concatStringsSep " " cfg.pruneNames}"
|
||||
PRUNEPATHS="${lib.concatStringsSep " " cfg.prunePaths}"
|
||||
PRUNE_BIND_MOUNTS="${if cfg.pruneBindMounts then "yes" else "no"}"
|
||||
'';
|
||||
etc."updatedb.conf".text = ''
|
||||
PRUNEFS="${lib.concatStringsSep " " cfg.pruneFS}"
|
||||
PRUNENAMES="${lib.concatStringsSep " " cfg.pruneNames}"
|
||||
PRUNEPATHS="${lib.concatStringsSep " " cfg.prunePaths}"
|
||||
PRUNE_BIND_MOUNTS="${if cfg.pruneBindMounts then "yes" else "no"}"
|
||||
'';
|
||||
|
||||
systemPackages = [ cfg.package ];
|
||||
|
||||
variables = lib.mkIf isFindutils {
|
||||
LOCATE_PATH = cfg.output;
|
||||
};
|
||||
};
|
||||
|
||||
warnings = optional (isMorPLocate && cfg.localuser != null)
|
||||
warnings = lib.optional (isMorPLocate && cfg.localuser != null)
|
||||
"mlocate and plocate do not support the services.locate.localuser option. updatedb will run as root. Silence this warning by setting services.locate.localuser = null."
|
||||
++ optional (isFindutils && cfg.pruneNames != [ ])
|
||||
++ lib.optional (isFindutils && cfg.pruneNames != [ ])
|
||||
"findutils locate does not support pruning by directory component"
|
||||
++ optional (isFindutils && cfg.pruneBindMounts)
|
||||
++ lib.optional (isFindutils && cfg.pruneBindMounts)
|
||||
"findutils locate does not support skipping bind mounts";
|
||||
|
||||
systemd.services.update-locatedb = {
|
||||
description = "Update Locate Database";
|
||||
path = mkIf (!isMorPLocate) [ pkgs.su ];
|
||||
path = lib.mkIf (!isMorPLocate) [ pkgs.su ];
|
||||
|
||||
# mlocate's updatedb takes flags via a configuration file or
|
||||
# on the command line, but not by environment variable.
|
||||
@ -258,42 +256,44 @@ in
|
||||
if isMorPLocate then
|
||||
let
|
||||
toFlags = x:
|
||||
optional (cfg.${x} != [ ])
|
||||
"--${lib.toLower x} '${concatStringsSep " " cfg.${x}}'";
|
||||
args = concatLists (map toFlags [ "pruneFS" "pruneNames" "prunePaths" ]);
|
||||
lib.optional (cfg.${x} != [ ])
|
||||
"--${lib.toLower x} '${lib.concatStringsSep " " cfg.${x}}'";
|
||||
args = lib.concatLists (map toFlags [ "pruneFS" "pruneNames" "prunePaths" ]);
|
||||
in
|
||||
''
|
||||
exec ${cfg.package}/bin/updatedb \
|
||||
--output ${toString cfg.output} ${concatStringsSep " " args} \
|
||||
--output ${toString cfg.output} ${lib.concatStringsSep " " args} \
|
||||
--prune-bind-mounts ${if cfg.pruneBindMounts then "yes" else "no"} \
|
||||
${concatStringsSep " " cfg.extraFlags}
|
||||
${lib.concatStringsSep " " cfg.extraFlags}
|
||||
''
|
||||
else ''
|
||||
exec ${cfg.package}/bin/updatedb \
|
||||
${optionalString (cfg.localuser != null && !isMorPLocate) "--localuser=${cfg.localuser}"} \
|
||||
--output=${toString cfg.output} ${concatStringsSep " " cfg.extraFlags}
|
||||
${lib.optionalString (cfg.localuser != null && !isMorPLocate) "--localuser=${cfg.localuser}"} \
|
||||
--output=${toString cfg.output} ${lib.concatStringsSep " " cfg.extraFlags}
|
||||
'';
|
||||
environment = optionalAttrs (!isMorPLocate) {
|
||||
PRUNEFS = concatStringsSep " " cfg.pruneFS;
|
||||
PRUNEPATHS = concatStringsSep " " cfg.prunePaths;
|
||||
PRUNENAMES = concatStringsSep " " cfg.pruneNames;
|
||||
environment = lib.optionalAttrs (!isMorPLocate) {
|
||||
PRUNEFS = lib.concatStringsSep " " cfg.pruneFS;
|
||||
PRUNEPATHS = lib.concatStringsSep " " cfg.prunePaths;
|
||||
PRUNENAMES = lib.concatStringsSep " " cfg.pruneNames;
|
||||
PRUNE_BIND_MOUNTS = if cfg.pruneBindMounts then "yes" else "no";
|
||||
};
|
||||
serviceConfig.Nice = 19;
|
||||
serviceConfig.IOSchedulingClass = "idle";
|
||||
serviceConfig.PrivateTmp = "yes";
|
||||
serviceConfig.PrivateNetwork = "yes";
|
||||
serviceConfig.NoNewPrivileges = "yes";
|
||||
serviceConfig.ReadOnlyPaths = "/";
|
||||
# Use dirOf cfg.output because mlocate creates temporary files next to
|
||||
# the actual database. We could specify and create them as well,
|
||||
# but that would make this quite brittle when they change something.
|
||||
# NOTE: If /var/cache does not exist, this leads to the misleading error message:
|
||||
# update-locatedb.service: Failed at step NAMESPACE spawning …/update-locatedb-start: No such file or directory
|
||||
serviceConfig.ReadWritePaths = dirOf cfg.output;
|
||||
serviceConfig = {
|
||||
Nice = 19;
|
||||
IOSchedulingClass = "idle";
|
||||
PrivateTmp = "yes";
|
||||
PrivateNetwork = "yes";
|
||||
NoNewPrivileges = "yes";
|
||||
ReadOnlyPaths = "/";
|
||||
# Use dirOf cfg.output because mlocate creates temporary files next to
|
||||
# the actual database. We could specify and create them as well,
|
||||
# but that would make this quite brittle when they change something.
|
||||
# NOTE: If /var/cache does not exist, this leads to the misleading error message:
|
||||
# update-locatedb.service: Failed at step NAMESPACE spawning …/update-locatedb-start: No such file or directory
|
||||
ReadWritePaths = dirOf cfg.output;
|
||||
};
|
||||
};
|
||||
|
||||
systemd.timers.update-locatedb = mkIf (cfg.interval != "never") {
|
||||
systemd.timers.update-locatedb = lib.mkIf (cfg.interval != "never") {
|
||||
description = "Update timer for locate database";
|
||||
partOf = [ "update-locatedb.service" ];
|
||||
wantedBy = [ "timers.target" ];
|
||||
|
@ -4,7 +4,18 @@ let
|
||||
cfg = config.security.loginDefs;
|
||||
in
|
||||
{
|
||||
options = with lib.types; {
|
||||
options = {
|
||||
|
||||
security.shadow.enable = lib.mkEnableOption "" // {
|
||||
default = true;
|
||||
description = ''
|
||||
Enable the shadow authentication suite, which provides critical programs such as su, login, passwd.
|
||||
|
||||
Note: This is currently experimental. Only disable this if you're
|
||||
confident that you can recover your system if it breaks.
|
||||
'';
|
||||
};
|
||||
|
||||
security.loginDefs = {
|
||||
package = lib.mkPackageOption pkgs "shadow" { };
|
||||
|
||||
@ -12,7 +23,7 @@ in
|
||||
description = ''
|
||||
Use chfn SUID to allow non-root users to change their account GECOS information.
|
||||
'';
|
||||
type = nullOr str;
|
||||
type = lib.types.nullOr lib.types.str;
|
||||
default = null;
|
||||
};
|
||||
|
||||
@ -22,7 +33,7 @@ in
|
||||
the site-specific configuration for the shadow password suite.
|
||||
See login.defs(5) man page for available options.
|
||||
'';
|
||||
type = submodule {
|
||||
type = lib.types.submodule {
|
||||
freeformType = (pkgs.formats.keyValue { }).type;
|
||||
/* There are three different sources for user/group id ranges, each of which gets
|
||||
used by different programs:
|
||||
@ -37,62 +48,62 @@ in
|
||||
DEFAULT_HOME = lib.mkOption {
|
||||
description = "Indicate if login is allowed if we can't cd to the home directory.";
|
||||
default = "yes";
|
||||
type = enum [ "yes" "no" ];
|
||||
type = lib.types.enum [ "yes" "no" ];
|
||||
};
|
||||
|
||||
ENCRYPT_METHOD = lib.mkOption {
|
||||
description = "This defines the system default encryption algorithm for encrypting passwords.";
|
||||
# The default crypt() method, keep in sync with the PAM default
|
||||
default = "YESCRYPT";
|
||||
type = enum [ "YESCRYPT" "SHA512" "SHA256" "MD5" "DES"];
|
||||
type = lib.types.enum [ "YESCRYPT" "SHA512" "SHA256" "MD5" "DES"];
|
||||
};
|
||||
|
||||
SYS_UID_MIN = lib.mkOption {
|
||||
description = "Range of user IDs used for the creation of system users by useradd or newusers.";
|
||||
default = 400;
|
||||
type = int;
|
||||
type = lib.types.int;
|
||||
};
|
||||
|
||||
SYS_UID_MAX = lib.mkOption {
|
||||
description = "Range of user IDs used for the creation of system users by useradd or newusers.";
|
||||
default = 999;
|
||||
type = int;
|
||||
type = lib.types.int;
|
||||
};
|
||||
|
||||
UID_MIN = lib.mkOption {
|
||||
description = "Range of user IDs used for the creation of regular users by useradd or newusers.";
|
||||
default = 1000;
|
||||
type = int;
|
||||
type = lib.types.int;
|
||||
};
|
||||
|
||||
UID_MAX = lib.mkOption {
|
||||
description = "Range of user IDs used for the creation of regular users by useradd or newusers.";
|
||||
default = 29999;
|
||||
type = int;
|
||||
type = lib.types.int;
|
||||
};
|
||||
|
||||
SYS_GID_MIN = lib.mkOption {
|
||||
description = "Range of group IDs used for the creation of system groups by useradd, groupadd, or newusers";
|
||||
default = 400;
|
||||
type = int;
|
||||
type = lib.types.int;
|
||||
};
|
||||
|
||||
SYS_GID_MAX = lib.mkOption {
|
||||
description = "Range of group IDs used for the creation of system groups by useradd, groupadd, or newusers";
|
||||
default = 999;
|
||||
type = int;
|
||||
type = lib.types.int;
|
||||
};
|
||||
|
||||
GID_MIN = lib.mkOption {
|
||||
description = "Range of group IDs used for the creation of regular groups by useradd, groupadd, or newusers.";
|
||||
default = 1000;
|
||||
type = int;
|
||||
type = lib.types.int;
|
||||
};
|
||||
|
||||
GID_MAX = lib.mkOption {
|
||||
description = "Range of group IDs used for the creation of regular groups by useradd, groupadd, or newusers.";
|
||||
default = 29999;
|
||||
type = int;
|
||||
type = lib.types.int;
|
||||
};
|
||||
|
||||
TTYGROUP = lib.mkOption {
|
||||
@ -100,7 +111,7 @@ in
|
||||
The terminal permissions: the login tty will be owned by the TTYGROUP group,
|
||||
and the permissions will be set to TTYPERM'';
|
||||
default = "tty";
|
||||
type = str;
|
||||
type = lib.types.str;
|
||||
};
|
||||
|
||||
TTYPERM = lib.mkOption {
|
||||
@ -108,14 +119,14 @@ in
|
||||
The terminal permissions: the login tty will be owned by the TTYGROUP group,
|
||||
and the permissions will be set to TTYPERM'';
|
||||
default = "0620";
|
||||
type = str;
|
||||
type = lib.types.str;
|
||||
};
|
||||
|
||||
# Ensure privacy for newly created home directories.
|
||||
UMASK = lib.mkOption {
|
||||
description = "The file mode creation mask is initialized to this value.";
|
||||
default = "077";
|
||||
type = str;
|
||||
type = lib.types.str;
|
||||
};
|
||||
};
|
||||
};
|
||||
@ -132,107 +143,115 @@ in
|
||||
used outside the store (in particular in /etc/passwd).
|
||||
'';
|
||||
example = lib.literalExpression "pkgs.zsh";
|
||||
type = either path shellPackage;
|
||||
type = lib.types.either lib.types.path lib.types.shellPackage;
|
||||
};
|
||||
};
|
||||
|
||||
###### implementation
|
||||
|
||||
config = {
|
||||
assertions = [
|
||||
{
|
||||
assertion = cfg.settings.SYS_UID_MIN <= cfg.settings.SYS_UID_MAX;
|
||||
message = "SYS_UID_MIN must be less than or equal to SYS_UID_MAX";
|
||||
}
|
||||
{
|
||||
assertion = cfg.settings.UID_MIN <= cfg.settings.UID_MAX;
|
||||
message = "UID_MIN must be less than or equal to UID_MAX";
|
||||
}
|
||||
{
|
||||
assertion = cfg.settings.SYS_GID_MIN <= cfg.settings.SYS_GID_MAX;
|
||||
message = "SYS_GID_MIN must be less than or equal to SYS_GID_MAX";
|
||||
}
|
||||
{
|
||||
assertion = cfg.settings.GID_MIN <= cfg.settings.GID_MAX;
|
||||
message = "GID_MIN must be less than or equal to GID_MAX";
|
||||
}
|
||||
];
|
||||
config = lib.mkMerge [
|
||||
{
|
||||
assertions = [
|
||||
{
|
||||
assertion = config.security.shadow.enable || config.services.greetd.enable;
|
||||
message = "You must enable at least one VT login method, either security.shadow.enable or services.greetd.enable";
|
||||
}
|
||||
];
|
||||
}
|
||||
(lib.mkIf config.security.shadow.enable {
|
||||
assertions = [
|
||||
{
|
||||
assertion = cfg.settings.SYS_UID_MIN <= cfg.settings.SYS_UID_MAX;
|
||||
message = "SYS_UID_MIN must be less than or equal to SYS_UID_MAX";
|
||||
}
|
||||
{
|
||||
assertion = cfg.settings.UID_MIN <= cfg.settings.UID_MAX;
|
||||
message = "UID_MIN must be less than or equal to UID_MAX";
|
||||
}
|
||||
{
|
||||
assertion = cfg.settings.SYS_GID_MIN <= cfg.settings.SYS_GID_MAX;
|
||||
message = "SYS_GID_MIN must be less than or equal to SYS_GID_MAX";
|
||||
}
|
||||
{
|
||||
assertion = cfg.settings.GID_MIN <= cfg.settings.GID_MAX;
|
||||
message = "GID_MIN must be less than or equal to GID_MAX";
|
||||
}
|
||||
];
|
||||
|
||||
security.loginDefs.settings.CHFN_RESTRICT =
|
||||
lib.mkIf (cfg.chfnRestrict != null) cfg.chfnRestrict;
|
||||
security.loginDefs.settings.CHFN_RESTRICT = lib.mkIf (cfg.chfnRestrict != null) cfg.chfnRestrict;
|
||||
|
||||
environment.systemPackages = lib.optional config.users.mutableUsers cfg.package
|
||||
++ lib.optional (lib.types.shellPackage.check config.users.defaultUserShell) config.users.defaultUserShell
|
||||
++ lib.optional (cfg.chfnRestrict != null) pkgs.util-linux;
|
||||
environment.systemPackages = lib.optional config.users.mutableUsers cfg.package
|
||||
++ lib.optional (lib.types.shellPackage.check config.users.defaultUserShell) config.users.defaultUserShell
|
||||
++ lib.optional (cfg.chfnRestrict != null) pkgs.util-linux;
|
||||
|
||||
environment.etc =
|
||||
# Create custom toKeyValue generator
|
||||
# see https://man7.org/linux/man-pages/man5/login.defs.5.html for config specification
|
||||
let
|
||||
toKeyValue = lib.generators.toKeyValue {
|
||||
mkKeyValue = lib.generators.mkKeyValueDefault { } " ";
|
||||
environment.etc =
|
||||
# Create custom toKeyValue generator
|
||||
# see https://man7.org/linux/man-pages/man5/login.defs.5.html for config specification
|
||||
let
|
||||
toKeyValue = lib.generators.toKeyValue {
|
||||
mkKeyValue = lib.generators.mkKeyValueDefault { } " ";
|
||||
};
|
||||
in {
|
||||
# /etc/login.defs: global configuration for pwdutils.
|
||||
# You cannot login without it!
|
||||
"login.defs".source = pkgs.writeText "login.defs" (toKeyValue cfg.settings);
|
||||
|
||||
# /etc/default/useradd: configuration for useradd.
|
||||
"default/useradd".source = pkgs.writeText "useradd" ''
|
||||
GROUP=100
|
||||
HOME=/home
|
||||
SHELL=${utils.toShellPath config.users.defaultUserShell}
|
||||
'';
|
||||
};
|
||||
in
|
||||
{
|
||||
# /etc/login.defs: global configuration for pwdutils.
|
||||
# You cannot login without it!
|
||||
"login.defs".source = pkgs.writeText "login.defs" (toKeyValue cfg.settings);
|
||||
|
||||
# /etc/default/useradd: configuration for useradd.
|
||||
"default/useradd".source = pkgs.writeText "useradd" ''
|
||||
GROUP=100
|
||||
HOME=/home
|
||||
SHELL=${utils.toShellPath config.users.defaultUserShell}
|
||||
'';
|
||||
};
|
||||
|
||||
security.pam.services = {
|
||||
chsh = { rootOK = true; };
|
||||
chfn = { rootOK = true; };
|
||||
su = {
|
||||
rootOK = true;
|
||||
forwardXAuth = true;
|
||||
logFailures = true;
|
||||
};
|
||||
passwd = { };
|
||||
# Note: useradd, groupadd etc. aren't setuid root, so it
|
||||
# doesn't really matter what the PAM config says as long as it
|
||||
# lets root in.
|
||||
useradd.rootOK = true;
|
||||
usermod.rootOK = true;
|
||||
userdel.rootOK = true;
|
||||
groupadd.rootOK = true;
|
||||
groupmod.rootOK = true;
|
||||
groupmems.rootOK = true;
|
||||
groupdel.rootOK = true;
|
||||
login = {
|
||||
startSession = true;
|
||||
allowNullPassword = true;
|
||||
showMotd = true;
|
||||
updateWtmp = true;
|
||||
};
|
||||
chpasswd = { rootOK = true; };
|
||||
};
|
||||
|
||||
security.wrappers =
|
||||
let
|
||||
mkSetuidRoot = source: {
|
||||
setuid = true;
|
||||
owner = "root";
|
||||
group = "root";
|
||||
inherit source;
|
||||
security.pam.services = {
|
||||
chsh.rootOK = true;
|
||||
chfn.rootOK = true;
|
||||
su = {
|
||||
rootOK = true;
|
||||
forwardXAuth = true;
|
||||
logFailures = true;
|
||||
};
|
||||
in
|
||||
{
|
||||
su = mkSetuidRoot "${cfg.package.su}/bin/su";
|
||||
sg = mkSetuidRoot "${cfg.package.out}/bin/sg";
|
||||
newgrp = mkSetuidRoot "${cfg.package.out}/bin/newgrp";
|
||||
newuidmap = mkSetuidRoot "${cfg.package.out}/bin/newuidmap";
|
||||
newgidmap = mkSetuidRoot "${cfg.package.out}/bin/newgidmap";
|
||||
}
|
||||
// lib.optionalAttrs config.users.mutableUsers {
|
||||
chsh = mkSetuidRoot "${cfg.package.out}/bin/chsh";
|
||||
passwd = mkSetuidRoot "${cfg.package.out}/bin/passwd";
|
||||
passwd = { };
|
||||
# Note: useradd, groupadd etc. aren't setuid root, so it
|
||||
# doesn't really matter what the PAM config says as long as it
|
||||
# lets root in.
|
||||
useradd.rootOK = true;
|
||||
usermod.rootOK = true;
|
||||
userdel.rootOK = true;
|
||||
groupadd.rootOK = true;
|
||||
groupmod.rootOK = true;
|
||||
groupmems.rootOK = true;
|
||||
groupdel.rootOK = true;
|
||||
login = {
|
||||
startSession = true;
|
||||
allowNullPassword = true;
|
||||
showMotd = true;
|
||||
updateWtmp = true;
|
||||
};
|
||||
chpasswd.rootOK = true;
|
||||
};
|
||||
};
|
||||
|
||||
security.wrappers =
|
||||
let
|
||||
mkSetuidRoot = source: {
|
||||
setuid = true;
|
||||
owner = "root";
|
||||
group = "root";
|
||||
inherit source;
|
||||
};
|
||||
in
|
||||
{
|
||||
su = mkSetuidRoot "${cfg.package.su}/bin/su";
|
||||
sg = mkSetuidRoot "${cfg.package.out}/bin/sg";
|
||||
newgrp = mkSetuidRoot "${cfg.package.out}/bin/newgrp";
|
||||
newuidmap = mkSetuidRoot "${cfg.package.out}/bin/newuidmap";
|
||||
newgidmap = mkSetuidRoot "${cfg.package.out}/bin/newgidmap";
|
||||
}
|
||||
// lib.optionalAttrs config.users.mutableUsers {
|
||||
chsh = mkSetuidRoot "${cfg.package.out}/bin/chsh";
|
||||
passwd = mkSetuidRoot "${cfg.package.out}/bin/passwd";
|
||||
};
|
||||
})
|
||||
];
|
||||
}
|
||||
|
@ -455,7 +455,7 @@ in
|
||||
after = [ "public-inbox-init.service" "public-inbox-watch.service" ];
|
||||
requires = [ "public-inbox-init.service" ];
|
||||
serviceConfig = {
|
||||
BindPathsReadOnly =
|
||||
BindReadOnlyPaths =
|
||||
map (c: c.dir) (lib.attrValues cfg.settings.coderepo);
|
||||
ExecStart = escapeShellArgs (
|
||||
[ "${cfg.package}/bin/public-inbox-httpd" ] ++
|
||||
|
@ -140,8 +140,8 @@ in
|
||||
|
||||
options.api.endpoint = mkOption {
|
||||
type = str;
|
||||
default = "http://localhost:${toString cfg.settings.web.listen.port}";
|
||||
defaultText = literalExpression ''"http://localhost:''${config.services.scrutiny.settings.web.listen.port}"'';
|
||||
default = "http://${cfg.settings.web.listen.host}:${toString cfg.settings.web.listen.port}";
|
||||
defaultText = literalExpression ''"http://''${config.services.scrutiny.settings.web.listen.host}:''${config.services.scrutiny.settings.web.listen.port}"'';
|
||||
description = "Scrutiny app API endpoint for sending metrics to.";
|
||||
};
|
||||
|
||||
|
@ -82,7 +82,7 @@ in
|
||||
type = types.bool;
|
||||
default = false;
|
||||
description = ''
|
||||
Allow leaving {option}`config.boot.initrd.network.ssh` empty,
|
||||
Allow leaving {option}`config.boot.initrd.network.ssh.hostKeys` empty,
|
||||
to deploy ssh host keys out of band.
|
||||
'';
|
||||
};
|
||||
|
@ -380,6 +380,7 @@ in {
|
||||
grafana-agent = handleTest ./grafana-agent.nix {};
|
||||
graphite = handleTest ./graphite.nix {};
|
||||
graylog = handleTest ./graylog.nix {};
|
||||
greetd-no-shadow = handleTest ./greetd-no-shadow.nix {};
|
||||
grocy = handleTest ./grocy.nix {};
|
||||
grow-partition = runTest ./grow-partition.nix;
|
||||
grub = handleTest ./grub.nix {};
|
||||
|
49
nixos/tests/greetd-no-shadow.nix
Normal file
49
nixos/tests/greetd-no-shadow.nix
Normal file
@ -0,0 +1,49 @@
|
||||
import ./make-test-python.nix ({ pkgs, latestKernel ? false, ... }:
|
||||
{
|
||||
name = "greetd-no-shadow";
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [ ];
|
||||
};
|
||||
|
||||
nodes.machine =
|
||||
{ pkgs, lib, ... }: {
|
||||
|
||||
users.users.alice = {
|
||||
isNormalUser = true;
|
||||
group = "alice";
|
||||
password = "foobar";
|
||||
};
|
||||
users.groups.alice = {};
|
||||
|
||||
# This means login(1) breaks, so we must use greetd/agreety instead.
|
||||
security.shadow.enable = false;
|
||||
|
||||
services.greetd = {
|
||||
enable = true;
|
||||
settings = {
|
||||
default_session = {
|
||||
command = "${pkgs.greetd.greetd}/bin/agreety --cmd bash";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
machine.start()
|
||||
|
||||
machine.wait_for_unit("multi-user.target")
|
||||
machine.wait_until_succeeds("pgrep -f 'agretty.*tty1'")
|
||||
machine.screenshot("postboot")
|
||||
|
||||
with subtest("Log in as alice on a virtual console"):
|
||||
machine.wait_until_tty_matches("1", "login: ")
|
||||
machine.send_chars("alice\n")
|
||||
machine.wait_until_tty_matches("1", "login: alice")
|
||||
machine.wait_until_succeeds("pgrep login")
|
||||
machine.wait_until_tty_matches("1", "Password: ")
|
||||
machine.send_chars("foobar\n")
|
||||
machine.wait_until_succeeds("pgrep -u alice bash")
|
||||
machine.send_chars("touch done\n")
|
||||
machine.wait_for_file("/home/alice/done")
|
||||
'';
|
||||
})
|
174
pkgs/README.md
174
pkgs/README.md
@ -599,6 +599,34 @@ buildGoModule rec {
|
||||
}
|
||||
```
|
||||
|
||||
Any derivaton can be specified as a test, even if it's in a different file.
|
||||
Such a derivaton that implements a test can depend on the package under test, even in the presence of `overrideAttrs`.
|
||||
|
||||
In the following example, `(my-package.overrideAttrs f).passthru.tests` will work as expected, as long as the definition of `tests` does not rely on the original `my-package` or overrides all occurrences of `my-package`:
|
||||
|
||||
```nix
|
||||
# my-package/default.nix
|
||||
{ stdenv, callPackage }:
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
# ...
|
||||
passthru.tests.example = callPackage ./example.nix { my-package = finalAttrs.finalPackage; };
|
||||
})
|
||||
```
|
||||
|
||||
```nix
|
||||
# my-package/example.nix
|
||||
{ runCommand, lib, my-package, ... }:
|
||||
runCommand "my-package-test" {
|
||||
nativeBuildInputs = [ my-package ];
|
||||
src = lib.sources.sourcesByRegex ./. [ ".*.in" ".*.expected" ];
|
||||
} ''
|
||||
my-package --help
|
||||
my-package <example.in >example.actual
|
||||
diff -U3 --color=auto example.expected example.actual
|
||||
mkdir $out
|
||||
''
|
||||
```
|
||||
|
||||
### Writing larger package tests
|
||||
[larger-package-tests]: #writing-larger-package-tests
|
||||
|
||||
@ -684,6 +712,152 @@ stdenv.mkDerivation {
|
||||
}
|
||||
```
|
||||
|
||||
## Automatic package updates
|
||||
[automatic-package-updates]: #automatic-package-updates
|
||||
|
||||
Nixpkgs periodically tries to update all packages that have a `passthru.updateScript` attribute.
|
||||
|
||||
> [!Note]
|
||||
> A common pattern is to use the [`nix-update-script`](../pkgs/common-updater/nix-update.nix) attribute provided in Nixpkgs, which runs [`nix-update`](https://github.com/Mic92/nix-update):
|
||||
>
|
||||
> ```nix
|
||||
> { stdenv, nix-update-script }:
|
||||
> stdenv.mkDerivation {
|
||||
> # ...
|
||||
> passthru.updateScript = nix-update-script { };
|
||||
> }
|
||||
> ```
|
||||
>
|
||||
> For simple packages, this is often enough, and will ensure that the package is updated automatically by [`nixpkgs-update`](https://ryantm.github.io/nixpkgs-update) when a new version is released.
|
||||
> The [update bot](https://nix-community.org/update-bot) runs periodically to attempt to automatically update packages, and will run `passthru.updateScript` if set.
|
||||
> While not strictly necessary if the project is listed on [Repology](https://repology.org), using `nix-update-script` allows the package to update via many more sources (e.g. GitHub releases).
|
||||
|
||||
The `passthru.updateScript` attribute can contain one of the following:
|
||||
|
||||
- an executable file, either on the file system:
|
||||
|
||||
```nix
|
||||
{ stdenv }:
|
||||
stdenv.mkDerivation {
|
||||
# ...
|
||||
passthru.updateScript = ./update.sh;
|
||||
}
|
||||
```
|
||||
|
||||
or inside the expression itself:
|
||||
|
||||
```nix
|
||||
{ stdenv, writeScript }:
|
||||
stdenv.mkDerivation {
|
||||
# ...
|
||||
passthru.updateScript = writeScript "update-zoom-us" ''
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p curl pcre2 common-updater-scripts
|
||||
|
||||
set -eu -o pipefail
|
||||
|
||||
version="$(curl -sI https://zoom.us/client/latest/zoom_x86_64.tar.xz | grep -Fi 'Location:' | pcre2grep -o1 '/(([0-9]\.?)+)/')"
|
||||
update-source-version zoom-us "$version"
|
||||
'';
|
||||
}
|
||||
```
|
||||
|
||||
- a list, a script file followed by arguments to be passed to it:
|
||||
|
||||
```nix
|
||||
{ stdenv }:
|
||||
stdenv.mkDerivation {
|
||||
# ...
|
||||
passthru.updateScript = [ ../../update.sh pname "--requested-release=unstable" ];
|
||||
}
|
||||
```
|
||||
|
||||
- an attribute set containing:
|
||||
- `command`
|
||||
|
||||
A string or list in the [format expected by `passthru.updateScript`][automatic-package-updates]
|
||||
|
||||
- `attrPath` (optional)
|
||||
|
||||
A string containing the canonical attribute path for the package.
|
||||
|
||||
If present, it will be passed to the update script instead of the attribute path on which the package was discovered during Nixpkgs traversal.
|
||||
|
||||
- `supportedFeatures` (optional)
|
||||
|
||||
A list of the [extra features the script supports][supported-features].
|
||||
|
||||
```nix
|
||||
{ stdenv }:
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "my-package";
|
||||
# ...
|
||||
passthru.updateScript = {
|
||||
command = [ ../../update.sh pname ];
|
||||
attrPath = pname;
|
||||
supportedFeatures = [ /* ... */ ];
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
### How are update scripts executed?
|
||||
|
||||
Update scripts are to be invoked by the [automatic package update script](../maintainers/scripts/update.nix).
|
||||
You can run `nix-shell maintainers/scripts/update.nix` in the root of Nixpkgs repository for information on how to use it.
|
||||
`update.nix` offers several modes for selecting packages to update, and it will execute update scripts for all matched packages that have an `updateScript` attribute.
|
||||
|
||||
Each update script will be passed the following environment variables:
|
||||
|
||||
- [`UPDATE_NIX_NAME`] – content of the `name` attribute of the updated package
|
||||
- [`UPDATE_NIX_PNAME`] – content of the `pname` attribute of the updated package
|
||||
- [`UPDATE_NIX_OLD_VERSION`] – content of the `version` attribute of the updated package
|
||||
- [`UPDATE_NIX_ATTR_PATH`] – attribute path the `update.nix` discovered the package on (or the package's specified `attrPath` when available). Example: `pantheon.elementary-terminal`
|
||||
|
||||
> [!Note]
|
||||
> An update script will be usually run from the root of the Nixpkgs repository, but you should not rely on that.
|
||||
> Also note that `update.nix` executes update scripts in parallel by default, so you should avoid running `git commit` or any other commands that cannot handle that.
|
||||
|
||||
While update scripts should not create commits themselves, `update.nix` supports automatically creating commits when running it with `--argstr commit true`.
|
||||
If you need to customize commit message, you can have the update script implement the `commit` feature.
|
||||
|
||||
### Supported features
|
||||
[update-script-supported-features]: #supported-features
|
||||
|
||||
- `commit`
|
||||
|
||||
This feature allows update scripts to *ask* `update.nix` to create Git commits.
|
||||
|
||||
When support of this feature is declared, whenever the update script exits with `0` return status, it is expected to print a JSON list containing an object described below for each updated attribute to standard output.
|
||||
Example:
|
||||
|
||||
```json
|
||||
[
|
||||
{
|
||||
"attrPath": "volume_key",
|
||||
"oldVersion": "0.3.11",
|
||||
"newVersion": "0.3.12",
|
||||
"files": [
|
||||
"/path/to/nixpkgs/pkgs/development/libraries/volume-key/default.nix"
|
||||
]
|
||||
}
|
||||
]
|
||||
```
|
||||
:::
|
||||
|
||||
When `update.nix` is run with `--argstr commit true`, it will create a separate commit for each of the objects.
|
||||
An empty list can be returned when the script did not update any files; for example, when the package is already at the latest version.
|
||||
|
||||
The commit object contains the following values:
|
||||
|
||||
- `attrPath` – a string containing the attribute path
|
||||
- `oldVersion` – a string containing the old version
|
||||
- `newVersion` – a string containing the new version
|
||||
- `files` – a non-empty list of file paths (as strings) to add to the commit
|
||||
- `commitBody` (optional) – a string with extra content to be appended to the default commit message (useful for adding changelog links)
|
||||
- `commitMessage` (optional) – a string to use instead of the default commit message
|
||||
|
||||
If the returned list contains exactly one object (e.g. `[{}]`), all values are optional and will be determined automatically.
|
||||
|
||||
## Reviewing contributions
|
||||
|
||||
### Package updates
|
||||
|
@ -9,16 +9,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "waylyrics";
|
||||
version = "0.3.10";
|
||||
version = "0.3.11";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "waylyrics";
|
||||
repo = "waylyrics";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-JqCnVkqua/qOZjE+XKj3PyrGwqk7IToYOhLN78fKdq0=";
|
||||
hash = "sha256-8jmB6kJUNHTT0w/1ADgjoMAP1zNpohsPl9FIGoh8UG4=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-fVwY+lkfg/O1sPM0C7NOdb8/pln96vBcmCAWh0pEPHI=";
|
||||
cargoHash = "sha256-hH9EQAH1uSD6uRUxKv7O3ewZsijrbCSWWY7EmC0Z7tI=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config wrapGAppsHook4 ];
|
||||
buildInputs = [ openssl dbus ];
|
||||
|
@ -7,11 +7,11 @@
|
||||
|
||||
melpaBuild rec {
|
||||
pname = "ebuild-mode";
|
||||
version = "1.70";
|
||||
version = "1.71";
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://gitweb.gentoo.org/proj/ebuild-mode.git/snapshot/ebuild-mode-${version}.tar.bz2";
|
||||
hash = "sha256-dOm3xJMFLelwcImIwckeQHx1GqV9PB+I45QA9UT1nCM=";
|
||||
hash = "sha256-HvaiH3I6hJMb1XFFf8FOw22X+47UayCIWAGuXAVP/ls=";
|
||||
};
|
||||
|
||||
# not used but needs to be set; why?
|
||||
|
@ -34,6 +34,7 @@ buildPythonApplication rec {
|
||||
pyperclip
|
||||
asttokens
|
||||
send2trash
|
||||
dbus-next
|
||||
];
|
||||
|
||||
preInstall = ''
|
||||
|
@ -12,7 +12,7 @@
|
||||
"new": "vim-fern"
|
||||
},
|
||||
"gina-vim": {
|
||||
"date": "2024-05-28",
|
||||
"date": "2024-06-11",
|
||||
"new": "vim-gina"
|
||||
},
|
||||
"gist-vim": {
|
||||
@ -60,7 +60,7 @@
|
||||
"new": "vim-suda"
|
||||
},
|
||||
"vim-fsharp": {
|
||||
"date": "2024-05-28",
|
||||
"date": "2024-06-11",
|
||||
"new": "zarchive-vim-fsharp"
|
||||
},
|
||||
"vim-jade": {
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -50,12 +50,12 @@
|
||||
};
|
||||
arduino = buildGrammar {
|
||||
language = "arduino";
|
||||
version = "0.0.0+rev=babb6d4";
|
||||
version = "0.0.0+rev=afb34b2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ObserverOfTime";
|
||||
repo = "tree-sitter-arduino";
|
||||
rev = "babb6d4da69b359bbb80adbf1fe39c0da9175210";
|
||||
hash = "sha256-nA/4SRlXfm8hMZw/GOQFAxzoPNAzVP0cCnHLc1ZawXU=";
|
||||
rev = "afb34b2c65f507932c5c6ddbf0d5a9ca6a772f2f";
|
||||
hash = "sha256-iccyGSsbNDhvkrT20/bqx9s5tkghl6DONzJz5UEtTJ8=";
|
||||
};
|
||||
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-arduino";
|
||||
};
|
||||
@ -193,12 +193,12 @@
|
||||
};
|
||||
c = buildGrammar {
|
||||
language = "c";
|
||||
version = "0.0.0+rev=00ed08f";
|
||||
version = "0.0.0+rev=deca017";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tree-sitter";
|
||||
repo = "tree-sitter-c";
|
||||
rev = "00ed08f1a6c18141bfd7a81638e4d239a0bb55cc";
|
||||
hash = "sha256-ucbHLS2xyGo1uyKZv/K1HNXuMo4GpTY327cgdVS9F3c=";
|
||||
rev = "deca017a554045b4c203e7ddff39ae64ff05e071";
|
||||
hash = "sha256-uvvARjD4729GO8vpmrhAzheEQ3oz7LYmF8awdyS2/Rw=";
|
||||
};
|
||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-c";
|
||||
};
|
||||
@ -259,12 +259,12 @@
|
||||
};
|
||||
cmake = buildGrammar {
|
||||
language = "cmake";
|
||||
version = "0.0.0+rev=20ffd6d";
|
||||
version = "0.0.0+rev=4864abb";
|
||||
src = fetchFromGitHub {
|
||||
owner = "uyha";
|
||||
repo = "tree-sitter-cmake";
|
||||
rev = "20ffd6d3b4da1acdbf2d08204b2130a5b2f7c4b3";
|
||||
hash = "sha256-Cnv6u6hCcuF9hrFafD3laeZbOSJ0u415vGWmLJeNdJo=";
|
||||
rev = "4864abb95a1f6e54d6b362677beef9fb674b41e9";
|
||||
hash = "sha256-asJ4BDARnQdc+d0H+DDpW+/gDGuEIbc8PVL0B3KrA0Y=";
|
||||
};
|
||||
meta.homepage = "https://github.com/uyha/tree-sitter-cmake";
|
||||
};
|
||||
@ -325,12 +325,12 @@
|
||||
};
|
||||
cpp = buildGrammar {
|
||||
language = "cpp";
|
||||
version = "0.0.0+rev=d29fbff";
|
||||
version = "0.0.0+rev=9d412ba";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tree-sitter";
|
||||
repo = "tree-sitter-cpp";
|
||||
rev = "d29fbff09a8c9ff4f3074de2595dfca12cb33da9";
|
||||
hash = "sha256-3akSuQltFMF6I32HwRU08+Hcl9ojxPGk2ZuOX3gAObw=";
|
||||
rev = "9d412ba7e597fe158f209da33e60f31b1f0df967";
|
||||
hash = "sha256-mMHNRKhfhI+OXmNOf1nlVr7JWmJ8BJMOJdaXqv3pk9w=";
|
||||
};
|
||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-cpp";
|
||||
};
|
||||
@ -359,12 +359,12 @@
|
||||
};
|
||||
cuda = buildGrammar {
|
||||
language = "cuda";
|
||||
version = "0.0.0+rev=e7878a9";
|
||||
version = "0.0.0+rev=1f188ef";
|
||||
src = fetchFromGitHub {
|
||||
owner = "theHamsta";
|
||||
repo = "tree-sitter-cuda";
|
||||
rev = "e7878a9cf4157e9d6c8013ff5605c9f26d62894d";
|
||||
hash = "sha256-1UCYWY6DvanLdFeS0ALHG3eJT/Rk/muZTkFm3YwF5II=";
|
||||
rev = "1f188eff83b562ffae36d13e1b804ec6f3b9f1d9";
|
||||
hash = "sha256-AZXk29yM21KOTVWWUKkr1+sr7gv7ViD6kDjwrJZoCzg=";
|
||||
};
|
||||
meta.homepage = "https://github.com/theHamsta/tree-sitter-cuda";
|
||||
};
|
||||
@ -447,12 +447,12 @@
|
||||
};
|
||||
djot = buildGrammar {
|
||||
language = "djot";
|
||||
version = "0.0.0+rev=0e9a836";
|
||||
version = "0.0.0+rev=ea851b9";
|
||||
src = fetchFromGitHub {
|
||||
owner = "treeman";
|
||||
repo = "tree-sitter-djot";
|
||||
rev = "0e9a836ec47612ade15645fb1680adb549894a6c";
|
||||
hash = "sha256-PdToOLDgEYKVCYT7jmCBNWtuQ0XLgOYF1/PycSxP3XU=";
|
||||
rev = "ea851b9cf1a71e475f4e2ac4dc03609a1b9ca56d";
|
||||
hash = "sha256-6vekPB1IufGuMhX+n2Ve9EMXqZdX6FlBuI/lh/8/msw=";
|
||||
};
|
||||
meta.homepage = "https://github.com/treeman/tree-sitter-djot";
|
||||
};
|
||||
@ -480,12 +480,12 @@
|
||||
};
|
||||
doxygen = buildGrammar {
|
||||
language = "doxygen";
|
||||
version = "0.0.0+rev=4a30eba";
|
||||
version = "0.0.0+rev=ccd998f";
|
||||
src = fetchFromGitHub {
|
||||
owner = "amaanq";
|
||||
repo = "tree-sitter-doxygen";
|
||||
rev = "4a30eba5d047d6a8c5b005202b4848c0b33d76ca";
|
||||
hash = "sha256-yR2JtWYdy84z38Idx84qIuUPoBMiSj/7TVw0J1+g/U8=";
|
||||
rev = "ccd998f378c3f9345ea4eeb223f56d7b84d16687";
|
||||
hash = "sha256-Yh6FaRvWmeqnSnBgOojWbs1wJaeEoNJlvSEqgzjGh7o=";
|
||||
};
|
||||
meta.homepage = "https://github.com/amaanq/tree-sitter-doxygen";
|
||||
};
|
||||
@ -503,12 +503,12 @@
|
||||
};
|
||||
earthfile = buildGrammar {
|
||||
language = "earthfile";
|
||||
version = "0.0.0+rev=336001d";
|
||||
version = "0.0.0+rev=b267228";
|
||||
src = fetchFromGitHub {
|
||||
owner = "glehmann";
|
||||
repo = "tree-sitter-earthfile";
|
||||
rev = "336001d79dd62668088bc6fe6d72a774a449fa2d";
|
||||
hash = "sha256-DOsW62ZgjUZhm1LNOkW2lR1JA6NUqi239x5zIARt4NM=";
|
||||
rev = "b2672286174c078eb80cdffc61375d0364e7fafb";
|
||||
hash = "sha256-Vyme1ghs61lyitnwukccXbzAOeuiPbS1vvrvT9y1rbs=";
|
||||
};
|
||||
meta.homepage = "https://github.com/glehmann/tree-sitter-earthfile";
|
||||
};
|
||||
@ -526,12 +526,12 @@
|
||||
};
|
||||
eds = buildGrammar {
|
||||
language = "eds";
|
||||
version = "0.0.0+rev=5517bdb";
|
||||
version = "0.0.0+rev=0ad62cb";
|
||||
src = fetchFromGitHub {
|
||||
owner = "uyha";
|
||||
repo = "tree-sitter-eds";
|
||||
rev = "5517bdb90c90703df49579a4b04689a614780be2";
|
||||
hash = "sha256-dOWHqvnNe/RfCp4QbIThHaX2gUMCiY3DU2crzOxIo/g=";
|
||||
rev = "0ad62cb635c2f4353359a88dec9e3a57bbf9f66d";
|
||||
hash = "sha256-dbREFx/P6PMHSwoAaEBKSqRolPTFrLDBhMfZKPsvxbc=";
|
||||
};
|
||||
meta.homepage = "https://github.com/uyha/tree-sitter-eds";
|
||||
};
|
||||
@ -548,12 +548,12 @@
|
||||
};
|
||||
elixir = buildGrammar {
|
||||
language = "elixir";
|
||||
version = "0.0.0+rev=de690fa";
|
||||
version = "0.0.0+rev=c7ae8b7";
|
||||
src = fetchFromGitHub {
|
||||
owner = "elixir-lang";
|
||||
repo = "tree-sitter-elixir";
|
||||
rev = "de690fa8a028f122af46d9d2685679fe5f2d7d60";
|
||||
hash = "sha256-bvbOWF+Fy3IhOPhkW6pB/3LcLXnPzqVQb8GOCCQWzw0=";
|
||||
rev = "c7ae8b77e2749826dcf23df6514f08fdd68c66a3";
|
||||
hash = "sha256-1B3jVMJs1WNU3K7t42mv9Ab85KEaa8vn8zURksNts+E=";
|
||||
};
|
||||
meta.homepage = "https://github.com/elixir-lang/tree-sitter-elixir";
|
||||
};
|
||||
@ -603,12 +603,12 @@
|
||||
};
|
||||
erlang = buildGrammar {
|
||||
language = "erlang";
|
||||
version = "0.0.0+rev=98ea1f9";
|
||||
version = "0.0.0+rev=b8e44bc";
|
||||
src = fetchFromGitHub {
|
||||
owner = "WhatsApp";
|
||||
repo = "tree-sitter-erlang";
|
||||
rev = "98ea1f9c957b2ad520415eecb5a5b406e931101e";
|
||||
hash = "sha256-9CpVwtTy5vojZABc97KZt2P8vBOZFAw3ZFRp43WOqEc=";
|
||||
rev = "b8e44bc0a3b2ce6bceea47c0b1c0f303a6b322b8";
|
||||
hash = "sha256-9sfucj3jx5KVt/okHyCZLIJUbYFHPO4Ld/IWWjVXKDA=";
|
||||
};
|
||||
meta.homepage = "https://github.com/WhatsApp/tree-sitter-erlang";
|
||||
};
|
||||
@ -636,12 +636,12 @@
|
||||
};
|
||||
fennel = buildGrammar {
|
||||
language = "fennel";
|
||||
version = "0.0.0+rev=8ad1770";
|
||||
version = "0.0.0+rev=cfbfa47";
|
||||
src = fetchFromGitHub {
|
||||
owner = "alexmozaidze";
|
||||
repo = "tree-sitter-fennel";
|
||||
rev = "8ad17704b3c2469155947d4e8fcb618cf1328459";
|
||||
hash = "sha256-7a2spHMApW+yc/wrpVwWl9ykPAdC4QTOeMIs1jxajsU=";
|
||||
rev = "cfbfa478dc2dbef267ee94ae4323d9c886f45e94";
|
||||
hash = "sha256-0LusII7BPGFQTyEkxZi6h9HUDF0eHvGwA4fiQE2h3YQ=";
|
||||
};
|
||||
meta.homepage = "https://github.com/alexmozaidze/tree-sitter-fennel";
|
||||
};
|
||||
@ -823,12 +823,12 @@
|
||||
};
|
||||
gleam = buildGrammar {
|
||||
language = "gleam";
|
||||
version = "0.0.0+rev=8432ffe";
|
||||
version = "0.0.0+rev=02a17bf";
|
||||
src = fetchFromGitHub {
|
||||
owner = "gleam-lang";
|
||||
repo = "tree-sitter-gleam";
|
||||
rev = "8432ffe32ccd360534837256747beb5b1c82fca1";
|
||||
hash = "sha256-PO01z8vyzDT4ZGPxgZl9PPsp/gktT2TaCwutMy87i8E=";
|
||||
rev = "02a17bf9d0553406268cdbf466d57808ae712bf3";
|
||||
hash = "sha256-rZPe7rrnPa4QGnFUjwoaj/7HJzNDSigc7w4gJEFXZD4=";
|
||||
};
|
||||
meta.homepage = "https://github.com/gleam-lang/tree-sitter-gleam";
|
||||
};
|
||||
@ -845,12 +845,12 @@
|
||||
};
|
||||
glsl = buildGrammar {
|
||||
language = "glsl";
|
||||
version = "0.0.0+rev=33a16b6";
|
||||
version = "0.0.0+rev=7f91bf3";
|
||||
src = fetchFromGitHub {
|
||||
owner = "theHamsta";
|
||||
repo = "tree-sitter-glsl";
|
||||
rev = "33a16b6ff4d7206a16f2dc96c40e149c657db65f";
|
||||
hash = "sha256-qblDE+NIlJR5wyprvY6G3kG0uFzqWaQZmxN/hDnjNAs=";
|
||||
rev = "7f91bf34cadc06a96efc475df501ffca4dda9410";
|
||||
hash = "sha256-M676GDkyUGosih5R77duEy4jUrIz3bGwD+G6n68gJX0=";
|
||||
};
|
||||
meta.homepage = "https://github.com/theHamsta/tree-sitter-glsl";
|
||||
};
|
||||
@ -1077,12 +1077,12 @@
|
||||
};
|
||||
hlsl = buildGrammar {
|
||||
language = "hlsl";
|
||||
version = "0.0.0+rev=a84e8d4";
|
||||
version = "0.0.0+rev=5e1225a";
|
||||
src = fetchFromGitHub {
|
||||
owner = "theHamsta";
|
||||
repo = "tree-sitter-hlsl";
|
||||
rev = "a84e8d4f675d0006f7c07f6c7bcea2fca04cdb6e";
|
||||
hash = "sha256-9UpcYchmtLwlH1YCGfsWnMt7tQ/560lKIzqSgPWovdc=";
|
||||
rev = "5e1225a30712ca0a9040509806c7ba274a1bbcde";
|
||||
hash = "sha256-gBByrpw5iCGoOy1zrg0emuAd1Vd8KOKFeJLZOCWh9qU=";
|
||||
};
|
||||
meta.homepage = "https://github.com/theHamsta/tree-sitter-hlsl";
|
||||
};
|
||||
@ -1176,23 +1176,23 @@
|
||||
};
|
||||
idl = buildGrammar {
|
||||
language = "idl";
|
||||
version = "0.0.0+rev=b5b53e2";
|
||||
version = "0.0.0+rev=9f56001";
|
||||
src = fetchFromGitHub {
|
||||
owner = "cathaysia";
|
||||
repo = "tree-sitter-idl";
|
||||
rev = "b5b53e2ca0521b98277d5e4b109f0b0e362e850e";
|
||||
hash = "sha256-zgjTZWTBchKDYgubQX5SIblbflCVh9Tv9R//ohzZFKw=";
|
||||
rev = "9f56001f8ed29b0ea9fa4f02813f3e83ab0a2aaa";
|
||||
hash = "sha256-L5O9pep1No4oWSM7nA71RYY2X688+rm/2pTETP7ifOA=";
|
||||
};
|
||||
meta.homepage = "https://github.com/cathaysia/tree-sitter-idl";
|
||||
};
|
||||
ini = buildGrammar {
|
||||
language = "ini";
|
||||
version = "0.0.0+rev=bcb84a2";
|
||||
version = "0.0.0+rev=87176e5";
|
||||
src = fetchFromGitHub {
|
||||
owner = "justinmk";
|
||||
repo = "tree-sitter-ini";
|
||||
rev = "bcb84a2d4bcd6f55b911c42deade75c8f90cb0c5";
|
||||
hash = "sha256-dYPeVTNWO4apY5dsjsKViavU7YtLeGTp6BzEemXhsEU=";
|
||||
rev = "87176e524f0a98f5be75fa44f4f0ff5c6eac069c";
|
||||
hash = "sha256-IyHrIxcmuzs60zUiJv4E3nSkhSkgbcaLDUdeDx5mlHk=";
|
||||
};
|
||||
meta.homepage = "https://github.com/justinmk/tree-sitter-ini";
|
||||
};
|
||||
@ -1220,12 +1220,12 @@
|
||||
};
|
||||
janet_simple = buildGrammar {
|
||||
language = "janet_simple";
|
||||
version = "0.0.0+rev=f3d6e09";
|
||||
version = "0.0.0+rev=6bfbaad";
|
||||
src = fetchFromGitHub {
|
||||
owner = "sogaiu";
|
||||
repo = "tree-sitter-janet-simple";
|
||||
rev = "f3d6e09cc47e76833f23f83b2c59ea0878660953";
|
||||
hash = "sha256-5LGAb5zsjaMlFFhLRNFOeZuGXxJ6btwfeduQqsDTRng=";
|
||||
rev = "6bfbaadac2ba0da21087041eff85d26129c4c920";
|
||||
hash = "sha256-O06k8ruDFf16VVNb44Sz0maRQkrpFgsePzKjPUNteX8=";
|
||||
};
|
||||
meta.homepage = "https://github.com/sogaiu/tree-sitter-janet-simple";
|
||||
};
|
||||
@ -1242,12 +1242,12 @@
|
||||
};
|
||||
javascript = buildGrammar {
|
||||
language = "javascript";
|
||||
version = "0.0.0+rev=a5de24d";
|
||||
version = "0.0.0+rev=391a8fc";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tree-sitter";
|
||||
repo = "tree-sitter-javascript";
|
||||
rev = "a5de24dc7939cb07a758f8d89c089cfdb6f479aa";
|
||||
hash = "sha256-jsdY9Pd9WqZuBYtk088mx1bRQadC6D2/tGGVY+ZZ0J4=";
|
||||
rev = "391a8fcc48a11f63bf18ec9885f6f069e760949a";
|
||||
hash = "sha256-GOIhkoiiUhkTpUhDm/sfLtsNhOrVoGx2uiXEteruT2g=";
|
||||
};
|
||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-javascript";
|
||||
};
|
||||
@ -1319,12 +1319,12 @@
|
||||
};
|
||||
julia = buildGrammar {
|
||||
language = "julia";
|
||||
version = "0.0.0+rev=acd5ca1";
|
||||
version = "0.0.0+rev=f1baa5f";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tree-sitter";
|
||||
repo = "tree-sitter-julia";
|
||||
rev = "acd5ca12cc278df7960629c2429a096c7ac4bbea";
|
||||
hash = "sha256-1dOUMS4nlPaG5WxpCONXclVgq4F/Ti4JQK81KOnxvIk=";
|
||||
rev = "f1baa5f8e271109d01cc8ff7473c11df2d8a9aee";
|
||||
hash = "sha256-a0yLJMnXllHPij8fBjwqYgKRc6GxHHCQjSbPOKdLh9I=";
|
||||
};
|
||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-julia";
|
||||
};
|
||||
@ -1352,12 +1352,12 @@
|
||||
};
|
||||
kdl = buildGrammar {
|
||||
language = "kdl";
|
||||
version = "0.0.0+rev=49fb89a";
|
||||
version = "0.0.0+rev=b37e3d5";
|
||||
src = fetchFromGitHub {
|
||||
owner = "amaanq";
|
||||
repo = "tree-sitter-kdl";
|
||||
rev = "49fb89a854d93b58a65a19724ac307195ca11941";
|
||||
hash = "sha256-U8N6aaTyYT6zaOKJ8S+3dMjS4ngxc9Yo7g4OFi03RR4=";
|
||||
rev = "b37e3d58e5c5cf8d739b315d6114e02d42e66664";
|
||||
hash = "sha256-irx8aMEdZG2WcQVE2c7ahwLjqEoUAOOjvhDDk69a6lE=";
|
||||
};
|
||||
meta.homepage = "https://github.com/amaanq/tree-sitter-kdl";
|
||||
};
|
||||
@ -1374,12 +1374,12 @@
|
||||
};
|
||||
koto = buildGrammar {
|
||||
language = "koto";
|
||||
version = "0.0.0+rev=919440e";
|
||||
version = "0.0.0+rev=d410987";
|
||||
src = fetchFromGitHub {
|
||||
owner = "koto-lang";
|
||||
repo = "tree-sitter-koto";
|
||||
rev = "919440e1376109bab4edac52594c17c02ae0be5a";
|
||||
hash = "sha256-R3p0X741yOBAC6NTB46PTkh41NLmaVUvQPLBG1+PG+Y=";
|
||||
rev = "d4109879ba1387d19095269a7473bd7d274ab848";
|
||||
hash = "sha256-PKbxUSlLHBQBhOzQpaGpP24zmfxjRD9rO5I4OIeeL4g=";
|
||||
};
|
||||
meta.homepage = "https://github.com/koto-lang/tree-sitter-koto";
|
||||
};
|
||||
@ -1507,12 +1507,12 @@
|
||||
};
|
||||
luap = buildGrammar {
|
||||
language = "luap";
|
||||
version = "0.0.0+rev=31461ae";
|
||||
version = "0.0.0+rev=c134aae";
|
||||
src = fetchFromGitHub {
|
||||
owner = "amaanq";
|
||||
repo = "tree-sitter-luap";
|
||||
rev = "31461ae9bd0866cb5117cfe5de71189854fd0f3e";
|
||||
hash = "sha256-SW2ubK5317GUc1dQLkhoaisMgctLOwr6TPVYSQh02vE=";
|
||||
rev = "c134aaec6acf4fa95fe4aa0dc9aba3eacdbbe55a";
|
||||
hash = "sha256-4mMUHBsdK4U4uhh8GpKlG3p/s3ZCcLX1qATPyTD4Xhg=";
|
||||
};
|
||||
meta.homepage = "https://github.com/amaanq/tree-sitter-luap";
|
||||
};
|
||||
@ -1653,12 +1653,12 @@
|
||||
};
|
||||
nickel = buildGrammar {
|
||||
language = "nickel";
|
||||
version = "0.0.0+rev=5247873";
|
||||
version = "0.0.0+rev=43433d8";
|
||||
src = fetchFromGitHub {
|
||||
owner = "nickel-lang";
|
||||
repo = "tree-sitter-nickel";
|
||||
rev = "52478738c5a072ab3ad62c74db5d0902dab064cd";
|
||||
hash = "sha256-4GA34VO/t6y29IOrmuXNZg6H1+wUs3rMal9+s8rmoHI=";
|
||||
rev = "43433d8477b24cd13acaac20a66deda49b7e2547";
|
||||
hash = "sha256-9Ei0uy+eGK9oiH7y2KIhB1E88SRzGnZinqECT3kYTVE=";
|
||||
};
|
||||
meta.homepage = "https://github.com/nickel-lang/tree-sitter-nickel";
|
||||
};
|
||||
@ -1854,24 +1854,24 @@
|
||||
};
|
||||
php = buildGrammar {
|
||||
language = "php";
|
||||
version = "0.0.0+rev=b38c535";
|
||||
version = "0.0.0+rev=4f124bc";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tree-sitter";
|
||||
repo = "tree-sitter-php";
|
||||
rev = "b38c53537769df05871643c9688c264074fb6076";
|
||||
hash = "sha256-PWAuWTi2sXeGYes6p6mLi3Mx2Nu+xLuc86NLZrEyK00=";
|
||||
rev = "4f124bc6075e1c3333e80190c1c170933ed72c95";
|
||||
hash = "sha256-qYfcJCcZ2s/z61aPhO/y+v32FnEwf0rBvtvPiQVtBOE=";
|
||||
};
|
||||
location = "php";
|
||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-php";
|
||||
};
|
||||
php_only = buildGrammar {
|
||||
language = "php_only";
|
||||
version = "0.0.0+rev=b38c535";
|
||||
version = "0.0.0+rev=4f124bc";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tree-sitter";
|
||||
repo = "tree-sitter-php";
|
||||
rev = "b38c53537769df05871643c9688c264074fb6076";
|
||||
hash = "sha256-PWAuWTi2sXeGYes6p6mLi3Mx2Nu+xLuc86NLZrEyK00=";
|
||||
rev = "4f124bc6075e1c3333e80190c1c170933ed72c95";
|
||||
hash = "sha256-qYfcJCcZ2s/z61aPhO/y+v32FnEwf0rBvtvPiQVtBOE=";
|
||||
};
|
||||
location = "php_only";
|
||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-php";
|
||||
@ -2055,12 +2055,12 @@
|
||||
};
|
||||
pymanifest = buildGrammar {
|
||||
language = "pymanifest";
|
||||
version = "0.0.0+rev=e3b82b7";
|
||||
version = "0.0.0+rev=be06258";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ObserverOfTime";
|
||||
repo = "tree-sitter-pymanifest";
|
||||
rev = "e3b82b78721aee07f676dac8473ae69db51debcf";
|
||||
hash = "sha256-pZCqeSdiYctbFthdb8Olw35CAXQmT7jG2LOO/3NN/8s=";
|
||||
rev = "be062582956165019d3253794b4d712f66dfeaaa";
|
||||
hash = "sha256-Kud/E67Sh9F4nc8nzW5UXFHW5+kGftLyFzwLOKLcpL8=";
|
||||
};
|
||||
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-pymanifest";
|
||||
};
|
||||
@ -2141,6 +2141,17 @@
|
||||
};
|
||||
meta.homepage = "https://github.com/6cdh/tree-sitter-racket";
|
||||
};
|
||||
ralph = buildGrammar {
|
||||
language = "ralph";
|
||||
version = "0.0.0+rev=48b9d9d";
|
||||
src = fetchFromGitHub {
|
||||
owner = "alephium";
|
||||
repo = "tree-sitter-ralph";
|
||||
rev = "48b9d9d6e2b55ce8f9eb09ceb0d952e4b1cc87a0";
|
||||
hash = "sha256-Yf2vq7h7UrJmdjQbXU8HM0hjUwwRBFlEV1O+ZUyMIuk=";
|
||||
};
|
||||
meta.homepage = "https://github.com/alephium/tree-sitter-ralph";
|
||||
};
|
||||
rasi = buildGrammar {
|
||||
language = "rasi";
|
||||
version = "0.0.0+rev=6c9bbcf";
|
||||
@ -2198,23 +2209,23 @@
|
||||
};
|
||||
rego = buildGrammar {
|
||||
language = "rego";
|
||||
version = "0.0.0+rev=9ac75e7";
|
||||
version = "0.0.0+rev=23b1da8";
|
||||
src = fetchFromGitHub {
|
||||
owner = "FallenAngel97";
|
||||
repo = "tree-sitter-rego";
|
||||
rev = "9ac75e71b2d791e0aadeef68098319d86a2a14cf";
|
||||
hash = "sha256-L6n6Z5y9t1ixpy9mktB9HVKy69jigqbIFB2SrSW/yoo=";
|
||||
rev = "23b1da8de9766d766c4f01531e8be14b5c00c493";
|
||||
hash = "sha256-h0z060AFhbQJDyJen3yAjMDxi5nY/QX/KPus2y8oFY0=";
|
||||
};
|
||||
meta.homepage = "https://github.com/FallenAngel97/tree-sitter-rego";
|
||||
};
|
||||
requirements = buildGrammar {
|
||||
language = "requirements";
|
||||
version = "0.0.0+rev=360c6a6";
|
||||
version = "0.0.0+rev=5ad9b75";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ObserverOfTime";
|
||||
repo = "tree-sitter-requirements";
|
||||
rev = "360c6a6b31076a482663806f7a8241de9cad6b4e";
|
||||
hash = "sha256-wqaFpT/4Gq8mWoORcZeGah18VunvKlgr8gCgHQvEF6E=";
|
||||
rev = "5ad9b7581b3334f6ad492847d007f2fac6e6e5f2";
|
||||
hash = "sha256-L3PF6B+d+v/pjAQGVwkc7hCKrhbAB7u/BdXOpEum08w=";
|
||||
};
|
||||
meta.homepage = "https://github.com/ObserverOfTime/tree-sitter-requirements";
|
||||
};
|
||||
@ -2342,23 +2353,23 @@
|
||||
};
|
||||
slang = buildGrammar {
|
||||
language = "slang";
|
||||
version = "0.0.0+rev=989bfe5";
|
||||
version = "0.0.0+rev=865d79e";
|
||||
src = fetchFromGitHub {
|
||||
owner = "theHamsta";
|
||||
repo = "tree-sitter-slang";
|
||||
rev = "989bfe5ae69e7bad13454b8f52e4ab0c343d8ded";
|
||||
hash = "sha256-1/8cFxmWHENzrTB7p//DRaZ1pw8WdPe6V2HNj+105Kc=";
|
||||
rev = "865d79e236c7f0e04276c969453d021d1da4b15f";
|
||||
hash = "sha256-vZ+Av0lSJaSKUVdEGMtAtXwGIUaIUvS5CvWWfOei/30=";
|
||||
};
|
||||
meta.homepage = "https://github.com/theHamsta/tree-sitter-slang";
|
||||
};
|
||||
slint = buildGrammar {
|
||||
language = "slint";
|
||||
version = "0.0.0+rev=0701312";
|
||||
version = "0.0.0+rev=d82ab8c";
|
||||
src = fetchFromGitHub {
|
||||
owner = "slint-ui";
|
||||
repo = "tree-sitter-slint";
|
||||
rev = "0701312b74b87fe20e61aa662ba41c5815b5d428";
|
||||
hash = "sha256-GwJptJ3AP3i4rVdXi2JmhngbSHCz3fqy+ymwSlx6h94=";
|
||||
rev = "d82ab8c19ea1b60ff570256eaef7d137cc5ecb63";
|
||||
hash = "sha256-NFKh3Z9vU1KImjU4Yd/Bnxq3E8kz8k/w2TzEvAtffnY=";
|
||||
};
|
||||
meta.homepage = "https://github.com/slint-ui/tree-sitter-slint";
|
||||
};
|
||||
@ -2432,12 +2443,12 @@
|
||||
};
|
||||
sourcepawn = buildGrammar {
|
||||
language = "sourcepawn";
|
||||
version = "0.0.0+rev=227656e";
|
||||
version = "0.0.0+rev=645d093";
|
||||
src = fetchFromGitHub {
|
||||
owner = "nilshelmig";
|
||||
repo = "tree-sitter-sourcepawn";
|
||||
rev = "227656e72a5f0d430bb82a467bc8078f078bba84";
|
||||
hash = "sha256-EfvOwLMxTeY8wH0cVxltELiujxRDoOfCGno2Omrk7vw=";
|
||||
rev = "645d093763bcaaf7535edbdf6575a5c978b16491";
|
||||
hash = "sha256-P5l0jaDsPXFenVaoLeeGSp6firHpeNM4/v93eshd8l0=";
|
||||
};
|
||||
meta.homepage = "https://github.com/nilshelmig/tree-sitter-sourcepawn";
|
||||
};
|
||||
@ -2454,12 +2465,12 @@
|
||||
};
|
||||
sql = buildGrammar {
|
||||
language = "sql";
|
||||
version = "0.0.0+rev=25f94f9";
|
||||
version = "0.0.0+rev=89fd00d";
|
||||
src = fetchFromGitHub {
|
||||
owner = "derekstride";
|
||||
repo = "tree-sitter-sql";
|
||||
rev = "25f94f998de79bae9df28add9782f9ea6ea0e2b8";
|
||||
hash = "sha256-UmGvjtN0Pi7uH8+Sb6JbvdV60gow7KQCbDRcKo3nMYw=";
|
||||
rev = "89fd00d0aff3bc9985ac37caf362ec4fd9b2ba1d";
|
||||
hash = "sha256-QTKggsvVWhszlcYS/WOPkykUyTDgwV1yVJ7jADA/5SM=";
|
||||
};
|
||||
meta.homepage = "https://github.com/derekstride/tree-sitter-sql";
|
||||
};
|
||||
@ -2509,12 +2520,12 @@
|
||||
};
|
||||
styled = buildGrammar {
|
||||
language = "styled";
|
||||
version = "0.0.0+rev=c68a457";
|
||||
version = "0.0.0+rev=65835cc";
|
||||
src = fetchFromGitHub {
|
||||
owner = "mskelton";
|
||||
repo = "tree-sitter-styled";
|
||||
rev = "c68a4572e2d6403b6e99066c9a113b43f4a07a27";
|
||||
hash = "sha256-ZOMHyhtlKVOty+0lyUX7aJiwyP9yNN+r0eXVhpu22WQ=";
|
||||
rev = "65835cca33a5f033bcde580ed66cde01c1fabbbe";
|
||||
hash = "sha256-pcvt3ow6rVYCYbcVzIz3FGWpqoVCPX7zuOj3vKpkOfU=";
|
||||
};
|
||||
meta.homepage = "https://github.com/mskelton/tree-sitter-styled";
|
||||
};
|
||||
@ -2553,12 +2564,12 @@
|
||||
};
|
||||
swift = buildGrammar {
|
||||
language = "swift";
|
||||
version = "0.0.0+rev=26354dd";
|
||||
version = "0.0.0+rev=13ffaec";
|
||||
src = fetchFromGitHub {
|
||||
owner = "alex-pinkus";
|
||||
repo = "tree-sitter-swift";
|
||||
rev = "26354ddec08c7efde4fa16bd29429f3310d2e2c5";
|
||||
hash = "sha256-PhBqMo99SrOttdDx1AG8N/t3uFG1Tylb6ADNHyLyjJk=";
|
||||
rev = "13ffaec4068facfff608e3afbdb7a581c185f6a6";
|
||||
hash = "sha256-Y1QioBOgrziHsBkbSVt/N1FnjDxYKZK4WulMQcqyrEU=";
|
||||
};
|
||||
generate = true;
|
||||
meta.homepage = "https://github.com/alex-pinkus/tree-sitter-swift";
|
||||
@ -2631,12 +2642,12 @@
|
||||
};
|
||||
teal = buildGrammar {
|
||||
language = "teal";
|
||||
version = "0.0.0+rev=33482c9";
|
||||
version = "0.0.0+rev=19b02da";
|
||||
src = fetchFromGitHub {
|
||||
owner = "euclidianAce";
|
||||
repo = "tree-sitter-teal";
|
||||
rev = "33482c92a0dfa694491d34e167a1d2f52b0dccb1";
|
||||
hash = "sha256-6T9hn+Tvz8AYMsAu2J8vt6WkRQRrdGwGJcw3c85W14I=";
|
||||
rev = "19b02da829d1721a521bf7b802eb80a50bd53aab";
|
||||
hash = "sha256-xIws9Q8AsaIowv6nc01ZpF87Dy8rL78EoZgXuBmg6Kg=";
|
||||
};
|
||||
generate = true;
|
||||
meta.homepage = "https://github.com/euclidianAce/tree-sitter-teal";
|
||||
@ -2801,12 +2812,12 @@
|
||||
};
|
||||
typespec = buildGrammar {
|
||||
language = "typespec";
|
||||
version = "0.0.0+rev=fd9a83c";
|
||||
version = "0.0.0+rev=28821d0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "happenslol";
|
||||
repo = "tree-sitter-typespec";
|
||||
rev = "fd9a83c6c0aaaff4b1354454b5b9f130f59dd553";
|
||||
hash = "sha256-IFXjqsdgnJotOlb9v4XbcA2+U0txXUsv0RQA+RCilVU=";
|
||||
rev = "28821d0d6da5f0a6b5eb02b9bad953fecafd7248";
|
||||
hash = "sha256-MzUcz6vnsakszAMJtTOajniFC72sCREdrMhS/zDa3Ng=";
|
||||
};
|
||||
meta.homepage = "https://github.com/happenslol/tree-sitter-typespec";
|
||||
};
|
||||
@ -2957,12 +2968,12 @@
|
||||
};
|
||||
vimdoc = buildGrammar {
|
||||
language = "vimdoc";
|
||||
version = "0.0.0+rev=b711df7";
|
||||
version = "0.0.0+rev=2249c44";
|
||||
src = fetchFromGitHub {
|
||||
owner = "neovim";
|
||||
repo = "tree-sitter-vimdoc";
|
||||
rev = "b711df784dd43d0a8ed8ddbfca0ddcc3239d94b4";
|
||||
hash = "sha256-+QbLL5EC3oNiwd7h7MW/mutHhGPUHhbYTQcu6x6atcI=";
|
||||
rev = "2249c44ecd3f5cf22da3dcccfb74f816ddb29245";
|
||||
hash = "sha256-v+XSWGm2Wdn9/rxNFMqXYACkGn6AvxZdxkClLuKnWGU=";
|
||||
};
|
||||
meta.homepage = "https://github.com/neovim/tree-sitter-vimdoc";
|
||||
};
|
||||
@ -3079,12 +3090,12 @@
|
||||
};
|
||||
zathurarc = buildGrammar {
|
||||
language = "zathurarc";
|
||||
version = "0.0.0+rev=5918bf1";
|
||||
version = "0.0.0+rev=6e7c8ed";
|
||||
src = fetchFromGitHub {
|
||||
owner = "Freed-Wu";
|
||||
repo = "tree-sitter-zathurarc";
|
||||
rev = "5918bf1785662c43a841b0b6a27a129337ec3a23";
|
||||
hash = "sha256-JxnS2teVY5cjhb6C/Z+ds9MRmRP/MjaqA08hdVx4Lms=";
|
||||
rev = "6e7c8edfcd6f5f7c12b2fa9ffc6d042f1b6d7068";
|
||||
hash = "sha256-tr9igIwfxXJJZAanRmDAhG3uu1vdT2nfW3Ng3EZ0094=";
|
||||
};
|
||||
meta.homepage = "https://github.com/Freed-Wu/tree-sitter-zathurarc";
|
||||
};
|
||||
|
@ -459,7 +459,7 @@
|
||||
|
||||
copilot-vim = super.copilot-vim.overrideAttrs {
|
||||
postInstall = ''
|
||||
substituteInPlace $out/autoload/copilot/agent.vim \
|
||||
substituteInPlace $out/autoload/copilot/client.vim \
|
||||
--replace " let node = get(g:, 'copilot_node_command', ''\'''\')" \
|
||||
" let node = get(g:, 'copilot_node_command', '${nodejs}/bin/node')"
|
||||
'';
|
||||
@ -1093,7 +1093,7 @@
|
||||
inherit (old) version src;
|
||||
sourceRoot = "${old.src.name}/spectre_oxi";
|
||||
|
||||
cargoHash = "sha256-4XAQFKsTM5IxNld1TIC0i861i/3uPjwsDWoW7ZbHfXg=";
|
||||
cargoHash = "sha256-ZBlxJjkHb2buvXK6VGP6FMnSFk8RUX7IgHjNofnGDAs=";
|
||||
|
||||
preCheck = ''
|
||||
mkdir tests/tmp/
|
||||
|
@ -1,25 +1,13 @@
|
||||
From 07c799a1b170c0e28b385474b511c1034cfcb263 Mon Sep 17 00:00:00 2001
|
||||
From: Janik H <janik@aq0.de>
|
||||
Date: Sat, 16 Sep 2023 19:45:32 +0200
|
||||
Subject: [PATCH] fix nix store path regex
|
||||
|
||||
---
|
||||
plugin/sensible.vim | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/plugin/sensible.vim b/plugin/sensible.vim
|
||||
index 0fc26e0..b3ee6e9 100644
|
||||
index c9387ae..a226760 100644
|
||||
--- a/plugin/sensible.vim
|
||||
+++ b/plugin/sensible.vim
|
||||
@@ -26,7 +26,7 @@ function! s:MaySet(option) abort
|
||||
silent verbose execute 'setglobal all' a:option . '?'
|
||||
redir END
|
||||
endif
|
||||
- return out !~# " \\(\\~[\\/][^\n]*\\|Lua\\)$"
|
||||
- return out !~# " \\(\\~[\\/]\\|Lua\\)[^\n]*$"
|
||||
+ return out !~# "/nix/store/.*" && out !~# " \\(\\~[\\/][^\n]*\\|Lua\\)$"
|
||||
endfunction
|
||||
|
||||
if s:MaySet('backspace')
|
||||
--
|
||||
2.41.0
|
||||
|
||||
|
@ -9,8 +9,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "jupyter";
|
||||
publisher = "ms-toolsai";
|
||||
version = "2024.2.0";
|
||||
hash = "sha256-QavZ8NNeu0FHLvorhHybzfmdQqKnyXD6MYA8AzabPQw=";
|
||||
version = "2024.5.0";
|
||||
hash = "sha256-bGHXbqv+YXC8NUXIY+bxFsMvoV6h8E2/2F6Ku4bJwT0=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -1,7 +1,6 @@
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, fetchpatch
|
||||
, cmake
|
||||
, pkg-config
|
||||
, wrapQtAppsHook
|
||||
@ -59,45 +58,30 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "dolphin-emu";
|
||||
version = "5.0-21088";
|
||||
version = "5.0-21460";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dolphin-emu";
|
||||
repo = "dolphin";
|
||||
rev = "9240f579eab18a2f67eef23846a6b508393d0e6c";
|
||||
hash = "sha256-lOiDbEQZoi9Bsiyta/w+B1VXNNW4qST2cBZekqo5dDA=";
|
||||
rev = "a9544510468740b77cf06ef28daaa65fe247fd32";
|
||||
hash = "sha256-mhD7Uaqi8GzHdR7Y81TspvCnrZH2evWuWFgXMQ2c8g0=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Remove when merged https://github.com/dolphin-emu/dolphin/pull/12070
|
||||
# TODO: Remove when merged https://github.com/dolphin-emu/dolphin/pull/12736
|
||||
./find-minizip-ng.patch
|
||||
|
||||
# fix buidl w/ glibc-2.39
|
||||
(fetchpatch {
|
||||
url = "https://github.com/dolphin-emu/dolphin/commit/3da2e15e6b95f02f66df461e87c8b896e450fdab.patch";
|
||||
hash = "sha256-+8yGF412wQUYbyEuYWd41pgOgEbhCaezexxcI5CNehc=";
|
||||
})
|
||||
];
|
||||
|
||||
strictDeps = true;
|
||||
|
||||
nativeBuildInputs = [
|
||||
stdenv.cc
|
||||
cmake
|
||||
pkg-config
|
||||
wrapQtAppsHook
|
||||
];
|
||||
|
||||
buildInputs = lib.optionals stdenv.isDarwin [
|
||||
CoreBluetooth
|
||||
ForceFeedback
|
||||
IOBluetooth
|
||||
IOKit
|
||||
moltenvk
|
||||
OpenGL
|
||||
VideoToolbox
|
||||
] ++ [
|
||||
buildInputs = [
|
||||
bzip2
|
||||
cubeb
|
||||
curl
|
||||
@ -123,7 +107,9 @@ stdenv.mkDerivation rec {
|
||||
SDL2
|
||||
sfml
|
||||
xxHash
|
||||
xz # LibLZMA
|
||||
xz
|
||||
# Causes linker errors with minizip-ng, prefer vendored. Possible reason why: https://github.com/dolphin-emu/dolphin/pull/12070#issuecomment-1677311838
|
||||
#zlib-ng
|
||||
] ++ lib.optionals stdenv.isLinux [
|
||||
alsa-lib
|
||||
bluez
|
||||
@ -135,6 +121,14 @@ stdenv.mkDerivation rec {
|
||||
#mgba # Derivation doesn't support Darwin
|
||||
udev
|
||||
vulkan-loader
|
||||
] ++ lib.optionals stdenv.isDarwin [
|
||||
CoreBluetooth
|
||||
ForceFeedback
|
||||
IOBluetooth
|
||||
IOKit
|
||||
moltenvk
|
||||
OpenGL
|
||||
VideoToolbox
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
@ -160,13 +154,6 @@ stdenv.mkDerivation rec {
|
||||
"--set QT_QPA_PLATFORM xcb"
|
||||
];
|
||||
|
||||
# Use nix-provided libraries instead of submodules
|
||||
postPatch = lib.optionalString stdenv.isDarwin ''
|
||||
substituteInPlace CMakeLists.txt \
|
||||
--replace "if(NOT APPLE)" "if(true)" \
|
||||
--replace "if(LIBUSB_FOUND AND NOT APPLE)" "if(LIBUSB_FOUND)"
|
||||
'';
|
||||
|
||||
postInstall = lib.optionalString stdenv.hostPlatform.isLinux ''
|
||||
install -D $src/Data/51-usb-device.rules $out/etc/udev/rules.d/51-usb-device.rules
|
||||
'' + lib.optionalString stdenv.hostPlatform.isDarwin ''
|
||||
|
@ -1,11 +1,11 @@
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index ee44d04458..2fa6bd8a10 100644
|
||||
index fb37788513..289a25fa57 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -678,7 +678,7 @@ dolphin_find_optional_system_library_pkgconfig(ZSTD libzstd>=1.4.0 zstd::zstd Ex
|
||||
|
||||
dolphin_find_optional_system_library_pkgconfig(ZLIB zlib-ng ZLIB::ZLIB Externals/zlib-ng)
|
||||
@@ -676,7 +676,7 @@ dolphin_find_optional_system_library_pkgconfig(ZLIB zlib-ng ZLIB::ZLIB Externals
|
||||
|
||||
# https://github.com/zlib-ng/minizip-ng/commit/6c5f265a55f1a12a7a016cd2962feff91cff5d2e
|
||||
add_definitions(-DMZ_COMPAT_VERSION=110) # This macro is for forwards compatibility with 4.0.4+
|
||||
-dolphin_find_optional_system_library_pkgconfig(MINIZIP minizip>=3.0.0 minizip::minizip Externals/minizip)
|
||||
+dolphin_find_optional_system_library_pkgconfig(MINIZIP minizip-ng>=3.0.0 minizip::minizip Externals/minizip)
|
||||
|
||||
|
@ -11,13 +11,13 @@
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "bleachbit";
|
||||
version = "4.4.0";
|
||||
version = "4.6.0";
|
||||
|
||||
format = "other";
|
||||
|
||||
src = fetchurl {
|
||||
url = "mirror://sourceforge/${pname}/${pname}-${version}.tar.bz2";
|
||||
sha256 = "0kqqfzq6bh03n7kxb9vd483bqi1cklfvj35a7h4iqk96sq1xv8z6";
|
||||
sha256 = "sha256-UwUphuUeXFy71I+tmKnRH858dPrA2+xDxnG9h26a+kE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -32,11 +32,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "calibre";
|
||||
version = "7.11.0";
|
||||
version = "7.12.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://download.calibre-ebook.com/${finalAttrs.version}/calibre-${finalAttrs.version}.tar.xz";
|
||||
hash = "sha256-JSQ8BpZf7ZvLld3GM5/yfLS+zRiFGi0r7V67Xb662Os=";
|
||||
hash = "sha256-XHkORTUx3+O+i2vbTiZAHI/0hY3xPIXvvNAVuXy4wzk=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
|
@ -39,6 +39,6 @@ rustPlatform.buildRustPackage rec {
|
||||
homepage = "https://github.com/mdgaziur/findex";
|
||||
license = licenses.gpl3Only;
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ maintainers.pinkcreeper100 ];
|
||||
maintainers = [];
|
||||
};
|
||||
}
|
||||
|
@ -1,14 +1,5 @@
|
||||
From 2629af4ed00d7ca65359178203d80fb146901cdb Mon Sep 17 00:00:00 2001
|
||||
From: Daniel Fullmer <danielrf12@gmail.com>
|
||||
Date: Fri, 3 Jul 2020 21:00:45 -0700
|
||||
Subject: [PATCH 1/2] Fix CMakeLists
|
||||
|
||||
---
|
||||
CMakeLists.txt | 12 ++++++++----
|
||||
1 file changed, 8 insertions(+), 4 deletions(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index e218279..4341de9 100644
|
||||
index 365b835..4341de9 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -57,6 +57,7 @@ endif(JPEG_FOUND)
|
||||
@ -39,11 +30,8 @@ index e218279..4341de9 100644
|
||||
include_directories(SYSTEM ${MUPDF_INCLUDEDIR})
|
||||
message(STATUS "mupdf libraries: ${MUPDF_LDFLAGS}")
|
||||
set(K2PDFOPT_LIB ${K2PDFOPT_LIB} ${MUPDF_LDFLAGS}
|
||||
- -lmupdf-js-none -lopenjpeg -ljbig2dec -ljpeg -lfreetype
|
||||
- -lmupdf-js-none -lopenjpeg -ljbig2dec -ljpeg -lfreetype -llcms -lgumbo
|
||||
+
|
||||
)
|
||||
endif(MUPDF_FOUND)
|
||||
|
||||
--
|
||||
2.27.0
|
||||
|
||||
|
@ -1,11 +1,22 @@
|
||||
{ lib, stdenv, runCommand, fetchzip, fetchurl, fetchFromGitHub
|
||||
, cmake, pkg-config, zlib, libpng, makeWrapper
|
||||
{ lib
|
||||
, stdenv
|
||||
, runCommand
|
||||
, fetchzip
|
||||
, fetchurl
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, jbig2dec
|
||||
, libjpeg_turbo
|
||||
, libpng
|
||||
, makeWrapper
|
||||
, pkg-config
|
||||
, zlib
|
||||
, enableGSL ? true, gsl
|
||||
, enableGhostScript ? true, ghostscript
|
||||
, enableMuPDF ? true, mupdf_1_17
|
||||
, enableMuPDF ? true, mupdf
|
||||
, enableDJVU ? true, djvulibre
|
||||
, enableGOCR ? false, gocr # Disabled by default due to crashes
|
||||
, enableTesseract ? true, leptonica, tesseract4
|
||||
, enableTesseract ? true, leptonica, tesseract
|
||||
}:
|
||||
|
||||
# k2pdfopt is a pain to package. It requires modified versions of mupdf,
|
||||
@ -50,10 +61,10 @@ let
|
||||
'';
|
||||
|
||||
pname = "k2pdfopt";
|
||||
version = "2.53";
|
||||
version = "2.55";
|
||||
k2pdfopt_src = fetchzip {
|
||||
url = "http://www.willus.com/${pname}/src/${pname}_v${version}_src.zip";
|
||||
sha256 = "1fna8bg3pascjfc3hmc6xn0xi2yh7f1qp0d344mw9hqanbnykyy8";
|
||||
hash = "sha256-orQNDXQkkcCtlA8wndss6SiJk4+ImiFCG8XRLEg963k=";
|
||||
};
|
||||
in stdenv.mkDerivation rec {
|
||||
inherit pname version;
|
||||
@ -79,15 +90,15 @@ in stdenv.mkDerivation rec {
|
||||
mupdf_patch = mkPatch {
|
||||
name = "mupdf";
|
||||
src = fetchurl {
|
||||
url = "https://mupdf.com/downloads/archive/mupdf-1.17.0-source.tar.gz";
|
||||
sha256 = "13nl9nrcx2awz9l83mlv2psi1lmn3hdnfwxvwgwiwbxlkjl3zqq0";
|
||||
url = "https://mupdf.com/downloads/archive/mupdf-1.23.7-source.tar.gz";
|
||||
hash = "sha256-NaVJM/QA6JZnoImkJfHGXNadRiOU/tnAZ558Uu+6pWg=";
|
||||
};
|
||||
patchCommands = ''
|
||||
cp ${k2pdfopt_src}/mupdf_mod/{filter-basic,font,stext-device,string}.c ./source/fitz/
|
||||
cp ${k2pdfopt_src}/mupdf_mod/pdf-* ./source/pdf/
|
||||
'';
|
||||
};
|
||||
mupdf_modded = mupdf_1_17.overrideAttrs ({ patches ? [], ... }: {
|
||||
mupdf_modded = mupdf.overrideAttrs ({ patches ? [], ... }: {
|
||||
patches = patches ++ [ mupdf_patch ];
|
||||
# This function is missing in font.c, see font-win32.c
|
||||
postPatch = ''
|
||||
@ -98,8 +109,8 @@ in stdenv.mkDerivation rec {
|
||||
leptonica_patch = mkPatch {
|
||||
name = "leptonica";
|
||||
src = fetchurl {
|
||||
url = "http://www.leptonica.org/source/leptonica-1.79.0.tar.gz";
|
||||
sha256 = "1n004gv1dj3pq1fcnfdclvvx5nang80336aa67nvs3nnqp4ncn84";
|
||||
url = "http://www.leptonica.org/source/leptonica-1.83.0.tar.gz";
|
||||
hash = "sha256-IGWR3VjPhO84CDba0TO1jJ0a+SSR9amCXDRqFiBEvP4=";
|
||||
};
|
||||
patchCommands = "cp -r ${k2pdfopt_src}/leptonica_mod/. ./src/";
|
||||
};
|
||||
@ -112,12 +123,16 @@ in stdenv.mkDerivation rec {
|
||||
src = fetchFromGitHub {
|
||||
owner = "tesseract-ocr";
|
||||
repo = "tesseract";
|
||||
rev = "4.1.1";
|
||||
sha256 = "1ca27zbjpx35nxh9fha410z3jskwyj06i5hqiqdc08s2d7kdivwn";
|
||||
rev = "5.3.3";
|
||||
hash = "sha256-/aGzwm2+0y8fheOnRi/OJXZy3o0xjY1cCq+B3GTzfos=";
|
||||
};
|
||||
patchCommands = ''
|
||||
cp ${k2pdfopt_src}/tesseract_mod/{baseapi,tesscapi,tesseract}.* src/api/
|
||||
cp ${k2pdfopt_src}/tesseract_mod/tesseract.* include/tesseract/
|
||||
cp ${k2pdfopt_src}/tesseract_mod/tesseract/baseapi.h include/tesseract/
|
||||
cp ${k2pdfopt_src}/tesseract_mod/{baseapi,config_auto,tesscapi,tesseract}.* src/api/
|
||||
cp ${k2pdfopt_src}/tesseract_mod/tesseract/baseapi.h src/api/
|
||||
cp ${k2pdfopt_src}/tesseract_mod/{tesscapi,tessedit,tesseract}.* src/ccmain/
|
||||
cp ${k2pdfopt_src}/tesseract_mod/tesseract/baseapi.h src/ccmain/
|
||||
cp ${k2pdfopt_src}/tesseract_mod/dotproduct{avx,fma,sse}.* src/arch/
|
||||
cp ${k2pdfopt_src}/tesseract_mod/{intsimdmatrixsse,simddetect}.* src/arch/
|
||||
cp ${k2pdfopt_src}/tesseract_mod/{errcode,genericvector,mainblk,params,serialis,tessdatamanager,tess_version,tprintf,unicharset}.* src/ccutil/
|
||||
@ -125,19 +140,21 @@ in stdenv.mkDerivation rec {
|
||||
cp ${k2pdfopt_src}/tesseract_mod/openclwrapper.* src/opencl/
|
||||
'';
|
||||
};
|
||||
tesseract_modded = tesseract4.override {
|
||||
tesseractBase = tesseract4.tesseractBase.overrideAttrs ({ patches ? [], ... }: {
|
||||
tesseract_modded = tesseract.override {
|
||||
tesseractBase = tesseract.tesseractBase.overrideAttrs ({ patches ? [], ... }: {
|
||||
patches = patches ++ [ tesseract_patch ];
|
||||
# Additional compilation fixes
|
||||
postPatch = ''
|
||||
echo libtesseract_api_la_SOURCES += tesscapi.cpp >> src/api/Makefile.am
|
||||
echo libtesseract_la_SOURCES += src/api/tesscapi.cpp >> Makefile.am
|
||||
substituteInPlace src/api/tesseract.h \
|
||||
--replace "#include <leptonica.h>" "//#include <leptonica.h>"
|
||||
substituteInPlace include/tesseract/tesseract.h \
|
||||
--replace "#include <leptonica.h>" "//#include <leptonica.h>"
|
||||
'';
|
||||
});
|
||||
};
|
||||
in
|
||||
[ zlib libpng ] ++
|
||||
[ jbig2dec libjpeg_turbo libpng zlib ] ++
|
||||
lib.optional enableGSL gsl ++
|
||||
lib.optional enableGhostScript ghostscript ++
|
||||
lib.optional enableMuPDF mupdf_modded ++
|
||||
@ -156,12 +173,13 @@ in stdenv.mkDerivation rec {
|
||||
'';
|
||||
|
||||
preFixup = lib.optionalString enableTesseract ''
|
||||
wrapProgram $out/bin/k2pdfopt --set-default TESSDATA_PREFIX ${tesseract4}/share/tessdata
|
||||
wrapProgram $out/bin/k2pdfopt --set-default TESSDATA_PREFIX ${tesseract}/share/tessdata
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "Optimizes PDF/DJVU files for mobile e-readers (e.g. the Kindle) and smartphones";
|
||||
homepage = "http://www.willus.com/k2pdfopt";
|
||||
changelog = "https://www.willus.com/k2pdfopt/k2pdfopt_version.txt";
|
||||
license = licenses.gpl3;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with maintainers; [ bosu danielfullmer ];
|
||||
|
@ -6,7 +6,7 @@
|
||||
}:
|
||||
let
|
||||
pname = "kratos";
|
||||
version = "1.1.0";
|
||||
version = "1.2.0";
|
||||
in
|
||||
buildGoModule {
|
||||
inherit pname version;
|
||||
@ -15,10 +15,10 @@ buildGoModule {
|
||||
owner = "ory";
|
||||
repo = "kratos";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-zrII2lpffZkwFauPAilh1QaqRKvpj1mlHZA7in1ljYg=";
|
||||
hash = "sha256-KqF6DYrEsmPj2PtI2+5ztE0m9uBO1gpNlvdo+Aw6REA=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-TSB7jCPOVwub+ZQaaUSmsz/R4HAfmnWb0wTf2w4aeuk=";
|
||||
vendorHash = "sha256-6gJf+8AKjV83MTF0rC8OxDwkwGx4CJg7SdfNgcja8QY=";
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
|
@ -4,14 +4,14 @@
|
||||
|
||||
mkDerivation rec {
|
||||
pname = "latte-dock";
|
||||
version = "unstable-2023-03-31";
|
||||
version = "unstable-2024-01-31";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "invent.kde.org";
|
||||
owner = "plasma";
|
||||
repo = "latte-dock";
|
||||
rev = "4f93251d8c635c6150483ecb321eb276f34d4280";
|
||||
sha256 = "sha256-oEfKfsVIAmYgQ7+WyBEQfVpI4IndWhYXWBsJE8bNNyI=";
|
||||
rev = "131ee4d39ce8913b2de8f9a673903225345c7a38";
|
||||
sha256 = "sha256-C1FvgkdxCzny+F6igS2YjsHOpkK34wl6je2tHlGQwU0=";
|
||||
};
|
||||
|
||||
buildInputs = [ plasma-framework plasma-wayland-protocols qtwayland xorg.libpthreadstubs xorg.libXdmcp xorg.libSM wayland plasma-workspace plasma-desktop ];
|
||||
|
@ -2,7 +2,7 @@
|
||||
|
||||
let
|
||||
pname = "notesnook";
|
||||
version = "3.0.6";
|
||||
version = "3.0.8";
|
||||
|
||||
inherit (stdenv.hostPlatform) system;
|
||||
throwSystem = throw "Unsupported system: ${system}";
|
||||
@ -16,9 +16,9 @@ let
|
||||
src = fetchurl {
|
||||
url = "https://github.com/streetwriters/notesnook/releases/download/v${version}/notesnook_${suffix}";
|
||||
hash = {
|
||||
x86_64-linux = "sha256-606+8euLnZdIPUwi+wilJgvnNQNwBCj6AGZFmp9HOWs=";
|
||||
x86_64-darwin = "sha256-A0Rbm6boYI2B3Ne+FczAM3qmtM2KwNWD+C2N0sgWRtg=";
|
||||
aarch64-darwin = "sha256-Jm7rZWEsMspjKrMODGPBGJP0I5fF3aj+WXdBNsmv4jw=";
|
||||
x86_64-linux = "sha256-H25PGhCD5uqh2BHMMjb7GyftinBsRs2O5+9xNNV+5m4=";
|
||||
x86_64-darwin = "sha256-uT4xo4LT70jq7bHmiYu4FL8Fldppc2ai8yEZzGMzM6Q=";
|
||||
aarch64-darwin = "sha256-D5KIXHhzXXBOEcoOn2QKKUbVGMWhRW+L7fgxRxLpX/0=";
|
||||
}.${system} or throwSystem;
|
||||
};
|
||||
|
||||
|
@ -18,16 +18,21 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "rusty-psn";
|
||||
version = "0.3.0";
|
||||
version = "0.3.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "RainbowCookie32";
|
||||
repo = "rusty-psn";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-BsbuEsW6cQbWg8BLtEBnjoCfcUCy1xWz9u0wBa8BKtA=";
|
||||
sha256 = "sha256-EGj9VVY+Zbmth7H1oTgq38KNLT/aWoTPn8k4sVkScgg=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-TD5du7I6Hw1PC8s9NI19jYCXlaZMnsdVj/a0q+M8Raw=";
|
||||
cargoPatches = [ ./fix-cargo-lock.patch ];
|
||||
|
||||
cargoSha256 = "sha256-8J92WtMmCTnghPqSmNYhG3IVdmpHsHEH7Fkod0UYKJU=";
|
||||
|
||||
# Tests require network access
|
||||
doCheck = false;
|
||||
|
||||
nativeBuildInputs = [
|
||||
pkg-config
|
||||
|
13
pkgs/applications/misc/rusty-psn/fix-cargo-lock.patch
Normal file
13
pkgs/applications/misc/rusty-psn/fix-cargo-lock.patch
Normal file
@ -0,0 +1,13 @@
|
||||
diff --git a/Cargo.lock b/Cargo.lock
|
||||
index 3b63c3d..38a0fc0 100644
|
||||
--- a/Cargo.lock
|
||||
+++ b/Cargo.lock
|
||||
@@ -3141,7 +3141,7 @@ dependencies = [
|
||||
|
||||
[[package]]
|
||||
name = "rusty-psn"
|
||||
-version = "0.3.3"
|
||||
+version = "0.3.7"
|
||||
dependencies = [
|
||||
"bytesize",
|
||||
"clap",
|
@ -7,16 +7,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "avalanchego";
|
||||
version = "1.11.6";
|
||||
version = "1.11.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ava-labs";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-XEFmcdkuCA8a6rCwh9G01gs1uAkNbv0CxHbXWTzrrKg=";
|
||||
hash = "sha256-pdfZMKsNKmQVUfYobaOdUqGgP99fatEpgn0AHt0bIBQ=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-odqP5FtQ5F7EMrDN9tL0M8sJR6WdzAJZZcOky8IRuOE=";
|
||||
vendorHash = "sha256-CN+2+aOOPF7gouvp7lCfRIKA1quNCcrvzHg8lF6J4f8=";
|
||||
# go mod vendor has a bug, see: https://github.com/golang/go/issues/57529
|
||||
proxyVendor = true;
|
||||
|
||||
|
@ -1,20 +1,20 @@
|
||||
{
|
||||
beta = import ./browser.nix {
|
||||
channel = "beta";
|
||||
version = "126.0.2592.24";
|
||||
version = "126.0.2592.36";
|
||||
revision = "1";
|
||||
hash = "sha256-OK38ss0M+GNP/wKLVheyKBgji3Df/qyrxaKvJayNZMM=";
|
||||
hash = "sha256-u9gcTjener35uKt99T27+LK0A4SYNdWCW5FSHWEnaNA=";
|
||||
};
|
||||
dev = import ./browser.nix {
|
||||
channel = "dev";
|
||||
version = "126.0.2592.11";
|
||||
version = "127.0.2620.3";
|
||||
revision = "1";
|
||||
hash = "sha256-hUeVnGN5lxZmNsYojt7Fl0n7XF76Arw8Z3C16+fHRVA=";
|
||||
hash = "sha256-x5reGA7XZTN3FsCHf7oXstltCDSVANR8VegIuO201qs=";
|
||||
};
|
||||
stable = import ./browser.nix {
|
||||
channel = "stable";
|
||||
version = "125.0.2535.67";
|
||||
version = "125.0.2535.85";
|
||||
revision = "1";
|
||||
hash = "sha256-82bkiyKWJqVLB4jBaGu4EdJ0ukl44yKopDecAkrzuU0=";
|
||||
hash = "sha256-4GD/1jAw+nIwI5AOwrkuPNF5zAnnzje9oEQnaHOapPg=";
|
||||
};
|
||||
}
|
||||
|
@ -24,7 +24,7 @@ let
|
||||
vivaldiName = if isSnapshot then "vivaldi-snapshot" else "vivaldi";
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "vivaldi";
|
||||
version = "6.7.3329.35";
|
||||
version = "6.7.3329.41";
|
||||
|
||||
suffix = {
|
||||
aarch64-linux = "arm64";
|
||||
@ -34,8 +34,8 @@ in stdenv.mkDerivation rec {
|
||||
src = fetchurl {
|
||||
url = "https://downloads.vivaldi.com/${branch}/vivaldi-${branch}_${version}-1_${suffix}.deb";
|
||||
hash = {
|
||||
aarch64-linux = "sha256-myKcYbLJgbjs0o/VWHbupO0JT38qrmayQ5EiQWCzNHc=";
|
||||
x86_64-linux = "sha256-NFvHSmMGrhvFWMR1onwkcSYUCWe11+CO1jmOlMv9p18=";
|
||||
aarch64-linux = "sha256-jDAairYILLLiMssBvct+hZ1D2sqTsvV43IxF1UdlwpQ=";
|
||||
x86_64-linux = "sha256-nipvNDc+iHIupUdl2kQIDJhUyVP/dFAUJiAN5jBY38M=";
|
||||
}.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}");
|
||||
};
|
||||
|
||||
|
@ -1,25 +0,0 @@
|
||||
{ lib, buildGoPackage, fetchFromGitHub }:
|
||||
|
||||
buildGoPackage rec {
|
||||
version = "3.9.0pre";
|
||||
pname = "containerpilot";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "joyent";
|
||||
repo = pname;
|
||||
rev = "d999b632b0c96d9e27f092dc9f81a9d82dfe0106";
|
||||
sha256 = "0wsc8canr1c9wzr1lv40yixj9l10c66i6d14yrljsyagl2z02v4n";
|
||||
};
|
||||
|
||||
goPackagePath = "github.com/joyent/${pname}";
|
||||
goDeps = ./deps.nix;
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://www.joyent.com/containerpilot";
|
||||
description = "Application centric micro-orchestrator";
|
||||
mainProgram = "containerpilot";
|
||||
platforms = platforms.unix;
|
||||
license = licenses.mpl20;
|
||||
maintainers = with maintainers; [ cpcloud ];
|
||||
};
|
||||
}
|
@ -1,173 +0,0 @@
|
||||
# file generated from go.mod using vgo2nix (https://github.com/nix-community/vgo2nix)
|
||||
[
|
||||
{
|
||||
goPackagePath = "github.com/beorn7/perks";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/beorn7/perks";
|
||||
rev = "4c0e84591b9a";
|
||||
sha256 = "1hrybsql68xw57brzj805xx2mghydpdiysv3gbhr7f5wlxj2514y";
|
||||
moduleDir = "";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/client9/reopen";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/client9/reopen";
|
||||
rev = "1a6ccbeaae3f";
|
||||
sha256 = "0iarv0sn9hb26sr75bwilz3m86kcfad4m5klmzixbd4yw1ipnffa";
|
||||
moduleDir = "";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/flynn/json5";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/flynn/json5";
|
||||
rev = "7620272ed633";
|
||||
sha256 = "1l3rqfis8b72mqwm88lx78d0mbdihyamj8cgg2pa5vfbq49cpydf";
|
||||
moduleDir = "";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/golang/protobuf";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/golang/protobuf";
|
||||
rev = "6a1fa9404c0a";
|
||||
sha256 = "0dsd6vlfdyarn3v822x9p2s94gfi5lhvqc2vm3bqmqjgcik3c51z";
|
||||
moduleDir = "";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/hashicorp/consul";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/hashicorp/consul";
|
||||
rev = "v1.0.1-rc1";
|
||||
sha256 = "10xqi86n2h39q3qlkxfhnrqwm1bgijs5n2kryaq9yalv5p3qxczg";
|
||||
moduleDir = "";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/hashicorp/go-cleanhttp";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/hashicorp/go-cleanhttp";
|
||||
rev = "3573b8b52aa7";
|
||||
sha256 = "1pbl6p7w5wp1c70x7fp94h4ynk2ajfa76rqin3d2hq1w2fcb7byr";
|
||||
moduleDir = "";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/hashicorp/go-rootcerts";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/hashicorp/go-rootcerts";
|
||||
rev = "6bb64b370b90";
|
||||
sha256 = "1a81fcm1i0ji2iva0dcimiichgwpbcb7lx0vyaks87zj5wf04qy9";
|
||||
moduleDir = "";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/hashicorp/serf";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/hashicorp/serf";
|
||||
rev = "91fd53b1d3e6";
|
||||
sha256 = "0p9mhv6w85cxxl95kvl3rk04yif6v5bhf5kxw8i1cphv5kddv7j9";
|
||||
moduleDir = "";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/matttproud/golang_protobuf_extensions";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/matttproud/golang_protobuf_extensions";
|
||||
rev = "v1.0.1";
|
||||
sha256 = "1d0c1isd2lk9pnfq2nk0aih356j30k3h1gi2w0ixsivi5csl7jya";
|
||||
moduleDir = "";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/mitchellh/go-homedir";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/mitchellh/go-homedir";
|
||||
rev = "b8bc1bf76747";
|
||||
sha256 = "13ry4lylalkh4g2vny9cxwvryslzyzwp9r92z0b10idhdq3wad1q";
|
||||
moduleDir = "";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/mitchellh/mapstructure";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/mitchellh/mapstructure";
|
||||
rev = "d2dd02622084";
|
||||
sha256 = "1idj9h0g9z3s21y2hivaf1dknxhpd7yy0kn6wk3311hlr7s543j5";
|
||||
moduleDir = "";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/prometheus/client_golang";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/prometheus/client_golang";
|
||||
rev = "v0.8.0";
|
||||
sha256 = "1xqny3147g12n4j03kxm8s9mvdbs3ln6i56c655mybrn9jjy48kd";
|
||||
moduleDir = "";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/prometheus/client_model";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/prometheus/client_model";
|
||||
rev = "6f3806018612";
|
||||
sha256 = "1413ibprinxhni51p0755dp57r9wvbw7xgj9nmdaxmhzlqhc86j4";
|
||||
moduleDir = "";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/prometheus/common";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/prometheus/common";
|
||||
rev = "0866df4b85a1";
|
||||
sha256 = "0zw4rxs6zh9vgxz5wwhjnwa6mgac8jh7mb63viircgh08r889chp";
|
||||
moduleDir = "";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/prometheus/procfs";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/prometheus/procfs";
|
||||
rev = "e645f4e5aaa8";
|
||||
sha256 = "18hwygbawbqilz7h8fl25xpbciwalkslb4igqn4cr9d8sqp7d3np";
|
||||
moduleDir = "";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "github.com/sirupsen/logrus";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://github.com/sirupsen/logrus";
|
||||
rev = "v1.0.0";
|
||||
sha256 = "0kyvaa4m8w5wijjvrh0amd9bl3sci1vj4y9v9a97sx3rf7xww52l";
|
||||
moduleDir = "";
|
||||
};
|
||||
}
|
||||
{
|
||||
goPackagePath = "golang.org/x/sys";
|
||||
fetch = {
|
||||
type = "git";
|
||||
url = "https://go.googlesource.com/sys";
|
||||
rev = "94b76065f2d2";
|
||||
sha256 = "0lxd3gmkvza3mah5m8nncdsgd1y6r25vaz4wzdmrs3i1ikzknn93";
|
||||
moduleDir = "";
|
||||
};
|
||||
}
|
||||
]
|
@ -2,13 +2,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "fn";
|
||||
version = "0.6.33";
|
||||
version = "0.6.34";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "fnproject";
|
||||
repo = "cli";
|
||||
rev = version;
|
||||
hash = "sha256-f8EYiTXS9ByELWWV2EF4jrDamoKRGejKhYVyNscHZvo=";
|
||||
hash = "sha256-rbZySF7DrBN37YIetFXZE/aPSRex5cQnV8FZ0KDQ71k=";
|
||||
};
|
||||
|
||||
vendorHash = null;
|
||||
|
@ -9,13 +9,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "k3sup";
|
||||
version = "0.13.5";
|
||||
version = "0.13.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "alexellis";
|
||||
repo = "k3sup";
|
||||
rev = version;
|
||||
sha256 = "sha256-Psuv6QUzRMyZTAFX+oWdgztA+F1sm0J5MAITc3uNM1A=";
|
||||
sha256 = "sha256-ngC1yT0pV/ygGzNTYz71qf8V19hqvz3XP7CP8saGwCI=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper installShellFiles ];
|
||||
|
@ -21,5 +21,6 @@ buildGoModule rec {
|
||||
homepage = "https://github.com/sunny0826/kubecm/";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ qjoly ];
|
||||
mainProgram = "kubecm";
|
||||
};
|
||||
}
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "kubedb-cli";
|
||||
version = "0.45.0";
|
||||
version = "0.46.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kubedb";
|
||||
repo = "cli";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-4kmXz8dTxCaGbuAo3zK27BhUrecInwJCu9XOuiQY48A=";
|
||||
sha256 = "sha256-U5BRkH0jqTEBYtiT93YP/UpQYekPjAHEGl59HPk7TfQ=";
|
||||
};
|
||||
|
||||
vendorHash = null;
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "rke";
|
||||
version = "1.5.9";
|
||||
version = "1.5.10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "rancher";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-JLP2fZALPJmfj8fCsEPT0S2xsZ1HNQlhORNNrGxxgVg=";
|
||||
hash = "sha256-e4YR3vYpaRVhwvBY8VwLp3XNXxnwYlS14VP0gSyLvJA=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-5SxRh9y8I0v3+lU4V9xGtbwWv6JmrvLmPX8TFKjvvD4=";
|
||||
vendorHash = "sha256-++4d87ARL1czjL9I/AuodIP2PmbjjAQ5jf5x2bP16yQ=";
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
|
@ -21,11 +21,11 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "gajim";
|
||||
version = "1.8.4";
|
||||
version = "1.9.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://gajim.org/downloads/${lib.versions.majorMinor version}/gajim-${version}.tar.gz";
|
||||
hash = "sha256-WPzth7HOAbPVJpvN8zSZJGUzsBtACNlwHrHhDPlOScU=";
|
||||
hash = "sha256-eiRLQZr60BvjqqnoYEY+LswgW6e+S9mTLvBKVCXrCzI=";
|
||||
};
|
||||
|
||||
format = "pyproject";
|
||||
@ -52,7 +52,7 @@ python3.pkgs.buildPythonApplication rec {
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
nbxmpp pygobject3 dbus-python pillow css-parser precis-i18n keyring setuptools packaging gssapi
|
||||
omemo-dr qrcode
|
||||
omemo-dr qrcode sqlalchemy emoji
|
||||
] ++ lib.optionals enableE2E [ pycrypto python-gnupg ]
|
||||
++ lib.optional enableRST docutils
|
||||
++ extraPythonPackages python3.pkgs;
|
||||
|
@ -96,11 +96,11 @@ let
|
||||
];
|
||||
in stdenv.mkDerivation rec {
|
||||
pname = "claws-mail";
|
||||
version = "4.2.0";
|
||||
version = "4.3.0";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://claws-mail.org/download.php?file=releases/claws-mail-${version}.tar.xz";
|
||||
hash = "sha256-fIqxcy10GX3wbWGmt+vHxYDs9ukuse9q5bAQdTPxrwc=";
|
||||
hash = "sha256-ldwdiI65FvAoRn+gw8v0W6/2Z4eTt7+zX6u6Ap1YHOE=";
|
||||
};
|
||||
|
||||
outputs = [ "out" "dev" ];
|
||||
|
@ -5,14 +5,14 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "waypipe";
|
||||
version = "0.9.0";
|
||||
version = "0.9.1";
|
||||
|
||||
src = fetchFromGitLab {
|
||||
domain = "gitlab.freedesktop.org";
|
||||
owner = "mstoeckl";
|
||||
repo = "waypipe";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-zk5IzZiFff9EeJn24/QmE1ybcBkxpaz6Owp77CfCwV0=";
|
||||
hash = "sha256-4I8ohllhIA3/LNgFAKH5GwwHKO5QKNex0+Be0OOgR14=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
|
@ -7,16 +7,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "seaweedfs";
|
||||
version = "3.67";
|
||||
version = "3.68";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "seaweedfs";
|
||||
repo = "seaweedfs";
|
||||
rev = version;
|
||||
hash = "sha256-5XR0dT72t6Kn/io1knA8xol5nGnmaBF+izmFZVf3OGE=";
|
||||
hash = "sha256-ncA6YXa/focfmPMdEQWbeUxrLhwCqQiPqjP0SovLB2c=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-GBbbru7yWfwzVmRO1tuqE60kD8UJudX0rei7I02SYzw=";
|
||||
vendorHash = "sha256-YgrDzfcp1Lh8bOI1FF7bTBquaShhgE9nZ/+7mvFiQCc=";
|
||||
|
||||
subPackages = [ "weed" ];
|
||||
|
||||
|
@ -21,14 +21,14 @@
|
||||
let
|
||||
pname = "qownnotes";
|
||||
appname = "QOwnNotes";
|
||||
version = "24.6.0";
|
||||
version = "24.6.1";
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
inherit pname version;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/pbek/QOwnNotes/releases/download/v${version}/qownnotes-${version}.tar.xz";
|
||||
hash = "sha256-rgnFqYqiItTd86K8U7O2sI+q3lF/PiJWU/e2C2O5mJI=";
|
||||
hash = "sha256-FS4VJtTh0LIrrIK+IJxSBqcEsNU7/e6KG3190FLAQC4=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
@ -5,13 +5,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "flowblade";
|
||||
version = "2.16";
|
||||
version = "2.16.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jliljebl";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-+vXljhtGcsS50/J52mJGazZX7oWB/RATvv6nzaLeV0Q=";
|
||||
sha256 = "sha256-dLrrV+ZMXqcJMf69PkgLCDCCPBrUadLtT7vm06Y+1rA=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
@ -9,31 +9,31 @@
|
||||
}:
|
||||
|
||||
let
|
||||
version = "0.21.0";
|
||||
version = "0.22.0";
|
||||
|
||||
dist = {
|
||||
aarch64-darwin = rec {
|
||||
archSuffix = "Darwin-arm64";
|
||||
url = "https://github.com/lima-vm/lima/releases/download/v${version}/lima-${version}-${archSuffix}.tar.gz";
|
||||
sha256 = "97a0517ff5d72feb30ff413f5f0ef75e4c07982651bb2f7326fe5faadb0232d9";
|
||||
sha256 = "271e0224d3e678450424abd4e6766a14ea52b146824bf8cfac7a0f486ceb2a0c";
|
||||
};
|
||||
|
||||
x86_64-darwin = rec {
|
||||
archSuffix = "Darwin-x86_64";
|
||||
url = "https://github.com/lima-vm/lima/releases/download/v${version}/lima-${version}-${archSuffix}.tar.gz";
|
||||
sha256 = "f4a3a01d0ca13bd1bddf14766f39569bc3e074c7744b54d33e9336b1b55e77c9";
|
||||
sha256 = "f2d331ef783e0bb00e193efc3d5c9438df5d284b1cbac771e5d239c3459b2b3d";
|
||||
};
|
||||
|
||||
aarch64-linux = rec {
|
||||
archSuffix = "Linux-aarch64";
|
||||
url = "https://github.com/lima-vm/lima/releases/download/v${version}/lima-${version}-${archSuffix}.tar.gz";
|
||||
sha256 = "6d3f1fe0ef561e1513579a1bf85b04f1bebe73b4c1f03d8683551ece34fecc6a";
|
||||
sha256 = "8c5c6dc21fae19c5645bf8db8f441aeab7fba21fbe882b2b9db58c126d07846b";
|
||||
};
|
||||
|
||||
x86_64-linux = rec {
|
||||
archSuffix = "Linux-x86_64";
|
||||
url = "https://github.com/lima-vm/lima/releases/download/v${version}/lima-${version}-${archSuffix}.tar.gz";
|
||||
sha256 = "9a75c8700a988b35986ed6f761f398fdb31d56394a8e2b6801566a86e59b346c";
|
||||
sha256 = "58e66114ae1e991512a86b6952ab3a1ffe0e12e08199a9a3ea13c3d2f24b307e";
|
||||
};
|
||||
};
|
||||
in
|
||||
|
@ -19,11 +19,11 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "weston";
|
||||
version = "13.0.2";
|
||||
version = "13.0.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://gitlab.freedesktop.org/wayland/weston/-/releases/${version}/downloads/weston-${version}.tar.xz";
|
||||
hash = "sha256-T+EUAfVe3Dp7Z1/RwJ8VmGAWL6p9PJegpNaCOzHu0Qw=";
|
||||
hash = "sha256-J/aNluO5fZjare8TogI1ZSSST6OBQY+mcWuRNu8JkJM=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -51,7 +51,7 @@
|
||||
# configure & source common build functions
|
||||
LIB_RUSTC_OPTS="${libRustcOpts}"
|
||||
BIN_RUSTC_OPTS="${binRustcOpts}"
|
||||
LIB_EXT="${stdenv.hostPlatform.extensions.sharedLibrary or ""}"
|
||||
LIB_EXT="${stdenv.hostPlatform.extensions.library}"
|
||||
LIB_PATH="${libPath}"
|
||||
LIB_NAME="${libName}"
|
||||
|
||||
|
@ -49,7 +49,7 @@ let
|
||||
filename =
|
||||
if lib.any (x: x == "lib" || x == "rlib") dep.crateType
|
||||
then "${dep.metadata}.rlib"
|
||||
else "${dep.metadata}${stdenv.hostPlatform.extensions.sharedLibrary}";
|
||||
else "${dep.metadata}${stdenv.hostPlatform.extensions.library}";
|
||||
in
|
||||
" --extern ${opts}${name}=${dep.lib}/lib/lib${extern}-${filename}"
|
||||
)
|
||||
|
@ -41,7 +41,7 @@ if !buildTests then ''
|
||||
fi
|
||||
if [ -e target/lib ]; then
|
||||
find target/lib/ -type f \! -name '*.rlib' \
|
||||
-a \! -name '*${stdenv.hostPlatform.extensions.sharedLibrary}' \
|
||||
-a \! -name '*${stdenv.hostPlatform.extensions.library}' \
|
||||
-a \! -name '*.d' \
|
||||
-executable \
|
||||
-print0 | xargs --no-run-if-empty --null install --target $out/tests;
|
||||
|
@ -479,7 +479,7 @@ let
|
||||
# `-undefined dynamic_lookup` as otherwise the compilation fails.
|
||||
$CC -shared \
|
||||
${lib.optionalString stdenv.isDarwin "-undefined dynamic_lookup"} \
|
||||
-o $out/lib/${name}${stdenv.hostPlatform.extensions.sharedLibrary} ${src}
|
||||
-o $out/lib/${name}${stdenv.hostPlatform.extensions.library} ${src}
|
||||
'';
|
||||
b = compile "libb" ''
|
||||
#include <stdio.h>
|
||||
|
13221
pkgs/by-name/bl/blade-formatter/package-lock.json
generated
Normal file
13221
pkgs/by-name/bl/blade-formatter/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
67
pkgs/by-name/bl/blade-formatter/package.nix
Normal file
67
pkgs/by-name/bl/blade-formatter/package.nix
Normal file
@ -0,0 +1,67 @@
|
||||
{
|
||||
lib,
|
||||
buildNpmPackage,
|
||||
fetchFromGitHub,
|
||||
testers,
|
||||
writeText,
|
||||
runCommand,
|
||||
blade-formatter,
|
||||
nodejs,
|
||||
}:
|
||||
|
||||
buildNpmPackage rec {
|
||||
pname = "blade-formatter";
|
||||
version = "1.41.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "shufo";
|
||||
repo = "blade-formatter";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-iaWpIa+H+ocAXGc042PfmCu9UcJZeso9ripWB2/1oTs=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
cp ${./package-lock.json} ./package-lock.json
|
||||
'';
|
||||
|
||||
npmDepsHash = "sha256-wEz0DTbg+Fdmsf0Qyeu9QS+I8gkPJeaJC/3HuP913og=";
|
||||
|
||||
passthru = {
|
||||
updateScript = ./update.sh;
|
||||
tests = {
|
||||
version = testers.testVersion {
|
||||
package = blade-formatter;
|
||||
command = "blade-formatter --version";
|
||||
};
|
||||
|
||||
simple = testers.testEqualContents {
|
||||
assertion = "blade-formatter formats a basic blade file";
|
||||
expected = writeText "expected" ''
|
||||
@if (true)
|
||||
Hello world!
|
||||
@endif
|
||||
'';
|
||||
actual =
|
||||
runCommand "actual"
|
||||
{
|
||||
nativeBuildInputs = [ blade-formatter ];
|
||||
base = writeText "base" ''
|
||||
@if( true ) Hello world! @endif
|
||||
'';
|
||||
}
|
||||
''
|
||||
blade-formatter $base > $out
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
meta = {
|
||||
description = "Laravel Blade template formatter";
|
||||
homepage = "https://github.com/shufo/blade-formatter";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ lelgenio ];
|
||||
mainProgram = "blade-formatter";
|
||||
inherit (nodejs.meta) platforms;
|
||||
};
|
||||
}
|
38
pkgs/by-name/bl/blade-formatter/update.sh
Executable file
38
pkgs/by-name/bl/blade-formatter/update.sh
Executable file
@ -0,0 +1,38 @@
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i bash -p ripgrep common-updater-scripts prefetch-npm-deps jq sd
|
||||
|
||||
set -xeu -o pipefail
|
||||
|
||||
PACKAGE_DIR="$(realpath "$(dirname "$0")")"
|
||||
cd "$PACKAGE_DIR/.."
|
||||
while ! test -f default.nix; do cd .. ; done
|
||||
NIXPKGS_DIR="$PWD"
|
||||
|
||||
new_version="$(
|
||||
list-git-tags --url=https://github.com/shufo/blade-formatter \
|
||||
| rg '^v([\d.]*)' -r '$1' \
|
||||
| sort --version-sort \
|
||||
| tail -n1
|
||||
)"
|
||||
|
||||
cd "$NIXPKGS_DIR"
|
||||
update-source-version blade-formatter "$new_version"
|
||||
|
||||
TMPDIR="$(mktemp -d)"
|
||||
cd "$TMPDIR"
|
||||
|
||||
src="$(nix-build --no-link "$NIXPKGS_DIR" -A blade-formatter.src)"
|
||||
cp $src/package.json .
|
||||
npm update
|
||||
cp ./package-lock.json "$PACKAGE_DIR"
|
||||
|
||||
prev_npm_hash="$(nix-instantiate "$NIXPKGS_DIR" \
|
||||
--eval --json \
|
||||
-A blade-formatter.npmDepsHash \
|
||||
| jq -r .
|
||||
)"
|
||||
new_npm_hash="$(prefetch-npm-deps ./package-lock.json)"
|
||||
|
||||
sd --fixed-strings "$prev_npm_hash" "$new_npm_hash" "$PACKAGE_DIR/package.nix"
|
||||
|
||||
rm -rf "$TMPDIR"
|
@ -2,18 +2,18 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cargo-rdme";
|
||||
version = "1.4.3";
|
||||
version = "1.4.4";
|
||||
|
||||
src = fetchCrate {
|
||||
inherit pname version;
|
||||
hash = "sha256-WlZGhVWm6RYgODQZV4Sj3Q31FsPNd5SdYtp7kfUMxpI=";
|
||||
hash = "sha256-AARkXr6qOq9u/nmcmCnA4P+Q+MPPChCXoRaYiLwCNPs=";
|
||||
};
|
||||
|
||||
buildInputs = lib.optionals stdenv.isDarwin [
|
||||
Security
|
||||
];
|
||||
|
||||
cargoHash = "sha256-AVwKktP96QYAOjo5gFeXpY0wOQObwarn82oaT6AVuBk=";
|
||||
cargoHash = "sha256-myTh+zOtAt9h/irld7OHSXKMv0V+LAR4h/afYKvXeXg=";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Cargo command to create the README.md from your crate's documentation";
|
||||
|
31
pkgs/by-name/ca/catppuccin-fcitx5/package.nix
Normal file
31
pkgs/by-name/ca/catppuccin-fcitx5/package.nix
Normal file
@ -0,0 +1,31 @@
|
||||
{
|
||||
lib,
|
||||
stdenvNoCC,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
stdenvNoCC.mkDerivation {
|
||||
pname = "catppuccin-fcitx5";
|
||||
version = "0-unstable-2022-10-05";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "catppuccin";
|
||||
repo = "fcitx5";
|
||||
rev = "ce244cfdf43a648d984719fdfd1d60aab09f5c97";
|
||||
hash = "sha256-uFaCbyrEjv4oiKUzLVFzw+UY54/h7wh2cntqeyYwGps=";
|
||||
};
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir -p $out/share/fcitx5
|
||||
cp -r src $out/share/fcitx5/themes
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = {
|
||||
description = "Soothing pastel theme for Fcitx5";
|
||||
homepage = "https://github.com/catppuccin/fcitx5";
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ pluiedev ];
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
}
|
@ -48,7 +48,7 @@ rustPlatform.buildRustPackage rec {
|
||||
homepage = "https://github.com/friedow/centerpiece";
|
||||
description = "Your trusty omnibox search";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ a-kenji ];
|
||||
maintainers = with maintainers; [ a-kenji friedow ];
|
||||
platforms = platforms.linux;
|
||||
mainProgram = "centerpiece";
|
||||
};
|
||||
|
@ -9,16 +9,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "cue";
|
||||
version = "0.8.2";
|
||||
version = "0.9.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cue-lang";
|
||||
repo = "cue";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-GU1PG5ciUqbRlAveq2ouqnBYIBEdMSSM0H/1eHL+zlo=";
|
||||
hash = "sha256-gjuQ7sp6/GeKSqyyicOtH5Q/1xRy/7cta4KKMn2cfzQ=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-0OZtKIDdEnQLnSj109EpGvaZvMIy7gPAZ+weHzYKGSg=";
|
||||
vendorHash = "sha256-FsFignBh669E60S8l8siQHLzeSfB5X/XOHBXPMDX3Cg=";
|
||||
|
||||
subPackages = [ "cmd/*" ];
|
||||
|
||||
|
65
pkgs/by-name/da/datatrove/package.nix
Normal file
65
pkgs/by-name/da/datatrove/package.nix
Normal file
@ -0,0 +1,65 @@
|
||||
{
|
||||
lib,
|
||||
fetchFromGitHub,
|
||||
python3Packages,
|
||||
}:
|
||||
let
|
||||
version = "0.2.0";
|
||||
in
|
||||
python3Packages.buildPythonPackage {
|
||||
pname = "datatrove";
|
||||
inherit version;
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "huggingface";
|
||||
repo = "datatrove";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-2NJja2yWeHOgo1pCuwHN6SgYnsimuZdK0jE8ucTH4r8=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = with python3Packages; [ setuptools ];
|
||||
|
||||
propagatedBuildInputs = with python3Packages; [
|
||||
dill
|
||||
fsspec
|
||||
huggingface-hub
|
||||
tokenizers
|
||||
humanize
|
||||
loguru
|
||||
multiprocess
|
||||
numpy
|
||||
rich
|
||||
];
|
||||
|
||||
nativeCheckInputs = with python3Packages; [ pytestCheckHook ];
|
||||
dependencies = with python3Packages; [
|
||||
boto3
|
||||
fasteners
|
||||
huggingface-hub
|
||||
moto
|
||||
nltk
|
||||
s3fs
|
||||
xxhash
|
||||
];
|
||||
|
||||
disabledTestPaths = [
|
||||
"tests/executor/test_local.py"
|
||||
"tests/pipeline/test_filters.py"
|
||||
"tests/pipeline/test_bloom_filter.py"
|
||||
"tests/pipeline/test_minhash.py"
|
||||
"tests/pipeline/test_sentence_deduplication.py"
|
||||
"tests/pipeline/test_tokenization.py"
|
||||
"tests/pipeline/test_exact_substrings.py"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [ "datatrove" ];
|
||||
meta = {
|
||||
description = "Set of platform-agnostic customizable pipeline processing blocks for data processing";
|
||||
homepage = "https://github.com/huggingface/datatrove";
|
||||
changelog = "https://github.com/huggingface/datatrove/releases/tag/v${version}";
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ luftmensch-luftmensch ];
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
}
|
@ -29,7 +29,7 @@ let
|
||||
doInstallCheck = false;
|
||||
});
|
||||
|
||||
version = "1.0.5";
|
||||
version = "1.0.6";
|
||||
in rustPlatform.buildRustPackage {
|
||||
pname = "devenv";
|
||||
inherit version;
|
||||
@ -38,10 +38,10 @@ in rustPlatform.buildRustPackage {
|
||||
owner = "cachix";
|
||||
repo = "devenv";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-W5DFIifCjGYJXJzLU3RpqBeqes4zrf0Sr/6rwzTygPU=";
|
||||
hash = "sha256-vGmMEQohwHiTtkFm6WTKtNNYVqPJA6YxRhAizbhtCwE=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-a6o28oonA6G0xo83PXwbH86V0aDDAAA2zajE67qsSU0=";
|
||||
cargoHash = "sha256-89pivwMs/TpCQBaKFH6iUEpaid5eQOrvyz5otcFKy54=";
|
||||
|
||||
nativeBuildInputs = [ makeWrapper pkg-config ];
|
||||
|
||||
|
28
pkgs/by-name/ep/epy/package.nix
Normal file
28
pkgs/by-name/ep/epy/package.nix
Normal file
@ -0,0 +1,28 @@
|
||||
{ lib, python3Packages, fetchPypi }:
|
||||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "epy";
|
||||
version = "2023.6.11";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchPypi {
|
||||
inherit version;
|
||||
pname = "epy_reader";
|
||||
hash = "sha256-gel503e8DXjrMJK9lpAZ6GxQsrahKX+SjiyRwKbiJUY=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ python3Packages.poetry-core ];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"epy_reader.cli"
|
||||
"epy_reader.reader"
|
||||
];
|
||||
|
||||
meta = {
|
||||
description = "CLI Ebook Reader";
|
||||
homepage = "https://github.com/wustho/epy";
|
||||
mainProgram = "epy";
|
||||
license = lib.licenses.gpl3;
|
||||
maintainers = with lib.maintainers; [ perstark ];
|
||||
};
|
||||
}
|
@ -5,10 +5,10 @@
|
||||
|
||||
let
|
||||
pname = "fflogs";
|
||||
version = "8.5.10";
|
||||
version = "8.5.12";
|
||||
src = fetchurl {
|
||||
url = "https://github.com/RPGLogs/Uploaders-fflogs/releases/download/v${version}/fflogs-v${version}.AppImage";
|
||||
hash = "sha256-HDfmTAKOphxcoRpQDxbytQqOhhVa9Jof9D63YlH7ezQ=";
|
||||
hash = "sha256-mlqQm9o001+pSMfMbOwa+gKcIIC6SBg7Rott9+XkB2E=";
|
||||
};
|
||||
extracted = appimageTools.extractType2 { inherit pname version src; };
|
||||
in
|
||||
|
@ -10,16 +10,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "fzf-make";
|
||||
version = "0.32.0";
|
||||
version = "0.33.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "kyu08";
|
||||
repo = "fzf-make";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-JHquE35qe1nJFJ+0gniG72o1DrGLZSZ0do5oPHgYbHU=";
|
||||
hash = "sha256-ct4ugHqSekAZrkuFotjzMzcoJ0+P7d0Qhi79SqVZHPM=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-61I6OiEP0t9DAF0jnIEyGRTpPBU65zz/W6mAo7XelVo=";
|
||||
cargoHash = "sha256-0VhcpW56OePvHVFPG4QaK8ezvNUAuWyI5gztjuKFKVQ=";
|
||||
|
||||
nativeBuildInputs = [ makeBinaryWrapper ];
|
||||
|
||||
|
@ -7,13 +7,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "highs";
|
||||
version = "1.7.0";
|
||||
version = "1.7.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ERGO-Code";
|
||||
repo = "HiGHS";
|
||||
rev = "v${finalAttrs.version}";
|
||||
sha256 = "sha256-2dYKXckZ+npj1rA2mmBRuRcGI1YNcaiITSMjE2/TA2g=";
|
||||
sha256 = "sha256-SJbS0403HyiW8zPrLsNWp8+h/wL7UdrS+QOEjLf1jzE=";
|
||||
};
|
||||
|
||||
strictDeps = true;
|
||||
|
@ -8,14 +8,14 @@
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "igvm-tooling";
|
||||
version = "1.5.0";
|
||||
version = "1.5.0-unstable-2024-06-06";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "microsoft";
|
||||
repo = "igvm-tooling";
|
||||
rev = "igvm-${version}";
|
||||
hash = "sha256-13TtiJv2w9WXSW6oPMfo+rRah+Q1wHV14aBaFGfz9CE=";
|
||||
rev = "53656ddde294bbafcae6349b5acfc5da9f7dbb92";
|
||||
hash = "sha256-X9Gi+kTmc/ZcsgbHldEj9zPnOmd5puDD7/+J1s1CVws=";
|
||||
};
|
||||
|
||||
patches = [
|
||||
@ -27,22 +27,6 @@ python3.pkgs.buildPythonApplication rec {
|
||||
sha256 = "sha256-tcVxcuLxknyEdo2YjeHOqSG9xQna8US+YyvlcfX+Htw=";
|
||||
stripLen = 1;
|
||||
})
|
||||
# write updated acpi files to tempdir (instead of nix store path) at runtime
|
||||
# remove once https://github.com/microsoft/igvm-tooling/pull/54 is merged
|
||||
(fetchpatch {
|
||||
name = "0002-acpi-update-dsl-files-in-tempdir.patch";
|
||||
url = "https://github.com/microsoft/igvm-tooling/commit/20f8d123ec6531d8540074b7df2ee12de60e73b8.patch";
|
||||
sha256 = "sha256-hNfkclxaYViy66TPHqLV3mqD7wqBuBN9MnMLaDOeRNM=";
|
||||
stripLen = 1;
|
||||
})
|
||||
# allow for determinist id block signing
|
||||
# remove once https://github.com/microsoft/igvm-tooling/pull/55 is merged
|
||||
(fetchpatch {
|
||||
name = "0003-add-deterministic-id-block-signature-mode.patch";
|
||||
url = "https://github.com/microsoft/igvm-tooling/commit/03ad7825ade76ac25e308bb85f92e89b732e0bf1.patch";
|
||||
sha256 = "sha256-Y7DFr0KgGtY8KOt6fLWd32sTaig/zHFe7n83+Yb9ls8=";
|
||||
stripLen = 1;
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "jsoncons";
|
||||
version = "0.175.0";
|
||||
version = "0.176.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "danielaparker";
|
||||
repo = "jsoncons";
|
||||
rev = "v${finalAttrs.version}";
|
||||
hash = "sha256-pLOKgZx3f0Jka0Tm3SBC1JlQ2Rc3ViPgmXRbjgF4UXI=";
|
||||
hash = "sha256-RDF5HL6utM/6wna1TxCefl7X8B1qp6nsEDrguTLrtgA=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ];
|
||||
|
@ -11,13 +11,13 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "kermit";
|
||||
version = "3.8";
|
||||
version = "4.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "orhun";
|
||||
repo = "kermit";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-XPHF33Nu+H8OcQFwsuUOhDBDWKm8sh5B36sfROeSWPg=";
|
||||
hash = "sha256-rhlUnRfyd7PmtMSyP+tiu+TxZNb/YyS0Yc5IkWft7/4=";
|
||||
};
|
||||
|
||||
outputs = [ "out" "man" ];
|
||||
|
@ -3,7 +3,7 @@
|
||||
rustPlatform,
|
||||
fetchFromGitHub,
|
||||
}: let
|
||||
version = "0.6.0";
|
||||
version = "0.8.0";
|
||||
in
|
||||
rustPlatform.buildRustPackage {
|
||||
pname = "kittysay";
|
||||
@ -13,10 +13,10 @@ in
|
||||
owner = "uncenter";
|
||||
repo = "kittysay";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-dJpbRPrpilaOFVPjAESk4DyZtH/hJm16p6pMRqrzOk4=";
|
||||
sha256 = "sha256-ZYHrDBJ8cTqJAh2KUGSCsS1bY/emHRodPxZX2vxAhDs=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-r1xdMczqVyX7ZPjkyDdgVW3BFOeKOw1Dp6mGHb2XzrM=";
|
||||
cargoHash = "sha256-F0WAtpAjBwL5YfzGtPgn7WTL6lgx3bjZFBQdDpjCr3I=";
|
||||
|
||||
meta = {
|
||||
description = "Cowsay, but with a cute kitty :3";
|
||||
|
@ -22,9 +22,9 @@
|
||||
}:
|
||||
stdenv.mkDerivation (self: {
|
||||
pname = "louvre";
|
||||
version = "1.2.1-2";
|
||||
version = "2.0.0-1";
|
||||
rev = "v${self.version}";
|
||||
hash = "sha256-jHMgn6EwWt9GMT8JvIUtUPbn9o1DZCzxiYC7RnoGZv0=";
|
||||
hash = "sha256-tDpgFtccMlGYrahEC4vlj5cfIzkqUl664ccRhcKIVTQ=";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
inherit (self) rev hash;
|
||||
|
@ -7,16 +7,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec{
|
||||
pname = "makima";
|
||||
version = "0.9.1";
|
||||
version = "0.9.3";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "cyber-sushi";
|
||||
repo = "makima";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-lBHJ4K+4pVNmjK9dSRev487MXsZv9tIAb30Rh/fYc34=";
|
||||
hash = "sha256-esZCFMeIRoafR7vQbnyf3Mo18trVZdIy9rvAvTHfrLA=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-1/7pJJPli8JIvCWBsbcRaYsqzF8RRWxj3coVRdS7EZc=";
|
||||
cargoHash = "sha256-NXiK+cimQaYpzY3WSHUlYUWcXOLWQ5TwGuZKh+OB+go=";
|
||||
|
||||
nativeBuildInputs = [ pkg-config ];
|
||||
buildInputs = [ udev ];
|
||||
|
@ -1,7 +1,21 @@
|
||||
{ lib, stdenv, fetchFromGitHub, meson, ninja, pkg-config, scdoc
|
||||
, systemd, pango, cairo, gdk-pixbuf, jq, bash
|
||||
, wayland, wayland-protocols
|
||||
, wrapGAppsHook3 }:
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, meson
|
||||
, ninja
|
||||
, pkg-config
|
||||
, scdoc
|
||||
, systemd
|
||||
, pango
|
||||
, cairo
|
||||
, gdk-pixbuf
|
||||
, jq
|
||||
, bash
|
||||
, wayland
|
||||
, wayland-scanner
|
||||
, wayland-protocols
|
||||
, wrapGAppsHook3
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "mako";
|
||||
@ -14,7 +28,9 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
sha256 = "sha256-QtYtondP7E5QXLRnmcaOQlAm9fKXctfjxeUFqK6FnnE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ meson ninja pkg-config scdoc wayland-protocols wrapGAppsHook3 ];
|
||||
strictDeps = true;
|
||||
depsBuildBuild = [ pkg-config ];
|
||||
nativeBuildInputs = [ meson ninja pkg-config scdoc wayland-protocols wrapGAppsHook3 wayland-scanner ];
|
||||
buildInputs = [ systemd pango cairo gdk-pixbuf wayland ];
|
||||
|
||||
mesonFlags = [
|
||||
|
2
pkgs/by-name/ne/neocities/Gemfile
Normal file
2
pkgs/by-name/ne/neocities/Gemfile
Normal file
@ -0,0 +1,2 @@
|
||||
source 'https://rubygems.org'
|
||||
gem 'neocities'
|
47
pkgs/by-name/ne/neocities/Gemfile.lock
Normal file
47
pkgs/by-name/ne/neocities/Gemfile.lock
Normal file
@ -0,0 +1,47 @@
|
||||
GEM
|
||||
remote: https://rubygems.org/
|
||||
specs:
|
||||
equatable (0.5.0)
|
||||
httpclient-fixcerts (2.8.5)
|
||||
necromancer (0.4.0)
|
||||
neocities (0.0.18)
|
||||
httpclient-fixcerts (~> 2.8, >= 2.8.5)
|
||||
pastel (~> 0.7, = 0.7.2)
|
||||
rake (~> 12.3, >= 12.3.1)
|
||||
tty-prompt (~> 0.12, = 0.12.0)
|
||||
tty-table (~> 0.10, = 0.10.0)
|
||||
pastel (0.7.2)
|
||||
equatable (~> 0.5.0)
|
||||
tty-color (~> 0.4.0)
|
||||
rake (12.3.3)
|
||||
strings (0.1.8)
|
||||
strings-ansi (~> 0.1)
|
||||
unicode-display_width (~> 1.5)
|
||||
unicode_utils (~> 1.4)
|
||||
strings-ansi (0.2.0)
|
||||
tty-color (0.4.3)
|
||||
tty-cursor (0.4.0)
|
||||
tty-prompt (0.12.0)
|
||||
necromancer (~> 0.4.0)
|
||||
pastel (~> 0.7.0)
|
||||
tty-cursor (~> 0.4.0)
|
||||
wisper (~> 1.6.1)
|
||||
tty-screen (0.6.5)
|
||||
tty-table (0.10.0)
|
||||
equatable (~> 0.5.0)
|
||||
necromancer (~> 0.4.0)
|
||||
pastel (~> 0.7.2)
|
||||
strings (~> 0.1.0)
|
||||
tty-screen (~> 0.6.4)
|
||||
unicode-display_width (1.8.0)
|
||||
unicode_utils (1.4.0)
|
||||
wisper (1.6.1)
|
||||
|
||||
PLATFORMS
|
||||
ruby
|
||||
|
||||
DEPENDENCIES
|
||||
neocities
|
||||
|
||||
BUNDLED WITH
|
||||
2.1.4
|
167
pkgs/by-name/ne/neocities/gemset.nix
Normal file
167
pkgs/by-name/ne/neocities/gemset.nix
Normal file
@ -0,0 +1,167 @@
|
||||
{
|
||||
equatable = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1sjm9zjakyixyvsqziikdrsqfzis6j3fq23crgjkp6fwkfgndj7x";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.5.0";
|
||||
};
|
||||
httpclient-fixcerts = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1zfszylh51y8ic8sbff3mwf30jb0gj270r5nxkcm1ydxad19w6sl";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.8.5";
|
||||
};
|
||||
necromancer = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0v9nhdkv6zrp7cn48xv7n2vjhsbslpvs0ha36mfkcd56cp27pavz";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.4.0";
|
||||
};
|
||||
neocities = {
|
||||
dependencies = ["httpclient-fixcerts" "pastel" "rake" "tty-prompt" "tty-table"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1hfvy4gc7rzxkgl2dbrjs2fqzi5mphmr22rjfhk6n0i3bd0wazbw";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.0.18";
|
||||
};
|
||||
pastel = {
|
||||
dependencies = ["equatable" "tty-color"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1yf30d9kzpm96gw9kwbv31p0qigwfykn8qdis5950plnzgc1vlp1";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.7.2";
|
||||
};
|
||||
rake = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1cvaqarr1m84mhc006g3l1vw7sa5qpkcw0138lsxlf769zdllsgp";
|
||||
type = "gem";
|
||||
};
|
||||
version = "12.3.3";
|
||||
};
|
||||
strings = {
|
||||
dependencies = ["strings-ansi" "unicode-display_width" "unicode_utils"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "111876lcqrykh30w7zzkrl06d6rj9lq24y625m28674vgfxkkcz0";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.1.8";
|
||||
};
|
||||
strings-ansi = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "120wa6yjc63b84lprglc52f40hx3fx920n4dmv14rad41rv2s9lh";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.2.0";
|
||||
};
|
||||
tty-color = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0zz5xa6xbrj69h334d8nx7z732fz80s1a0b02b53mim95p80s7bk";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.4.3";
|
||||
};
|
||||
tty-cursor = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "07whfm8mnp7l49s2cm2qy1snhsqq3a90sqwb71gvym4hm2kx822a";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.4.0";
|
||||
};
|
||||
tty-prompt = {
|
||||
dependencies = ["necromancer" "pastel" "tty-cursor" "wisper"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1026nyqhgmgxi2nmk8xk3hca07gy5rpisjs8y6w00wnw4f01kpv0";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.12.0";
|
||||
};
|
||||
tty-screen = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0azpjgyhdm8ycblnx9crq3dgb2x8yg454a13n60zfpsc0n138sw1";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.6.5";
|
||||
};
|
||||
tty-table = {
|
||||
dependencies = ["equatable" "necromancer" "pastel" "strings" "tty-screen"];
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "05krrj1x5pmfbz74paszrsr1316w9b9jlc4wpd9s9gpzqfzwjzcg";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.10.0";
|
||||
};
|
||||
unicode-display_width = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1204c1jx2g89pc25qk5150mk7j5k90692i7ihgfzqnad6qni74h2";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.8.0";
|
||||
};
|
||||
unicode_utils = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0h1a5yvrxzlf0lxxa1ya31jcizslf774arnsd89vgdhk4g7x08mr";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.4.0";
|
||||
};
|
||||
wisper = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "19bw0z1qw1dhv7gn9lad25hgbgpb1bkw8d599744xdfam158ms2s";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.6.1";
|
||||
};
|
||||
}
|
19
pkgs/by-name/ne/neocities/package.nix
Normal file
19
pkgs/by-name/ne/neocities/package.nix
Normal file
@ -0,0 +1,19 @@
|
||||
{ lib
|
||||
, bundlerApp
|
||||
, bundlerUpdateScript
|
||||
}:
|
||||
bundlerApp {
|
||||
pname = "neocities";
|
||||
gemdir = ./.;
|
||||
exes = [ "neocities" ];
|
||||
|
||||
passthru.updateScript = bundlerUpdateScript "neocities";
|
||||
|
||||
meta = with lib; {
|
||||
description = "The Neocities CLI, written in Ruby";
|
||||
homepage = "https://github.com/neocities/neocities-ruby";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ infinidoge ];
|
||||
mainProgram = "neocities";
|
||||
};
|
||||
}
|
@ -7,7 +7,7 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "ocis-bin";
|
||||
version = "5.0.1";
|
||||
version = "5.0.5";
|
||||
system =
|
||||
if stdenv.isLinux && stdenv.isx86_64 then
|
||||
"linux-amd64"
|
||||
@ -21,9 +21,9 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
|
||||
hash =
|
||||
if stdenv.isLinux && stdenv.isAarch64 then
|
||||
"sha256-8AEXuwTodhqF0LF1duYItntgp9mxoIdHChbtAnnnaQg="
|
||||
"sha256-OdtT9NOhh0Fkk+8CDic0NWWbGflk3FcuKB60OycJU5E="
|
||||
else if stdenv.isLinux && stdenv.isx86_64 then
|
||||
"sha256-Fz0ee0Lu0CL3xJbsp1CCl0rsN/p48BdOj8oVOf0QSh4="
|
||||
"sha256-YAIhtHv/cO4yFpkWoRNMf6t4+ifMtGPTcYu84ZMvfD4="
|
||||
else
|
||||
builtins.throw "Unsupported platform, please contact Nixpkgs maintainers for ocis package";
|
||||
};
|
||||
|
@ -6,16 +6,16 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "oh-my-posh";
|
||||
version = "21.0.1";
|
||||
version = "21.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jandedobbeleer";
|
||||
repo = pname;
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-fN1vkDk9u4NWVnaNuFVjcKQ7rEMhOMxBlvTxrp8G1d8=";
|
||||
hash = "sha256-6HWAlGT1xUNjt0uxh09DdwOZtyOO8ZlVY8/jr7CsJVM=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-MdHWAC46694hgCi1i/syNPdn4t+kY2ZhCAnE7aD8+8Y=";
|
||||
vendorHash = "sha256-MEQS2wpRbexSJa324lSWEkaqlTF7CfzlrODXoGdfQ6M=";
|
||||
|
||||
sourceRoot = "${src.name}/src";
|
||||
|
||||
|
@ -9,13 +9,13 @@
|
||||
|
||||
stdenv.mkDerivation {
|
||||
pname = "ols";
|
||||
version = "0-unstable-2024-06-04";
|
||||
version = "0-unstable-2024-06-05";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "DanielGavin";
|
||||
repo = "ols";
|
||||
rev = "5805fd0b688446eeb23528497972b9f934208f1a";
|
||||
hash = "sha256-zvojGIxMGawddWx5vnBQMTybz+jL9LXfaShbof7wwq0=";
|
||||
rev = "c4996b10d88aed9a0028c92ea54c42e4e9aeb39f";
|
||||
hash = "sha256-PnajCKfk4XVR1FwG5ySzL/ibpwie+Xhr6MxHeXZiKmg=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -7,19 +7,19 @@
|
||||
}:
|
||||
let
|
||||
pname = "open-webui";
|
||||
version = "0.2.5";
|
||||
version = "0.3.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "open-webui";
|
||||
repo = "open-webui";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-BqclBrkFmTUJZuUySyNsQFlfdyENaIhqjn50797zJHY=";
|
||||
hash = "sha256-hUm4UUQUFoDRrAg+RqIo735iQs8304OUJlT91vILmXo=";
|
||||
};
|
||||
|
||||
frontend = buildNpmPackage {
|
||||
inherit pname version src;
|
||||
|
||||
npmDepsHash = "sha256-drMUcCUeyPEnaa1fSsfHJfInenyfH7NNJgBFeRsfOuE=";
|
||||
npmDepsHash = "sha256-VdGneemYLMuMczjQB6I35Ry2kyIuAe2IaeDus/NvzK8=";
|
||||
|
||||
# Disabling `pyodide:fetch` as it downloads packages during `buildPhase`
|
||||
# Until this is solved, running python packages from the browser will not work.
|
||||
@ -55,64 +55,64 @@ python3.pkgs.buildPythonApplication rec {
|
||||
pythonRelaxDeps = true;
|
||||
|
||||
pythonRemoveDeps = [
|
||||
# using `psycopg2` instead
|
||||
"psycopg2-binary"
|
||||
# using `opencv4`
|
||||
"opencv-python-headless"
|
||||
# using `psycopg2` instead
|
||||
"psycopg2-binary"
|
||||
# package request: https://github.com/NixOS/nixpkgs/issues/317065
|
||||
"rapidocr-onnxruntime"
|
||||
# package request: https://github.com/NixOS/nixpkgs/issues/317066
|
||||
"langfuse"
|
||||
# package request: https://github.com/NixOS/nixpkgs/issues/317068
|
||||
"langchain-chroma"
|
||||
];
|
||||
|
||||
dependencies = with python3.pkgs; [
|
||||
aiohttp
|
||||
apscheduler
|
||||
argon2-cffi
|
||||
bcrypt
|
||||
beautifulsoup4
|
||||
black
|
||||
boto3
|
||||
chromadb
|
||||
docx2txt
|
||||
extract-msg
|
||||
fake-useragent
|
||||
fastapi
|
||||
uvicorn
|
||||
python-multipart
|
||||
faster-whisper
|
||||
flask
|
||||
flask-cors
|
||||
python-socketio
|
||||
python-jose
|
||||
fpdf2
|
||||
google-generativeai
|
||||
langchain
|
||||
langchain-chroma
|
||||
langchain-community
|
||||
langfuse
|
||||
litellm
|
||||
markdown
|
||||
opencv4
|
||||
openpyxl
|
||||
pandas
|
||||
passlib
|
||||
requests
|
||||
aiohttp
|
||||
peewee
|
||||
peewee-migrate
|
||||
psycopg2
|
||||
pymysql
|
||||
bcrypt
|
||||
litellm
|
||||
boto3
|
||||
argon2-cffi
|
||||
apscheduler
|
||||
google-generativeai
|
||||
langchain
|
||||
langchain-community
|
||||
fake-useragent
|
||||
chromadb
|
||||
sentence-transformers
|
||||
pypdf
|
||||
docx2txt
|
||||
python-pptx
|
||||
unstructured
|
||||
markdown
|
||||
pypandoc
|
||||
pandas
|
||||
openpyxl
|
||||
pyxlsb
|
||||
xlrd
|
||||
validators
|
||||
opencv4
|
||||
fpdf2
|
||||
rank-bm25
|
||||
faster-whisper
|
||||
pydub
|
||||
pyjwt
|
||||
black
|
||||
youtube-transcript-api
|
||||
pymysql
|
||||
pypandoc
|
||||
pypdf
|
||||
python-jose
|
||||
python-multipart
|
||||
python-pptx
|
||||
python-socketio
|
||||
pytube
|
||||
pyxlsb
|
||||
rank-bm25
|
||||
requests
|
||||
sentence-transformers
|
||||
unstructured
|
||||
uvicorn
|
||||
validators
|
||||
xlrd
|
||||
youtube-transcript-api
|
||||
];
|
||||
|
||||
build-system = with python3.pkgs; [
|
||||
|
@ -1,16 +1,16 @@
|
||||
{ lib, buildGoModule, fetchFromGitHub }:
|
||||
buildGoModule rec {
|
||||
pname = "pmtiles";
|
||||
version = "1.19.2";
|
||||
version = "1.20.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "protomaps";
|
||||
repo = "go-pmtiles";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-FhX+Hqtrns/MxOk0cTnDEhYmwyGXgkG85zJJ94+G9yk=";
|
||||
hash = "sha256-ZwTZtMNgQE0AIbxdjA+8CFKSp1B9QnV5wmP+z/JoIpg=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-N/8n3NDHShcXjPvLSkLRacY4aqFzLYM/+/mJRGXQAVg=";
|
||||
vendorHash = "sha256-Buzk+rPSPrs0q+g6MWVb47cAIKMxsNXlj3CWA0JINXM=";
|
||||
|
||||
ldflags = [ "-s" "-w" "-X main.version=${version}" "-X main.commit=v${version}" ];
|
||||
|
||||
|
@ -6,18 +6,18 @@
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "pulumi-esc";
|
||||
version = "0.9.0";
|
||||
version = "0.9.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pulumi";
|
||||
repo = "esc";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-fpS4bnS51Ch3dUvwqHdD4DBpZFZQCqwDlYWotyEfvlQ=";
|
||||
hash = "sha256-9K7pP4MOShHPTxTuKaUMY87Z4rDkGHrV9Ds1guUpFqM=";
|
||||
};
|
||||
|
||||
subPackages = "cmd/esc";
|
||||
|
||||
vendorHash = "sha256-Wcll/UWgCTBd1Bkbdt6kZZ6jgouWkzkFicv3CvX5hw4=";
|
||||
vendorHash = "sha256-uVw8jc7dZOHdJt9uVDJGaJWkD7dz0rQ3W1pJXSrcW5w=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
|
@ -7,11 +7,11 @@
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "quarkus-cli";
|
||||
version = "3.11.0";
|
||||
version = "3.11.1";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/quarkusio/quarkus/releases/download/${finalAttrs.version}/quarkus-cli-${finalAttrs.version}.tar.gz";
|
||||
hash = "sha256-oV6zSyrWYR/j58bZF/GPsrQEgR/TP27ipbxaVkEe+zE=";
|
||||
hash = "sha256-eR3/DDO50KYVI14iX+IvALK4YLx0hmd9Z4rToPQTBGE=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ makeWrapper ];
|
||||
|
@ -2,13 +2,13 @@
|
||||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "rasm";
|
||||
version = "2.2.4";
|
||||
version = "2.2.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "EdouardBERGE";
|
||||
repo = "rasm";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-PCjL/MIAIbiS4CKpegcoWIA8Ek2cE6pgbIMu7TzTjPQ=";
|
||||
hash = "sha256-m2XRi9RF089dBpkwcu/zgmd3XnBF4uJU5B4ec4WJ36I=";
|
||||
};
|
||||
|
||||
# by default the EXEC variable contains `rasm.exe`
|
||||
|
36
pkgs/by-name/sr/srgn/package.nix
Normal file
36
pkgs/by-name/sr/srgn/package.nix
Normal file
@ -0,0 +1,36 @@
|
||||
{ rustPlatform
|
||||
, fetchFromGitHub
|
||||
, installShellFiles
|
||||
, lib
|
||||
}:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "srgn";
|
||||
version = "0.12.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "alexpovel";
|
||||
repo = "srgn";
|
||||
rev = "${pname}-v${version}";
|
||||
hash = "sha256-d53aSo1gzINC8WdMzjCHzU/8+9kvrrGglV4WsiCt+rM=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-jy7KHcdkI+T8GbT6gH9ppJhQvhv/NPe+jRWKuybtQC4=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
postInstall = ''
|
||||
for shell in bash zsh fish; do
|
||||
installShellCompletion --cmd srgn "--$shell" <("$out/bin/srgn" --completions "$shell")
|
||||
done
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
description = "A code surgeon for precise text and code transplantation";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ caralice ];
|
||||
mainProgram = "srgn";
|
||||
homepage = "https://github.com/${src.owner}/${src.repo}/";
|
||||
downloadPage = "https://github.com/${src.owner}/${src.repo}/releases/tag/${src.rev}";
|
||||
changelog = "https://github.com/${src.owner}/${src.repo}/blob/${src.rev}/CHANGELOG.md";
|
||||
};
|
||||
}
|
@ -1,12 +1,12 @@
|
||||
{
|
||||
"name": "svelte-language-server",
|
||||
"version": "0.16.9",
|
||||
"version": "0.16.10",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"name": "svelte-language-server",
|
||||
"version": "0.16.9",
|
||||
"version": "0.16.10",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@jridgewell/trace-mapping": "^0.3.17",
|
||||
@ -211,9 +211,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/lodash": {
|
||||
"version": "4.17.1",
|
||||
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.1.tgz",
|
||||
"integrity": "sha512-X+2qazGS3jxLAIz5JDXDzglAF3KpijdhFxlf/V1+hEsOUc+HnWi81L/uv/EvGuV90WY+7mPGFCUDGfQC3Gj95Q==",
|
||||
"version": "4.17.4",
|
||||
"resolved": "https://registry.npmjs.org/@types/lodash/-/lodash-4.17.4.tgz",
|
||||
"integrity": "sha512-wYCP26ZLxaT3R39kiN2+HcJ4kTd3U1waI/cY7ivWYqFP6pW3ZNpvi6Wd6PHZx7T/t8z0vlkXMg3QYLa7DZ/IJQ==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/mocha": {
|
||||
@ -223,9 +223,9 @@
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/node": {
|
||||
"version": "16.18.97",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.97.tgz",
|
||||
"integrity": "sha512-4muilE1Lbfn57unR+/nT9AFjWk0MtWi5muwCEJqnOvfRQDbSfLCUdN7vCIg8TYuaANfhLOV85ve+FNpiUsbSRg==",
|
||||
"version": "16.18.98",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-16.18.98.tgz",
|
||||
"integrity": "sha512-fpiC20NvLpTLAzo3oVBKIqBGR6Fx/8oAK/SSf7G+fydnXMY1x4x9RZ6sBXhqKlCU21g2QapUsbLlhv3+a7wS+Q==",
|
||||
"dev": true
|
||||
},
|
||||
"node_modules/@types/prettier": {
|
||||
@ -378,11 +378,11 @@
|
||||
}
|
||||
},
|
||||
"node_modules/braces": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
|
||||
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
|
||||
"version": "3.0.3",
|
||||
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz",
|
||||
"integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==",
|
||||
"dependencies": {
|
||||
"fill-range": "^7.0.1"
|
||||
"fill-range": "^7.1.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
@ -670,9 +670,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/fill-range": {
|
||||
"version": "7.0.1",
|
||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
|
||||
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
|
||||
"version": "7.1.1",
|
||||
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz",
|
||||
"integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==",
|
||||
"dependencies": {
|
||||
"to-regex-range": "^5.0.1"
|
||||
},
|
||||
@ -736,6 +736,7 @@
|
||||
"version": "7.2.0",
|
||||
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.0.tgz",
|
||||
"integrity": "sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==",
|
||||
"deprecated": "Glob versions prior to v9 are no longer supported",
|
||||
"dependencies": {
|
||||
"fs.realpath": "^1.0.0",
|
||||
"inflight": "^1.0.4",
|
||||
@ -809,6 +810,7 @@
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
|
||||
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
|
||||
"deprecated": "This module is not supported, and leaks memory. Do not use it. Check out lru-cache if you want a good and tested way to coalesce async requests by a key value, which is much more comprehensive and powerful.",
|
||||
"dependencies": {
|
||||
"once": "^1.3.0",
|
||||
"wrappy": "1"
|
||||
@ -989,11 +991,11 @@
|
||||
}
|
||||
},
|
||||
"node_modules/micromatch": {
|
||||
"version": "4.0.5",
|
||||
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz",
|
||||
"integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==",
|
||||
"version": "4.0.7",
|
||||
"resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.7.tgz",
|
||||
"integrity": "sha512-LPP/3KorzCwBxfeUuZmaR6bG2kdeHSbe0P2tY3FLRU4vYrjYz5hI4QZwV0njUx3jeuKe67YukQ1LSPZBKDqO/Q==",
|
||||
"dependencies": {
|
||||
"braces": "^3.0.2",
|
||||
"braces": "^3.0.3",
|
||||
"picomatch": "^2.3.1"
|
||||
},
|
||||
"engines": {
|
||||
@ -1349,6 +1351,7 @@
|
||||
"version": "2.7.1",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
|
||||
"integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
|
||||
"deprecated": "Rimraf versions prior to v4 are no longer supported",
|
||||
"dependencies": {
|
||||
"glob": "^7.1.3"
|
||||
},
|
||||
@ -1629,9 +1632,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/svelte2tsx": {
|
||||
"version": "0.7.8",
|
||||
"resolved": "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.7.8.tgz",
|
||||
"integrity": "sha512-ABK3RDFcy59AqAiU1N5Kxu1RnKrb1GDMrQjLgNgJfE8Q+coCKpjCAPtUVKQM2HnmuqeNWcT3NqfXbE+ZmN5Pow==",
|
||||
"version": "0.7.9",
|
||||
"resolved": "https://registry.npmjs.org/svelte2tsx/-/svelte2tsx-0.7.9.tgz",
|
||||
"integrity": "sha512-Rm+0LAwg9wT4H2IsR8EaM9EWErTzi9LmuZKxkH5b1ua94XjQmwHstBP4VabLgA9AE6XmwBg+xK7Cjzwfm6ustQ==",
|
||||
"dependencies": {
|
||||
"dedent-js": "^1.0.1",
|
||||
"pascal-case": "^3.1.1"
|
||||
@ -1705,9 +1708,9 @@
|
||||
}
|
||||
},
|
||||
"node_modules/tslib": {
|
||||
"version": "2.6.2",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
|
||||
"integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
|
||||
"version": "2.6.3",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.3.tgz",
|
||||
"integrity": "sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ=="
|
||||
},
|
||||
"node_modules/type-detect": {
|
||||
"version": "4.0.8",
|
||||
|
@ -3,17 +3,17 @@
|
||||
, fetchurl
|
||||
}:
|
||||
let
|
||||
version = "0.16.9";
|
||||
version = "0.16.10";
|
||||
in buildNpmPackage {
|
||||
pname = "svelte-language-server";
|
||||
inherit version;
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://registry.npmjs.org/svelte-language-server/-/svelte-language-server-${version}.tgz";
|
||||
hash = "sha256-RR2RzBZGCyd0hnEX4iD5pjmgtq8GzgrGZAG8Qq63EZA=";
|
||||
hash = "sha256-Int5mc147BUqpOGT2T3oNRbLNjioEaEifOH3wF1vJL4=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-WYiWm/2gr/0kXZOYeMjVYZOg0JttghPF9jkwNnb0nQo=";
|
||||
npmDepsHash = "sha256-/JjMrbDyoHUvGJxqmkxjxCkWURJa8sXUZryQRGTdRMY=";
|
||||
|
||||
postPatch = ''
|
||||
ln -s ${./package-lock.json} package-lock.json
|
||||
|
@ -2,16 +2,16 @@
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "swaywsr";
|
||||
version = "1.1.1";
|
||||
version = "1.3.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pedroscaff";
|
||||
repo = pname;
|
||||
rev = "0276b43824af5c40085248c1275feaa372c412a5";
|
||||
sha256 = "sha256-KCMsn9uevmmjHkP4zwfaWSUI10JgT3M91iqmXI9Cv2Y=";
|
||||
rev = "521fbf92738f44be438d3be6bdd665f02ac9d35c";
|
||||
hash = "sha256-6hGEcJz+zGfwz1q+XKQYfyJJK7lr+kCgk2/uiq1xP0M=";
|
||||
};
|
||||
|
||||
cargoSha256 = "sha256-j/9p28ezy8m5NXReOmG1oryWd+GcY/fNW6i7OrEvjSc=";
|
||||
cargoHash = "sha256-zoV2vy41fVsX8BtddURqQymMX4Zpso+GOBBqoVr3tYo=";
|
||||
|
||||
nativeBuildInputs = [ python3 ];
|
||||
buildInputs = [ libxcb ];
|
||||
|
44
pkgs/by-name/tm/tmsu/package.nix
Normal file
44
pkgs/by-name/tm/tmsu/package.nix
Normal file
@ -0,0 +1,44 @@
|
||||
{
|
||||
lib,
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
installShellFiles,
|
||||
}:
|
||||
|
||||
buildGoModule {
|
||||
pname = "tmsu";
|
||||
version = "0.7.5-unstable-2024-06-08";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "oniony";
|
||||
repo = "tmsu";
|
||||
rev = "0bf4b8031cbeffc0347007d85647062953e90571";
|
||||
sha256 = "sha256-5Rmelgiqs7YkdDBZNXZW4sBf0l/bwiq0xxB2tWpm1s8=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-r2wzVkPTsxWdVPFLO84tJgl3VJonoU7kNKLOBgHHdF8=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
postInstall = ''
|
||||
# can't do "mv TMSU tmsu" on case-insensitive filesystems
|
||||
mv $out/bin/{TMSU,tmsu.tmp}
|
||||
mv $out/bin/{tmsu.tmp,tmsu}
|
||||
|
||||
installManPage misc/man/tmsu.1
|
||||
installShellCompletion --bash misc/bash/tmsu
|
||||
installShellCompletion --zsh misc/zsh/_tmsu
|
||||
'';
|
||||
|
||||
meta = {
|
||||
homepage = "https://www.tmsu.org";
|
||||
description = "Tool for tagging your files using a virtual filesystem";
|
||||
maintainers = with lib.maintainers; [
|
||||
luftmensch-luftmensch
|
||||
pSub
|
||||
];
|
||||
mainProgram = "tmsu";
|
||||
license = lib.licenses.gpl3Plus;
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue
Block a user