Merge staging-next into staging
This commit is contained in:
commit
3cd24799a5
58 changed files with 1332 additions and 3204 deletions
|
@ -10,7 +10,7 @@ Several versions of the Python interpreter are available on Nix, as well as a
|
|||
high amount of packages. The attribute `python3` refers to the default
|
||||
interpreter, which is currently CPython 3.10. The attribute `python` refers to
|
||||
CPython 2.7 for backwards-compatibility. It is also possible to refer to
|
||||
specific versions, e.g. `python39` refers to CPython 3.9, and `pypy` refers to
|
||||
specific versions, e.g. `python311` refers to CPython 3.11, and `pypy` refers to
|
||||
the default PyPy interpreter.
|
||||
|
||||
Python is used a lot, and in different ways. This affects also how it is
|
||||
|
@ -26,10 +26,10 @@ however, are in separate sets, with one set per interpreter version.
|
|||
The interpreters have several common attributes. One of these attributes is
|
||||
`pkgs`, which is a package set of Python libraries for this specific
|
||||
interpreter. E.g., the `toolz` package corresponding to the default interpreter
|
||||
is `python.pkgs.toolz`, and the CPython 3.9 version is `python39.pkgs.toolz`.
|
||||
is `python.pkgs.toolz`, and the CPython 3.11 version is `python311.pkgs.toolz`.
|
||||
The main package set contains aliases to these package sets, e.g.
|
||||
`pythonPackages` refers to `python.pkgs` and `python39Packages` to
|
||||
`python39.pkgs`.
|
||||
`pythonPackages` refers to `python.pkgs` and `python311Packages` to
|
||||
`python311.pkgs`.
|
||||
|
||||
#### Installing Python and packages {#installing-python-and-packages}
|
||||
|
||||
|
@ -54,7 +54,7 @@ with `python.buildEnv` or `python.withPackages` where the interpreter and other
|
|||
executables are wrapped to be able to find each other and all of the modules.
|
||||
|
||||
In the following examples we will start by creating a simple, ad-hoc environment
|
||||
with a nix-shell that has `numpy` and `toolz` in Python 3.9; then we will create
|
||||
with a nix-shell that has `numpy` and `toolz` in Python 3.11; then we will create
|
||||
a re-usable environment in a single-file Python script; then we will create a
|
||||
full Python environment for development with this same environment.
|
||||
|
||||
|
@ -70,10 +70,10 @@ temporary shell session with a Python and a *precise* list of packages (plus
|
|||
their runtime dependencies), with no other Python packages in the Python
|
||||
interpreter's scope.
|
||||
|
||||
To create a Python 3.9 session with `numpy` and `toolz` available, run:
|
||||
To create a Python 3.11 session with `numpy` and `toolz` available, run:
|
||||
|
||||
```sh
|
||||
$ nix-shell -p 'python39.withPackages(ps: with ps; [ numpy toolz ])'
|
||||
$ nix-shell -p 'python311.withPackages(ps: with ps; [ numpy toolz ])'
|
||||
```
|
||||
|
||||
By default `nix-shell` will start a `bash` session with this interpreter in our
|
||||
|
@ -81,8 +81,7 @@ By default `nix-shell` will start a `bash` session with this interpreter in our
|
|||
|
||||
```Python console
|
||||
[nix-shell:~/src/nixpkgs]$ python3
|
||||
Python 3.9.12 (main, Mar 23 2022, 21:36:19)
|
||||
[GCC 11.3.0] on linux
|
||||
Python 3.11.3 (main, Apr 4 2023, 22:36:41) [GCC 12.2.0] on linux
|
||||
Type "help", "copyright", "credits" or "license" for more information.
|
||||
>>> import numpy; import toolz
|
||||
```
|
||||
|
@ -102,16 +101,12 @@ will still get 1 wrapped Python interpreter. We can start the interpreter
|
|||
directly like so:
|
||||
|
||||
```sh
|
||||
$ nix-shell -p "python39.withPackages (ps: with ps; [ numpy toolz requests ])" --run python3
|
||||
$ nix-shell -p "python311.withPackages (ps: with ps; [ numpy toolz requests ])" --run python3
|
||||
this derivation will be built:
|
||||
/nix/store/mpn7k6bkjl41fm51342rafaqfsl10qs4-python3-3.9.12-env.drv
|
||||
this path will be fetched (0.09 MiB download, 0.41 MiB unpacked):
|
||||
/nix/store/5gaiacnzi096b6prc6aa1pwrhncmhc8b-python3.9-toolz-0.11.2
|
||||
copying path '/nix/store/5gaiacnzi096b6prc6aa1pwrhncmhc8b-python3.9-toolz-0.11.2' from 'https://cache.nixos.org'...
|
||||
building '/nix/store/mpn7k6bkjl41fm51342rafaqfsl10qs4-python3-3.9.12-env.drv'...
|
||||
created 279 symlinks in user environment
|
||||
Python 3.9.12 (main, Mar 23 2022, 21:36:19)
|
||||
[GCC 11.3.0] on linux
|
||||
/nix/store/r19yf5qgfiakqlhkgjahbg3zg79549n4-python3-3.11.2-env.drv
|
||||
building '/nix/store/r19yf5qgfiakqlhkgjahbg3zg79549n4-python3-3.11.2-env.drv'...
|
||||
created 273 symlinks in user environment
|
||||
Python 3.11.2 (main, Feb 7 2023, 13:52:42) [GCC 12.2.0] on linux
|
||||
Type "help", "copyright", "credits" or "license" for more information.
|
||||
>>> import requests
|
||||
>>>
|
||||
|
@ -150,7 +145,7 @@ Executing this script requires a `python3` that has `numpy`. Using what we learn
|
|||
in the previous section, we could startup a shell and just run it like so:
|
||||
|
||||
```ShellSession
|
||||
$ nix-shell -p 'python39.withPackages(ps: with ps; [ numpy ])' --run 'python3 foo.py'
|
||||
$ nix-shell -p 'python311.withPackages (ps: with ps; [ numpy ])' --run 'python3 foo.py'
|
||||
The dot product of [1 2] and [3 4] is: 11
|
||||
```
|
||||
|
||||
|
@ -190,17 +185,17 @@ can make it fully reproducible by pinning the `nixpkgs` import:
|
|||
|
||||
```python
|
||||
#!/usr/bin/env nix-shell
|
||||
#!nix-shell -i python3 -p "python3.withPackages(ps: [ ps.numpy ])"
|
||||
#!nix-shell -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/d373d80b1207d52621961b16aa4a3438e4f98167.tar.gz
|
||||
#!nix-shell -i python3 -p "python3.withPackages (ps: [ ps.numpy ])"
|
||||
#!nix-shell -I nixpkgs=https://github.com/NixOS/nixpkgs/archive/e51209796c4262bfb8908e3d6d72302fe4e96f5f.tar.gz
|
||||
import numpy as np
|
||||
a = np.array([1,2])
|
||||
b = np.array([3,4])
|
||||
print(f"The dot product of {a} and {b} is: {np.dot(a, b)}")
|
||||
```
|
||||
|
||||
This will execute with the exact same versions of Python 3.8, numpy, and system
|
||||
This will execute with the exact same versions of Python 3.10, numpy, and system
|
||||
dependencies a year from now as it does today, because it will always use
|
||||
exactly git commit `d373d80b1207d52621961b16aa4a3438e4f98167` of Nixpkgs for all
|
||||
exactly git commit `e51209796c4262bfb8908e3d6d72302fe4e96f5f` of Nixpkgs for all
|
||||
of the package versions.
|
||||
|
||||
This is also a great way to ensure the script executes identically on different
|
||||
|
@ -213,12 +208,15 @@ create a single script with Python dependencies, but in the course of normal
|
|||
development we're usually working in an entire package repository.
|
||||
|
||||
As explained in the Nix manual, `nix-shell` can also load an expression from a
|
||||
`.nix` file. Say we want to have Python 3.9, `numpy` and `toolz`, like before,
|
||||
`.nix` file. Say we want to have Python 3.11, `numpy` and `toolz`, like before,
|
||||
in an environment. We can add a `shell.nix` file describing our dependencies:
|
||||
|
||||
```nix
|
||||
with import <nixpkgs> {};
|
||||
(python39.withPackages (ps: [ps.numpy ps.toolz])).env
|
||||
(python311.withPackages (ps: with ps; [
|
||||
numpy
|
||||
toolz
|
||||
])).env
|
||||
```
|
||||
|
||||
And then at the command line, just typing `nix-shell` produces the same
|
||||
|
@ -232,7 +230,7 @@ What's happening here?
|
|||
imports the `<nixpkgs>` function, `{}` calls it and the `with` statement
|
||||
brings all attributes of `nixpkgs` in the local scope. These attributes form
|
||||
the main package set.
|
||||
2. Then we create a Python 3.9 environment with the `withPackages` function, as before.
|
||||
2. Then we create a Python 3.11 environment with the `withPackages` function, as before.
|
||||
3. The `withPackages` function expects us to provide a function as an argument
|
||||
that takes the set of all Python packages and returns a list of packages to
|
||||
include in the environment. Here, we select the packages `numpy` and `toolz`
|
||||
|
@ -243,7 +241,7 @@ To combine this with `mkShell` you can:
|
|||
```nix
|
||||
with import <nixpkgs> {};
|
||||
let
|
||||
pythonEnv = python39.withPackages (ps: [
|
||||
pythonEnv = python311.withPackages (ps: [
|
||||
ps.numpy
|
||||
ps.toolz
|
||||
]);
|
||||
|
@ -327,7 +325,7 @@ on NixOS.
|
|||
{ # ...
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
(python38.withPackages(ps: with ps; [ numpy toolz ]))
|
||||
(python310.withPackages(ps: with ps; [ numpy toolz ]))
|
||||
];
|
||||
}
|
||||
```
|
||||
|
@ -348,20 +346,32 @@ building Python libraries is `buildPythonPackage`. Let's see how we can build th
|
|||
`toolz` package.
|
||||
|
||||
```nix
|
||||
{ lib, buildPythonPackage, fetchPypi }:
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "toolz";
|
||||
version = "0.10.0";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-CP3V73yWSArRHBLUct4hrNMjWZlvaaUlkpm1QP66RWA=";
|
||||
};
|
||||
|
||||
# has no tests
|
||||
doCheck = false;
|
||||
|
||||
pythonImportsCheck = [
|
||||
"toolz.itertoolz"
|
||||
"toolz.functoolz"
|
||||
"toolz.dicttoolz"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
changelog = "https://github.com/pytoolz/toolz/releases/tag/${version}";
|
||||
homepage = "https://github.com/pytoolz/toolz";
|
||||
description = "List processing tools and functional utilities";
|
||||
license = licenses.bsd3;
|
||||
|
@ -376,13 +386,14 @@ 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
|
||||
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. Furthermore, we specify some (optional) meta
|
||||
when building the package. Since there are no tests, we rely on `pythonImportsCheck`
|
||||
to test whether the package can be imported. Furthermore, we specify some meta
|
||||
information. The output of the function is a derivation.
|
||||
|
||||
An expression for `toolz` can be found in the Nixpkgs repository. As explained
|
||||
in the introduction of this Python section, a derivation of `toolz` is available
|
||||
for each interpreter version, e.g. `python39.pkgs.toolz` refers to the `toolz`
|
||||
derivation corresponding to the CPython 3.9 interpreter.
|
||||
for each interpreter version, e.g. `python311.pkgs.toolz` refers to the `toolz`
|
||||
derivation corresponding to the CPython 3.11 interpreter.
|
||||
|
||||
The above example works when you're directly working on
|
||||
`pkgs/top-level/python-packages.nix` in the Nixpkgs repository. Often though,
|
||||
|
@ -395,29 +406,35 @@ and adds it along with a `numpy` package to a Python environment.
|
|||
with import <nixpkgs> {};
|
||||
|
||||
( let
|
||||
my_toolz = python39.pkgs.buildPythonPackage rec {
|
||||
my_toolz = python311.pkgs.buildPythonPackage rec {
|
||||
pname = "toolz";
|
||||
version = "0.10.0";
|
||||
format = "setuptools";
|
||||
|
||||
src = python39.pkgs.fetchPypi {
|
||||
src = python311.pkgs.fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-CP3V73yWSArRHBLUct4hrNMjWZlvaaUlkpm1QP66RWA=";
|
||||
};
|
||||
|
||||
# has no tests
|
||||
doCheck = false;
|
||||
|
||||
meta = {
|
||||
homepage = "https://github.com/pytoolz/toolz/";
|
||||
description = "List processing tools and functional utilities";
|
||||
# [...]
|
||||
};
|
||||
};
|
||||
|
||||
in python38.withPackages (ps: [ps.numpy my_toolz])
|
||||
in python311.withPackages (ps: with ps; [
|
||||
numpy
|
||||
my_toolz
|
||||
])
|
||||
).env
|
||||
```
|
||||
|
||||
Executing `nix-shell` will result in an environment in which you can use
|
||||
Python 3.9 and the `toolz` package. As you can see we had to explicitly mention
|
||||
Python 3.11 and the `toolz` package. As you can see we had to explicitly mention
|
||||
for which Python version we want to build a package.
|
||||
|
||||
So, what did we do here? Well, we took the Nix expression that we used earlier
|
||||
|
@ -442,21 +459,39 @@ The following example shows which arguments are given to `buildPythonPackage` in
|
|||
order to build [`datashape`](https://github.com/blaze/datashape).
|
||||
|
||||
```nix
|
||||
{ lib, buildPythonPackage, fetchPypi, numpy, multipledispatch, python-dateutil, pytest }:
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
|
||||
# dependencies
|
||||
, numpy, multipledispatch, python-dateutil
|
||||
|
||||
# tests
|
||||
, pytest
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "datashape";
|
||||
version = "0.4.7";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-FLLvdm1MllKrgTGC6Gb0k0deZeVYvtCCLji/B7uhong=";
|
||||
};
|
||||
|
||||
nativeCheckInputs = [ pytest ];
|
||||
propagatedBuildInputs = [ numpy multipledispatch python-dateutil ];
|
||||
propagatedBuildInputs = [
|
||||
multipledispatch
|
||||
numpy
|
||||
python-dateutil
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
pytest
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
changelog = "https://github.com/blaze/datashape/releases/tag/${version}";
|
||||
homepage = "https://github.com/ContinuumIO/datashape";
|
||||
description = "A data description language";
|
||||
license = licenses.bsd2;
|
||||
|
@ -466,9 +501,9 @@ buildPythonPackage rec {
|
|||
```
|
||||
|
||||
We can see several runtime dependencies, `numpy`, `multipledispatch`, and
|
||||
`python-dateutil`. Furthermore, we have one `nativeCheckInputs`, i.e. `pytest`. `pytest` is a
|
||||
test runner and is only used during the `checkPhase` and is therefore not added
|
||||
to `propagatedBuildInputs`.
|
||||
`python-dateutil`. Furthermore, we have `nativeCheckInputs` with `pytest`.
|
||||
`pytest` is a test runner and is only used during the `checkPhase` and is
|
||||
therefore not added to `propagatedBuildInputs`.
|
||||
|
||||
In the previous case we had only dependencies on other Python packages to consider.
|
||||
Occasionally you have also system libraries to consider. E.g., `lxml` provides
|
||||
|
@ -476,20 +511,29 @@ Python bindings to `libxml2` and `libxslt`. These libraries are only required
|
|||
when building the bindings and are therefore added as `buildInputs`.
|
||||
|
||||
```nix
|
||||
{ lib, pkgs, buildPythonPackage, fetchPypi }:
|
||||
{ lib
|
||||
, pkgs
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "lxml";
|
||||
version = "3.4.4";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-s9NiusRxFydHzaNRMjjxFcvWxfi45jGb9ql6eJJyQJk=";
|
||||
};
|
||||
|
||||
buildInputs = [ pkgs.libxml2 pkgs.libxslt ];
|
||||
buildInputs = [
|
||||
pkgs.libxml2
|
||||
pkgs.libxslt
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
changelog = "https://github.com/lxml/lxml/releases/tag/lxml-${version}";
|
||||
description = "Pythonic binding for the libxml2 and libxslt libraries";
|
||||
homepage = "https://lxml.de";
|
||||
license = licenses.bsd3;
|
||||
|
@ -509,30 +553,47 @@ The bindings don't expect to find each of them in a different folder, and
|
|||
therefore we have to set `LDFLAGS` and `CFLAGS`.
|
||||
|
||||
```nix
|
||||
{ lib, pkgs, buildPythonPackage, fetchPypi, numpy, scipy }:
|
||||
{ lib
|
||||
, pkgs
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
|
||||
# dependencies
|
||||
, numpy
|
||||
, scipy
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pyFFTW";
|
||||
version = "0.9.2";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-9ru2r6kwhUCaskiFoaPNuJCfCVoUL01J40byvRt4kHQ=";
|
||||
};
|
||||
|
||||
buildInputs = [ pkgs.fftw pkgs.fftwFloat pkgs.fftwLongDouble];
|
||||
buildInputs = [
|
||||
pkgs.fftw
|
||||
pkgs.fftwFloat
|
||||
pkgs.fftwLongDouble
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [ numpy scipy ];
|
||||
|
||||
# Tests cannot import pyfftw. pyfftw works fine though.
|
||||
doCheck = false;
|
||||
propagatedBuildInputs = [
|
||||
numpy
|
||||
scipy
|
||||
];
|
||||
|
||||
preConfigure = ''
|
||||
export LDFLAGS="-L${pkgs.fftw.dev}/lib -L${pkgs.fftwFloat.out}/lib -L${pkgs.fftwLongDouble.out}/lib"
|
||||
export CFLAGS="-I${pkgs.fftw.dev}/include -I${pkgs.fftwFloat.dev}/include -I${pkgs.fftwLongDouble.dev}/include"
|
||||
'';
|
||||
|
||||
# Tests cannot import pyfftw. pyfftw works fine though.
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
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";
|
||||
homepage = "http://hgomersall.github.com/pyFFTW";
|
||||
license = with licenses; [ bsd2 bsd3 ];
|
||||
|
@ -590,7 +651,7 @@ To filter tests using pytest, one can do the following:
|
|||
checkPhase = ''
|
||||
runHook preCheck
|
||||
|
||||
pytest tests/ --ignore=tests/integration -k 'not download and not update'
|
||||
pytest tests/ --ignore=tests/integration -k 'not download and not update' --ignore=tests/test_failing.py
|
||||
|
||||
runHook postCheck
|
||||
'';
|
||||
|
@ -618,10 +679,15 @@ when a package may need many items disabled to run the test suite.
|
|||
Using the example above, the analogous `pytestCheckHook` usage would be:
|
||||
|
||||
```
|
||||
nativeCheckInputs = [ pytestCheckHook ];
|
||||
nativeCheckInputs = [
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
# requires additional data
|
||||
pytestFlagsArray = [ "tests/" "--ignore=tests/integration" ];
|
||||
pytestFlagsArray = [
|
||||
"tests/"
|
||||
"--ignore=tests/integration"
|
||||
];
|
||||
|
||||
disabledTests = [
|
||||
# touches network
|
||||
|
@ -663,7 +729,10 @@ To help ensure the package still works, `pythonImportsCheck` can attempt to impo
|
|||
the listed modules.
|
||||
|
||||
```
|
||||
pythonImportsCheck = [ "requests" "urllib" ];
|
||||
pythonImportsCheck = [
|
||||
"requests"
|
||||
"urllib"
|
||||
];
|
||||
```
|
||||
|
||||
roughly translates to:
|
||||
|
@ -704,9 +773,16 @@ pkg3>=1.0,<=2.0
|
|||
we can do:
|
||||
|
||||
```
|
||||
nativeBuildInputs = [ pythonRelaxDepsHook ];
|
||||
pythonRelaxDeps = [ "pkg1" "pkg3" ];
|
||||
pythonRemoveDeps = [ "pkg2" ];
|
||||
nativeBuildInputs = [
|
||||
pythonRelaxDepsHook
|
||||
];
|
||||
pythonRelaxDeps = [
|
||||
"pkg1"
|
||||
"pkg3"
|
||||
];
|
||||
pythonRemoveDeps = [
|
||||
"pkg2"
|
||||
];
|
||||
```
|
||||
|
||||
which would result in the following `requirements.txt` file:
|
||||
|
@ -749,9 +825,13 @@ with the exception of `other` (see `format` in
|
|||
`unittestCheckHook` is a hook which will substitute the setuptools `test` command for a `checkPhase` which runs `python -m unittest discover`:
|
||||
|
||||
```
|
||||
nativeCheckInputs = [ unittestCheckHook ];
|
||||
nativeCheckInputs = [
|
||||
unittestCheckHook
|
||||
];
|
||||
|
||||
unittestFlagsArray = [ "-s" "tests" "-v" ];
|
||||
unittestFlagsArray = [
|
||||
"-s" "tests" "-v"
|
||||
];
|
||||
```
|
||||
|
||||
#### Using sphinxHook {#using-sphinxhook}
|
||||
|
@ -816,7 +896,7 @@ If we create a `shell.nix` file which calls `buildPythonPackage`, and if `src`
|
|||
is a local source, and if the local source has a `setup.py`, then development
|
||||
mode is activated.
|
||||
|
||||
In the following example, we create a simple environment that has a Python 3.9
|
||||
In the following example, we create a simple environment that has a Python 3.11
|
||||
version of our package in it, as well as its dependencies and other packages we
|
||||
like to have in the environment, all specified with `propagatedBuildInputs`.
|
||||
Indeed, we can just add any package we like to have in our environment to
|
||||
|
@ -824,12 +904,16 @@ Indeed, we can just add any package we like to have in our environment to
|
|||
|
||||
```nix
|
||||
with import <nixpkgs> {};
|
||||
with python39Packages;
|
||||
with python311Packages;
|
||||
|
||||
buildPythonPackage rec {
|
||||
name = "mypackage";
|
||||
src = ./path/to/package/source;
|
||||
propagatedBuildInputs = [ pytest numpy pkgs.libsndfile ];
|
||||
propagatedBuildInputs = [
|
||||
pytest
|
||||
numpy
|
||||
pkgs.libsndfile
|
||||
];
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -857,11 +941,14 @@ Let's split the package definition from the environment definition.
|
|||
We first create a function that builds `toolz` in `~/path/to/toolz/release.nix`
|
||||
|
||||
```nix
|
||||
{ lib, buildPythonPackage }:
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "toolz";
|
||||
version = "0.10.0";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
|
@ -869,6 +956,7 @@ buildPythonPackage rec {
|
|||
};
|
||||
|
||||
meta = with lib; {
|
||||
changelog = "https://github.com/pytoolz/toolz/releases/tag/${version}";
|
||||
homepage = "https://github.com/pytoolz/toolz/";
|
||||
description = "List processing tools and functional utilities";
|
||||
license = licenses.bsd3;
|
||||
|
@ -885,9 +973,13 @@ with import <nixpkgs> {};
|
|||
|
||||
( let
|
||||
toolz = callPackage /path/to/toolz/release.nix {
|
||||
buildPythonPackage = python38Packages.buildPythonPackage;
|
||||
buildPythonPackage = python310
|
||||
Packages.buildPythonPackage;
|
||||
};
|
||||
in python38.withPackages (ps: [ ps.numpy toolz ])
|
||||
in python310.withPackages (ps: [
|
||||
ps.numpy
|
||||
toolz
|
||||
])
|
||||
).env
|
||||
```
|
||||
|
||||
|
@ -895,17 +987,17 @@ Important to remember is that the Python version for which the package is made
|
|||
depends on the `python` derivation that is passed to `buildPythonPackage`. Nix
|
||||
tries to automatically pass arguments when possible, which is why generally you
|
||||
don't explicitly define which `python` derivation should be used. In the above
|
||||
example we use `buildPythonPackage` that is part of the set `python38Packages`,
|
||||
and in this case the `python38` interpreter is automatically used.
|
||||
example we use `buildPythonPackage` that is part of the set `python3Packages`,
|
||||
and in this case the `python3` interpreter is automatically used.
|
||||
|
||||
## Reference {#reference}
|
||||
|
||||
### Interpreters {#interpreters}
|
||||
|
||||
Versions 2.7, 3.7, 3.8, 3.9 and 3.10 of the CPython interpreter are available
|
||||
as respectively `python27`, `python37`, `python38`, `python39` and `python310`.
|
||||
Versions 2.7, 3.8, 3.9, 3.10 and 3.11 of the CPython interpreter are available
|
||||
as respectively `python27`, python38`, `python39`, `python310` and `python311`.
|
||||
The aliases `python2` and `python3` correspond to respectively `python27` and
|
||||
`python39`. The attribute `python` maps to `python2`. The PyPy interpreters
|
||||
`python310`. The attribute `python` maps to `python2`. The PyPy interpreters
|
||||
compatible with Python 2.7 and 3 are available as `pypy27` and `pypy3`, with
|
||||
aliases `pypy2` mapping to `pypy27` and `pypy` mapping to `pypy2`. The Nix
|
||||
expressions for the interpreters can be found in
|
||||
|
@ -928,7 +1020,7 @@ Each interpreter has the following attributes:
|
|||
- `buildEnv`. Function to build python interpreter environments with extra packages bundled together. See section *python.buildEnv function* for usage and documentation.
|
||||
- `withPackages`. Simpler interface to `buildEnv`. See section *python.withPackages function* for usage and documentation.
|
||||
- `sitePackages`. Alias for `lib/${libPrefix}/site-packages`.
|
||||
- `executable`. Name of the interpreter executable, e.g. `python3.8`.
|
||||
- `executable`. Name of the interpreter executable, e.g. `python3.10`.
|
||||
- `pkgs`. Set of Python packages for that specific interpreter. The package set can be modified by overriding the interpreter and passing `packageOverrides`.
|
||||
|
||||
### Optimizations {#optimizations}
|
||||
|
@ -968,7 +1060,7 @@ attribute set is created for each available Python interpreter. The available
|
|||
sets are
|
||||
|
||||
* `pkgs.python27Packages`
|
||||
* `pkgs.python37Packages`
|
||||
* `pkgs.python3Packages`
|
||||
* `pkgs.python38Packages`
|
||||
* `pkgs.python39Packages`
|
||||
* `pkgs.python310Packages`
|
||||
|
@ -978,7 +1070,7 @@ sets are
|
|||
and the aliases
|
||||
|
||||
* `pkgs.python2Packages` pointing to `pkgs.python27Packages`
|
||||
* `pkgs.python3Packages` pointing to `pkgs.python39Packages`
|
||||
* `pkgs.python3Packages` pointing to `pkgs.python310Packages`
|
||||
* `pkgs.pythonPackages` pointing to `pkgs.python2Packages`
|
||||
|
||||
#### `buildPythonPackage` function {#buildpythonpackage-function}
|
||||
|
@ -990,11 +1082,28 @@ using setup hooks.
|
|||
The following is an example:
|
||||
|
||||
```nix
|
||||
{ lib, buildPythonPackage, fetchPypi, hypothesis, setuptools-scm, attrs, py, setuptools, six, pluggy }:
|
||||
{ lib
|
||||
, buildPythonPackage
|
||||
, fetchPypi
|
||||
|
||||
# build-system
|
||||
, setuptools-scm
|
||||
|
||||
# dependencies
|
||||
, attrs
|
||||
, pluggy
|
||||
, py
|
||||
, setuptools
|
||||
, six
|
||||
|
||||
# tests
|
||||
, hypothesis
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "pytest";
|
||||
version = "3.3.1";
|
||||
format = "setuptools";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
|
@ -1006,13 +1115,28 @@ buildPythonPackage rec {
|
|||
rm testing/test_argcomplete.py
|
||||
'';
|
||||
|
||||
nativeCheckInputs = [ hypothesis ];
|
||||
nativeBuildInputs = [ setuptools-scm ];
|
||||
propagatedBuildInputs = [ attrs py setuptools six pluggy ];
|
||||
nativeBuildInputs = [
|
||||
setuptools-scm
|
||||
];
|
||||
|
||||
propagatedBuildInputs = [
|
||||
attrs
|
||||
py
|
||||
setuptools
|
||||
six
|
||||
pluggy
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
hypothesis
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
maintainers = with maintainers; [ domenkozar lovek323 madjar lsix ];
|
||||
changelog = "https://github.com/pytest-dev/pytest/releases/tag/${version}";
|
||||
description = "Framework for writing tests";
|
||||
homepage = "https://github.com/pytest-dev/pytest";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ domenkozar lovek323 madjar lsix ];
|
||||
};
|
||||
}
|
||||
```
|
||||
|
@ -1114,7 +1238,7 @@ with import <nixpkgs> {};
|
|||
};
|
||||
in pkgs.python3.override {inherit packageOverrides; self = python;};
|
||||
|
||||
in python.withPackages(ps: [ps.blaze])).env
|
||||
in python.withPackages(ps: [ ps.blaze ])).env
|
||||
```
|
||||
|
||||
#### Optional extra dependencies {#python-optional-dependencies}
|
||||
|
@ -1160,18 +1284,24 @@ called with `callPackage` and passed `python` or `pythonPackages` (possibly
|
|||
specifying an interpreter version), like this:
|
||||
|
||||
```nix
|
||||
{ lib, python3 }:
|
||||
{ lib
|
||||
, python3
|
||||
}:
|
||||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "luigi";
|
||||
version = "2.7.9";
|
||||
format = "setuptools";
|
||||
|
||||
src = python3.pkgs.fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-Pe229rT0aHwA98s+nTHQMEFKZPo/yw6sot8MivFDvAw=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = with python3.pkgs; [ tornado python-daemon ];
|
||||
propagatedBuildInputs = with python3.pkgs; [
|
||||
tornado
|
||||
python-daemon
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
...
|
||||
|
@ -1253,7 +1383,10 @@ running `nix-shell` with the following `shell.nix`
|
|||
with import <nixpkgs> {};
|
||||
|
||||
(python3.buildEnv.override {
|
||||
extraLibs = with python3Packages; [ numpy requests ];
|
||||
extraLibs = with python3Packages; [
|
||||
numpy
|
||||
requests
|
||||
];
|
||||
}).env
|
||||
```
|
||||
|
||||
|
@ -1279,7 +1412,7 @@ example for the Pyramid Web Framework environment can be written like this:
|
|||
```nix
|
||||
with import <nixpkgs> {};
|
||||
|
||||
python.withPackages (ps: [ps.pyramid])
|
||||
python.withPackages (ps: [ ps.pyramid ])
|
||||
```
|
||||
|
||||
`withPackages` passes the correct package set for the specific interpreter
|
||||
|
@ -1289,7 +1422,7 @@ version as an argument to the function. In the above example, `ps` equals
|
|||
```nix
|
||||
with import <nixpkgs> {};
|
||||
|
||||
python3.withPackages (ps: [ps.pyramid])
|
||||
python3.withPackages (ps: [ ps.pyramid ])
|
||||
```
|
||||
|
||||
Now, `ps` is set to `python3Packages`, matching the version of the interpreter.
|
||||
|
@ -1301,7 +1434,10 @@ thus be also written like this:
|
|||
```nix
|
||||
with import <nixpkgs> {};
|
||||
|
||||
(python38.withPackages (ps: [ps.numpy ps.requests])).env
|
||||
(python3.withPackages (ps: with ps; [
|
||||
numpy
|
||||
requests
|
||||
])).env
|
||||
```
|
||||
|
||||
In contrast to `python.buildEnv`, `python.withPackages` does not support the
|
||||
|
@ -1393,7 +1529,7 @@ has security implications and is relevant for those using Python in a
|
|||
|
||||
When the environment variable `DETERMINISTIC_BUILD` is set, all bytecode will
|
||||
have timestamp 1. The `buildPythonPackage` function sets `DETERMINISTIC_BUILD=1`
|
||||
and [PYTHONHASHSEED=0](https://docs.python.org/3.8/using/cmdline.html#envvar-PYTHONHASHSEED).
|
||||
and [PYTHONHASHSEED=0](https://docs.python.org/3.11/using/cmdline.html#envvar-PYTHONHASHSEED).
|
||||
Both are also exported in `nix-shell`.
|
||||
|
||||
### Automatic tests {#automatic-tests}
|
||||
|
@ -1408,22 +1544,27 @@ example of such a situation is when `py.test` is used.
|
|||
#### Common issues {#common-issues}
|
||||
|
||||
* Non-working tests can often be deselected. By default `buildPythonPackage`
|
||||
runs `python setup.py test`. Most Python modules follows the standard test
|
||||
protocol where the pytest runner can be used instead. `py.test` supports a
|
||||
`-k` parameter to ignore test methods or classes:
|
||||
runs `python setup.py test`. which is deprecated. Most Python modules however
|
||||
do follow the standard test protocol where the pytest runner can be used
|
||||
instead. `pytest` supports the `-k` and `--ignore` parameters to ignore test
|
||||
methods or classes as well as whole files. For `pytestCheckHook` these are
|
||||
conveniently exposed as `disabledTests` and `disabledTestPaths` respectively.
|
||||
|
||||
```nix
|
||||
buildPythonPackage {
|
||||
# ...
|
||||
# assumes the tests are located in tests
|
||||
nativeCheckInputs = [ pytest ];
|
||||
checkPhase = ''
|
||||
runHook preCheck
|
||||
nativeCheckInputs = [
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
py.test -k 'not function_name and not other_function' tests
|
||||
disabledTests = [
|
||||
"function_name"
|
||||
"other_function"
|
||||
];
|
||||
|
||||
runHook postCheck
|
||||
'';
|
||||
disabledTestPaths = [
|
||||
"this/file.py"
|
||||
];
|
||||
}
|
||||
```
|
||||
|
||||
|
@ -1451,9 +1592,13 @@ with import <nixpkgs> {};
|
|||
packageOverrides = self: super: {
|
||||
pandas = super.pandas.overridePythonAttrs(old: {name="foo";});
|
||||
};
|
||||
in pkgs.python38.override {inherit packageOverrides;};
|
||||
in pkgs.python310.override {
|
||||
inherit packageOverrides;
|
||||
};
|
||||
|
||||
in python.withPackages(ps: [ps.pandas])).env
|
||||
in python.withPackages (ps: [
|
||||
ps.pandas
|
||||
])).env
|
||||
```
|
||||
|
||||
Using `nix-build` on this expression will build an environment that contains the
|
||||
|
@ -1473,7 +1618,11 @@ with import <nixpkgs> {};
|
|||
packageOverrides = self: super: {
|
||||
scipy = super.scipy_0_17;
|
||||
};
|
||||
in (pkgs.python38.override {inherit packageOverrides;}).withPackages (ps: [ps.blaze])
|
||||
in (pkgs.python310.override {
|
||||
inherit packageOverrides;
|
||||
}).withPackages (ps: [
|
||||
ps.blaze
|
||||
])
|
||||
).env
|
||||
```
|
||||
|
||||
|
@ -1487,11 +1636,11 @@ If you want the whole of Nixpkgs to use your modifications, then you can use
|
|||
let
|
||||
pkgs = import <nixpkgs> {};
|
||||
newpkgs = import pkgs.path { overlays = [ (self: super: {
|
||||
python38 = let
|
||||
python310 = let
|
||||
packageOverrides = python-self: python-super: {
|
||||
numpy = python-super.numpy_1_18;
|
||||
};
|
||||
in super.python38.override {inherit packageOverrides;};
|
||||
in super.python310.override {inherit packageOverrides;};
|
||||
} ) ]; };
|
||||
in newpkgs.inkscape
|
||||
```
|
||||
|
|
|
@ -1204,7 +1204,7 @@ Nix itself considers a build-time dependency as merely something that should pre
|
|||
|
||||
In order to alleviate this burden, the setup hook mechanism was written, where any package can include a shell script that \[by convention rather than enforcement by Nix\], any downstream reverse-dependency will source as part of its build process. That allows the downstream dependency to merely specify its dependencies, and lets those dependencies effectively initialize themselves. No boilerplate mirroring the list of dependencies is needed.
|
||||
|
||||
The setup hook mechanism is a bit of a sledgehammer though: a powerful feature with a broad and indiscriminate area of effect. The combination of its power and implicit use may be expedient, but isn’t without costs. Nix itself is unchanged, but the spirit of added dependencies being effect-free is violated even if the letter isn’t. For example, if a derivation path is mentioned more than once, Nix itself doesn’t care and simply makes sure the dependency derivation is already built just the same—depending is just needing something to exist, and needing is idempotent. However, a dependency specified twice will have its setup hook run twice, and that could easily change the build environment (though a well-written setup hook will therefore strive to be idempotent so this is in fact not observable). More broadly, setup hooks are anti-modular in that multiple dependencies, whether the same or different, should not interfere and yet their setup hooks may well do so.
|
||||
The setup hook mechanism is a bit of a sledgehammer though: a powerful feature with a broad and indiscriminate area of effect. The combination of its power and implicit use may be expedient, but isn’t without costs. Nix itself is unchanged, but the spirit of added dependencies being effect-free is violated even if the latter isn’t. For example, if a derivation path is mentioned more than once, Nix itself doesn’t care and simply makes sure the dependency derivation is already built just the same—depending is just needing something to exist, and needing is idempotent. However, a dependency specified twice will have its setup hook run twice, and that could easily change the build environment (though a well-written setup hook will therefore strive to be idempotent so this is in fact not observable). More broadly, setup hooks are anti-modular in that multiple dependencies, whether the same or different, should not interfere and yet their setup hooks may well do so.
|
||||
|
||||
The most typical use of the setup hook is actually to add other hooks which are then run (i.e. after all the setup hooks) on each dependency. For example, the C compiler wrapper’s setup hook feeds itself flags for each dependency that contains relevant libraries and headers. This is done by defining a bash function, and appending its name to one of `envBuildBuildHooks`, `envBuildHostHooks`, `envBuildTargetHooks`, `envHostHostHooks`, `envHostTargetHooks`, or `envTargetTargetHooks`. These 6 bash variables correspond to the 6 sorts of dependencies by platform (there’s 12 total but we ignore the propagated/non-propagated axis).
|
||||
|
||||
|
|
|
@ -190,6 +190,8 @@ In addition to numerous new and upgraded packages, this release has the followin
|
|||
|
||||
- `nushell` has been updated to at least version 0.77.0, which includes potential breaking changes in aliases. The old aliases are now available as `old-alias` but it is recommended you migrate to the new format. See [Reworked aliases](https://www.nushell.sh/blog/2023-03-14-nushell_0_77.html#reworked-aliases-breaking-changes-kubouch).
|
||||
|
||||
- `gajim` has been updated to version 1.7.3 which has disabled legacy ciphers. See [changelog for version 1.7.0](https://dev.gajim.org/gajim/gajim/-/releases/1.7.0).
|
||||
|
||||
- `keepassx` and `keepassx2` have been removed, due to upstream [stopping development](https://www.keepassx.org/index.html%3Fp=636.html). Consider [KeePassXC](https://keepassxc.org) as a maintained alternative.
|
||||
|
||||
- The [services.kubo.settings](#opt-services.kubo.settings) option is now no longer stateful. If you changed any of the options in [services.kubo.settings](#opt-services.kubo.settings) in the past and then removed them from your NixOS configuration again, those changes are still in your Kubo configuration file but will now be reset to the default. If you're unsure, you may want to make a backup of your configuration file (probably /var/lib/ipfs/config) and compare after the update.
|
||||
|
|
2561
pkgs/applications/editors/helix/Cargo.lock
generated
2561
pkgs/applications/editors/helix/Cargo.lock
generated
File diff suppressed because it is too large
Load diff
|
@ -1,33 +1,33 @@
|
|||
{ fetchzip, lib, rustPlatform, installShellFiles, makeWrapper }:
|
||||
{ fetchFromGitHub, lib, rustPlatform, installShellFiles, makeWrapper, callPackage }:
|
||||
|
||||
let
|
||||
version = "23.05";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "helix-editor";
|
||||
repo = "helix";
|
||||
rev = "${version}";
|
||||
hash = "sha256-Ws9uWtZLvTwL5HNonFr4YwyPoTU8QlCvhs6IJ92aLDw=";
|
||||
};
|
||||
|
||||
grammars = callPackage ./grammars.nix { };
|
||||
in rustPlatform.buildRustPackage {
|
||||
inherit src version;
|
||||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "helix";
|
||||
version = "23.03";
|
||||
|
||||
# This release tarball includes source code for the tree-sitter grammars,
|
||||
# which is not ordinarily part of the repository.
|
||||
src = fetchzip {
|
||||
url = "https://github.com/helix-editor/helix/releases/download/${version}/helix-${version}-source.tar.xz";
|
||||
hash = "sha256-FtY2V7za3WGeUaC2t2f63CcDUEg9zAS2cGUWI0YeGwk=";
|
||||
stripRoot = false;
|
||||
};
|
||||
|
||||
# should be removed, when tree-sitter is not used as a git checkout anymore
|
||||
cargoLock = {
|
||||
lockFile = ./Cargo.lock;
|
||||
outputHashes = {
|
||||
"tree-sitter-0.20.9" = "sha256-/PaFaASOT0Z8FpipX5uiRCjnv1kyZtg4B9+TnHA0yTY=";
|
||||
};
|
||||
};
|
||||
cargoSha256 = "sha256-/LCtfyDAA2JuioBD/CDMv6OOxM0B9A3PpuVP/YY5oF0=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles makeWrapper ];
|
||||
|
||||
postInstall = ''
|
||||
# not needed at runtime
|
||||
rm -r runtime/grammars/sources
|
||||
# We self build the grammar files
|
||||
rm -r runtime/grammars
|
||||
|
||||
mkdir -p $out/lib
|
||||
cp -r runtime $out/lib
|
||||
ln -s ${grammars} $out/lib/runtime/grammars
|
||||
installShellCompletion contrib/completion/hx.{bash,fish,zsh}
|
||||
mkdir -p $out/share/{applications,icons/hicolor/256x256/apps}
|
||||
cp contrib/Helix.desktop $out/share/applications
|
||||
|
@ -37,6 +37,11 @@ rustPlatform.buildRustPackage rec {
|
|||
wrapProgram $out/bin/hx --set HELIX_RUNTIME $out/lib/runtime
|
||||
'';
|
||||
|
||||
# disable fetching and building of tree-sitter grammars in favor of the custom build process in ./grammars.nix
|
||||
env.HELIX_DISABLE_AUTO_GRAMMAR_BUILD = "1";
|
||||
|
||||
passthru.updateScript = ./update.py;
|
||||
|
||||
meta = with lib; {
|
||||
description = "A post-modern modal text editor";
|
||||
homepage = "https://helix-editor.com";
|
||||
|
|
107
pkgs/applications/editors/helix/grammars.nix
Normal file
107
pkgs/applications/editors/helix/grammars.nix
Normal file
|
@ -0,0 +1,107 @@
|
|||
{
|
||||
stdenv,
|
||||
lib,
|
||||
runCommand,
|
||||
includeGrammarIf ? _: true,
|
||||
fetchFromGitHub,
|
||||
fetchgit,
|
||||
...
|
||||
}: let
|
||||
# similiar to https://github.com/helix-editor/helix/blob/23.05/grammars.nix
|
||||
grammars = builtins.fromJSON (builtins.readFile ./language-grammars.json);
|
||||
isGitGrammar = grammar:
|
||||
builtins.hasAttr "source" grammar
|
||||
&& builtins.hasAttr "git" grammar.source
|
||||
&& builtins.hasAttr "rev" grammar.source;
|
||||
isGitHubGrammar = grammar: lib.hasPrefix "https://github.com" grammar.source.git;
|
||||
toGitHubFetcher = url: let
|
||||
match = builtins.match "https://github\.com/([^/]*)/([^/]*)/?" url;
|
||||
in {
|
||||
owner = builtins.elemAt match 0;
|
||||
repo = builtins.elemAt match 1;
|
||||
};
|
||||
gitGrammars = builtins.filter isGitGrammar grammars;
|
||||
buildGrammar = grammar: let
|
||||
gh = toGitHubFetcher grammar.source.git;
|
||||
sourceGit = fetchgit {
|
||||
url = grammar.source.git;
|
||||
inherit (grammar.source) rev sha256;
|
||||
};
|
||||
sourceGitHub = fetchFromGitHub {
|
||||
owner = gh.owner;
|
||||
repo = gh.repo;
|
||||
inherit (grammar.source) rev sha256;
|
||||
};
|
||||
source =
|
||||
if isGitHubGrammar grammar
|
||||
then sourceGitHub
|
||||
else sourceGit;
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
# similar to tree-sitter grammar generation
|
||||
pname = "helix-tree-sitter-grammar-${grammar.name}";
|
||||
version = grammar.source.rev;
|
||||
|
||||
src =
|
||||
if builtins.hasAttr "subpath" grammar.source
|
||||
then "${source}/${grammar.source.subpath}"
|
||||
else source;
|
||||
|
||||
dontUnpack = true;
|
||||
dontConfigure = true;
|
||||
|
||||
FLAGS = [
|
||||
"-I${src}/src"
|
||||
"-g"
|
||||
"-O3"
|
||||
"-fPIC"
|
||||
"-fno-exceptions"
|
||||
"-Wl,-z,relro,-z,now"
|
||||
];
|
||||
|
||||
NAME = grammar.name;
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
if [[ -e "$src/src/scanner.cc" ]]; then
|
||||
$CXX -c "$src/src/scanner.cc" -o scanner.o $FLAGS
|
||||
elif [[ -e "$src/src/scanner.c" ]]; then
|
||||
$CC -c "$src/src/scanner.c" -o scanner.o $FLAGS
|
||||
fi
|
||||
|
||||
$CC -c "$src/src/parser.c" -o parser.o $FLAGS
|
||||
$CXX -shared -o $NAME.so *.o
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mkdir $out
|
||||
mv $NAME.so $out/
|
||||
runHook postInstall
|
||||
'';
|
||||
|
||||
# Strip failed on darwin: strip: error: symbols referenced by indirect symbol table entries that can't be stripped
|
||||
fixupPhase = lib.optionalString stdenv.isLinux ''
|
||||
runHook preFixup
|
||||
$STRIP $out/$NAME.so
|
||||
runHook postFixup
|
||||
'';
|
||||
};
|
||||
grammarsToBuild = builtins.filter includeGrammarIf gitGrammars;
|
||||
builtGrammars =
|
||||
builtins.map (grammar: {
|
||||
inherit (grammar) name;
|
||||
artifact = buildGrammar grammar;
|
||||
})
|
||||
grammarsToBuild;
|
||||
grammarLinks =
|
||||
builtins.map (grammar: "ln -s ${grammar.artifact}/${grammar.name}.so $out/${grammar.name}.so")
|
||||
builtGrammars;
|
||||
in
|
||||
runCommand "helix-tree-sitter-grammars" {} ''
|
||||
mkdir -p $out
|
||||
${builtins.concatStringsSep "\n" grammarLinks}
|
||||
''
|
1
pkgs/applications/editors/helix/language-grammars.json
Normal file
1
pkgs/applications/editors/helix/language-grammars.json
Normal file
File diff suppressed because one or more lines are too long
47
pkgs/applications/editors/helix/update.py
Executable file
47
pkgs/applications/editors/helix/update.py
Executable file
|
@ -0,0 +1,47 @@
|
|||
#! /usr/bin/env nix-shell
|
||||
#! nix-shell -i python3 -p nix-update python3 python3Packages.requests python3.pkgs.tomlkit nix-prefetch-git
|
||||
import tomlkit
|
||||
import json
|
||||
import requests
|
||||
import subprocess
|
||||
from pathlib import Path
|
||||
|
||||
latest_release_url = "https://api.github.com/repos/helix-editor/helix/releases/latest"
|
||||
|
||||
|
||||
def get_latest_release():
|
||||
res = requests.get(latest_release_url)
|
||||
res.raise_for_status()
|
||||
return res.json()["tag_name"]
|
||||
|
||||
|
||||
def get_grammar_config():
|
||||
res = requests.get(f"https://raw.githubusercontent.com/helix-editor/helix/{version}/languages.toml")
|
||||
res.raise_for_status()
|
||||
return tomlkit.parse(res.text)["grammar"]
|
||||
|
||||
|
||||
def calculate_sha256(url, rev):
|
||||
out = subprocess.check_output([
|
||||
"nix-prefetch-git", "--quiet",
|
||||
"--url", url,
|
||||
"--rev", rev])
|
||||
return json.loads(out)["sha256"]
|
||||
|
||||
|
||||
version = get_latest_release()
|
||||
grammars = get_grammar_config()
|
||||
for grammar in grammars:
|
||||
if grammar["source"].get("git") is not None:
|
||||
grammar["source"]["sha256"] = calculate_sha256(
|
||||
grammar["source"]["git"], grammar["source"]["rev"])
|
||||
|
||||
json_grammars = json.dumps(grammars)
|
||||
|
||||
with open(Path(__file__).parent / "language-grammars.json", "w") as file:
|
||||
file.write(json_grammars + "\n")
|
||||
|
||||
subprocess.run([
|
||||
"nix-update", "helix",
|
||||
"--version", version,
|
||||
])
|
File diff suppressed because it is too large
Load diff
|
@ -126,23 +126,23 @@
|
|||
};
|
||||
c = buildGrammar {
|
||||
language = "c";
|
||||
version = "0.0.0+rev=735716c";
|
||||
version = "0.0.0+rev=424d014";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tree-sitter";
|
||||
repo = "tree-sitter-c";
|
||||
rev = "735716c926837d9e39e4effb3fdc28cee81a7e5e";
|
||||
hash = "sha256-7EBhWdRchk0K1+ofn+nHa/VZ8eWDM9cpPu1QUwpvidw=";
|
||||
rev = "424d0145efb0a87927269ab47709f98a564f8c4f";
|
||||
hash = "sha256-cj8aEcdO5rsie9CqT8GLfvJm6O7yqBQPtn5aDe/lVpI=";
|
||||
};
|
||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-c";
|
||||
};
|
||||
c_sharp = buildGrammar {
|
||||
language = "c_sharp";
|
||||
version = "0.0.0+rev=7611471";
|
||||
version = "0.0.0+rev=aaafc3d";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tree-sitter";
|
||||
repo = "tree-sitter-c-sharp";
|
||||
rev = "76114711aedd3f4b6e1333a7513975647930c629";
|
||||
hash = "sha256-sBpI/8SfIzPQ0aJ8tw00IZoWGFnBo6mvRcn1lKfnaTg=";
|
||||
rev = "aaafc3d75f058ca5fe639b7ed5829964a3ca4575";
|
||||
hash = "sha256-rKP6KfNCkytcAXHVv3EtOQEuhY+dxawFEFQr7kjuA6I=";
|
||||
};
|
||||
meta.homepage = "https://github.com/tree-sitter/tree-sitter-c-sharp";
|
||||
};
|
||||
|
@ -292,12 +292,12 @@
|
|||
};
|
||||
dart = buildGrammar {
|
||||
language = "dart";
|
||||
version = "0.0.0+rev=939e5e1";
|
||||
version = "0.0.0+rev=8aa8ab9";
|
||||
src = fetchFromGitHub {
|
||||
owner = "UserNobody14";
|
||||
repo = "tree-sitter-dart";
|
||||
rev = "939e5e18321a695f39889ae9dcf3c0255a107109";
|
||||
hash = "sha256-1zOxekwG+wM0Fkr2LMqCHf5twlNfJyN9Ozb98bkq/+k=";
|
||||
rev = "8aa8ab977647da2d4dcfb8c4726341bee26fbce4";
|
||||
hash = "sha256-62Mwn1PnGxVWST396vX/aRkNgzloq3H23TOPZ4oqqiM=";
|
||||
};
|
||||
meta.homepage = "https://github.com/UserNobody14/tree-sitter-dart";
|
||||
};
|
||||
|
@ -436,12 +436,12 @@
|
|||
};
|
||||
erlang = buildGrammar {
|
||||
language = "erlang";
|
||||
version = "0.0.0+rev=7d083ca";
|
||||
version = "0.0.0+rev=13a6a51";
|
||||
src = fetchFromGitHub {
|
||||
owner = "WhatsApp";
|
||||
repo = "tree-sitter-erlang";
|
||||
rev = "7d083ca431265a6a677c10e8ca68a908ab0c2bc8";
|
||||
hash = "sha256-W08JXLPIjUBfHSaTEGbIKPStQr4jOVE1f9osjrWG82Q=";
|
||||
rev = "13a6a51d1bda845f756971773dd6049b80a3cffc";
|
||||
hash = "sha256-xy4/AZPHv9V0gzLRXOmUcFyKzLDCgOyqBH8HNYE8GRk=";
|
||||
};
|
||||
meta.homepage = "https://github.com/WhatsApp/tree-sitter-erlang";
|
||||
};
|
||||
|
@ -579,12 +579,12 @@
|
|||
};
|
||||
gitcommit = buildGrammar {
|
||||
language = "gitcommit";
|
||||
version = "0.0.0+rev=735f02b";
|
||||
version = "0.0.0+rev=6c14f8b";
|
||||
src = fetchFromGitHub {
|
||||
owner = "gbprod";
|
||||
repo = "tree-sitter-gitcommit";
|
||||
rev = "735f02b12d9cdd9a8b90ac4b2dff8cdab6dd1e7b";
|
||||
hash = "sha256-uWePpMTJNiR7uh9LpmSiIQUHNiVDF8i32nckPKBFH3g=";
|
||||
rev = "6c14f8b63767cf6264c5c43ec71cc9351420e831";
|
||||
hash = "sha256-x5FNXZ+/AexfXn92xSRIdKQGAepvAnMmAz/013x1Q7U=";
|
||||
};
|
||||
meta.homepage = "https://github.com/gbprod/tree-sitter-gitcommit";
|
||||
};
|
||||
|
@ -623,12 +623,12 @@
|
|||
};
|
||||
glsl = buildGrammar {
|
||||
language = "glsl";
|
||||
version = "0.0.0+rev=f21fc83";
|
||||
version = "0.0.0+rev=7a00509";
|
||||
src = fetchFromGitHub {
|
||||
owner = "theHamsta";
|
||||
repo = "tree-sitter-glsl";
|
||||
rev = "f21fc834ee48cc485c85f5df7099e00058dbc180";
|
||||
hash = "sha256-1G0oiIOPVDCeWej6CwMQUvf53Rq2ZIFgz6ucQs1AZ+U=";
|
||||
rev = "7a005091d3896dab80f34d8dba58935ad7ad6353";
|
||||
hash = "sha256-L8FbCXea2cQ9Gyh8xtETynRKCt03TAXH0yM3XJTrGMY=";
|
||||
};
|
||||
meta.homepage = "https://github.com/theHamsta/tree-sitter-glsl";
|
||||
};
|
||||
|
@ -766,12 +766,12 @@
|
|||
};
|
||||
hlsl = buildGrammar {
|
||||
language = "hlsl";
|
||||
version = "0.0.0+rev=9160427";
|
||||
version = "0.0.0+rev=cad6130";
|
||||
src = fetchFromGitHub {
|
||||
owner = "theHamsta";
|
||||
repo = "tree-sitter-hlsl";
|
||||
rev = "916042734060d3d3a023f6637c815a1d23814af8";
|
||||
hash = "sha256-FGOXqBmQXCK2G1iseYgc7CdMOQ7P9dVG7ZHEsqcnRhk=";
|
||||
rev = "cad6130182be8793ca5ef00a8581508e2f12f642";
|
||||
hash = "sha256-gTek2joY9bhkFYXOxE7ZJ5PnyBbnPTLvUeZmFHjWXlU=";
|
||||
};
|
||||
meta.homepage = "https://github.com/theHamsta/tree-sitter-hlsl";
|
||||
};
|
||||
|
@ -1154,12 +1154,12 @@
|
|||
};
|
||||
nickel = buildGrammar {
|
||||
language = "nickel";
|
||||
version = "0.0.0+rev=d6c7eeb";
|
||||
version = "0.0.0+rev=3a79438";
|
||||
src = fetchFromGitHub {
|
||||
owner = "nickel-lang";
|
||||
repo = "tree-sitter-nickel";
|
||||
rev = "d6c7eeb751038f934b5b1aa7ff236376d0235c56";
|
||||
hash = "sha256-D/RRwXsWyHMxoU7Z8VVJ6jn7zUFKaKusLT/ofON7sOE=";
|
||||
rev = "3a794388773f2424a97b2186828aa3fac4c66ce6";
|
||||
hash = "sha256-NLgbTl1Te/lHTGra4DdxLtqIg6yXf5lfyl37qpp8SNQ=";
|
||||
};
|
||||
meta.homepage = "https://github.com/nickel-lang/tree-sitter-nickel";
|
||||
};
|
||||
|
@ -1196,6 +1196,17 @@
|
|||
};
|
||||
meta.homepage = "https://github.com/nvim-neorg/tree-sitter-norg";
|
||||
};
|
||||
objc = buildGrammar {
|
||||
language = "objc";
|
||||
version = "0.0.0+rev=90773a7";
|
||||
src = fetchFromGitHub {
|
||||
owner = "amaanq";
|
||||
repo = "tree-sitter-objc";
|
||||
rev = "90773a72d84d3c9a6eb8e373980e9b6b0bb665a0";
|
||||
hash = "sha256-E0vRMAVWLCRmwqW9KqEWpQkRi8PX/XvjoE4U9Fy7wSc=";
|
||||
};
|
||||
meta.homepage = "https://github.com/amaanq/tree-sitter-objc";
|
||||
};
|
||||
ocaml = buildGrammar {
|
||||
language = "ocaml";
|
||||
version = "0.0.0+rev=f1106bf";
|
||||
|
@ -1454,12 +1465,12 @@
|
|||
};
|
||||
query = buildGrammar {
|
||||
language = "query";
|
||||
version = "0.0.0+rev=e975044";
|
||||
version = "0.0.0+rev=3a9808b";
|
||||
src = fetchFromGitHub {
|
||||
owner = "nvim-treesitter";
|
||||
repo = "tree-sitter-query";
|
||||
rev = "e97504446f14f529d5a8e649667d3d60391e4dfd";
|
||||
hash = "sha256-Gv882sbL2fmR++h4/I7dFCp+g6pddRCaLyX7+loEoHU=";
|
||||
rev = "3a9808b22742d5bd906ef5d1a562f2f1ae57406d";
|
||||
hash = "sha256-5N7FT0HTK3xzzhAlk3wBOB9xlEpKSNIfakgFnsxEi18=";
|
||||
};
|
||||
meta.homepage = "https://github.com/nvim-treesitter/tree-sitter-query";
|
||||
};
|
||||
|
@ -1663,12 +1674,12 @@
|
|||
};
|
||||
sql = buildGrammar {
|
||||
language = "sql";
|
||||
version = "0.0.0+rev=9de72fb";
|
||||
version = "0.0.0+rev=0f774f4";
|
||||
src = fetchFromGitHub {
|
||||
owner = "derekstride";
|
||||
repo = "tree-sitter-sql";
|
||||
rev = "9de72fb40cd6d13a64c3aeeabc079c6b8dadb339";
|
||||
hash = "sha256-WcKrYjOnWRf2ei4bAGH7zJJ/DEaaQ8lmAmO5LEkg17g=";
|
||||
rev = "0f774f4ce1fbc7aa6df6202301e0b08b8c844ae4";
|
||||
hash = "sha256-2NkcmwBlDxsvgxRYlZzDcNMw2GZmOIWOCziSPBMrRw4=";
|
||||
};
|
||||
meta.homepage = "https://github.com/derekstride/tree-sitter-sql";
|
||||
};
|
||||
|
@ -1752,13 +1763,13 @@
|
|||
};
|
||||
t32 = buildGrammar {
|
||||
language = "t32";
|
||||
version = "0.0.0+rev=4fca25f";
|
||||
version = "0.0.0+rev=c5ab392";
|
||||
src = fetchFromGitea {
|
||||
domain = "codeberg.org";
|
||||
owner = "xasc";
|
||||
repo = "tree-sitter-t32";
|
||||
rev = "4fca25fa99b6fd9ccf9cab9b6bf702a9df142ad5";
|
||||
hash = "sha256-x657aMnqCw/TlS1VyC8er5GQ1QqGdGHGgfSIStUbVfQ=";
|
||||
rev = "c5ab392fece192875d2206da487449b856afcdef";
|
||||
hash = "sha256-OalZs7pP00j3qyQv7mwVx1/jnoM91ZbqwEC17iTxZ/4=";
|
||||
};
|
||||
meta.homepage = "https://codeberg.org/xasc/tree-sitter-t32";
|
||||
};
|
||||
|
@ -1909,6 +1920,17 @@
|
|||
};
|
||||
meta.homepage = "https://github.com/Philipp-M/tree-sitter-ungrammar";
|
||||
};
|
||||
usd = buildGrammar {
|
||||
language = "usd";
|
||||
version = "0.0.0+rev=04816b1";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ColinKennedy";
|
||||
repo = "tree-sitter-usd";
|
||||
rev = "04816b1fbfe548e1446a9efe8b069f3f6e095504";
|
||||
hash = "sha256-n9sK02luVOv88P8SDCKIaBlEYtYYT0fQ+fjlYuP9AJY=";
|
||||
};
|
||||
meta.homepage = "https://github.com/ColinKennedy/tree-sitter-usd";
|
||||
};
|
||||
uxntal = buildGrammar {
|
||||
language = "uxntal";
|
||||
version = "0.0.0+rev=14e4760";
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "komikku";
|
||||
version = "1.20.0";
|
||||
version = "1.21.1";
|
||||
|
||||
format = "other";
|
||||
|
||||
|
@ -27,7 +27,7 @@ python3.pkgs.buildPythonApplication rec {
|
|||
owner = "valos";
|
||||
repo = "Komikku";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-gBnpps++dwcXCLSVjtK3nMJMcJ43vKeNzgCWEt1kn7g=";
|
||||
hash = "sha256-1VqV0tTI8XVwGJhaGWEdSxtWDhQFmrsncvhC4ftJ7Jg=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -11,13 +11,13 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "pgmodeler";
|
||||
version = "1.0.3";
|
||||
version = "1.0.4";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pgmodeler";
|
||||
repo = "pgmodeler";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-ZlIz+7YyER0/wQEkEe8XHYHcLK4vu09v1zkDrIgR/Dc=";
|
||||
sha256 = "sha256-1d+zox46h22ox9zC+SvN3w3LkpHmN1jpf/tDPD5D80s=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ pkg-config qmake wrapQtAppsHook ];
|
||||
|
|
|
@ -2,13 +2,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "argocd";
|
||||
version = "2.7.1";
|
||||
version = "2.7.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "argoproj";
|
||||
repo = "argo-cd";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-1P3FIgC9j0SbwzWo0aPUwVTKNlSY3FG7Iz6KD9pbv84=";
|
||||
sha256 = "sha256-pmF0EJfidYRZRelvXLfwANbv+DnfgLXVeKfjRSbnKjY=";
|
||||
};
|
||||
|
||||
proxyVendor = true; # darwin/linux hash mismatch
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
#!/usr/bin/env nix-shell
|
||||
#! nix-shell -i bash -p coreutils curl git jq moreutils nix nix-prefetch
|
||||
#! nix-shell -i bash -p coreutils curl git jq moreutils nix nurl
|
||||
# shellcheck shell=bash
|
||||
# vim: ft=sh
|
||||
#
|
||||
|
@ -90,8 +90,7 @@ update_attr() {
|
|||
repo_root=$(git rev-parse --show-toplevel)
|
||||
|
||||
generate_hash() {
|
||||
nix-prefetch -I nixpkgs="${repo_root}" \
|
||||
"{ sha256 }: (import ${repo_root} {}).terraform-providers.${provider}.$1.overrideAttrs (_: { inherit sha256; })"
|
||||
nurl --expr "(import ${repo_root} {}).terraform-providers.${provider}.$1"
|
||||
}
|
||||
|
||||
echo_provider() {
|
||||
|
|
|
@ -22,13 +22,15 @@
|
|||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "gajim";
|
||||
version = "1.6.1";
|
||||
version = "1.7.3";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://gajim.org/downloads/${lib.versions.majorMinor version}/gajim-${version}.tar.gz";
|
||||
hash = "sha256-3D87Ou/842WqbaUiJV1hRZFVkZzQ12GXCpRc8F3rKPQ=";
|
||||
hash = "sha256-t8yzWfdsY8pXye7Dn5hME0bOHgf+MzuyVY3hweXc0xg=";
|
||||
};
|
||||
|
||||
format = "pyproject";
|
||||
|
||||
buildInputs = [
|
||||
gobject-introspection gtk3 gnome.adwaita-icon-theme
|
||||
gtksourceview4
|
||||
|
@ -58,6 +60,14 @@ python3.pkgs.buildPythonApplication rec {
|
|||
|
||||
nativeCheckInputs = [ xvfb-run dbus ];
|
||||
|
||||
preBuild = ''
|
||||
python pep517build/build_metadata.py -o dist/metadata
|
||||
'';
|
||||
|
||||
postInstall = ''
|
||||
python pep517build/install_metadata.py dist/metadata --prefix=$out
|
||||
'';
|
||||
|
||||
checkPhase = ''
|
||||
xvfb-run dbus-run-session \
|
||||
--config-file=${dbus}/share/dbus-1/session.conf \
|
||||
|
@ -65,6 +75,9 @@ python3.pkgs.buildPythonApplication rec {
|
|||
${python3.interpreter} -m unittest discover -s test/common -v
|
||||
'';
|
||||
|
||||
# test are broken in 1.7.3
|
||||
doCheck = false;
|
||||
|
||||
# necessary for wrapGAppsHook
|
||||
strictDeps = false;
|
||||
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
diff --git a/libgnucash/app-utils/gnc-quotes.cpp b/libgnucash/app-utils/gnc-quotes.cpp
|
||||
index 3003fca71f..e01cb10b50 100644
|
||||
index 3003fca71f..2f2b1398e1 100644
|
||||
--- a/libgnucash/app-utils/gnc-quotes.cpp
|
||||
+++ b/libgnucash/app-utils/gnc-quotes.cpp
|
||||
@@ -122,7 +122,6 @@ private:
|
||||
|
@ -10,7 +10,7 @@ index 3003fca71f..e01cb10b50 100644
|
|||
std::string c_fq_wrapper;
|
||||
std::string m_version;
|
||||
StrVec m_sources;
|
||||
@@ -145,7 +144,6 @@ static std::string parse_quotesource_error(const std::string& line);
|
||||
@@ -145,13 +144,12 @@ static std::string parse_quotesource_error(const std::string& line);
|
||||
static const std::string empty_string{};
|
||||
|
||||
GncFQQuoteSource::GncFQQuoteSource() :
|
||||
|
@ -18,6 +18,13 @@ index 3003fca71f..e01cb10b50 100644
|
|||
m_version{}, m_sources{}, m_api_key{}
|
||||
{
|
||||
char *bindir = gnc_path_get_bindir();
|
||||
c_fq_wrapper = std::string(bindir) + "/finance-quote-wrapper";
|
||||
g_free(bindir);
|
||||
- StrVec args{"-w", c_fq_wrapper, "-v"};
|
||||
+ StrVec args{"-v"};
|
||||
auto [rv, sources, errors] = run_cmd(args, empty_string);
|
||||
if (rv)
|
||||
{
|
||||
@@ -197,7 +195,7 @@ m_version{}, m_sources{}, m_api_key{}
|
||||
QuoteResult
|
||||
GncFQQuoteSource::get_quotes(const std::string& json_str) const
|
||||
|
@ -43,4 +50,3 @@ index 3003fca71f..e01cb10b50 100644
|
|||
bp::std_out > out_buf,
|
||||
bp::std_err > err_buf,
|
||||
bp::std_in < input_buf,
|
||||
|
||||
|
|
|
@ -137,7 +137,7 @@ stdenv.mkDerivation rec {
|
|||
- Financial Calculations
|
||||
'';
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ domenkozar AndersonTorres rski ];
|
||||
maintainers = with maintainers; [ domenkozar AndersonTorres rski nevivurn ];
|
||||
platforms = platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -34,6 +34,9 @@ stdenv.mkDerivation rec {
|
|||
|
||||
# Fixup build with newer Linux headers: https://github.com/lkl/linux/pull/484
|
||||
sed '1i#include <linux/sockios.h>' -i tools/lkl/lib/hijack/xlate.c
|
||||
'' + lib.optionalString stdenv.isi686 ''
|
||||
echo CONFIG_KALLSYMS=n >> arch/lkl/configs/defconfig
|
||||
echo CONFIG_KALLSYMS_BASE_RELATIVE=n >> arch/lkl/configs/defconfig
|
||||
'' + lib.optionalString firewallSupport ''
|
||||
cat ${./lkl-defconfig-enable-nftables} >> arch/lkl/configs/defconfig
|
||||
'';
|
||||
|
|
|
@ -41,13 +41,13 @@
|
|||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "icewm";
|
||||
version = "3.3.4";
|
||||
version = "3.3.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "ice-wm";
|
||||
repo = "icewm";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-Ygu10QF+cbjA0qy3k8/A9QX5xSthXcPy0wII3tXLH68=";
|
||||
hash = "sha256-ZxHeRfdSKhU7osITPLZmC5M2Nji3GjHLPuYphsZXNJw=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -39,5 +39,6 @@ stdenv.mkDerivation {
|
|||
description = "A multi-paradigm functional and object-oriented programming language";
|
||||
license = lib.licenses.mit;
|
||||
platforms = lib.platforms.linux;
|
||||
broken = true; # last successful build 2020-12-11
|
||||
};
|
||||
}
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
|
||||
stdenv.mkDerivation rec {
|
||||
pname = "exiv2";
|
||||
version = "0.27.6";
|
||||
version = "0.27.7";
|
||||
|
||||
outputs = [ "out" "lib" "dev" "doc" "man" "static" ];
|
||||
|
||||
|
@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
|
|||
owner = "exiv2";
|
||||
repo = "exiv2";
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-Ddy605EQhsATzmdhN3Zq+2ksYMrHEfucA+IqezYmjo4=";
|
||||
sha256 = "sha256-xytVGrLDS22n2/yydFTT6CsDESmhO9mFbPGX4yk+b6g=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -11,7 +11,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "dbus-fast";
|
||||
version = "1.85.0";
|
||||
version = "1.86.0";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
@ -20,7 +20,7 @@ buildPythonPackage rec {
|
|||
owner = "Bluetooth-Devices";
|
||||
repo = pname;
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-pl5Qs7llmUna+i85hMl14UhTDkibPEcMaRnsPM7ODFg=";
|
||||
hash = "sha256-YSkSnRQqalHpRVJx5PUO8EXXV8V6jRNpycO/GqNWmIM=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
|
|
|
@ -15,7 +15,7 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "dvc-data";
|
||||
version = "0.51.0";
|
||||
version = "0.52.0";
|
||||
format = "pyproject";
|
||||
|
||||
disabled = pythonOlder "3.8";
|
||||
|
@ -24,7 +24,7 @@ buildPythonPackage rec {
|
|||
owner = "iterative";
|
||||
repo = pname;
|
||||
rev = "refs/tags/${version}";
|
||||
hash = "sha256-kLxwBFDoGEZ8w3PHEh8IVDEbmlbwazhZBAoBAUQFDEo=";
|
||||
hash = "sha256-Z5luqKuUForepBTZ7s2uDI09bK0NVhYMADFOj13nt0I=";
|
||||
};
|
||||
|
||||
SETUPTOOLS_SCM_PRETEND_VERSION = version;
|
||||
|
|
|
@ -2,12 +2,17 @@
|
|||
, buildPythonPackage
|
||||
, fetchpatch
|
||||
, fetchPypi
|
||||
, pythonAtLeast
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "fn";
|
||||
version = "0.4.3";
|
||||
|
||||
# Python 3.11 changed the API of the `inspect` module and fn was never
|
||||
# updated to adapt; last commit was in 2014.
|
||||
disabled = pythonAtLeast "3.11";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
sha256 = "1nmsjmn8jb4gp22ksx0j0hhdf4y0zm8rjykyy2i6flzimg6q1kgq";
|
||||
|
|
|
@ -15,14 +15,14 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "gtts";
|
||||
version = "2.3.1";
|
||||
version = "2.3.2";
|
||||
format = "pyproject";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "pndurette";
|
||||
repo = "gTTS";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-dbIcx6U5TIy3CteUGrZqcWqOJoZD2HILaJmKDY+j/II=";
|
||||
hash = "sha256-Z5dM/PzIA8qtw0RepTKmHpqBwYMRwNLhWuEC0aBGL3U=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -8,12 +8,13 @@
|
|||
, precis-i18n
|
||||
, pygobject3
|
||||
, pyopenssl
|
||||
, setuptools
|
||||
, pytestCheckHook
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "nbxmpp";
|
||||
version = "4.0.1";
|
||||
version = "4.2.2";
|
||||
|
||||
disabled = pythonOlder "3.10";
|
||||
|
||||
|
@ -22,9 +23,11 @@ buildPythonPackage rec {
|
|||
owner = "gajim";
|
||||
repo = "python-nbxmpp";
|
||||
rev = version;
|
||||
hash = "sha256-PL+qNxeNubGSLqSci4uhRWtOIqs10p+A1VPfTwCLu84=";
|
||||
hash = "sha256-ZTX8plcsO4zE7ruLtWIvsagQUvwPHuKdPKRwCrFwvgc=";
|
||||
};
|
||||
|
||||
format = "pyproject";
|
||||
|
||||
nativeBuildInputs = [
|
||||
# required for pythonImportsCheck otherwise libsoup cannot be found
|
||||
gobject-introspection
|
||||
|
@ -40,6 +43,7 @@ buildPythonPackage rec {
|
|||
libsoup_3
|
||||
pygobject3
|
||||
pyopenssl
|
||||
setuptools
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
|
|
|
@ -8,14 +8,14 @@
|
|||
|
||||
buildPythonPackage rec {
|
||||
pname = "pglast";
|
||||
version = "5.1";
|
||||
version = "5.2";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
hash = "sha256-fHWJWgy/Ven5m2Cf81rG/ZKmFFWiLJsIPVxFe+rr+ms=";
|
||||
hash = "sha256-zj7/WGECL5Ou4F2FdFaA3M9F92ETZbhEXbZJ628gg0o=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
|
|
|
@ -1,7 +1,10 @@
|
|||
{ lib, stdenv
|
||||
, bottle
|
||||
, buildPythonPackage
|
||||
, fetchpatch
|
||||
, fetchPypi
|
||||
, pytestCheckHook
|
||||
, pythonAtLeast
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
|
@ -13,14 +16,36 @@ buildPythonPackage rec {
|
|||
sha256 = "993f1a3599ca3f4fcd7160c7545ad06310c9e12f70174ae7ae8d4e25f6c5d3fa";
|
||||
};
|
||||
|
||||
patches = [
|
||||
# Fixes a TypeError on Python 3.11
|
||||
# (see https://github.com/pympler/pympler/issues/148)
|
||||
(fetchpatch {
|
||||
name = "${pname}-python-3.11-compat.patch";
|
||||
url = "https://github.com/pympler/pympler/pull/149.patch";
|
||||
hash = "sha256-6MK0AuhVhQkUzlk29HUh1+mSbfsVTBJ1YBtYNIFhh7U=";
|
||||
})
|
||||
];
|
||||
|
||||
nativeCheckInputs = [
|
||||
pytestCheckHook
|
||||
];
|
||||
|
||||
# There is a version of bottle bundled with Pympler, but it is broken on
|
||||
# Python 3.11. Fortunately, Pympler will preferentially import an external
|
||||
# bottle if it is available, so we make it an explicit dependency.
|
||||
propagatedBuildInputs = [
|
||||
bottle
|
||||
];
|
||||
|
||||
disabledTests = [
|
||||
# 'AssertionError: 'function (test.muppy.test_summary.func)' != 'function (muppy.test_summary.func)'
|
||||
# https://github.com/pympler/pympler/issues/134
|
||||
"test_repr_function"
|
||||
] ++ lib.optionals (pythonAtLeast "3.11") [
|
||||
# https://github.com/pympler/pympler/issues/148
|
||||
"test_findgarbage"
|
||||
"test_get_tree"
|
||||
"test_prune"
|
||||
];
|
||||
|
||||
doCheck = stdenv.hostPlatform.isLinux;
|
||||
|
|
|
@ -16,9 +16,10 @@
|
|||
, extractcode-libarchive
|
||||
, fasteners
|
||||
, fetchPypi
|
||||
, fetchpatch
|
||||
, fingerprints
|
||||
, ftfy
|
||||
, gemfileparser
|
||||
, gemfileparser2
|
||||
, html5lib
|
||||
, importlib-metadata
|
||||
, intbitset
|
||||
|
@ -89,7 +90,7 @@ buildPythonPackage rec {
|
|||
fasteners
|
||||
fingerprints
|
||||
ftfy
|
||||
gemfileparser
|
||||
gemfileparser2
|
||||
html5lib
|
||||
importlib-metadata
|
||||
intbitset
|
||||
|
@ -133,13 +134,23 @@ buildPythonPackage rec {
|
|||
pytestCheckHook
|
||||
];
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "${pname}-allow-stable-spdx-tools.patch";
|
||||
url = "https://github.com/nexB/scancode-toolkit/commit/d89ab6584d3df6b7eb1d1394559e9d967d6db6ae.patch";
|
||||
includes = [ "src/*" ];
|
||||
hash = "sha256-AU3vJlOxmCy3yvkupVaAVxAKxJI3ymXEk+A5DWSkfOM=";
|
||||
})
|
||||
];
|
||||
|
||||
postPatch = ''
|
||||
substituteInPlace setup.cfg \
|
||||
--replace "pdfminer.six >= 20200101" "pdfminer.six" \
|
||||
--replace "pluggy >= 0.12.0, < 1.0" "pluggy" \
|
||||
--replace "pygmars >= 0.7.0" "pygmars" \
|
||||
--replace "license_expression >= 21.6.14" "license_expression" \
|
||||
--replace "intbitset >= 2.3.0, < 3.0" "intbitset"
|
||||
--replace "intbitset >= 2.3.0, < 3.0" "intbitset" \
|
||||
--replace "spdx_tools == 0.7.0a3" "spdx_tools"
|
||||
'';
|
||||
|
||||
# Importing scancode needs a writeable home, and preCheck happens in between
|
||||
|
|
|
@ -1,18 +1,22 @@
|
|||
{ lib
|
||||
, buildPythonPackage
|
||||
, cython
|
||||
, fetchPypi
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "timelib";
|
||||
version = "0.2.5";
|
||||
version = "0.3.0";
|
||||
|
||||
src = fetchPypi {
|
||||
inherit pname version;
|
||||
extension = "zip";
|
||||
sha256 = "6ac9f79b09b63bbc07db88525c1f62de1f6d50b0fd9937a0cb05e3d38ce0af45";
|
||||
hash = "sha256-0bInBlVxhuYFjaiLoPhYN0AbKuneFX9ZNT3JeNglGHo=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [
|
||||
cython
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Parse english textual date descriptions";
|
||||
homepage = "https://github.com/pediapress/timelib/";
|
||||
|
|
|
@ -7,33 +7,52 @@
|
|||
, pytest-timeout
|
||||
, huggingface-hub
|
||||
, pyyaml
|
||||
, safetensors
|
||||
, torch
|
||||
, torchvision
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
pname = "timm";
|
||||
version = "0.6.12";
|
||||
disabled = pythonOlder "3.6";
|
||||
version = "0.9.2";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "huggingface";
|
||||
repo = "pytorch-image-models";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-RNjCcCnNhtr5a+29Bx+k427a03MSooqvnuiDQ8cT8FA=";
|
||||
hash = "sha256-gYrc8ds6urZvwDsTnzPjxjSTiAGzUD3RlCf0wogCrDI=";
|
||||
};
|
||||
|
||||
propagatedBuildInputs = [
|
||||
huggingface-hub
|
||||
pyyaml
|
||||
safetensors
|
||||
torch
|
||||
torchvision
|
||||
];
|
||||
|
||||
nativeCheckInputs = [ expecttest pytestCheckHook pytest-timeout ];
|
||||
pytestFlagsArray = [ "tests" ];
|
||||
# takes too long and also tries to download models:
|
||||
disabledTestPaths = [ "tests/test_models.py" ];
|
||||
nativeCheckInputs = [
|
||||
expecttest
|
||||
pytestCheckHook
|
||||
pytest-timeout
|
||||
];
|
||||
|
||||
pytestFlagsArray = [
|
||||
"tests"
|
||||
];
|
||||
|
||||
disabledTestPaths = [
|
||||
# Takes too long and also tries to download models
|
||||
"tests/test_models.py"
|
||||
];
|
||||
|
||||
disabledTests = [
|
||||
# AttributeError: 'Lookahead' object has no attribute '_optimizer_step_pre...
|
||||
"test_lookahead"
|
||||
];
|
||||
|
||||
pythonImportsCheck = [
|
||||
"timm"
|
||||
|
|
|
@ -19,7 +19,8 @@ buildPythonPackage rec {
|
|||
|
||||
postPatch = ''
|
||||
substituteInPlace tests/__init__.py \
|
||||
--replace "'virtualenv'" "'${virtualenv}/bin/virtualenv'"
|
||||
--replace "'virtualenv'" "'${virtualenv}/bin/virtualenv'" \
|
||||
--replace "'3.9', '3.10']" "'3.9', '3.10', '3.11']" # if the Python version used isn't in this list, tests fail
|
||||
|
||||
substituteInPlace tests/test_virtualenv_sys.py \
|
||||
--replace "'virtualenv'" "'${virtualenv}/bin/virtualenv'"
|
||||
|
|
|
@ -1,6 +1,7 @@
|
|||
{ stdenv
|
||||
, lib
|
||||
, buildPythonPackage
|
||||
, fetchpatch
|
||||
, fetchPypi
|
||||
, colorama
|
||||
, libunwind
|
||||
|
@ -21,6 +22,22 @@ buildPythonPackage rec {
|
|||
buildInputs = [ libunwind ];
|
||||
propagatedBuildInputs = [ colorama requests six pytz ];
|
||||
|
||||
patches = [
|
||||
(fetchpatch {
|
||||
name = "${pname}-python-3.10-compat.patch";
|
||||
# https://github.com/vmprof/vmprof-python/pull/198
|
||||
url = "https://github.com/vmprof/vmprof-python/commit/e4e99e5aa677f96d1970d88c8a439f995f429f85.patch";
|
||||
hash = "sha256-W/c6WtVuKi7xO2sCOr71mrZTWqI86bWg5a0FeDNolh0=";
|
||||
})
|
||||
(fetchpatch {
|
||||
name = "${pname}-python-3.11-compat.patch";
|
||||
# https://github.com/vmprof/vmprof-python/pull/251 (not yet merged)
|
||||
url = "https://github.com/matthiasdiener/vmprof-python/compare/a1a1b5264ec0b197444c0053e44f8ae4ffed9353...13c39166363b960017393b614270befe01230be8.patch";
|
||||
excludes = [ "test_requirements.txt" ];
|
||||
hash = "sha256-3+0PVdAf83McNd93Q9dD4HLXt39UinVU5BA8jWfT6F4=";
|
||||
})
|
||||
];
|
||||
|
||||
# No tests included
|
||||
doCheck = false;
|
||||
pythonImportsCheck = [ "vmprof" ];
|
||||
|
|
|
@ -658,6 +658,13 @@ in
|
|||
"--with-cflags=-I${ncurses.dev}/include"
|
||||
"--with-ldflags=-L${ncurses.out}/lib"
|
||||
];
|
||||
dontBuild = false;
|
||||
postPatch = ''
|
||||
substituteInPlace extconf.rb --replace 'rubyio.h' 'ruby/io.h'
|
||||
substituteInPlace terminfo.c \
|
||||
--replace 'rubyio.h' 'ruby/io.h' \
|
||||
--replace 'rb_cData' 'rb_cObject'
|
||||
'';
|
||||
};
|
||||
|
||||
ruby-vips = attrs: {
|
||||
|
|
|
@ -10,16 +10,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "buf";
|
||||
version = "1.18.0";
|
||||
version = "1.19.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bufbuild";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-wMYl9TlOQ4h5MFNNWaGkou7YIBSsMfhV70ABgKkC7xo=";
|
||||
hash = "sha256-vLiOAlzIrIwMKPn8yl/YyFmXbFHFAZB1yLejQbAEivg=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-pyhK0tHpHrEkGRkWgzTFg9FNNBx3SwoWUfw+2zk7nAs=";
|
||||
vendorHash = "sha256-DT3vffs33hGlylQLKc5o7Xble8Blyy4hgvE27CHnmJc=";
|
||||
|
||||
patches = [
|
||||
# Skip a test that requires networking to be available to work.
|
||||
|
|
44
pkgs/development/tools/misc/gopatch/default.nix
Normal file
44
pkgs/development/tools/misc/gopatch/default.nix
Normal file
|
@ -0,0 +1,44 @@
|
|||
{ lib
|
||||
, buildGoModule
|
||||
, fetchFromGitHub
|
||||
, testers
|
||||
, gopatch
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "gopatch";
|
||||
version = "0.2.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "uber-go";
|
||||
repo = "gopatch";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-RodRDP7n1hxez+9xpRlguuArJDVaYxVTpnXKqsyqnUw=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-vygEVVh/bBhV/FCrehDumrw2c1SdSZSdFjVSRoJsIig=";
|
||||
|
||||
subPackages = [
|
||||
"."
|
||||
];
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
"-w"
|
||||
"-X=main._version=${version}"
|
||||
];
|
||||
|
||||
passthru.tests = {
|
||||
version = testers.testVersion {
|
||||
package = gopatch;
|
||||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "Refactoring and code transformation tool for Go";
|
||||
homepage = "https://github.com/uber-go/gopatch";
|
||||
changelog = "https://github.com/uber-go/gopatch/blob/${src.rev}/CHANGELOG.md";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ figsoda ];
|
||||
};
|
||||
}
|
|
@ -17,10 +17,10 @@ let
|
|||
plat = elemAt info 1;
|
||||
shas =
|
||||
{
|
||||
x86_64-linux = "f0f9f65b6ba3cc401a519f764314854f6f1f22a9c3b55dfc5a4921455d64fc0d5b8352d267217076da82157553f235ab3d2506497132f23789b126205177e86b";
|
||||
x86_64-darwin = "2ba707a0e7a5c34be98ee5e299b8f1d9ace99a626112efd48ca08bfc9640374ec37fc1761c9ef91599e7a5bf5055d2731759b0337952d7767b02d9c46640be71";
|
||||
aarch64-linux = "6899c46a06cceb3bfa5db22cdad90db3063b3859c6059a379ac29ce5755073e45b6914491c7c0ec92c48344c1658ea68f7453992d1a39b70782f699315d175de";
|
||||
aarch64-darwin = "194b7288f394ff39af3e114099a8f0f847091fd50231ee50c12105189e2b1dfdff8971795c2c22275ff113734e543cfaf51940682d77576c89d2d5bce9b26b92";
|
||||
x86_64-linux = "d3d5e8906e64ae3c469e4df80e1c692ce1912e36f68ddf36b99b7019faf34aebaa329061904a6d2b6a32486c6e19d1c5f2ea30c25479a7960ed93bc1c0cb1691";
|
||||
x86_64-darwin = "72a4499efbbbdf425f92beafc1b1d416e66e6ded60e76d9c9af9c3c13ce11862ba54dffbfbd5cbdef6afaad50f0d57532d3524f83acd88840aecc6891f748732";
|
||||
aarch64-linux = "ce1b584e1cf98f8fb0e602352564a71efef4f53936dde7a056caed62675a6216624f0db2bc24d8239b8d01f06306bf173dda7a08a1787ba061db01ca0d88359a";
|
||||
aarch64-darwin = "72a4499efbbbdf425f92beafc1b1d416e66e6ded60e76d9c9af9c3c13ce11862ba54dffbfbd5cbdef6afaad50f0d57532d3524f83acd88840aecc6891f748732";
|
||||
};
|
||||
|
||||
in stdenv.mkDerivation rec {
|
||||
|
|
|
@ -14,13 +14,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "wails";
|
||||
version = "2.4.1";
|
||||
version = "2.5.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "wailsapp";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-ei+bp4fwlxZ9ZiXW/FqpqICXpFxpmOKkZZYW0LxHh1s=";
|
||||
sha256 = "sha256-4JTkViqJ1rmVg6JGJ+uZrIo/mh6o1VE39gYoILdFWBE=";
|
||||
} + "/v2";
|
||||
|
||||
vendorSha256 = "sha256-RiectpUhm24xjgfPZEMDVFSEzPtIjn7L/qC2KE2s5aw=";
|
||||
|
|
|
@ -8,10 +8,10 @@ let beat = package: extraArgs: buildGoModule (rec {
|
|||
owner = "elastic";
|
||||
repo = "beats";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-BGi2fGUz0J7BuLo3JA4c2yUlWXdLpjn+AcMHkDGd3js=";
|
||||
hash = "sha256-Quq32/3NeGhrsy17GrIeBiB3LGQuMFTFl3lAyyU6GZM=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-FtFHfxCIZ4G1aFfGUgRfTz+zL4OE4SLPuDzXqL6CDyo=";
|
||||
vendorHash = "sha256-UJjwCRxY1rrymroBqC/SfCVM9vmnQOtLlS3OONih3kM=";
|
||||
|
||||
subPackages = [ package ];
|
||||
|
||||
|
|
|
@ -33,8 +33,8 @@ let
|
|||
in {
|
||||
tomcat9 = common {
|
||||
versionMajor = "9";
|
||||
versionMinor = "0.68";
|
||||
sha256 = "sha256-rxsv8zEIIbTel4CqIuncS5pellGwgHamKRa0KgzsOF0=";
|
||||
versionMinor = "0.75";
|
||||
sha256 = "sha256-VWfKg789z+ns1g3hDsCZFYQ+PsdqUEBeBHCihkGZelk=";
|
||||
};
|
||||
|
||||
tomcat10 = common {
|
||||
|
|
|
@ -1,16 +1,51 @@
|
|||
{ lib, stdenv, fetchFromGitHub, cmake, ninja, pkg-config
|
||||
, cyclonedds, libmysqlclient, mariadb, mbedtls, sqlite, zeromq
|
||||
{ lib
|
||||
, stdenv
|
||||
, fetchFromGitHub
|
||||
, cmake
|
||||
, ninja
|
||||
, pkg-config
|
||||
, cyclonedds
|
||||
, libmysqlclient
|
||||
, mariadb
|
||||
, mbedtls
|
||||
, sqlite
|
||||
, zeromq
|
||||
, flex
|
||||
, bison
|
||||
|
||||
# for tests
|
||||
, python3
|
||||
, mosquitto
|
||||
, netcat-gnu
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
let
|
||||
|
||||
# exposing as full package in its own right would be a
|
||||
# bit absurd - repo doesn't even have a license.
|
||||
idl-serial = stdenv.mkDerivation {
|
||||
pname = "idl-serial";
|
||||
version = "unstable-2023-03-29";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "nanomq";
|
||||
repo = "idl-serial";
|
||||
rev = "908c364dab4c0dcdd77b8de698d29c8a0b6d3830";
|
||||
hash = "sha256-3DS9DuzHN7BevfgiekUmKKH9ej9wKTrt6Fuh427NC4I=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = [ cmake ninja flex bison ];
|
||||
};
|
||||
|
||||
in stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "nanomq";
|
||||
version = "0.16.3";
|
||||
version = "0.18.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "emqx";
|
||||
repo = "nanomq";
|
||||
rev = finalAttrs.version;
|
||||
hash = "sha256-9w4afVxuJbYrkagpAe1diftDnjrRjunyhJdJ0BZq3K0=";
|
||||
hash = "sha256-XGJBBuRSL3InXUMGxOttdbt0zmI1APFlc4IvwC2up8g=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
@ -19,7 +54,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
--replace "DESTINATION /etc" "DESTINATION $out/etc"
|
||||
'';
|
||||
|
||||
nativeBuildInputs = [ cmake ninja pkg-config ];
|
||||
nativeBuildInputs = [ cmake ninja pkg-config idl-serial ];
|
||||
|
||||
buildInputs = [ cyclonedds libmysqlclient mariadb mbedtls sqlite zeromq ];
|
||||
|
||||
|
@ -35,6 +70,33 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
|
||||
env.NIX_CFLAGS_COMPILE = lib.optionalString stdenv.cc.isClang "-Wno-return-type";
|
||||
|
||||
# disabled by default - not 100% reliable and making nanomq depend on
|
||||
# mosquitto would annoy people
|
||||
doInstallCheck = false;
|
||||
nativeInstallCheckInputs = [
|
||||
mosquitto
|
||||
netcat-gnu
|
||||
(python3.withPackages (ps: with ps; [ jinja2 requests paho-mqtt ]))
|
||||
];
|
||||
installCheckPhase = ''
|
||||
runHook preInstallCheck
|
||||
|
||||
(
|
||||
cd ..
|
||||
|
||||
# effectively distable this test because it is slow
|
||||
echo > .github/scripts/fuzzy_test.txt
|
||||
|
||||
PATH="$PATH:$out/bin" python .github/scripts/test.py
|
||||
)
|
||||
|
||||
runHook postInstallCheck
|
||||
'';
|
||||
|
||||
passthru.tests = {
|
||||
withInstallChecks = finalAttrs.finalPackage.overrideAttrs (_: { doInstallCheck = true; });
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "An ultra-lightweight and blazing-fast MQTT broker for IoT edge";
|
||||
homepage = "https://nanomq.io/";
|
||||
|
|
|
@ -18,10 +18,10 @@ let
|
|||
plat = elemAt info 1;
|
||||
shas =
|
||||
{
|
||||
x86_64-linux = "f49d8fce010db83e6a89462535c71ba11a1153589038a7db430fc7db44178a55d5538dea80e6d4c690f4f0e838168965297c6a3ae31fbc5020af4d966067a90c";
|
||||
x86_64-darwin = "b7d87bfa2e1793354bfb51ea11bbeeb29cfba62633288c3ed4ab9eecc05d05953db9446e7ca46ffe63f5aa646a0534fb8f4aa897a59fa2ae7e200b824576d915";
|
||||
aarch64-linux = "aa9624c1777a8530f5eca4f75385de1a95ba8db3d56810cc1e134434438181580c32f5f46ab79094742d077e9b741cfb2549cda549147123dae14109e27a1443";
|
||||
aarch64-darwin = "191e04a1e440a5ad679d04f6d852a6ab26cb14870b8af38a2ab6a14251a7b6d1ed7646e33b87f4971bb04a68d767abaecaa8dba07e3ae29211f0a358bb499d61";
|
||||
x86_64-linux = "7a2013e43c7fc39e86a31a733cc74c587ef2bba0c013f95ce874f98b488a4f8f0e6fb254a1eedd5c0b0e210aed9a0195f7358fa9653c890e234413ff93190807";
|
||||
x86_64-darwin = "e6f49e7c0f59e260b3e3d43e57375c9352976c4f51118005e3a9127f41b59f95e51ea158cd318e99410e6d98464ea1f84432c905d12a84b8f68b2ce35905f944";
|
||||
aarch64-linux = "f2790f49b79c381246bbf87431919452af93aa4fd8aa6bc9c1f9031e7ed5d9c649f5bab867c28a7d1602e2285d3f4a5f78f809ac05744b02ad67d68610bb677d";
|
||||
aarch64-darwin = "75b66b60650bb82dc517f4a594fa40816d3becb92bf3b349f3e8324cc6b297c8bcacebc08e7661891fd4ede03a099fea56c1509291804dd03345717c36564172";
|
||||
};
|
||||
in
|
||||
stdenv.mkDerivation rec {
|
||||
|
|
|
@ -37,8 +37,8 @@ in
|
|||
version = esVersion;
|
||||
src = fetchurl {
|
||||
url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
|
||||
sha256 =
|
||||
if version == "7.17.9" then "sha256-70KU7aGUHEZsjykXqHUYspGyX0CCrlS1er9WdUbxxSE="
|
||||
hash =
|
||||
if version == "7.17.10" then "sha256-D08CVW/qHpZZaKnploM4aCJ4bunvPjVmieDYr1d6jQA="
|
||||
else throw "unsupported version ${version} for plugin ${pluginName}";
|
||||
};
|
||||
meta = with lib; {
|
||||
|
@ -53,8 +53,8 @@ in
|
|||
version = esVersion;
|
||||
src = fetchurl {
|
||||
url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
|
||||
sha256 =
|
||||
if version == "7.17.9" then "sha256-oRTs1eK7jpoKaMvc+6rx9qiA8wg+gYUADM0HuJU0nOY="
|
||||
hash =
|
||||
if version == "7.17.10" then "sha256-cpgr2zPCpsLrmshWJWoGNcGl0X+bO/K4A9bMqLv8+H8="
|
||||
else throw "unsupported version ${version} for plugin ${pluginName}";
|
||||
};
|
||||
meta = with lib; {
|
||||
|
@ -69,7 +69,7 @@ in
|
|||
version = esVersion;
|
||||
src = fetchurl {
|
||||
url = "https://github.com/vhyza/elasticsearch-${pluginName}/releases/download/v${version}/elasticsearch-${pluginName}-${version}-plugin.zip";
|
||||
sha256 =
|
||||
hash =
|
||||
if version == "7.17.9" then "sha256-iY25apDkS6s0RoR9dVL2o/hFuUo6XhMzLjl8wDSFejk="
|
||||
else throw "unsupported version ${version} for plugin ${pluginName}";
|
||||
};
|
||||
|
@ -77,6 +77,7 @@ in
|
|||
homepage = "https://github.com/vhyza/elasticsearch-analysis-lemmagen";
|
||||
description = "LemmaGen Analysis plugin provides jLemmaGen lemmatizer as Elasticsearch token filter";
|
||||
license = licenses.asl20;
|
||||
broken = true; # Not released yet for ES 7.17.10
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -85,8 +86,8 @@ in
|
|||
version = esVersion;
|
||||
src = fetchurl {
|
||||
url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
|
||||
sha256 =
|
||||
if version == "7.17.9" then "sha256-xlEabvNiddEwRfKrHIq1QPFJFMd2gByurIZF9LOxVSs="
|
||||
hash =
|
||||
if version == "7.17.10" then "sha256-UmykO+hZDvlFhEbf7zL2bdw4j6NhByRBu9eH3F6/EtM="
|
||||
else throw "unsupported version ${version} for plugin ${pluginName}";
|
||||
};
|
||||
meta = with lib; {
|
||||
|
@ -101,8 +102,8 @@ in
|
|||
version = esVersion;
|
||||
src = fetchurl {
|
||||
url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
|
||||
sha256 =
|
||||
if version == "7.17.9" then "sha256-J1q87fhL4A5tkxPADgHflPbO2RRMGPUk58l7DEpgd94="
|
||||
hash =
|
||||
if version == "7.17.10" then "sha256-Y/AbLfHSdocX0NQbnKm63gTWgwzssb4kpSwRqLozD9w="
|
||||
else throw "unsupported version ${version} for plugin ${pluginName}";
|
||||
};
|
||||
meta = with lib; {
|
||||
|
@ -117,8 +118,8 @@ in
|
|||
version = esVersion;
|
||||
src = fetchurl {
|
||||
url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
|
||||
sha256 =
|
||||
if version == "7.17.9" then "sha256-BhJtBdsT5Xapehfn0xaTWpSrvT1W+Hhv/yqliA6dBG8="
|
||||
hash =
|
||||
if version == "7.17.10" then "sha256-QIYD7cGpJQg+csv/tekN6GFtdnuhYU6VyAXk7nY/uWs="
|
||||
else throw "unsupported version ${version} for plugin ${pluginName}";
|
||||
};
|
||||
meta = with lib; {
|
||||
|
@ -133,8 +134,8 @@ in
|
|||
version = esVersion;
|
||||
src = fetchurl {
|
||||
url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${esVersion}.zip";
|
||||
sha256 =
|
||||
if version == "7.17.9" then "sha256-bjVMVwZfj9WyjkwTXwTJdmaqZ1sWuvOZKXh9PFTOwb8="
|
||||
hash =
|
||||
if version == "7.17.10" then "sha256-L8lS+EPYuhNNTnP3ImeZsBQ5a5DAncs3qBFDWGWISRI="
|
||||
else throw "unsupported version ${version} for plugin ${pluginName}";
|
||||
};
|
||||
meta = with lib; {
|
||||
|
@ -149,8 +150,8 @@ in
|
|||
version = esVersion;
|
||||
src = fetchurl {
|
||||
url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${esVersion}.zip";
|
||||
sha256 =
|
||||
if version == "7.17.9" then "sha256-ZyImIHYOz5bOEA+ARtPB2CznTOSjFKsavzWXXEzfkO8="
|
||||
hash =
|
||||
if version == "7.17.10" then "sha256-eXstbxlyS8WzW8u5YiMFXGpILCcEWrIb/IxXVzAGFLU="
|
||||
else throw "unsupported version ${version} for plugin ${pluginName}";
|
||||
};
|
||||
meta = with lib; {
|
||||
|
@ -166,13 +167,13 @@ in
|
|||
pluginName = "search-guard";
|
||||
version =
|
||||
# https://docs.search-guard.com/latest/search-guard-versions
|
||||
if esVersion == "7.17.9" then "${esVersion}-53.6.0"
|
||||
if esVersion == "7.17.10" then "${esVersion}-53.7.0"
|
||||
else throw "unsupported version ${esVersion} for plugin ${pluginName}";
|
||||
src =
|
||||
if esVersion == "7.17.9" then
|
||||
if esVersion == "7.17.10" then
|
||||
fetchurl {
|
||||
url = "https://maven.search-guard.com/search-guard-suite-release/com/floragunn/search-guard-suite-plugin/${version}/search-guard-suite-plugin-${version}.zip";
|
||||
sha256 = "sha256-HwxNvWvjqaI3ytSjNnsGcyt3omIZp69bgwxoufL2Nj8=";
|
||||
hash = "sha256-FIF4O8z0U2giXVA2cNEdCDbpuJDJhaxHBOmv2fACucw=";
|
||||
}
|
||||
else throw "unsupported version ${version} for plugin ${pluginName}";
|
||||
meta = with lib; {
|
||||
|
|
|
@ -1,7 +1,7 @@
|
|||
{ lib, stdenv, fetchurl, writeText, plugins ? [ ], nixosTests }:
|
||||
|
||||
let
|
||||
version = "4.1.2";
|
||||
version = "4.1.3";
|
||||
|
||||
versionParts = lib.take 2 (lib.splitVersion version);
|
||||
# 4.2 -> 402, 3.11 -> 311
|
||||
|
@ -15,7 +15,7 @@ in stdenv.mkDerivation rec {
|
|||
|
||||
src = fetchurl {
|
||||
url = "https://download.moodle.org/stable${stableVersion}/${pname}-${version}.tgz";
|
||||
sha256 = "sha256-ddXldOQLefV6Kjla+IeFwD50Vye4kholJD5R6X6A2Og=";
|
||||
hash = "sha256-JMK+nGgeBryC6I9cg1DD52gIGcPMAJ/xZxrC4a1R5Ps=";
|
||||
};
|
||||
|
||||
phpConfig = writeText "config.php" ''
|
||||
|
|
|
@ -16,14 +16,14 @@ let
|
|||
shas =
|
||||
if enableUnfree
|
||||
then {
|
||||
x86_64-linux = "a43d592e70f023a594f31a3fba365a9cca6611599bd61f998cb1fc38ddd177d459bce23eaf54f811fe0a87a47cdd4bf4b4d4c8008dab1ac03173371f63b91b6c";
|
||||
x86_64-darwin = "7f7d89f438400da178b30f345b6ebc80f55f87f38b8925ca8c9dea86f0e2f23f70ccab03fdef5b83c085f1441e77592aab05006d163bc2af1920e1cc0ebdfc17";
|
||||
aarch64-linux = "3c74d622c362e3aa72442a477ef34b0eb9131f5b550166d0f7f422bd3678acf07d75c702691d6606e5501f4b40854a352398d1c2813f1fb0a152663d75d5658b";
|
||||
x86_64-linux = "5391bfef09c403a365518a3a8e8f075bb7974b137095b3c7fd2a0173cfa6dbd4a7451170a3657afef3e6a468e90a38d6e7a5b669799878f9389fa44ff8fee026";
|
||||
x86_64-darwin = "8e3516b82329a47505358fb7eab486ca39423adc44a1f061c35f6ba225ac2f37330f2afc3e37eb652b6536e5ca35d77ac2485dec743fa8d99dd4fcc60bddbc21";
|
||||
aarch64-linux = "06f91a5aabff0f86a4150de6c1fd02fb6d0a44b04ac660597cb4c8356cf1d22552aaa77899db42a49a5e35b3cad73be5d7bad8cacfb4b17e622949329cdf791a";
|
||||
}
|
||||
else {
|
||||
x86_64-linux = "7c3f9867853582e5d06b9f895b4740abf56a9b6ce34dfbfb624cf9a4b956f489145cd13f3194a7fb16efc52410f55e797c269dc2957a35bdebf9e1aaa3547eaa";
|
||||
x86_64-darwin = "d81c20317a7c163e42f5aad9e148505a64bba8565ff913650a840918b80e6aadde071596e569b0c8f965810b821779ca3d00f9a7cb24a5c86fff571ca9227c38";
|
||||
aarch64-linux = "93d9700fc3dd99bc918be19fe41ef60b9071eadcc6fd57833dbf1fff2e0f2419c62f3493a0454f215b0dfd30cec90f1aca5eeff15c4eb3a583519dc9a69e896a";
|
||||
x86_64-linux = "ba22c4c414f47515387bb28cc47612bea58aff97c407f2571863e83174a2bef273627f65dd531ed833e40668c79144a501d49c3ec691c1b1c4d8fb0cb124b052";
|
||||
x86_64-darwin = "81a97ca06c086fac33f32e90124f649d5ddce09d649021020f434b75b5bff63065f9dc8aa267b72cedd581089bc24db12122f705ef8b69acf8f59f11771cbf77";
|
||||
aarch64-linux = "64adb41a7a1b14b21d463b333f3f4470a4db9140e288d379bf79510c83091d5ca27e997961d757cee2329b85d16da6da8a1038a00aeabb1e74ab8f95b841ad0a";
|
||||
};
|
||||
this = stdenv.mkDerivation rec {
|
||||
version = elk7Version;
|
||||
|
|
|
@ -1,16 +1,16 @@
|
|||
{ lib, fetchFromGitHub, rustPlatform }:
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "tagref";
|
||||
version = "1.7.0";
|
||||
version = "1.8.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "stepchowfun";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-ESImTR3CFe6ABCP7JHU7XQYvc2VsDN03lkVaKK9MUEU=";
|
||||
sha256 = "sha256-fEFMzBLQl93QmaviJXOZkiJ3cqYKNOiz3a+CZL7nyRI=";
|
||||
};
|
||||
|
||||
cargoHash = "sha256-vqRVD5RW0j2bMF/Zl+Ldc06zyDlzRpADWqxtkvKtydE=";
|
||||
cargoHash = "sha256-dvSP1djkjvdm04lsdxZsxS+0R0PI+jo8blg3zOQcBrU=";
|
||||
|
||||
meta = with lib; {
|
||||
description = "Tagref helps you refer to other locations in your codebase.";
|
||||
|
|
|
@ -5,23 +5,29 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "checkip";
|
||||
version = "0.45.1";
|
||||
version = "0.46.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "jreisinger";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-GUVyeQtUNnW8yu/dhfip61jxQtgQmjBUDzsOW233laQ=";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-U0jHwKmGHpaHSiOYDeYCXiufw0JjzAmhBnINmFsqOJo=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-9/z1mtZGqrvcvq8cWBpYN7kaPHaPqtyMwMNxuRRP4Cs=";
|
||||
|
||||
ldflags = [
|
||||
"-w"
|
||||
"-s"
|
||||
];
|
||||
|
||||
# Requires network
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
description = "CLI tool that checks an IP address using various public services";
|
||||
homepage = "https://github.com/jreisinger/checkip";
|
||||
changelog = "https://github.com/jreisinger/checkip/releases/tag/v${version}";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
|
|
|
@ -1,17 +1,21 @@
|
|||
{ lib, buildGoModule, fetchFromGitHub, nixosTests }:
|
||||
{ lib
|
||||
, buildGoModule
|
||||
, fetchFromGitHub
|
||||
, nixosTests
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "nebula";
|
||||
version = "1.6.1";
|
||||
version = "1.7.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "slackhq";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
sha256 = "sha256-IsLSlQsrfw3obkz4jHL23BRQY2fviGbPEvs5j0zkdX0=";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-B0i980mfbfC5p4mIsW3L4v1ilajxtZbp1DQowFw3ghw=";
|
||||
};
|
||||
|
||||
vendorSha256 = "sha256-GvMiOEC3Y/pGG++Z+XCgLVADKymUR9shDxjx3xIz8u0=";
|
||||
vendorHash = "sha256-VZzSdl8R1y7rCF2vz7e+5nAkb3wlJymNWCXwZZUvg4A=";
|
||||
|
||||
subPackages = [ "cmd/nebula" "cmd/nebula-cert" ];
|
||||
|
||||
|
@ -22,7 +26,7 @@ buildGoModule rec {
|
|||
};
|
||||
|
||||
meta = with lib; {
|
||||
description = "A scalable overlay networking tool with a focus on performance, simplicity and security";
|
||||
description = "Overlay networking tool with a focus on performance, simplicity and security";
|
||||
longDescription = ''
|
||||
Nebula is a scalable overlay networking tool with a focus on performance,
|
||||
simplicity and security. It lets you seamlessly connect computers
|
||||
|
@ -39,8 +43,8 @@ buildGoModule rec {
|
|||
parts.
|
||||
'';
|
||||
homepage = "https://github.com/slackhq/nebula";
|
||||
changelog = "https://github.com/slackhq/nebula/blob/v${version}/CHANGELOG.md";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ Br1ght0ne numinit ];
|
||||
};
|
||||
|
||||
}
|
||||
|
|
|
@ -2,16 +2,16 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "crowdsec";
|
||||
version = "1.4.6";
|
||||
version = "1.5.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "crowdsecurity";
|
||||
repo = pname;
|
||||
rev = "v${version}";
|
||||
hash = "sha256-+WvpsZjb1pb8WqK0HJYncJUo6wPkKzKvBi/nLKuhSD4=";
|
||||
hash = "sha256-Z2msr8I5VqY4c5DBFlh9oMg68SSexiN9pgZuJdYnXVQ=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-FPsoufB9UDgBDIE3yUq4doBse3qgjP19ussYnMAxntk=";
|
||||
vendorHash = "sha256-T0gJIJDZzzOuYGNL+b6TriQsKQnAQ6JczkiAvJo1tfc=";
|
||||
|
||||
nativeBuildInputs = [ installShellFiles ];
|
||||
|
||||
|
|
|
@ -8,13 +8,13 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "doppler";
|
||||
version = "3.58.0";
|
||||
version = "3.60.1";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "dopplerhq";
|
||||
repo = "cli";
|
||||
rev = version;
|
||||
sha256 = "sha256-1cAsoaKKxSz2YhwMkfyzAyH8zFHm7YWS01/3CmcD8uY=";
|
||||
sha256 = "sha256-WzR2oKBQ3GEEmOC0hhb6tcVR4GfapS0LzLCJosQo37k=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-yuGjaUHfXCJnMvxfaSwbVAApflwfsvX2W7iEZdruMDE=";
|
||||
|
|
32
pkgs/tools/security/go-exploitdb/default.nix
Normal file
32
pkgs/tools/security/go-exploitdb/default.nix
Normal file
|
@ -0,0 +1,32 @@
|
|||
{ lib
|
||||
, buildGoModule
|
||||
, fetchFromGitHub
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "go-exploitdb";
|
||||
version = "0.4.5";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "vulsio";
|
||||
repo = "go-exploitdb";
|
||||
rev = "refs/tags/v${version}";
|
||||
hash = "sha256-iBOpgeL/cLoQufla0MpQs/0icRWUj1HngnAwOcKLSsQ=";
|
||||
};
|
||||
|
||||
vendorHash = "sha256-e+E8qcc5sRlb9clOFUrOzVwJlp3AFnZ6/lNAxaBe+hQ=";
|
||||
|
||||
ldflags = [
|
||||
"-s"
|
||||
"-w"
|
||||
"-X=github.com/vulsio/go-exploitdb/config.Version=${version}"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
description = "Tool for searching Exploits from Exploit Databases, etc";
|
||||
homepage = "https://github.com/vulsio/go-exploitdb";
|
||||
changelog = "https://github.com/vulsio/go-exploitdb/releases/tag/v${version}";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ fab ];
|
||||
};
|
||||
}
|
|
@ -1,25 +1,30 @@
|
|||
{ lib
|
||||
, argcomplete
|
||||
, buildPythonPackage
|
||||
, fetchFromGitHub
|
||||
, pythonOlder
|
||||
, colored
|
||||
, packaging
|
||||
, paramiko
|
||||
, pytz
|
||||
, pyyaml
|
||||
, rich
|
||||
, sshpubkeys
|
||||
, pytestCheckHook
|
||||
, python3
|
||||
}:
|
||||
|
||||
buildPythonPackage rec {
|
||||
let
|
||||
py = python3.override {
|
||||
packageOverrides = self: super: {
|
||||
paramiko = super.paramiko.overridePythonAttrs (oldAttrs: rec {
|
||||
version = "3.1.0";
|
||||
src = oldAttrs.src.override {
|
||||
inherit version;
|
||||
hash = "sha256-aVD6ymgZrNMhnUrmlKI8eofuONCE9wwXJLDA27i3V2k=";
|
||||
};
|
||||
patches = [ ];
|
||||
propagatedBuildInputs = oldAttrs.propagatedBuildInputs ++ [ python3.pkgs.icecream ];
|
||||
});
|
||||
};
|
||||
};
|
||||
in
|
||||
with py.pkgs;
|
||||
|
||||
buildPythonApplication rec {
|
||||
pname = "ssh-mitm";
|
||||
version = "3.0.2";
|
||||
format = "setuptools";
|
||||
|
||||
disabled = pythonOlder "3.7";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = pname;
|
||||
repo = pname;
|
||||
|
@ -35,6 +40,7 @@ buildPythonPackage rec {
|
|||
pytz
|
||||
pyyaml
|
||||
rich
|
||||
setuptools
|
||||
sshpubkeys
|
||||
];
|
||||
|
|
@ -202,6 +202,14 @@ core-big = stdenv.mkDerivation { #TODO: upmendex
|
|||
url = "https://bugs.debian.org/cgi-bin/bugreport.cgi?att=1;bug=1009196;filename=reproducible_exception_strings.patch;msg=5";
|
||||
sha256 = "sha256-RNZoEeTcWnrLaltcYrhNIORh42fFdwMzBfxMRWVurbk=";
|
||||
})
|
||||
# fixes a security-issue in luatex that allows arbitrary code execution even with shell-escape disabled, see https://tug.org/~mseven/luatex.html
|
||||
(fetchpatch {
|
||||
name = "CVE-2023-32700.patch";
|
||||
url = "https://tug.org/~mseven/luatex-files/2022/patch";
|
||||
hash = "sha256-o9ENLc1ZIIOMX6MdwpBIgrR/Jdw6tYLmAyzW8i/FUbY=";
|
||||
excludes = [ "build.sh" ];
|
||||
stripLen = 1;
|
||||
})
|
||||
];
|
||||
|
||||
hardeningDisable = [ "format" ];
|
||||
|
|
|
@ -3698,7 +3698,7 @@ with pkgs;
|
|||
|
||||
ssh-key-confirmer = callPackage ../tools/networking/ssh-key-confirmer { };
|
||||
|
||||
ssh-mitm = with python3Packages; toPythonApplication ssh-mitm;
|
||||
ssh-mitm = callPackage ../tools/security/ssh-mitm { };
|
||||
|
||||
sshchecker = callPackage ../tools/security/sshchecker { };
|
||||
|
||||
|
@ -7246,7 +7246,7 @@ with pkgs;
|
|||
|
||||
# The latest version used by elasticsearch, logstash, kibana and the the beats from elastic.
|
||||
# When updating make sure to update all plugins or they will break!
|
||||
elk7Version = "7.17.9";
|
||||
elk7Version = "7.17.10";
|
||||
|
||||
elasticsearch7 = callPackage ../servers/search/elasticsearch/7.x.nix {
|
||||
util-linux = util-linuxMinimal;
|
||||
|
@ -18435,6 +18435,8 @@ with pkgs;
|
|||
|
||||
gocd-server = callPackage ../development/tools/continuous-integration/gocd-server { };
|
||||
|
||||
gopatch = callPackage ../development/tools/misc/gopatch { };
|
||||
|
||||
goredo = callPackage ../development/tools/build-managers/goredo { };
|
||||
|
||||
gotify-server = callPackage ../servers/gotify { };
|
||||
|
@ -35711,6 +35713,8 @@ with pkgs;
|
|||
inherit (darwin.apple_sdk.frameworks) IOKit;
|
||||
};
|
||||
|
||||
go-exploitdb = callPackage ../tools/security/go-exploitdb { };
|
||||
|
||||
groestlcoin = libsForQt5.callPackage ../applications/blockchains/groestlcoin {
|
||||
boost = boost17x;
|
||||
withGui = true;
|
||||
|
|
|
@ -6162,6 +6162,20 @@ with self; {
|
|||
};
|
||||
};
|
||||
|
||||
DateRange = buildPerlPackage {
|
||||
pname = "Date-Range";
|
||||
version = "1.41";
|
||||
src = fetchurl {
|
||||
url = "mirror://cpan/authors/id/T/TM/TMTM/Date-Range-1.41.tar.gz";
|
||||
hash = "sha256-v5iXSSsQHAUDh50Up+fr6QJUQ4NgGufGmpXedcvZSLk=";
|
||||
};
|
||||
propagatedBuildInputs = [ DateSimple ];
|
||||
meta = {
|
||||
description = "work with a range of dates";
|
||||
license = with lib.licenses; [ gpl2Plus ];
|
||||
};
|
||||
};
|
||||
|
||||
DateSimple = buildPerlPackage {
|
||||
pname = "Date-Simple";
|
||||
version = "3.03";
|
||||
|
@ -9843,17 +9857,18 @@ with self; {
|
|||
|
||||
FinanceQuote = buildPerlPackage {
|
||||
pname = "Finance-Quote";
|
||||
version = "1.49";
|
||||
version = "1.55";
|
||||
src = fetchurl {
|
||||
url = "mirror://cpan/authors/id/E/EC/ECOCODE/Finance-Quote-1.49.tar.gz";
|
||||
hash = "sha256-ldvERDumVjILNjxWYl0E83nJQ+IC9g9AoqNRUrVLv1M=";
|
||||
url = "mirror://cpan/authors/id/B/BP/BPSCHUCK/Finance-Quote-1.55.tar.gz";
|
||||
hash = "sha256-4uAAtnxmtq9Q1HYYWEkhEFEKVaAwqJEBfUDH3iGLdI8=";
|
||||
};
|
||||
propagatedBuildInputs = [ CGI DateTimeFormatStrptime HTMLTableExtract JSON JSONParse LWPProtocolHttps StringUtil TextTemplate ];
|
||||
buildInputs = [ TestPod ];
|
||||
buildInputs = [ DateManip DateRange DateSimple DateTime DateTimeFormatISO8601 StringUtil TestKwalitee TestPerlCritic TestPod TestPodCoverage ];
|
||||
propagatedBuildInputs = [ DateTimeFormatStrptime Encode HTMLTableExtract HTMLTokeParserSimple HTMLTree HTMLTreeBuilderXPath HTTPCookies JSON IOCompress LWPProtocolHttps Readonly StringUtil SpreadsheetXLSX TextTemplate TryTiny WebScraper XMLLibXML libwwwperl ];
|
||||
meta = {
|
||||
homepage = "https://finance-quote.sourceforge.net/";
|
||||
description = "Get stock and mutual fund quotes from various exchanges";
|
||||
license = with lib.licenses; [gpl2 ];
|
||||
license = with lib.licenses; [ gpl2Plus ];
|
||||
maintainers = with lib.maintainers; [ nevivurn ];
|
||||
};
|
||||
};
|
||||
|
||||
|
@ -13086,6 +13101,22 @@ with self; {
|
|||
};
|
||||
};
|
||||
|
||||
libwwwperl = buildPerlPackage {
|
||||
pname = "libwww-perl";
|
||||
version = "6.70";
|
||||
src = fetchurl {
|
||||
url = "mirror://cpan/authors/id/S/SI/SIMBABQUE/libwww-perl-6.70.tar.gz";
|
||||
hash = "sha256-NPANI0R1e5wLVa01gI1T6T19kvekZOyDf+anPFH7WWk=";
|
||||
};
|
||||
buildInputs = [ HTTPDaemon TestFatal TestNeeds TestRequiresInternet ];
|
||||
propagatedBuildInputs = [ EncodeLocale FileListing HTMLParser HTTPCookieJar HTTPCookies HTTPDate HTTPMessage HTTPNegotiate LWPMediaTypes NetHTTP TryTiny URI WWWRobotRules ];
|
||||
meta = {
|
||||
homepage = "https://github.com/libwww-perl/libwww-perl";
|
||||
description = "The World-Wide Web library for Perl";
|
||||
license = with lib.licenses; [ artistic1 gpl1Plus ];
|
||||
};
|
||||
};
|
||||
|
||||
libxml_perl = buildPerlPackage {
|
||||
pname = "libxml-perl";
|
||||
version = "0.08";
|
||||
|
@ -21611,6 +21642,22 @@ with self; {
|
|||
};
|
||||
};
|
||||
|
||||
SpreadsheetXLSX = buildPerlPackage {
|
||||
pname = "Spreadsheet-XLSX";
|
||||
version = "0.17";
|
||||
src = fetchurl {
|
||||
url = "mirror://cpan/authors/id/A/AS/ASB/Spreadsheet-XLSX-0.17.tar.gz";
|
||||
hash = "sha256-M7d4knz/FjCQZbdOuMRpawNxZg0szf5FvkYFCSrO6XY=";
|
||||
};
|
||||
buildInputs = [ TestNoWarnings TestWarnings ];
|
||||
propagatedBuildInputs = [ ArchiveZip SpreadsheetParseExcel ];
|
||||
meta = {
|
||||
homepage = "https://github.com/asb-capfan/Spreadsheet-XLSX";
|
||||
description = "Perl extension for reading MS Excel 2007 files;";
|
||||
license = with lib.licenses; [ artistic1 gpl1Plus ];
|
||||
};
|
||||
};
|
||||
|
||||
SQLAbstract = buildPerlPackage {
|
||||
pname = "SQL-Abstract";
|
||||
version = "2.000001";
|
||||
|
@ -27861,6 +27908,22 @@ with self; {
|
|||
};
|
||||
};
|
||||
|
||||
WebScraper = buildPerlModule {
|
||||
pname = "Web-Scraper";
|
||||
version = "0.38";
|
||||
src = fetchurl {
|
||||
url = "mirror://cpan/authors/id/M/MI/MIYAGAWA/Web-Scraper-0.38.tar.gz";
|
||||
hash = "sha256-+VtuX41/7r4RbQW/WaK3zxpR7Z0wvKgBI0MOxFZ1Q78=";
|
||||
};
|
||||
buildInputs = [ ModuleBuildTiny TestBase TestRequires ];
|
||||
propagatedBuildInputs = [ HTMLParser HTMLSelectorXPath HTMLTagset HTMLTree HTMLTreeBuilderXPath UNIVERSALrequire URI XMLXPathEngine YAML libwwwperl ];
|
||||
meta = {
|
||||
homepage = "https://github.com/miyagawa/web-scraper";
|
||||
description = "Web Scraping Toolkit using HTML and CSS Selectors or XPath expressions";
|
||||
license = with lib.licenses; [ artistic1 gpl1Plus ];
|
||||
};
|
||||
};
|
||||
|
||||
WebServiceLinode = buildPerlModule {
|
||||
pname = "WebService-Linode";
|
||||
version = "0.29";
|
||||
|
|
|
@ -280,6 +280,7 @@ mapAliases ({
|
|||
selectors34 = throw "selectors34 has been removed: functionality provided by Python itself; archived by upstream."; # added 2021-06-10
|
||||
setuptools_scm = setuptools-scm; # added 2021-06-03
|
||||
sharkiqpy = sharkiq; # added 2022-05-21
|
||||
ssh-mitm = throw "ssh-mitm was removed in favor of the top-level ssh-mitm"; # added 2023-05-09
|
||||
smart_open = smart-open; # added 2021-03-14
|
||||
smmap2 = throw "smmap2 has been deprecated, use smmap instead."; # added 2020-03-14
|
||||
somecomfort = throw "somecomfort was removed because Home Assistant switched to aiosomecomfort"; # added 2023-02-01
|
||||
|
|
|
@ -11551,8 +11551,6 @@ self: super: with self; {
|
|||
|
||||
sseclient-py = callPackage ../development/python-modules/sseclient-py { };
|
||||
|
||||
ssh-mitm = callPackage ../development/python-modules/ssh-mitm { };
|
||||
|
||||
sshfs = callPackage ../development/python-modules/sshfs { };
|
||||
|
||||
sshpubkeys = callPackage ../development/python-modules/sshpubkeys { };
|
||||
|
|
|
@ -168,10 +168,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0l3xb57zzzfxryir2ssrl6lai4pvszal54fhss50niyi3pzbjdfx";
|
||||
sha256 = "0c3jjwp5zax3jsk3ckxy0af8bqcaa7j707ahv2pxp2fi2sb3n3vw";
|
||||
type = "gem";
|
||||
};
|
||||
version = "4.1.3";
|
||||
version = "4.1.5";
|
||||
};
|
||||
atomos = {
|
||||
groups = ["default"];
|
||||
|
@ -260,10 +260,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0hgrfxzhh9h3jrvaarxa663vzyd5y0s03310zkarbl8bcxd2iwm5";
|
||||
sha256 = "06mywzjpi1bh04qwb2wzrngmbaia1mxib5kzwg62cz3j6wclg5xd";
|
||||
type = "gem";
|
||||
};
|
||||
version = "4.1.3";
|
||||
version = "4.1.5";
|
||||
};
|
||||
camping = {
|
||||
dependencies = ["mab" "rack"];
|
||||
|
@ -705,10 +705,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0dndngqvkm2ih3wqn5ilf9980c1cc57lqn5lywx3myalzpilq05z";
|
||||
sha256 = "1x32mcpm2cl5492kd6lbjbaf17qsssmpx9kdyr7z1wcif2cwyh0g";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.4.0";
|
||||
version = "2.4.1";
|
||||
};
|
||||
crass = {
|
||||
groups = ["default"];
|
||||
|
@ -807,10 +807,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0qbj8lvl8lzrbpfj9612iiwxf53drb8jg1l4bd1mcqyds8lw9z9z";
|
||||
sha256 = "021a7f9lmvz5d3g4zdzm99xal9w3z6wzv2wyrp3jr929nnlf7hdd";
|
||||
type = "gem";
|
||||
};
|
||||
version = "7.5.0";
|
||||
version = "7.6.0";
|
||||
};
|
||||
dnsruby = {
|
||||
dependencies = ["simpleidn"];
|
||||
|
@ -1089,10 +1089,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "02yn2jl0bz6kadx5851545rpqnfqd6gzbk2js9fj318jx9kl7r2m";
|
||||
sha256 = "1zhids3iqxq8lcslvg49pkg3lyhw4y8ha0q3p0p2grx0dnl2kfi4";
|
||||
type = "gem";
|
||||
};
|
||||
version = "4.1.3";
|
||||
version = "4.1.5";
|
||||
};
|
||||
gemoji = {
|
||||
groups = ["default"];
|
||||
|
@ -1120,10 +1120,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "12hyzvy3853qrlcczmaq5p31lv16klgnkz598amia3kphgbdg5rb";
|
||||
sha256 = "0q86kaw1hcyqbwbp5fbx2rlbv7wdklprf76xvxgsb8qa6dxgyv6f";
|
||||
type = "gem";
|
||||
};
|
||||
version = "4.1.3";
|
||||
version = "4.1.5";
|
||||
};
|
||||
git = {
|
||||
dependencies = ["addressable" "rchardet"];
|
||||
|
@ -1174,10 +1174,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1vapcxmbyfpgid5blm0m6j3g5cajhpr2317yhvfbpa2mgfwjyj4p";
|
||||
sha256 = "0plr7159pfy9f5aaxygaz4shzb6y13g83r430583r9ixa6slnll3";
|
||||
type = "gem";
|
||||
};
|
||||
version = "4.1.3";
|
||||
version = "4.1.5";
|
||||
};
|
||||
globalid = {
|
||||
dependencies = ["activesupport"];
|
||||
|
@ -1196,10 +1196,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1q2mjah6w9lxc6b4ys3rwclqf1fy55x4jjxp7rn2bz6whq768b80";
|
||||
sha256 = "186fj7c6wz90y7h569qm25hvyarsslj1mkq0fz9mv7iyj64d9czk";
|
||||
type = "gem";
|
||||
};
|
||||
version = "4.1.3";
|
||||
version = "4.1.5";
|
||||
};
|
||||
gpgme = {
|
||||
dependencies = ["mini_portile2"];
|
||||
|
@ -1966,10 +1966,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1xz5mrp103i95r4wfxny1f5x7h7vgnxv2p9cdkmmdjzrsk23rijs";
|
||||
sha256 = "0aarly8kl587d100n81cphks5vp2rnkm8dnf69p0dr7k78dasas3";
|
||||
type = "gem";
|
||||
};
|
||||
version = "4.0.0";
|
||||
version = "4.1.1";
|
||||
};
|
||||
link-header-parser = {
|
||||
groups = ["default"];
|
||||
|
@ -2019,10 +2019,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1mi4ia13fisc97fzd8xcd9wkjdki7zfbmdn1xkdzplicir68gyp8";
|
||||
sha256 = "1p744kjpb5zk2ihklbykzii77alycjc04vpnm2ch2f3cp65imlj3";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.20.0";
|
||||
version = "2.21.3";
|
||||
};
|
||||
mab = {
|
||||
groups = ["default"];
|
||||
|
@ -2153,10 +2153,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1af4yarhbbx62f7qsmgg5fynrik0s36wjy3difkawy536xg343mp";
|
||||
sha256 = "0z7f38iq37h376n9xbl4gajdrnwzq284c9v1py4imw3gri2d5cj6";
|
||||
type = "gem";
|
||||
};
|
||||
version = "2.8.1";
|
||||
version = "2.8.2";
|
||||
};
|
||||
minima = {
|
||||
dependencies = ["jekyll" "jekyll-feed" "jekyll-seo-tag"];
|
||||
|
@ -2194,10 +2194,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "172ky0r1jfcm3xyg067pia7k1lhc15vw9svv93max120gcdbrvji";
|
||||
sha256 = "06n7556vxr3awh92xy1k5bli98bvq4pjm08mnl68ay4fzln7lcsg";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.7.0";
|
||||
version = "1.7.1";
|
||||
};
|
||||
multi_json = {
|
||||
groups = ["default"];
|
||||
|
@ -2361,10 +2361,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0fnw0z8zl8b5k35g9m5hhc1g4s6ajzjinhyxnqjrx7l7p07fw71v";
|
||||
sha256 = "10zmnzk0b6v48s9nyrgnidcinn06m52ph3mzzcjh5q7xrzii3mb8";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.14.3";
|
||||
version = "1.15.1";
|
||||
};
|
||||
octokit = {
|
||||
dependencies = ["faraday" "sawyer"];
|
||||
|
@ -2447,10 +2447,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0i96sa4av0zg85dmwbvjgmhgspbv98a057w5bg20qq1zcr5v31kv";
|
||||
sha256 = "06g5ajjvm961yhqj4mm0j05sfz8fq0ybqcd5i37cyabm7jxxj4d4";
|
||||
type = "gem";
|
||||
};
|
||||
version = "4.1.3";
|
||||
version = "4.1.5";
|
||||
};
|
||||
parallel = {
|
||||
groups = ["default"];
|
||||
|
@ -2478,10 +2478,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0mzy0s4cdqm5nvgyj55idc2pv51k3zlgw6sa7825dcyrk2ihcx0c";
|
||||
sha256 = "146x3jhipg55q9ig7l0x8sryanz1zfhai2vszmih7wmf8zi043gl";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.1.0";
|
||||
version = "1.1.1";
|
||||
};
|
||||
pastel = {
|
||||
dependencies = ["tty-color"];
|
||||
|
@ -3006,10 +3006,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0l46lw5gfj3mcm982wpmx7br4rs466gyislv0hfwcsk8dxhv1zkw";
|
||||
sha256 = "0013mnzj6ql3v8nif7fm8n2832jnwa46azync6azsg9d4iblrfmy";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.50.2";
|
||||
version = "1.51.0";
|
||||
};
|
||||
rubocop-ast = {
|
||||
dependencies = ["parser"];
|
||||
|
@ -3017,10 +3017,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0n2gsafg6p7nr1z8i1hkvp2qqkkbg842ba183dnl0h08xd9ms6q5";
|
||||
sha256 = "0gs8zjigzdqj0kcmmrhvd4zavwr6kz6h9qvrh9m7bhy56f4aqljs";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.28.0";
|
||||
version = "1.28.1";
|
||||
};
|
||||
rubocop-performance = {
|
||||
dependencies = ["rubocop" "rubocop-ast"];
|
||||
|
@ -3216,20 +3216,20 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1wizqirxln8f2d4aihqizfbyzlssnan058zkqh24siynk38567lg";
|
||||
sha256 = "0n6hiim82lfydzv71lgzmkyacsbm3q5nw7ixavprci5wrl9zwls7";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.18.0";
|
||||
version = "0.19.1";
|
||||
};
|
||||
sequel = {
|
||||
groups = ["default"];
|
||||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1qajss2mc8rw9pxgfjl4mxacnss5xnr603ydms0knmm6cb61vlb4";
|
||||
sha256 = "0p6z0mdglwynlcz4mnlk1mz8vxsr41id1pf0dfrbgnwpv8zvlika";
|
||||
type = "gem";
|
||||
};
|
||||
version = "5.67.0";
|
||||
version = "5.68.0";
|
||||
};
|
||||
sequel_pg = {
|
||||
dependencies = ["pg" "sequel"];
|
||||
|
@ -3353,10 +3353,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "1i47n6nkyigkyag00yqf9f3nj11bm1lb0ds5nkvkdvm7lxbna5jq";
|
||||
sha256 = "0h95kr5529qv786mfk8r2jjdsdi6v7v3k3dpz69mrcc9i0vpdd37";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.6.2";
|
||||
version = "1.6.3";
|
||||
};
|
||||
string_inflection = {
|
||||
groups = ["default"];
|
||||
|
@ -3416,10 +3416,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "07k5wr2ypsmsbyc9d1plhdki4xr7vvggld8r1i49iljkrpx5nbqc";
|
||||
sha256 = "1jj8lny5hp8gm920k73r6xpb40j5mpiw1dcr8g5id4hxjggkw8by";
|
||||
type = "gem";
|
||||
};
|
||||
version = "0.10.0";
|
||||
version = "0.10.1";
|
||||
};
|
||||
terminal-table = {
|
||||
groups = ["default"];
|
||||
|
@ -3436,10 +3436,10 @@
|
|||
platforms = [];
|
||||
source = {
|
||||
remotes = ["https://rubygems.org"];
|
||||
sha256 = "0inl77jh4ia03jw3iqm5ipr76ghal3hyjrd6r8zqsswwvi9j2xdi";
|
||||
sha256 = "0k7j2wn14h1pl4smibasw0bp66kg626drxb59z7rzflch99cd4rg";
|
||||
type = "gem";
|
||||
};
|
||||
version = "1.2.1";
|
||||
version = "1.2.2";
|
||||
};
|
||||
thrift = {
|
||||
groups = ["default"];
|
||||
|
|
Loading…
Reference in a new issue