3
0
Fork 0
forked from mirrors/nixpkgs

Merge staging-next into staging

This commit is contained in:
github-actions[bot] 2023-05-21 00:03:13 +00:00 committed by GitHub
commit 3cd24799a5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
58 changed files with 1332 additions and 3204 deletions

View file

@ -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 high amount of packages. The attribute `python3` refers to the default
interpreter, which is currently CPython 3.10. The attribute `python` refers to interpreter, which is currently CPython 3.10. The attribute `python` refers to
CPython 2.7 for backwards-compatibility. It is also possible to refer 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. the default PyPy interpreter.
Python is used a lot, and in different ways. This affects also how it is 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 The interpreters have several common attributes. One of these attributes is
`pkgs`, which is a package set of Python libraries for this specific `pkgs`, which is a package set of Python libraries for this specific
interpreter. E.g., the `toolz` package corresponding to the default interpreter 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. The main package set contains aliases to these package sets, e.g.
`pythonPackages` refers to `python.pkgs` and `python39Packages` to `pythonPackages` refers to `python.pkgs` and `python311Packages` to
`python39.pkgs`. `python311.pkgs`.
#### Installing Python and packages {#installing-python-and-packages} #### 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. 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 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 a re-usable environment in a single-file Python script; then we will create a
full Python environment for development with this same environment. 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 their runtime dependencies), with no other Python packages in the Python
interpreter's scope. 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 ```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 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 ```Python console
[nix-shell:~/src/nixpkgs]$ python3 [nix-shell:~/src/nixpkgs]$ python3
Python 3.9.12 (main, Mar 23 2022, 21:36:19) Python 3.11.3 (main, Apr 4 2023, 22:36:41) [GCC 12.2.0] on linux
[GCC 11.3.0] on linux
Type "help", "copyright", "credits" or "license" for more information. Type "help", "copyright", "credits" or "license" for more information.
>>> import numpy; import toolz >>> import numpy; import toolz
``` ```
@ -102,16 +101,12 @@ will still get 1 wrapped Python interpreter. We can start the interpreter
directly like so: directly like so:
```sh ```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: this derivation will be built:
/nix/store/mpn7k6bkjl41fm51342rafaqfsl10qs4-python3-3.9.12-env.drv /nix/store/r19yf5qgfiakqlhkgjahbg3zg79549n4-python3-3.11.2-env.drv
this path will be fetched (0.09 MiB download, 0.41 MiB unpacked): building '/nix/store/r19yf5qgfiakqlhkgjahbg3zg79549n4-python3-3.11.2-env.drv'...
/nix/store/5gaiacnzi096b6prc6aa1pwrhncmhc8b-python3.9-toolz-0.11.2 created 273 symlinks in user environment
copying path '/nix/store/5gaiacnzi096b6prc6aa1pwrhncmhc8b-python3.9-toolz-0.11.2' from 'https://cache.nixos.org'... Python 3.11.2 (main, Feb 7 2023, 13:52:42) [GCC 12.2.0] on linux
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
Type "help", "copyright", "credits" or "license" for more information. Type "help", "copyright", "credits" or "license" for more information.
>>> import requests >>> 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: in the previous section, we could startup a shell and just run it like so:
```ShellSession ```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 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 ```python
#!/usr/bin/env nix-shell #!/usr/bin/env nix-shell
#!nix-shell -i python3 -p "python3.withPackages(ps: [ ps.numpy ])" #!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 nixpkgs=https://github.com/NixOS/nixpkgs/archive/e51209796c4262bfb8908e3d6d72302fe4e96f5f.tar.gz
import numpy as np import numpy as np
a = np.array([1,2]) a = np.array([1,2])
b = np.array([3,4]) b = np.array([3,4])
print(f"The dot product of {a} and {b} is: {np.dot(a, b)}") 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 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. of the package versions.
This is also a great way to ensure the script executes identically on different 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. 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 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: in an environment. We can add a `shell.nix` file describing our dependencies:
```nix ```nix
with import <nixpkgs> {}; 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 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 imports the `<nixpkgs>` function, `{}` calls it and the `with` statement
brings all attributes of `nixpkgs` in the local scope. These attributes form brings all attributes of `nixpkgs` in the local scope. These attributes form
the main package set. 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 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 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` include in the environment. Here, we select the packages `numpy` and `toolz`
@ -243,7 +241,7 @@ To combine this with `mkShell` you can:
```nix ```nix
with import <nixpkgs> {}; with import <nixpkgs> {};
let let
pythonEnv = python39.withPackages (ps: [ pythonEnv = python311.withPackages (ps: [
ps.numpy ps.numpy
ps.toolz ps.toolz
]); ]);
@ -327,7 +325,7 @@ on NixOS.
{ # ... { # ...
environment.systemPackages = with pkgs; [ 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. `toolz` package.
```nix ```nix
{ lib, buildPythonPackage, fetchPypi }: { lib
, buildPythonPackage
, fetchPypi
}:
buildPythonPackage rec { buildPythonPackage rec {
pname = "toolz"; pname = "toolz";
version = "0.10.0"; version = "0.10.0";
format = "setuptools";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-CP3V73yWSArRHBLUct4hrNMjWZlvaaUlkpm1QP66RWA="; hash = "sha256-CP3V73yWSArRHBLUct4hrNMjWZlvaaUlkpm1QP66RWA=";
}; };
# has no tests
doCheck = false; doCheck = false;
pythonImportsCheck = [
"toolz.itertoolz"
"toolz.functoolz"
"toolz.dicttoolz"
];
meta = with lib; { meta = with lib; {
changelog = "https://github.com/pytoolz/toolz/releases/tag/${version}";
homepage = "https://github.com/pytoolz/toolz"; homepage = "https://github.com/pytoolz/toolz";
description = "List processing tools and functional utilities"; description = "List processing tools and functional utilities";
license = licenses.bsd3; 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 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 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 `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. information. The output of the function is a derivation.
An expression for `toolz` can be found in the Nixpkgs repository. As explained 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 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` for each interpreter version, e.g. `python311.pkgs.toolz` refers to the `toolz`
derivation corresponding to the CPython 3.9 interpreter. derivation corresponding to the CPython 3.11 interpreter.
The above example works when you're directly working on The above example works when you're directly working on
`pkgs/top-level/python-packages.nix` in the Nixpkgs repository. Often though, `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> {}; with import <nixpkgs> {};
( let ( let
my_toolz = python39.pkgs.buildPythonPackage rec { my_toolz = python311.pkgs.buildPythonPackage rec {
pname = "toolz"; pname = "toolz";
version = "0.10.0"; version = "0.10.0";
format = "setuptools";
src = python39.pkgs.fetchPypi { src = python311.pkgs.fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-CP3V73yWSArRHBLUct4hrNMjWZlvaaUlkpm1QP66RWA="; hash = "sha256-CP3V73yWSArRHBLUct4hrNMjWZlvaaUlkpm1QP66RWA=";
}; };
# has no tests
doCheck = false; doCheck = false;
meta = { meta = {
homepage = "https://github.com/pytoolz/toolz/"; homepage = "https://github.com/pytoolz/toolz/";
description = "List processing tools and functional utilities"; 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 ).env
``` ```
Executing `nix-shell` will result in an environment in which you can use 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. 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 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). order to build [`datashape`](https://github.com/blaze/datashape).
```nix ```nix
{ lib, buildPythonPackage, fetchPypi, numpy, multipledispatch, python-dateutil, pytest }: { lib
, buildPythonPackage
, fetchPypi
# dependencies
, numpy, multipledispatch, python-dateutil
# tests
, pytest
}:
buildPythonPackage rec { buildPythonPackage rec {
pname = "datashape"; pname = "datashape";
version = "0.4.7"; version = "0.4.7";
format = "setuptools";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-FLLvdm1MllKrgTGC6Gb0k0deZeVYvtCCLji/B7uhong="; hash = "sha256-FLLvdm1MllKrgTGC6Gb0k0deZeVYvtCCLji/B7uhong=";
}; };
nativeCheckInputs = [ pytest ]; propagatedBuildInputs = [
propagatedBuildInputs = [ numpy multipledispatch python-dateutil ]; multipledispatch
numpy
python-dateutil
];
nativeCheckInputs = [
pytest
];
meta = with lib; { meta = with lib; {
changelog = "https://github.com/blaze/datashape/releases/tag/${version}";
homepage = "https://github.com/ContinuumIO/datashape"; homepage = "https://github.com/ContinuumIO/datashape";
description = "A data description language"; description = "A data description language";
license = licenses.bsd2; license = licenses.bsd2;
@ -466,9 +501,9 @@ buildPythonPackage rec {
``` ```
We can see several runtime dependencies, `numpy`, `multipledispatch`, and We can see several runtime dependencies, `numpy`, `multipledispatch`, and
`python-dateutil`. Furthermore, we have one `nativeCheckInputs`, i.e. `pytest`. `pytest` is a `python-dateutil`. Furthermore, we have `nativeCheckInputs` with `pytest`.
test runner and is only used during the `checkPhase` and is therefore not added `pytest` is a test runner and is only used during the `checkPhase` and is
to `propagatedBuildInputs`. therefore not added to `propagatedBuildInputs`.
In the previous case we had only dependencies on other Python packages to consider. 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 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`. when building the bindings and are therefore added as `buildInputs`.
```nix ```nix
{ lib, pkgs, buildPythonPackage, fetchPypi }: { lib
, pkgs
, buildPythonPackage
, fetchPypi
}:
buildPythonPackage rec { buildPythonPackage rec {
pname = "lxml"; pname = "lxml";
version = "3.4.4"; version = "3.4.4";
format = "setuptools";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-s9NiusRxFydHzaNRMjjxFcvWxfi45jGb9ql6eJJyQJk="; hash = "sha256-s9NiusRxFydHzaNRMjjxFcvWxfi45jGb9ql6eJJyQJk=";
}; };
buildInputs = [ pkgs.libxml2 pkgs.libxslt ]; buildInputs = [
pkgs.libxml2
pkgs.libxslt
];
meta = with lib; { meta = with lib; {
changelog = "https://github.com/lxml/lxml/releases/tag/lxml-${version}";
description = "Pythonic binding for the libxml2 and libxslt libraries"; description = "Pythonic binding for the libxml2 and libxslt libraries";
homepage = "https://lxml.de"; homepage = "https://lxml.de";
license = licenses.bsd3; 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`. therefore we have to set `LDFLAGS` and `CFLAGS`.
```nix ```nix
{ lib, pkgs, buildPythonPackage, fetchPypi, numpy, scipy }: { lib
, pkgs
, buildPythonPackage
, fetchPypi
# dependencies
, numpy
, scipy
}:
buildPythonPackage rec { buildPythonPackage rec {
pname = "pyFFTW"; pname = "pyFFTW";
version = "0.9.2"; version = "0.9.2";
format = "setuptools";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-9ru2r6kwhUCaskiFoaPNuJCfCVoUL01J40byvRt4kHQ="; hash = "sha256-9ru2r6kwhUCaskiFoaPNuJCfCVoUL01J40byvRt4kHQ=";
}; };
buildInputs = [ pkgs.fftw pkgs.fftwFloat pkgs.fftwLongDouble]; buildInputs = [
pkgs.fftw
pkgs.fftwFloat
pkgs.fftwLongDouble
];
propagatedBuildInputs = [ numpy scipy ]; propagatedBuildInputs = [
numpy
# Tests cannot import pyfftw. pyfftw works fine though. scipy
doCheck = false; ];
preConfigure = '' preConfigure = ''
export LDFLAGS="-L${pkgs.fftw.dev}/lib -L${pkgs.fftwFloat.out}/lib -L${pkgs.fftwLongDouble.out}/lib" 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" 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; { 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"; description = "A pythonic wrapper around FFTW, the FFT library, presenting a unified interface for all the supported transforms";
homepage = "http://hgomersall.github.com/pyFFTW"; homepage = "http://hgomersall.github.com/pyFFTW";
license = with licenses; [ bsd2 bsd3 ]; license = with licenses; [ bsd2 bsd3 ];
@ -590,7 +651,7 @@ To filter tests using pytest, one can do the following:
checkPhase = '' checkPhase = ''
runHook preCheck 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 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: Using the example above, the analogous `pytestCheckHook` usage would be:
``` ```
nativeCheckInputs = [ pytestCheckHook ]; nativeCheckInputs = [
pytestCheckHook
];
# requires additional data # requires additional data
pytestFlagsArray = [ "tests/" "--ignore=tests/integration" ]; pytestFlagsArray = [
"tests/"
"--ignore=tests/integration"
];
disabledTests = [ disabledTests = [
# touches network # touches network
@ -663,7 +729,10 @@ To help ensure the package still works, `pythonImportsCheck` can attempt to impo
the listed modules. the listed modules.
``` ```
pythonImportsCheck = [ "requests" "urllib" ]; pythonImportsCheck = [
"requests"
"urllib"
];
``` ```
roughly translates to: roughly translates to:
@ -704,9 +773,16 @@ pkg3>=1.0,<=2.0
we can do: we can do:
``` ```
nativeBuildInputs = [ pythonRelaxDepsHook ]; nativeBuildInputs = [
pythonRelaxDeps = [ "pkg1" "pkg3" ]; pythonRelaxDepsHook
pythonRemoveDeps = [ "pkg2" ]; ];
pythonRelaxDeps = [
"pkg1"
"pkg3"
];
pythonRemoveDeps = [
"pkg2"
];
``` ```
which would result in the following `requirements.txt` file: 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`: `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} #### 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 is a local source, and if the local source has a `setup.py`, then development
mode is activated. 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 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`. 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 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 ```nix
with import <nixpkgs> {}; with import <nixpkgs> {};
with python39Packages; with python311Packages;
buildPythonPackage rec { buildPythonPackage rec {
name = "mypackage"; name = "mypackage";
src = ./path/to/package/source; 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` We first create a function that builds `toolz` in `~/path/to/toolz/release.nix`
```nix ```nix
{ lib, buildPythonPackage }: { lib
, buildPythonPackage
}:
buildPythonPackage rec { buildPythonPackage rec {
pname = "toolz"; pname = "toolz";
version = "0.10.0"; version = "0.10.0";
format = "setuptools";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
@ -869,6 +956,7 @@ buildPythonPackage rec {
}; };
meta = with lib; { meta = with lib; {
changelog = "https://github.com/pytoolz/toolz/releases/tag/${version}";
homepage = "https://github.com/pytoolz/toolz/"; homepage = "https://github.com/pytoolz/toolz/";
description = "List processing tools and functional utilities"; description = "List processing tools and functional utilities";
license = licenses.bsd3; license = licenses.bsd3;
@ -885,9 +973,13 @@ with import <nixpkgs> {};
( let ( let
toolz = callPackage /path/to/toolz/release.nix { 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 ).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 depends on the `python` derivation that is passed to `buildPythonPackage`. Nix
tries to automatically pass arguments when possible, which is why generally you 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 don't explicitly define which `python` derivation should be used. In the above
example we use `buildPythonPackage` that is part of the set `python38Packages`, example we use `buildPythonPackage` that is part of the set `python3Packages`,
and in this case the `python38` interpreter is automatically used. and in this case the `python3` interpreter is automatically used.
## Reference {#reference} ## Reference {#reference}
### Interpreters {#interpreters} ### Interpreters {#interpreters}
Versions 2.7, 3.7, 3.8, 3.9 and 3.10 of the CPython interpreter are available Versions 2.7, 3.8, 3.9, 3.10 and 3.11 of the CPython interpreter are available
as respectively `python27`, `python37`, `python38`, `python39` and `python310`. as respectively `python27`, python38`, `python39`, `python310` and `python311`.
The aliases `python2` and `python3` correspond to respectively `python27` and 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 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 aliases `pypy2` mapping to `pypy27` and `pypy` mapping to `pypy2`. The Nix
expressions for the interpreters can be found in 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. - `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. - `withPackages`. Simpler interface to `buildEnv`. See section *python.withPackages function* for usage and documentation.
- `sitePackages`. Alias for `lib/${libPrefix}/site-packages`. - `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`. - `pkgs`. Set of Python packages for that specific interpreter. The package set can be modified by overriding the interpreter and passing `packageOverrides`.
### Optimizations {#optimizations} ### Optimizations {#optimizations}
@ -968,7 +1060,7 @@ attribute set is created for each available Python interpreter. The available
sets are sets are
* `pkgs.python27Packages` * `pkgs.python27Packages`
* `pkgs.python37Packages` * `pkgs.python3Packages`
* `pkgs.python38Packages` * `pkgs.python38Packages`
* `pkgs.python39Packages` * `pkgs.python39Packages`
* `pkgs.python310Packages` * `pkgs.python310Packages`
@ -978,7 +1070,7 @@ sets are
and the aliases and the aliases
* `pkgs.python2Packages` pointing to `pkgs.python27Packages` * `pkgs.python2Packages` pointing to `pkgs.python27Packages`
* `pkgs.python3Packages` pointing to `pkgs.python39Packages` * `pkgs.python3Packages` pointing to `pkgs.python310Packages`
* `pkgs.pythonPackages` pointing to `pkgs.python2Packages` * `pkgs.pythonPackages` pointing to `pkgs.python2Packages`
#### `buildPythonPackage` function {#buildpythonpackage-function} #### `buildPythonPackage` function {#buildpythonpackage-function}
@ -990,11 +1082,28 @@ using setup hooks.
The following is an example: The following is an example:
```nix ```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 { buildPythonPackage rec {
pname = "pytest"; pname = "pytest";
version = "3.3.1"; version = "3.3.1";
format = "setuptools";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
@ -1006,13 +1115,28 @@ buildPythonPackage rec {
rm testing/test_argcomplete.py rm testing/test_argcomplete.py
''; '';
nativeCheckInputs = [ hypothesis ]; nativeBuildInputs = [
nativeBuildInputs = [ setuptools-scm ]; setuptools-scm
propagatedBuildInputs = [ attrs py setuptools six pluggy ]; ];
propagatedBuildInputs = [
attrs
py
setuptools
six
pluggy
];
nativeCheckInputs = [
hypothesis
];
meta = with lib; { 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"; 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 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} #### 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: specifying an interpreter version), like this:
```nix ```nix
{ lib, python3 }: { lib
, python3
}:
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "luigi"; pname = "luigi";
version = "2.7.9"; version = "2.7.9";
format = "setuptools";
src = python3.pkgs.fetchPypi { src = python3.pkgs.fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-Pe229rT0aHwA98s+nTHQMEFKZPo/yw6sot8MivFDvAw="; hash = "sha256-Pe229rT0aHwA98s+nTHQMEFKZPo/yw6sot8MivFDvAw=";
}; };
propagatedBuildInputs = with python3.pkgs; [ tornado python-daemon ]; propagatedBuildInputs = with python3.pkgs; [
tornado
python-daemon
];
meta = with lib; { meta = with lib; {
... ...
@ -1253,7 +1383,10 @@ running `nix-shell` with the following `shell.nix`
with import <nixpkgs> {}; with import <nixpkgs> {};
(python3.buildEnv.override { (python3.buildEnv.override {
extraLibs = with python3Packages; [ numpy requests ]; extraLibs = with python3Packages; [
numpy
requests
];
}).env }).env
``` ```
@ -1279,7 +1412,7 @@ example for the Pyramid Web Framework environment can be written like this:
```nix ```nix
with import <nixpkgs> {}; with import <nixpkgs> {};
python.withPackages (ps: [ps.pyramid]) python.withPackages (ps: [ ps.pyramid ])
``` ```
`withPackages` passes the correct package set for the specific interpreter `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 ```nix
with import <nixpkgs> {}; 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. Now, `ps` is set to `python3Packages`, matching the version of the interpreter.
@ -1301,7 +1434,10 @@ thus be also written like this:
```nix ```nix
with import <nixpkgs> {}; 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 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 When the environment variable `DETERMINISTIC_BUILD` is set, all bytecode will
have timestamp 1. The `buildPythonPackage` function sets `DETERMINISTIC_BUILD=1` 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`. Both are also exported in `nix-shell`.
### Automatic tests {#automatic-tests} ### Automatic tests {#automatic-tests}
@ -1408,22 +1544,27 @@ example of such a situation is when `py.test` is used.
#### Common issues {#common-issues} #### Common issues {#common-issues}
* Non-working tests can often be deselected. By default `buildPythonPackage` * Non-working tests can often be deselected. By default `buildPythonPackage`
runs `python setup.py test`. Most Python modules follows the standard test runs `python setup.py test`. which is deprecated. Most Python modules however
protocol where the pytest runner can be used instead. `py.test` supports a do follow the standard test protocol where the pytest runner can be used
`-k` parameter to ignore test methods or classes: 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 ```nix
buildPythonPackage { buildPythonPackage {
# ... # ...
# assumes the tests are located in tests nativeCheckInputs = [
nativeCheckInputs = [ pytest ]; pytestCheckHook
checkPhase = '' ];
runHook preCheck
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: { packageOverrides = self: super: {
pandas = super.pandas.overridePythonAttrs(old: {name="foo";}); 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 Using `nix-build` on this expression will build an environment that contains the
@ -1473,7 +1618,11 @@ with import <nixpkgs> {};
packageOverrides = self: super: { packageOverrides = self: super: {
scipy = super.scipy_0_17; 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 ).env
``` ```
@ -1487,11 +1636,11 @@ If you want the whole of Nixpkgs to use your modifications, then you can use
let let
pkgs = import <nixpkgs> {}; pkgs = import <nixpkgs> {};
newpkgs = import pkgs.path { overlays = [ (self: super: { newpkgs = import pkgs.path { overlays = [ (self: super: {
python38 = let python310 = let
packageOverrides = python-self: python-super: { packageOverrides = python-self: python-super: {
numpy = python-super.numpy_1_18; numpy = python-super.numpy_1_18;
}; };
in super.python38.override {inherit packageOverrides;}; in super.python310.override {inherit packageOverrides;};
} ) ]; }; } ) ]; };
in newpkgs.inkscape in newpkgs.inkscape
``` ```

View file

@ -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. 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 isnt without costs. Nix itself is unchanged, but the spirit of added dependencies being effect-free is violated even if the letter isnt. For example, if a derivation path is mentioned more than once, Nix itself doesnt 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 isnt without costs. Nix itself is unchanged, but the spirit of added dependencies being effect-free is violated even if the latter isnt. For example, if a derivation path is mentioned more than once, Nix itself doesnt 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 wrappers 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 (theres 12 total but we ignore the propagated/non-propagated axis). 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 wrappers 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 (theres 12 total but we ignore the propagated/non-propagated axis).

View file

@ -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). - `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. - `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. - 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.

File diff suppressed because it is too large Load diff

View file

@ -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"; pname = "helix";
version = "23.03";
# This release tarball includes source code for the tree-sitter grammars, # This release tarball includes source code for the tree-sitter grammars,
# which is not ordinarily part of the repository. # which is not ordinarily part of the repository.
src = fetchzip { cargoSha256 = "sha256-/LCtfyDAA2JuioBD/CDMv6OOxM0B9A3PpuVP/YY5oF0=";
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=";
};
};
nativeBuildInputs = [ installShellFiles makeWrapper ]; nativeBuildInputs = [ installShellFiles makeWrapper ];
postInstall = '' postInstall = ''
# not needed at runtime # We self build the grammar files
rm -r runtime/grammars/sources rm -r runtime/grammars
mkdir -p $out/lib mkdir -p $out/lib
cp -r runtime $out/lib cp -r runtime $out/lib
ln -s ${grammars} $out/lib/runtime/grammars
installShellCompletion contrib/completion/hx.{bash,fish,zsh} installShellCompletion contrib/completion/hx.{bash,fish,zsh}
mkdir -p $out/share/{applications,icons/hicolor/256x256/apps} mkdir -p $out/share/{applications,icons/hicolor/256x256/apps}
cp contrib/Helix.desktop $out/share/applications cp contrib/Helix.desktop $out/share/applications
@ -37,6 +37,11 @@ rustPlatform.buildRustPackage rec {
wrapProgram $out/bin/hx --set HELIX_RUNTIME $out/lib/runtime 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; { meta = with lib; {
description = "A post-modern modal text editor"; description = "A post-modern modal text editor";
homepage = "https://helix-editor.com"; homepage = "https://helix-editor.com";

View 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}
''

File diff suppressed because one or more lines are too long

View 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

View file

@ -126,23 +126,23 @@
}; };
c = buildGrammar { c = buildGrammar {
language = "c"; language = "c";
version = "0.0.0+rev=735716c"; version = "0.0.0+rev=424d014";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "tree-sitter"; owner = "tree-sitter";
repo = "tree-sitter-c"; repo = "tree-sitter-c";
rev = "735716c926837d9e39e4effb3fdc28cee81a7e5e"; rev = "424d0145efb0a87927269ab47709f98a564f8c4f";
hash = "sha256-7EBhWdRchk0K1+ofn+nHa/VZ8eWDM9cpPu1QUwpvidw="; hash = "sha256-cj8aEcdO5rsie9CqT8GLfvJm6O7yqBQPtn5aDe/lVpI=";
}; };
meta.homepage = "https://github.com/tree-sitter/tree-sitter-c"; meta.homepage = "https://github.com/tree-sitter/tree-sitter-c";
}; };
c_sharp = buildGrammar { c_sharp = buildGrammar {
language = "c_sharp"; language = "c_sharp";
version = "0.0.0+rev=7611471"; version = "0.0.0+rev=aaafc3d";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "tree-sitter"; owner = "tree-sitter";
repo = "tree-sitter-c-sharp"; repo = "tree-sitter-c-sharp";
rev = "76114711aedd3f4b6e1333a7513975647930c629"; rev = "aaafc3d75f058ca5fe639b7ed5829964a3ca4575";
hash = "sha256-sBpI/8SfIzPQ0aJ8tw00IZoWGFnBo6mvRcn1lKfnaTg="; hash = "sha256-rKP6KfNCkytcAXHVv3EtOQEuhY+dxawFEFQr7kjuA6I=";
}; };
meta.homepage = "https://github.com/tree-sitter/tree-sitter-c-sharp"; meta.homepage = "https://github.com/tree-sitter/tree-sitter-c-sharp";
}; };
@ -292,12 +292,12 @@
}; };
dart = buildGrammar { dart = buildGrammar {
language = "dart"; language = "dart";
version = "0.0.0+rev=939e5e1"; version = "0.0.0+rev=8aa8ab9";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "UserNobody14"; owner = "UserNobody14";
repo = "tree-sitter-dart"; repo = "tree-sitter-dart";
rev = "939e5e18321a695f39889ae9dcf3c0255a107109"; rev = "8aa8ab977647da2d4dcfb8c4726341bee26fbce4";
hash = "sha256-1zOxekwG+wM0Fkr2LMqCHf5twlNfJyN9Ozb98bkq/+k="; hash = "sha256-62Mwn1PnGxVWST396vX/aRkNgzloq3H23TOPZ4oqqiM=";
}; };
meta.homepage = "https://github.com/UserNobody14/tree-sitter-dart"; meta.homepage = "https://github.com/UserNobody14/tree-sitter-dart";
}; };
@ -436,12 +436,12 @@
}; };
erlang = buildGrammar { erlang = buildGrammar {
language = "erlang"; language = "erlang";
version = "0.0.0+rev=7d083ca"; version = "0.0.0+rev=13a6a51";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "WhatsApp"; owner = "WhatsApp";
repo = "tree-sitter-erlang"; repo = "tree-sitter-erlang";
rev = "7d083ca431265a6a677c10e8ca68a908ab0c2bc8"; rev = "13a6a51d1bda845f756971773dd6049b80a3cffc";
hash = "sha256-W08JXLPIjUBfHSaTEGbIKPStQr4jOVE1f9osjrWG82Q="; hash = "sha256-xy4/AZPHv9V0gzLRXOmUcFyKzLDCgOyqBH8HNYE8GRk=";
}; };
meta.homepage = "https://github.com/WhatsApp/tree-sitter-erlang"; meta.homepage = "https://github.com/WhatsApp/tree-sitter-erlang";
}; };
@ -579,12 +579,12 @@
}; };
gitcommit = buildGrammar { gitcommit = buildGrammar {
language = "gitcommit"; language = "gitcommit";
version = "0.0.0+rev=735f02b"; version = "0.0.0+rev=6c14f8b";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "gbprod"; owner = "gbprod";
repo = "tree-sitter-gitcommit"; repo = "tree-sitter-gitcommit";
rev = "735f02b12d9cdd9a8b90ac4b2dff8cdab6dd1e7b"; rev = "6c14f8b63767cf6264c5c43ec71cc9351420e831";
hash = "sha256-uWePpMTJNiR7uh9LpmSiIQUHNiVDF8i32nckPKBFH3g="; hash = "sha256-x5FNXZ+/AexfXn92xSRIdKQGAepvAnMmAz/013x1Q7U=";
}; };
meta.homepage = "https://github.com/gbprod/tree-sitter-gitcommit"; meta.homepage = "https://github.com/gbprod/tree-sitter-gitcommit";
}; };
@ -623,12 +623,12 @@
}; };
glsl = buildGrammar { glsl = buildGrammar {
language = "glsl"; language = "glsl";
version = "0.0.0+rev=f21fc83"; version = "0.0.0+rev=7a00509";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "theHamsta"; owner = "theHamsta";
repo = "tree-sitter-glsl"; repo = "tree-sitter-glsl";
rev = "f21fc834ee48cc485c85f5df7099e00058dbc180"; rev = "7a005091d3896dab80f34d8dba58935ad7ad6353";
hash = "sha256-1G0oiIOPVDCeWej6CwMQUvf53Rq2ZIFgz6ucQs1AZ+U="; hash = "sha256-L8FbCXea2cQ9Gyh8xtETynRKCt03TAXH0yM3XJTrGMY=";
}; };
meta.homepage = "https://github.com/theHamsta/tree-sitter-glsl"; meta.homepage = "https://github.com/theHamsta/tree-sitter-glsl";
}; };
@ -766,12 +766,12 @@
}; };
hlsl = buildGrammar { hlsl = buildGrammar {
language = "hlsl"; language = "hlsl";
version = "0.0.0+rev=9160427"; version = "0.0.0+rev=cad6130";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "theHamsta"; owner = "theHamsta";
repo = "tree-sitter-hlsl"; repo = "tree-sitter-hlsl";
rev = "916042734060d3d3a023f6637c815a1d23814af8"; rev = "cad6130182be8793ca5ef00a8581508e2f12f642";
hash = "sha256-FGOXqBmQXCK2G1iseYgc7CdMOQ7P9dVG7ZHEsqcnRhk="; hash = "sha256-gTek2joY9bhkFYXOxE7ZJ5PnyBbnPTLvUeZmFHjWXlU=";
}; };
meta.homepage = "https://github.com/theHamsta/tree-sitter-hlsl"; meta.homepage = "https://github.com/theHamsta/tree-sitter-hlsl";
}; };
@ -1154,12 +1154,12 @@
}; };
nickel = buildGrammar { nickel = buildGrammar {
language = "nickel"; language = "nickel";
version = "0.0.0+rev=d6c7eeb"; version = "0.0.0+rev=3a79438";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "nickel-lang"; owner = "nickel-lang";
repo = "tree-sitter-nickel"; repo = "tree-sitter-nickel";
rev = "d6c7eeb751038f934b5b1aa7ff236376d0235c56"; rev = "3a794388773f2424a97b2186828aa3fac4c66ce6";
hash = "sha256-D/RRwXsWyHMxoU7Z8VVJ6jn7zUFKaKusLT/ofON7sOE="; hash = "sha256-NLgbTl1Te/lHTGra4DdxLtqIg6yXf5lfyl37qpp8SNQ=";
}; };
meta.homepage = "https://github.com/nickel-lang/tree-sitter-nickel"; meta.homepage = "https://github.com/nickel-lang/tree-sitter-nickel";
}; };
@ -1196,6 +1196,17 @@
}; };
meta.homepage = "https://github.com/nvim-neorg/tree-sitter-norg"; 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 { ocaml = buildGrammar {
language = "ocaml"; language = "ocaml";
version = "0.0.0+rev=f1106bf"; version = "0.0.0+rev=f1106bf";
@ -1454,12 +1465,12 @@
}; };
query = buildGrammar { query = buildGrammar {
language = "query"; language = "query";
version = "0.0.0+rev=e975044"; version = "0.0.0+rev=3a9808b";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "nvim-treesitter"; owner = "nvim-treesitter";
repo = "tree-sitter-query"; repo = "tree-sitter-query";
rev = "e97504446f14f529d5a8e649667d3d60391e4dfd"; rev = "3a9808b22742d5bd906ef5d1a562f2f1ae57406d";
hash = "sha256-Gv882sbL2fmR++h4/I7dFCp+g6pddRCaLyX7+loEoHU="; hash = "sha256-5N7FT0HTK3xzzhAlk3wBOB9xlEpKSNIfakgFnsxEi18=";
}; };
meta.homepage = "https://github.com/nvim-treesitter/tree-sitter-query"; meta.homepage = "https://github.com/nvim-treesitter/tree-sitter-query";
}; };
@ -1663,12 +1674,12 @@
}; };
sql = buildGrammar { sql = buildGrammar {
language = "sql"; language = "sql";
version = "0.0.0+rev=9de72fb"; version = "0.0.0+rev=0f774f4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "derekstride"; owner = "derekstride";
repo = "tree-sitter-sql"; repo = "tree-sitter-sql";
rev = "9de72fb40cd6d13a64c3aeeabc079c6b8dadb339"; rev = "0f774f4ce1fbc7aa6df6202301e0b08b8c844ae4";
hash = "sha256-WcKrYjOnWRf2ei4bAGH7zJJ/DEaaQ8lmAmO5LEkg17g="; hash = "sha256-2NkcmwBlDxsvgxRYlZzDcNMw2GZmOIWOCziSPBMrRw4=";
}; };
meta.homepage = "https://github.com/derekstride/tree-sitter-sql"; meta.homepage = "https://github.com/derekstride/tree-sitter-sql";
}; };
@ -1752,13 +1763,13 @@
}; };
t32 = buildGrammar { t32 = buildGrammar {
language = "t32"; language = "t32";
version = "0.0.0+rev=4fca25f"; version = "0.0.0+rev=c5ab392";
src = fetchFromGitea { src = fetchFromGitea {
domain = "codeberg.org"; domain = "codeberg.org";
owner = "xasc"; owner = "xasc";
repo = "tree-sitter-t32"; repo = "tree-sitter-t32";
rev = "4fca25fa99b6fd9ccf9cab9b6bf702a9df142ad5"; rev = "c5ab392fece192875d2206da487449b856afcdef";
hash = "sha256-x657aMnqCw/TlS1VyC8er5GQ1QqGdGHGgfSIStUbVfQ="; hash = "sha256-OalZs7pP00j3qyQv7mwVx1/jnoM91ZbqwEC17iTxZ/4=";
}; };
meta.homepage = "https://codeberg.org/xasc/tree-sitter-t32"; meta.homepage = "https://codeberg.org/xasc/tree-sitter-t32";
}; };
@ -1909,6 +1920,17 @@
}; };
meta.homepage = "https://github.com/Philipp-M/tree-sitter-ungrammar"; 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 { uxntal = buildGrammar {
language = "uxntal"; language = "uxntal";
version = "0.0.0+rev=14e4760"; version = "0.0.0+rev=14e4760";

View file

@ -19,7 +19,7 @@
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "komikku"; pname = "komikku";
version = "1.20.0"; version = "1.21.1";
format = "other"; format = "other";
@ -27,7 +27,7 @@ python3.pkgs.buildPythonApplication rec {
owner = "valos"; owner = "valos";
repo = "Komikku"; repo = "Komikku";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-gBnpps++dwcXCLSVjtK3nMJMcJ43vKeNzgCWEt1kn7g="; hash = "sha256-1VqV0tTI8XVwGJhaGWEdSxtWDhQFmrsncvhC4ftJ7Jg=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -11,13 +11,13 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "pgmodeler"; pname = "pgmodeler";
version = "1.0.3"; version = "1.0.4";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "pgmodeler"; owner = "pgmodeler";
repo = "pgmodeler"; repo = "pgmodeler";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-ZlIz+7YyER0/wQEkEe8XHYHcLK4vu09v1zkDrIgR/Dc="; sha256 = "sha256-1d+zox46h22ox9zC+SvN3w3LkpHmN1jpf/tDPD5D80s=";
}; };
nativeBuildInputs = [ pkg-config qmake wrapQtAppsHook ]; nativeBuildInputs = [ pkg-config qmake wrapQtAppsHook ];

View file

@ -2,13 +2,13 @@
buildGoModule rec { buildGoModule rec {
pname = "argocd"; pname = "argocd";
version = "2.7.1"; version = "2.7.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "argoproj"; owner = "argoproj";
repo = "argo-cd"; repo = "argo-cd";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-1P3FIgC9j0SbwzWo0aPUwVTKNlSY3FG7Iz6KD9pbv84="; sha256 = "sha256-pmF0EJfidYRZRelvXLfwANbv+DnfgLXVeKfjRSbnKjY=";
}; };
proxyVendor = true; # darwin/linux hash mismatch proxyVendor = true; # darwin/linux hash mismatch

View file

@ -1,5 +1,5 @@
#!/usr/bin/env nix-shell #!/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 # shellcheck shell=bash
# vim: ft=sh # vim: ft=sh
# #
@ -90,8 +90,7 @@ update_attr() {
repo_root=$(git rev-parse --show-toplevel) repo_root=$(git rev-parse --show-toplevel)
generate_hash() { generate_hash() {
nix-prefetch -I nixpkgs="${repo_root}" \ nurl --expr "(import ${repo_root} {}).terraform-providers.${provider}.$1"
"{ sha256 }: (import ${repo_root} {}).terraform-providers.${provider}.$1.overrideAttrs (_: { inherit sha256; })"
} }
echo_provider() { echo_provider() {

View file

@ -22,13 +22,15 @@
python3.pkgs.buildPythonApplication rec { python3.pkgs.buildPythonApplication rec {
pname = "gajim"; pname = "gajim";
version = "1.6.1"; version = "1.7.3";
src = fetchurl { src = fetchurl {
url = "https://gajim.org/downloads/${lib.versions.majorMinor version}/gajim-${version}.tar.gz"; url = "https://gajim.org/downloads/${lib.versions.majorMinor version}/gajim-${version}.tar.gz";
hash = "sha256-3D87Ou/842WqbaUiJV1hRZFVkZzQ12GXCpRc8F3rKPQ="; hash = "sha256-t8yzWfdsY8pXye7Dn5hME0bOHgf+MzuyVY3hweXc0xg=";
}; };
format = "pyproject";
buildInputs = [ buildInputs = [
gobject-introspection gtk3 gnome.adwaita-icon-theme gobject-introspection gtk3 gnome.adwaita-icon-theme
gtksourceview4 gtksourceview4
@ -58,6 +60,14 @@ python3.pkgs.buildPythonApplication rec {
nativeCheckInputs = [ xvfb-run dbus ]; nativeCheckInputs = [ xvfb-run dbus ];
preBuild = ''
python pep517build/build_metadata.py -o dist/metadata
'';
postInstall = ''
python pep517build/install_metadata.py dist/metadata --prefix=$out
'';
checkPhase = '' checkPhase = ''
xvfb-run dbus-run-session \ xvfb-run dbus-run-session \
--config-file=${dbus}/share/dbus-1/session.conf \ --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 ${python3.interpreter} -m unittest discover -s test/common -v
''; '';
# test are broken in 1.7.3
doCheck = false;
# necessary for wrapGAppsHook # necessary for wrapGAppsHook
strictDeps = false; strictDeps = false;

View file

@ -1,5 +1,5 @@
diff --git a/libgnucash/app-utils/gnc-quotes.cpp b/libgnucash/app-utils/gnc-quotes.cpp 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 --- a/libgnucash/app-utils/gnc-quotes.cpp
+++ b/libgnucash/app-utils/gnc-quotes.cpp +++ b/libgnucash/app-utils/gnc-quotes.cpp
@@ -122,7 +122,6 @@ private: @@ -122,7 +122,6 @@ private:
@ -10,7 +10,7 @@ index 3003fca71f..e01cb10b50 100644
std::string c_fq_wrapper; std::string c_fq_wrapper;
std::string m_version; std::string m_version;
StrVec m_sources; 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{}; static const std::string empty_string{};
GncFQQuoteSource::GncFQQuoteSource() : GncFQQuoteSource::GncFQQuoteSource() :
@ -18,6 +18,13 @@ index 3003fca71f..e01cb10b50 100644
m_version{}, m_sources{}, m_api_key{} m_version{}, m_sources{}, m_api_key{}
{ {
char *bindir = gnc_path_get_bindir(); 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{} @@ -197,7 +195,7 @@ m_version{}, m_sources{}, m_api_key{}
QuoteResult QuoteResult
GncFQQuoteSource::get_quotes(const std::string& json_str) const GncFQQuoteSource::get_quotes(const std::string& json_str) const
@ -43,4 +50,3 @@ index 3003fca71f..e01cb10b50 100644
bp::std_out > out_buf, bp::std_out > out_buf,
bp::std_err > err_buf, bp::std_err > err_buf,
bp::std_in < input_buf, bp::std_in < input_buf,

View file

@ -137,7 +137,7 @@ stdenv.mkDerivation rec {
- Financial Calculations - Financial Calculations
''; '';
license = licenses.gpl2Plus; license = licenses.gpl2Plus;
maintainers = with maintainers; [ domenkozar AndersonTorres rski ]; maintainers = with maintainers; [ domenkozar AndersonTorres rski nevivurn ];
platforms = platforms.unix; platforms = platforms.unix;
}; };
} }

View file

@ -34,6 +34,9 @@ stdenv.mkDerivation rec {
# Fixup build with newer Linux headers: https://github.com/lkl/linux/pull/484 # 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 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 '' '' + lib.optionalString firewallSupport ''
cat ${./lkl-defconfig-enable-nftables} >> arch/lkl/configs/defconfig cat ${./lkl-defconfig-enable-nftables} >> arch/lkl/configs/defconfig
''; '';

View file

@ -41,13 +41,13 @@
stdenv.mkDerivation (finalAttrs: { stdenv.mkDerivation (finalAttrs: {
pname = "icewm"; pname = "icewm";
version = "3.3.4"; version = "3.3.5";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "ice-wm"; owner = "ice-wm";
repo = "icewm"; repo = "icewm";
rev = finalAttrs.version; rev = finalAttrs.version;
hash = "sha256-Ygu10QF+cbjA0qy3k8/A9QX5xSthXcPy0wII3tXLH68="; hash = "sha256-ZxHeRfdSKhU7osITPLZmC5M2Nji3GjHLPuYphsZXNJw=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -39,5 +39,6 @@ stdenv.mkDerivation {
description = "A multi-paradigm functional and object-oriented programming language"; description = "A multi-paradigm functional and object-oriented programming language";
license = lib.licenses.mit; license = lib.licenses.mit;
platforms = lib.platforms.linux; platforms = lib.platforms.linux;
broken = true; # last successful build 2020-12-11
}; };
} }

View file

@ -16,7 +16,7 @@
stdenv.mkDerivation rec { stdenv.mkDerivation rec {
pname = "exiv2"; pname = "exiv2";
version = "0.27.6"; version = "0.27.7";
outputs = [ "out" "lib" "dev" "doc" "man" "static" ]; outputs = [ "out" "lib" "dev" "doc" "man" "static" ];
@ -24,7 +24,7 @@ stdenv.mkDerivation rec {
owner = "exiv2"; owner = "exiv2";
repo = "exiv2"; repo = "exiv2";
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-Ddy605EQhsATzmdhN3Zq+2ksYMrHEfucA+IqezYmjo4="; sha256 = "sha256-xytVGrLDS22n2/yydFTT6CsDESmhO9mFbPGX4yk+b6g=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -11,7 +11,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "dbus-fast"; pname = "dbus-fast";
version = "1.85.0"; version = "1.86.0";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
@ -20,7 +20,7 @@ buildPythonPackage rec {
owner = "Bluetooth-Devices"; owner = "Bluetooth-Devices";
repo = pname; repo = pname;
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-pl5Qs7llmUna+i85hMl14UhTDkibPEcMaRnsPM7ODFg="; hash = "sha256-YSkSnRQqalHpRVJx5PUO8EXXV8V6jRNpycO/GqNWmIM=";
}; };
nativeBuildInputs = [ nativeBuildInputs = [

View file

@ -15,7 +15,7 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "dvc-data"; pname = "dvc-data";
version = "0.51.0"; version = "0.52.0";
format = "pyproject"; format = "pyproject";
disabled = pythonOlder "3.8"; disabled = pythonOlder "3.8";
@ -24,7 +24,7 @@ buildPythonPackage rec {
owner = "iterative"; owner = "iterative";
repo = pname; repo = pname;
rev = "refs/tags/${version}"; rev = "refs/tags/${version}";
hash = "sha256-kLxwBFDoGEZ8w3PHEh8IVDEbmlbwazhZBAoBAUQFDEo="; hash = "sha256-Z5luqKuUForepBTZ7s2uDI09bK0NVhYMADFOj13nt0I=";
}; };
SETUPTOOLS_SCM_PRETEND_VERSION = version; SETUPTOOLS_SCM_PRETEND_VERSION = version;

View file

@ -2,12 +2,17 @@
, buildPythonPackage , buildPythonPackage
, fetchpatch , fetchpatch
, fetchPypi , fetchPypi
, pythonAtLeast
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "fn"; pname = "fn";
version = "0.4.3"; 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 { src = fetchPypi {
inherit pname version; inherit pname version;
sha256 = "1nmsjmn8jb4gp22ksx0j0hhdf4y0zm8rjykyy2i6flzimg6q1kgq"; sha256 = "1nmsjmn8jb4gp22ksx0j0hhdf4y0zm8rjykyy2i6flzimg6q1kgq";

View file

@ -15,14 +15,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "gtts"; pname = "gtts";
version = "2.3.1"; version = "2.3.2";
format = "pyproject"; format = "pyproject";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "pndurette"; owner = "pndurette";
repo = "gTTS"; repo = "gTTS";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-dbIcx6U5TIy3CteUGrZqcWqOJoZD2HILaJmKDY+j/II="; hash = "sha256-Z5dM/PzIA8qtw0RepTKmHpqBwYMRwNLhWuEC0aBGL3U=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -8,12 +8,13 @@
, precis-i18n , precis-i18n
, pygobject3 , pygobject3
, pyopenssl , pyopenssl
, setuptools
, pytestCheckHook , pytestCheckHook
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "nbxmpp"; pname = "nbxmpp";
version = "4.0.1"; version = "4.2.2";
disabled = pythonOlder "3.10"; disabled = pythonOlder "3.10";
@ -22,9 +23,11 @@ buildPythonPackage rec {
owner = "gajim"; owner = "gajim";
repo = "python-nbxmpp"; repo = "python-nbxmpp";
rev = version; rev = version;
hash = "sha256-PL+qNxeNubGSLqSci4uhRWtOIqs10p+A1VPfTwCLu84="; hash = "sha256-ZTX8plcsO4zE7ruLtWIvsagQUvwPHuKdPKRwCrFwvgc=";
}; };
format = "pyproject";
nativeBuildInputs = [ nativeBuildInputs = [
# required for pythonImportsCheck otherwise libsoup cannot be found # required for pythonImportsCheck otherwise libsoup cannot be found
gobject-introspection gobject-introspection
@ -40,6 +43,7 @@ buildPythonPackage rec {
libsoup_3 libsoup_3
pygobject3 pygobject3
pyopenssl pyopenssl
setuptools
]; ];
nativeCheckInputs = [ nativeCheckInputs = [

View file

@ -8,14 +8,14 @@
buildPythonPackage rec { buildPythonPackage rec {
pname = "pglast"; pname = "pglast";
version = "5.1"; version = "5.2";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.7"; disabled = pythonOlder "3.7";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
hash = "sha256-fHWJWgy/Ven5m2Cf81rG/ZKmFFWiLJsIPVxFe+rr+ms="; hash = "sha256-zj7/WGECL5Ou4F2FdFaA3M9F92ETZbhEXbZJ628gg0o=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [

View file

@ -1,7 +1,10 @@
{ lib, stdenv { lib, stdenv
, bottle
, buildPythonPackage , buildPythonPackage
, fetchpatch
, fetchPypi , fetchPypi
, pytestCheckHook , pytestCheckHook
, pythonAtLeast
}: }:
buildPythonPackage rec { buildPythonPackage rec {
@ -13,14 +16,36 @@ buildPythonPackage rec {
sha256 = "993f1a3599ca3f4fcd7160c7545ad06310c9e12f70174ae7ae8d4e25f6c5d3fa"; 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 = [ nativeCheckInputs = [
pytestCheckHook 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 = [ disabledTests = [
# 'AssertionError: 'function (test.muppy.test_summary.func)' != 'function (muppy.test_summary.func)' # 'AssertionError: 'function (test.muppy.test_summary.func)' != 'function (muppy.test_summary.func)'
# https://github.com/pympler/pympler/issues/134 # https://github.com/pympler/pympler/issues/134
"test_repr_function" "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; doCheck = stdenv.hostPlatform.isLinux;

View file

@ -16,9 +16,10 @@
, extractcode-libarchive , extractcode-libarchive
, fasteners , fasteners
, fetchPypi , fetchPypi
, fetchpatch
, fingerprints , fingerprints
, ftfy , ftfy
, gemfileparser , gemfileparser2
, html5lib , html5lib
, importlib-metadata , importlib-metadata
, intbitset , intbitset
@ -89,7 +90,7 @@ buildPythonPackage rec {
fasteners fasteners
fingerprints fingerprints
ftfy ftfy
gemfileparser gemfileparser2
html5lib html5lib
importlib-metadata importlib-metadata
intbitset intbitset
@ -133,13 +134,23 @@ buildPythonPackage rec {
pytestCheckHook 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 = '' postPatch = ''
substituteInPlace setup.cfg \ substituteInPlace setup.cfg \
--replace "pdfminer.six >= 20200101" "pdfminer.six" \ --replace "pdfminer.six >= 20200101" "pdfminer.six" \
--replace "pluggy >= 0.12.0, < 1.0" "pluggy" \ --replace "pluggy >= 0.12.0, < 1.0" "pluggy" \
--replace "pygmars >= 0.7.0" "pygmars" \ --replace "pygmars >= 0.7.0" "pygmars" \
--replace "license_expression >= 21.6.14" "license_expression" \ --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 # Importing scancode needs a writeable home, and preCheck happens in between

View file

@ -1,18 +1,22 @@
{ lib { lib
, buildPythonPackage , buildPythonPackage
, cython
, fetchPypi , fetchPypi
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "timelib"; pname = "timelib";
version = "0.2.5"; version = "0.3.0";
src = fetchPypi { src = fetchPypi {
inherit pname version; inherit pname version;
extension = "zip"; hash = "sha256-0bInBlVxhuYFjaiLoPhYN0AbKuneFX9ZNT3JeNglGHo=";
sha256 = "6ac9f79b09b63bbc07db88525c1f62de1f6d50b0fd9937a0cb05e3d38ce0af45";
}; };
nativeBuildInputs = [
cython
];
meta = with lib; { meta = with lib; {
description = "Parse english textual date descriptions"; description = "Parse english textual date descriptions";
homepage = "https://github.com/pediapress/timelib/"; homepage = "https://github.com/pediapress/timelib/";

View file

@ -7,33 +7,52 @@
, pytest-timeout , pytest-timeout
, huggingface-hub , huggingface-hub
, pyyaml , pyyaml
, safetensors
, torch , torch
, torchvision , torchvision
}: }:
buildPythonPackage rec { buildPythonPackage rec {
pname = "timm"; pname = "timm";
version = "0.6.12"; version = "0.9.2";
disabled = pythonOlder "3.6"; format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "huggingface"; owner = "huggingface";
repo = "pytorch-image-models"; repo = "pytorch-image-models";
rev = "refs/tags/v${version}"; rev = "refs/tags/v${version}";
hash = "sha256-RNjCcCnNhtr5a+29Bx+k427a03MSooqvnuiDQ8cT8FA="; hash = "sha256-gYrc8ds6urZvwDsTnzPjxjSTiAGzUD3RlCf0wogCrDI=";
}; };
propagatedBuildInputs = [ propagatedBuildInputs = [
huggingface-hub huggingface-hub
pyyaml pyyaml
safetensors
torch torch
torchvision torchvision
]; ];
nativeCheckInputs = [ expecttest pytestCheckHook pytest-timeout ]; nativeCheckInputs = [
pytestFlagsArray = [ "tests" ]; expecttest
# takes too long and also tries to download models: pytestCheckHook
disabledTestPaths = [ "tests/test_models.py" ]; 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 = [ pythonImportsCheck = [
"timm" "timm"

View file

@ -19,7 +19,8 @@ buildPythonPackage rec {
postPatch = '' postPatch = ''
substituteInPlace tests/__init__.py \ 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 \ substituteInPlace tests/test_virtualenv_sys.py \
--replace "'virtualenv'" "'${virtualenv}/bin/virtualenv'" --replace "'virtualenv'" "'${virtualenv}/bin/virtualenv'"

View file

@ -1,6 +1,7 @@
{ stdenv { stdenv
, lib , lib
, buildPythonPackage , buildPythonPackage
, fetchpatch
, fetchPypi , fetchPypi
, colorama , colorama
, libunwind , libunwind
@ -21,6 +22,22 @@ buildPythonPackage rec {
buildInputs = [ libunwind ]; buildInputs = [ libunwind ];
propagatedBuildInputs = [ colorama requests six pytz ]; 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 # No tests included
doCheck = false; doCheck = false;
pythonImportsCheck = [ "vmprof" ]; pythonImportsCheck = [ "vmprof" ];

View file

@ -658,6 +658,13 @@ in
"--with-cflags=-I${ncurses.dev}/include" "--with-cflags=-I${ncurses.dev}/include"
"--with-ldflags=-L${ncurses.out}/lib" "--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: { ruby-vips = attrs: {

View file

@ -10,16 +10,16 @@
buildGoModule rec { buildGoModule rec {
pname = "buf"; pname = "buf";
version = "1.18.0"; version = "1.19.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "bufbuild"; owner = "bufbuild";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
hash = "sha256-wMYl9TlOQ4h5MFNNWaGkou7YIBSsMfhV70ABgKkC7xo="; hash = "sha256-vLiOAlzIrIwMKPn8yl/YyFmXbFHFAZB1yLejQbAEivg=";
}; };
vendorHash = "sha256-pyhK0tHpHrEkGRkWgzTFg9FNNBx3SwoWUfw+2zk7nAs="; vendorHash = "sha256-DT3vffs33hGlylQLKc5o7Xble8Blyy4hgvE27CHnmJc=";
patches = [ patches = [
# Skip a test that requires networking to be available to work. # Skip a test that requires networking to be available to work.

View 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 ];
};
}

View file

@ -17,10 +17,10 @@ let
plat = elemAt info 1; plat = elemAt info 1;
shas = shas =
{ {
x86_64-linux = "f0f9f65b6ba3cc401a519f764314854f6f1f22a9c3b55dfc5a4921455d64fc0d5b8352d267217076da82157553f235ab3d2506497132f23789b126205177e86b"; x86_64-linux = "d3d5e8906e64ae3c469e4df80e1c692ce1912e36f68ddf36b99b7019faf34aebaa329061904a6d2b6a32486c6e19d1c5f2ea30c25479a7960ed93bc1c0cb1691";
x86_64-darwin = "2ba707a0e7a5c34be98ee5e299b8f1d9ace99a626112efd48ca08bfc9640374ec37fc1761c9ef91599e7a5bf5055d2731759b0337952d7767b02d9c46640be71"; x86_64-darwin = "72a4499efbbbdf425f92beafc1b1d416e66e6ded60e76d9c9af9c3c13ce11862ba54dffbfbd5cbdef6afaad50f0d57532d3524f83acd88840aecc6891f748732";
aarch64-linux = "6899c46a06cceb3bfa5db22cdad90db3063b3859c6059a379ac29ce5755073e45b6914491c7c0ec92c48344c1658ea68f7453992d1a39b70782f699315d175de"; aarch64-linux = "ce1b584e1cf98f8fb0e602352564a71efef4f53936dde7a056caed62675a6216624f0db2bc24d8239b8d01f06306bf173dda7a08a1787ba061db01ca0d88359a";
aarch64-darwin = "194b7288f394ff39af3e114099a8f0f847091fd50231ee50c12105189e2b1dfdff8971795c2c22275ff113734e543cfaf51940682d77576c89d2d5bce9b26b92"; aarch64-darwin = "72a4499efbbbdf425f92beafc1b1d416e66e6ded60e76d9c9af9c3c13ce11862ba54dffbfbd5cbdef6afaad50f0d57532d3524f83acd88840aecc6891f748732";
}; };
in stdenv.mkDerivation rec { in stdenv.mkDerivation rec {

View file

@ -14,13 +14,13 @@
buildGoModule rec { buildGoModule rec {
pname = "wails"; pname = "wails";
version = "2.4.1"; version = "2.5.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "wailsapp"; owner = "wailsapp";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-ei+bp4fwlxZ9ZiXW/FqpqICXpFxpmOKkZZYW0LxHh1s="; sha256 = "sha256-4JTkViqJ1rmVg6JGJ+uZrIo/mh6o1VE39gYoILdFWBE=";
} + "/v2"; } + "/v2";
vendorSha256 = "sha256-RiectpUhm24xjgfPZEMDVFSEzPtIjn7L/qC2KE2s5aw="; vendorSha256 = "sha256-RiectpUhm24xjgfPZEMDVFSEzPtIjn7L/qC2KE2s5aw=";

View file

@ -8,10 +8,10 @@ let beat = package: extraArgs: buildGoModule (rec {
owner = "elastic"; owner = "elastic";
repo = "beats"; repo = "beats";
rev = "v${version}"; rev = "v${version}";
hash = "sha256-BGi2fGUz0J7BuLo3JA4c2yUlWXdLpjn+AcMHkDGd3js="; hash = "sha256-Quq32/3NeGhrsy17GrIeBiB3LGQuMFTFl3lAyyU6GZM=";
}; };
vendorHash = "sha256-FtFHfxCIZ4G1aFfGUgRfTz+zL4OE4SLPuDzXqL6CDyo="; vendorHash = "sha256-UJjwCRxY1rrymroBqC/SfCVM9vmnQOtLlS3OONih3kM=";
subPackages = [ package ]; subPackages = [ package ];

View file

@ -33,8 +33,8 @@ let
in { in {
tomcat9 = common { tomcat9 = common {
versionMajor = "9"; versionMajor = "9";
versionMinor = "0.68"; versionMinor = "0.75";
sha256 = "sha256-rxsv8zEIIbTel4CqIuncS5pellGwgHamKRa0KgzsOF0="; sha256 = "sha256-VWfKg789z+ns1g3hDsCZFYQ+PsdqUEBeBHCihkGZelk=";
}; };
tomcat10 = common { tomcat10 = common {

View file

@ -1,16 +1,51 @@
{ lib, stdenv, fetchFromGitHub, cmake, ninja, pkg-config { lib
, cyclonedds, libmysqlclient, mariadb, mbedtls, sqlite, zeromq , 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"; pname = "nanomq";
version = "0.16.3"; version = "0.18.2";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "emqx"; owner = "emqx";
repo = "nanomq"; repo = "nanomq";
rev = finalAttrs.version; rev = finalAttrs.version;
hash = "sha256-9w4afVxuJbYrkagpAe1diftDnjrRjunyhJdJ0BZq3K0="; hash = "sha256-XGJBBuRSL3InXUMGxOttdbt0zmI1APFlc4IvwC2up8g=";
fetchSubmodules = true; fetchSubmodules = true;
}; };
@ -19,7 +54,7 @@ stdenv.mkDerivation (finalAttrs: {
--replace "DESTINATION /etc" "DESTINATION $out/etc" --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 ]; 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"; 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; { meta = with lib; {
description = "An ultra-lightweight and blazing-fast MQTT broker for IoT edge"; description = "An ultra-lightweight and blazing-fast MQTT broker for IoT edge";
homepage = "https://nanomq.io/"; homepage = "https://nanomq.io/";

View file

@ -18,10 +18,10 @@ let
plat = elemAt info 1; plat = elemAt info 1;
shas = shas =
{ {
x86_64-linux = "f49d8fce010db83e6a89462535c71ba11a1153589038a7db430fc7db44178a55d5538dea80e6d4c690f4f0e838168965297c6a3ae31fbc5020af4d966067a90c"; x86_64-linux = "7a2013e43c7fc39e86a31a733cc74c587ef2bba0c013f95ce874f98b488a4f8f0e6fb254a1eedd5c0b0e210aed9a0195f7358fa9653c890e234413ff93190807";
x86_64-darwin = "b7d87bfa2e1793354bfb51ea11bbeeb29cfba62633288c3ed4ab9eecc05d05953db9446e7ca46ffe63f5aa646a0534fb8f4aa897a59fa2ae7e200b824576d915"; x86_64-darwin = "e6f49e7c0f59e260b3e3d43e57375c9352976c4f51118005e3a9127f41b59f95e51ea158cd318e99410e6d98464ea1f84432c905d12a84b8f68b2ce35905f944";
aarch64-linux = "aa9624c1777a8530f5eca4f75385de1a95ba8db3d56810cc1e134434438181580c32f5f46ab79094742d077e9b741cfb2549cda549147123dae14109e27a1443"; aarch64-linux = "f2790f49b79c381246bbf87431919452af93aa4fd8aa6bc9c1f9031e7ed5d9c649f5bab867c28a7d1602e2285d3f4a5f78f809ac05744b02ad67d68610bb677d";
aarch64-darwin = "191e04a1e440a5ad679d04f6d852a6ab26cb14870b8af38a2ab6a14251a7b6d1ed7646e33b87f4971bb04a68d767abaecaa8dba07e3ae29211f0a358bb499d61"; aarch64-darwin = "75b66b60650bb82dc517f4a594fa40816d3becb92bf3b349f3e8324cc6b297c8bcacebc08e7661891fd4ede03a099fea56c1509291804dd03345717c36564172";
}; };
in in
stdenv.mkDerivation rec { stdenv.mkDerivation rec {

View file

@ -37,8 +37,8 @@ in
version = esVersion; version = esVersion;
src = fetchurl { src = fetchurl {
url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip"; url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
sha256 = hash =
if version == "7.17.9" then "sha256-70KU7aGUHEZsjykXqHUYspGyX0CCrlS1er9WdUbxxSE=" if version == "7.17.10" then "sha256-D08CVW/qHpZZaKnploM4aCJ4bunvPjVmieDYr1d6jQA="
else throw "unsupported version ${version} for plugin ${pluginName}"; else throw "unsupported version ${version} for plugin ${pluginName}";
}; };
meta = with lib; { meta = with lib; {
@ -53,8 +53,8 @@ in
version = esVersion; version = esVersion;
src = fetchurl { src = fetchurl {
url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip"; url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
sha256 = hash =
if version == "7.17.9" then "sha256-oRTs1eK7jpoKaMvc+6rx9qiA8wg+gYUADM0HuJU0nOY=" if version == "7.17.10" then "sha256-cpgr2zPCpsLrmshWJWoGNcGl0X+bO/K4A9bMqLv8+H8="
else throw "unsupported version ${version} for plugin ${pluginName}"; else throw "unsupported version ${version} for plugin ${pluginName}";
}; };
meta = with lib; { meta = with lib; {
@ -69,7 +69,7 @@ in
version = esVersion; version = esVersion;
src = fetchurl { src = fetchurl {
url = "https://github.com/vhyza/elasticsearch-${pluginName}/releases/download/v${version}/elasticsearch-${pluginName}-${version}-plugin.zip"; 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=" if version == "7.17.9" then "sha256-iY25apDkS6s0RoR9dVL2o/hFuUo6XhMzLjl8wDSFejk="
else throw "unsupported version ${version} for plugin ${pluginName}"; else throw "unsupported version ${version} for plugin ${pluginName}";
}; };
@ -77,6 +77,7 @@ in
homepage = "https://github.com/vhyza/elasticsearch-analysis-lemmagen"; homepage = "https://github.com/vhyza/elasticsearch-analysis-lemmagen";
description = "LemmaGen Analysis plugin provides jLemmaGen lemmatizer as Elasticsearch token filter"; description = "LemmaGen Analysis plugin provides jLemmaGen lemmatizer as Elasticsearch token filter";
license = licenses.asl20; license = licenses.asl20;
broken = true; # Not released yet for ES 7.17.10
}; };
}; };
@ -85,8 +86,8 @@ in
version = esVersion; version = esVersion;
src = fetchurl { src = fetchurl {
url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip"; url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
sha256 = hash =
if version == "7.17.9" then "sha256-xlEabvNiddEwRfKrHIq1QPFJFMd2gByurIZF9LOxVSs=" if version == "7.17.10" then "sha256-UmykO+hZDvlFhEbf7zL2bdw4j6NhByRBu9eH3F6/EtM="
else throw "unsupported version ${version} for plugin ${pluginName}"; else throw "unsupported version ${version} for plugin ${pluginName}";
}; };
meta = with lib; { meta = with lib; {
@ -101,8 +102,8 @@ in
version = esVersion; version = esVersion;
src = fetchurl { src = fetchurl {
url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip"; url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
sha256 = hash =
if version == "7.17.9" then "sha256-J1q87fhL4A5tkxPADgHflPbO2RRMGPUk58l7DEpgd94=" if version == "7.17.10" then "sha256-Y/AbLfHSdocX0NQbnKm63gTWgwzssb4kpSwRqLozD9w="
else throw "unsupported version ${version} for plugin ${pluginName}"; else throw "unsupported version ${version} for plugin ${pluginName}";
}; };
meta = with lib; { meta = with lib; {
@ -117,8 +118,8 @@ in
version = esVersion; version = esVersion;
src = fetchurl { src = fetchurl {
url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip"; url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${version}.zip";
sha256 = hash =
if version == "7.17.9" then "sha256-BhJtBdsT5Xapehfn0xaTWpSrvT1W+Hhv/yqliA6dBG8=" if version == "7.17.10" then "sha256-QIYD7cGpJQg+csv/tekN6GFtdnuhYU6VyAXk7nY/uWs="
else throw "unsupported version ${version} for plugin ${pluginName}"; else throw "unsupported version ${version} for plugin ${pluginName}";
}; };
meta = with lib; { meta = with lib; {
@ -133,8 +134,8 @@ in
version = esVersion; version = esVersion;
src = fetchurl { src = fetchurl {
url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${esVersion}.zip"; url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${esVersion}.zip";
sha256 = hash =
if version == "7.17.9" then "sha256-bjVMVwZfj9WyjkwTXwTJdmaqZ1sWuvOZKXh9PFTOwb8=" if version == "7.17.10" then "sha256-L8lS+EPYuhNNTnP3ImeZsBQ5a5DAncs3qBFDWGWISRI="
else throw "unsupported version ${version} for plugin ${pluginName}"; else throw "unsupported version ${version} for plugin ${pluginName}";
}; };
meta = with lib; { meta = with lib; {
@ -149,8 +150,8 @@ in
version = esVersion; version = esVersion;
src = fetchurl { src = fetchurl {
url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${esVersion}.zip"; url = "https://artifacts.elastic.co/downloads/elasticsearch-plugins/${pluginName}/${pluginName}-${esVersion}.zip";
sha256 = hash =
if version == "7.17.9" then "sha256-ZyImIHYOz5bOEA+ARtPB2CznTOSjFKsavzWXXEzfkO8=" if version == "7.17.10" then "sha256-eXstbxlyS8WzW8u5YiMFXGpILCcEWrIb/IxXVzAGFLU="
else throw "unsupported version ${version} for plugin ${pluginName}"; else throw "unsupported version ${version} for plugin ${pluginName}";
}; };
meta = with lib; { meta = with lib; {
@ -166,13 +167,13 @@ in
pluginName = "search-guard"; pluginName = "search-guard";
version = version =
# https://docs.search-guard.com/latest/search-guard-versions # 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}"; else throw "unsupported version ${esVersion} for plugin ${pluginName}";
src = src =
if esVersion == "7.17.9" then if esVersion == "7.17.10" then
fetchurl { fetchurl {
url = "https://maven.search-guard.com/search-guard-suite-release/com/floragunn/search-guard-suite-plugin/${version}/search-guard-suite-plugin-${version}.zip"; 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}"; else throw "unsupported version ${version} for plugin ${pluginName}";
meta = with lib; { meta = with lib; {

View file

@ -1,7 +1,7 @@
{ lib, stdenv, fetchurl, writeText, plugins ? [ ], nixosTests }: { lib, stdenv, fetchurl, writeText, plugins ? [ ], nixosTests }:
let let
version = "4.1.2"; version = "4.1.3";
versionParts = lib.take 2 (lib.splitVersion version); versionParts = lib.take 2 (lib.splitVersion version);
# 4.2 -> 402, 3.11 -> 311 # 4.2 -> 402, 3.11 -> 311
@ -15,7 +15,7 @@ in stdenv.mkDerivation rec {
src = fetchurl { src = fetchurl {
url = "https://download.moodle.org/stable${stableVersion}/${pname}-${version}.tgz"; url = "https://download.moodle.org/stable${stableVersion}/${pname}-${version}.tgz";
sha256 = "sha256-ddXldOQLefV6Kjla+IeFwD50Vye4kholJD5R6X6A2Og="; hash = "sha256-JMK+nGgeBryC6I9cg1DD52gIGcPMAJ/xZxrC4a1R5Ps=";
}; };
phpConfig = writeText "config.php" '' phpConfig = writeText "config.php" ''

View file

@ -16,14 +16,14 @@ let
shas = shas =
if enableUnfree if enableUnfree
then { then {
x86_64-linux = "a43d592e70f023a594f31a3fba365a9cca6611599bd61f998cb1fc38ddd177d459bce23eaf54f811fe0a87a47cdd4bf4b4d4c8008dab1ac03173371f63b91b6c"; x86_64-linux = "5391bfef09c403a365518a3a8e8f075bb7974b137095b3c7fd2a0173cfa6dbd4a7451170a3657afef3e6a468e90a38d6e7a5b669799878f9389fa44ff8fee026";
x86_64-darwin = "7f7d89f438400da178b30f345b6ebc80f55f87f38b8925ca8c9dea86f0e2f23f70ccab03fdef5b83c085f1441e77592aab05006d163bc2af1920e1cc0ebdfc17"; x86_64-darwin = "8e3516b82329a47505358fb7eab486ca39423adc44a1f061c35f6ba225ac2f37330f2afc3e37eb652b6536e5ca35d77ac2485dec743fa8d99dd4fcc60bddbc21";
aarch64-linux = "3c74d622c362e3aa72442a477ef34b0eb9131f5b550166d0f7f422bd3678acf07d75c702691d6606e5501f4b40854a352398d1c2813f1fb0a152663d75d5658b"; aarch64-linux = "06f91a5aabff0f86a4150de6c1fd02fb6d0a44b04ac660597cb4c8356cf1d22552aaa77899db42a49a5e35b3cad73be5d7bad8cacfb4b17e622949329cdf791a";
} }
else { else {
x86_64-linux = "7c3f9867853582e5d06b9f895b4740abf56a9b6ce34dfbfb624cf9a4b956f489145cd13f3194a7fb16efc52410f55e797c269dc2957a35bdebf9e1aaa3547eaa"; x86_64-linux = "ba22c4c414f47515387bb28cc47612bea58aff97c407f2571863e83174a2bef273627f65dd531ed833e40668c79144a501d49c3ec691c1b1c4d8fb0cb124b052";
x86_64-darwin = "d81c20317a7c163e42f5aad9e148505a64bba8565ff913650a840918b80e6aadde071596e569b0c8f965810b821779ca3d00f9a7cb24a5c86fff571ca9227c38"; x86_64-darwin = "81a97ca06c086fac33f32e90124f649d5ddce09d649021020f434b75b5bff63065f9dc8aa267b72cedd581089bc24db12122f705ef8b69acf8f59f11771cbf77";
aarch64-linux = "93d9700fc3dd99bc918be19fe41ef60b9071eadcc6fd57833dbf1fff2e0f2419c62f3493a0454f215b0dfd30cec90f1aca5eeff15c4eb3a583519dc9a69e896a"; aarch64-linux = "64adb41a7a1b14b21d463b333f3f4470a4db9140e288d379bf79510c83091d5ca27e997961d757cee2329b85d16da6da8a1038a00aeabb1e74ab8f95b841ad0a";
}; };
this = stdenv.mkDerivation rec { this = stdenv.mkDerivation rec {
version = elk7Version; version = elk7Version;

View file

@ -1,16 +1,16 @@
{ lib, fetchFromGitHub, rustPlatform }: { lib, fetchFromGitHub, rustPlatform }:
rustPlatform.buildRustPackage rec { rustPlatform.buildRustPackage rec {
pname = "tagref"; pname = "tagref";
version = "1.7.0"; version = "1.8.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "stepchowfun"; owner = "stepchowfun";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
sha256 = "sha256-ESImTR3CFe6ABCP7JHU7XQYvc2VsDN03lkVaKK9MUEU="; sha256 = "sha256-fEFMzBLQl93QmaviJXOZkiJ3cqYKNOiz3a+CZL7nyRI=";
}; };
cargoHash = "sha256-vqRVD5RW0j2bMF/Zl+Ldc06zyDlzRpADWqxtkvKtydE="; cargoHash = "sha256-dvSP1djkjvdm04lsdxZsxS+0R0PI+jo8blg3zOQcBrU=";
meta = with lib; { meta = with lib; {
description = "Tagref helps you refer to other locations in your codebase."; description = "Tagref helps you refer to other locations in your codebase.";

View file

@ -5,23 +5,29 @@
buildGoModule rec { buildGoModule rec {
pname = "checkip"; pname = "checkip";
version = "0.45.1"; version = "0.46.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "jreisinger"; owner = "jreisinger";
repo = pname; repo = pname;
rev = "v${version}"; rev = "refs/tags/v${version}";
sha256 = "sha256-GUVyeQtUNnW8yu/dhfip61jxQtgQmjBUDzsOW233laQ="; hash = "sha256-U0jHwKmGHpaHSiOYDeYCXiufw0JjzAmhBnINmFsqOJo=";
}; };
vendorHash = "sha256-9/z1mtZGqrvcvq8cWBpYN7kaPHaPqtyMwMNxuRRP4Cs="; vendorHash = "sha256-9/z1mtZGqrvcvq8cWBpYN7kaPHaPqtyMwMNxuRRP4Cs=";
ldflags = [
"-w"
"-s"
];
# Requires network # Requires network
doCheck = false; doCheck = false;
meta = with lib; { meta = with lib; {
description = "CLI tool that checks an IP address using various public services"; description = "CLI tool that checks an IP address using various public services";
homepage = "https://github.com/jreisinger/checkip"; homepage = "https://github.com/jreisinger/checkip";
changelog = "https://github.com/jreisinger/checkip/releases/tag/v${version}";
license = licenses.asl20; license = licenses.asl20;
maintainers = with maintainers; [ fab ]; maintainers = with maintainers; [ fab ];
}; };

View file

@ -1,17 +1,21 @@
{ lib, buildGoModule, fetchFromGitHub, nixosTests }: { lib
, buildGoModule
, fetchFromGitHub
, nixosTests
}:
buildGoModule rec { buildGoModule rec {
pname = "nebula"; pname = "nebula";
version = "1.6.1"; version = "1.7.0";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "slackhq"; owner = "slackhq";
repo = pname; repo = pname;
rev = "v${version}"; rev = "refs/tags/v${version}";
sha256 = "sha256-IsLSlQsrfw3obkz4jHL23BRQY2fviGbPEvs5j0zkdX0="; hash = "sha256-B0i980mfbfC5p4mIsW3L4v1ilajxtZbp1DQowFw3ghw=";
}; };
vendorSha256 = "sha256-GvMiOEC3Y/pGG++Z+XCgLVADKymUR9shDxjx3xIz8u0="; vendorHash = "sha256-VZzSdl8R1y7rCF2vz7e+5nAkb3wlJymNWCXwZZUvg4A=";
subPackages = [ "cmd/nebula" "cmd/nebula-cert" ]; subPackages = [ "cmd/nebula" "cmd/nebula-cert" ];
@ -22,7 +26,7 @@ buildGoModule rec {
}; };
meta = with lib; { 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 = '' longDescription = ''
Nebula is a scalable overlay networking tool with a focus on performance, Nebula is a scalable overlay networking tool with a focus on performance,
simplicity and security. It lets you seamlessly connect computers simplicity and security. It lets you seamlessly connect computers
@ -39,8 +43,8 @@ buildGoModule rec {
parts. parts.
''; '';
homepage = "https://github.com/slackhq/nebula"; homepage = "https://github.com/slackhq/nebula";
changelog = "https://github.com/slackhq/nebula/blob/v${version}/CHANGELOG.md";
license = licenses.mit; license = licenses.mit;
maintainers = with maintainers; [ Br1ght0ne numinit ]; maintainers = with maintainers; [ Br1ght0ne numinit ];
}; };
} }

View file

@ -2,16 +2,16 @@
buildGoModule rec { buildGoModule rec {
pname = "crowdsec"; pname = "crowdsec";
version = "1.4.6"; version = "1.5.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "crowdsecurity"; owner = "crowdsecurity";
repo = pname; repo = pname;
rev = "v${version}"; rev = "v${version}";
hash = "sha256-+WvpsZjb1pb8WqK0HJYncJUo6wPkKzKvBi/nLKuhSD4="; hash = "sha256-Z2msr8I5VqY4c5DBFlh9oMg68SSexiN9pgZuJdYnXVQ=";
}; };
vendorHash = "sha256-FPsoufB9UDgBDIE3yUq4doBse3qgjP19ussYnMAxntk="; vendorHash = "sha256-T0gJIJDZzzOuYGNL+b6TriQsKQnAQ6JczkiAvJo1tfc=";
nativeBuildInputs = [ installShellFiles ]; nativeBuildInputs = [ installShellFiles ];

View file

@ -8,13 +8,13 @@
buildGoModule rec { buildGoModule rec {
pname = "doppler"; pname = "doppler";
version = "3.58.0"; version = "3.60.1";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = "dopplerhq"; owner = "dopplerhq";
repo = "cli"; repo = "cli";
rev = version; rev = version;
sha256 = "sha256-1cAsoaKKxSz2YhwMkfyzAyH8zFHm7YWS01/3CmcD8uY="; sha256 = "sha256-WzR2oKBQ3GEEmOC0hhb6tcVR4GfapS0LzLCJosQo37k=";
}; };
vendorHash = "sha256-yuGjaUHfXCJnMvxfaSwbVAApflwfsvX2W7iEZdruMDE="; vendorHash = "sha256-yuGjaUHfXCJnMvxfaSwbVAApflwfsvX2W7iEZdruMDE=";

View 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 ];
};
}

View file

@ -1,25 +1,30 @@
{ lib { lib
, argcomplete
, buildPythonPackage
, fetchFromGitHub , fetchFromGitHub
, pythonOlder , python3
, colored
, packaging
, paramiko
, pytz
, pyyaml
, rich
, sshpubkeys
, pytestCheckHook
}: }:
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"; pname = "ssh-mitm";
version = "3.0.2"; version = "3.0.2";
format = "setuptools"; format = "setuptools";
disabled = pythonOlder "3.7";
src = fetchFromGitHub { src = fetchFromGitHub {
owner = pname; owner = pname;
repo = pname; repo = pname;
@ -35,6 +40,7 @@ buildPythonPackage rec {
pytz pytz
pyyaml pyyaml
rich rich
setuptools
sshpubkeys sshpubkeys
]; ];

View file

@ -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"; url = "https://bugs.debian.org/cgi-bin/bugreport.cgi?att=1;bug=1009196;filename=reproducible_exception_strings.patch;msg=5";
sha256 = "sha256-RNZoEeTcWnrLaltcYrhNIORh42fFdwMzBfxMRWVurbk="; 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" ]; hardeningDisable = [ "format" ];

View file

@ -3698,7 +3698,7 @@ with pkgs;
ssh-key-confirmer = callPackage ../tools/networking/ssh-key-confirmer { }; 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 { }; 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. # 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! # 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 { elasticsearch7 = callPackage ../servers/search/elasticsearch/7.x.nix {
util-linux = util-linuxMinimal; util-linux = util-linuxMinimal;
@ -18435,6 +18435,8 @@ with pkgs;
gocd-server = callPackage ../development/tools/continuous-integration/gocd-server { }; gocd-server = callPackage ../development/tools/continuous-integration/gocd-server { };
gopatch = callPackage ../development/tools/misc/gopatch { };
goredo = callPackage ../development/tools/build-managers/goredo { }; goredo = callPackage ../development/tools/build-managers/goredo { };
gotify-server = callPackage ../servers/gotify { }; gotify-server = callPackage ../servers/gotify { };
@ -35711,6 +35713,8 @@ with pkgs;
inherit (darwin.apple_sdk.frameworks) IOKit; inherit (darwin.apple_sdk.frameworks) IOKit;
}; };
go-exploitdb = callPackage ../tools/security/go-exploitdb { };
groestlcoin = libsForQt5.callPackage ../applications/blockchains/groestlcoin { groestlcoin = libsForQt5.callPackage ../applications/blockchains/groestlcoin {
boost = boost17x; boost = boost17x;
withGui = true; withGui = true;

View file

@ -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 { DateSimple = buildPerlPackage {
pname = "Date-Simple"; pname = "Date-Simple";
version = "3.03"; version = "3.03";
@ -9843,17 +9857,18 @@ with self; {
FinanceQuote = buildPerlPackage { FinanceQuote = buildPerlPackage {
pname = "Finance-Quote"; pname = "Finance-Quote";
version = "1.49"; version = "1.55";
src = fetchurl { src = fetchurl {
url = "mirror://cpan/authors/id/E/EC/ECOCODE/Finance-Quote-1.49.tar.gz"; url = "mirror://cpan/authors/id/B/BP/BPSCHUCK/Finance-Quote-1.55.tar.gz";
hash = "sha256-ldvERDumVjILNjxWYl0E83nJQ+IC9g9AoqNRUrVLv1M="; hash = "sha256-4uAAtnxmtq9Q1HYYWEkhEFEKVaAwqJEBfUDH3iGLdI8=";
}; };
propagatedBuildInputs = [ CGI DateTimeFormatStrptime HTMLTableExtract JSON JSONParse LWPProtocolHttps StringUtil TextTemplate ]; buildInputs = [ DateManip DateRange DateSimple DateTime DateTimeFormatISO8601 StringUtil TestKwalitee TestPerlCritic TestPod TestPodCoverage ];
buildInputs = [ TestPod ]; propagatedBuildInputs = [ DateTimeFormatStrptime Encode HTMLTableExtract HTMLTokeParserSimple HTMLTree HTMLTreeBuilderXPath HTTPCookies JSON IOCompress LWPProtocolHttps Readonly StringUtil SpreadsheetXLSX TextTemplate TryTiny WebScraper XMLLibXML libwwwperl ];
meta = { meta = {
homepage = "https://finance-quote.sourceforge.net/"; homepage = "https://finance-quote.sourceforge.net/";
description = "Get stock and mutual fund quotes from various exchanges"; 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 { libxml_perl = buildPerlPackage {
pname = "libxml-perl"; pname = "libxml-perl";
version = "0.08"; 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 { SQLAbstract = buildPerlPackage {
pname = "SQL-Abstract"; pname = "SQL-Abstract";
version = "2.000001"; 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 { WebServiceLinode = buildPerlModule {
pname = "WebService-Linode"; pname = "WebService-Linode";
version = "0.29"; version = "0.29";

View file

@ -280,6 +280,7 @@ mapAliases ({
selectors34 = throw "selectors34 has been removed: functionality provided by Python itself; archived by upstream."; # added 2021-06-10 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 setuptools_scm = setuptools-scm; # added 2021-06-03
sharkiqpy = sharkiq; # added 2022-05-21 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 smart_open = smart-open; # added 2021-03-14
smmap2 = throw "smmap2 has been deprecated, use smmap instead."; # added 2020-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 somecomfort = throw "somecomfort was removed because Home Assistant switched to aiosomecomfort"; # added 2023-02-01

View file

@ -11551,8 +11551,6 @@ self: super: with self; {
sseclient-py = callPackage ../development/python-modules/sseclient-py { }; sseclient-py = callPackage ../development/python-modules/sseclient-py { };
ssh-mitm = callPackage ../development/python-modules/ssh-mitm { };
sshfs = callPackage ../development/python-modules/sshfs { }; sshfs = callPackage ../development/python-modules/sshfs { };
sshpubkeys = callPackage ../development/python-modules/sshpubkeys { }; sshpubkeys = callPackage ../development/python-modules/sshpubkeys { };

View file

@ -168,10 +168,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "0l3xb57zzzfxryir2ssrl6lai4pvszal54fhss50niyi3pzbjdfx"; sha256 = "0c3jjwp5zax3jsk3ckxy0af8bqcaa7j707ahv2pxp2fi2sb3n3vw";
type = "gem"; type = "gem";
}; };
version = "4.1.3"; version = "4.1.5";
}; };
atomos = { atomos = {
groups = ["default"]; groups = ["default"];
@ -260,10 +260,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "0hgrfxzhh9h3jrvaarxa663vzyd5y0s03310zkarbl8bcxd2iwm5"; sha256 = "06mywzjpi1bh04qwb2wzrngmbaia1mxib5kzwg62cz3j6wclg5xd";
type = "gem"; type = "gem";
}; };
version = "4.1.3"; version = "4.1.5";
}; };
camping = { camping = {
dependencies = ["mab" "rack"]; dependencies = ["mab" "rack"];
@ -705,10 +705,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "0dndngqvkm2ih3wqn5ilf9980c1cc57lqn5lywx3myalzpilq05z"; sha256 = "1x32mcpm2cl5492kd6lbjbaf17qsssmpx9kdyr7z1wcif2cwyh0g";
type = "gem"; type = "gem";
}; };
version = "2.4.0"; version = "2.4.1";
}; };
crass = { crass = {
groups = ["default"]; groups = ["default"];
@ -807,10 +807,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "0qbj8lvl8lzrbpfj9612iiwxf53drb8jg1l4bd1mcqyds8lw9z9z"; sha256 = "021a7f9lmvz5d3g4zdzm99xal9w3z6wzv2wyrp3jr929nnlf7hdd";
type = "gem"; type = "gem";
}; };
version = "7.5.0"; version = "7.6.0";
}; };
dnsruby = { dnsruby = {
dependencies = ["simpleidn"]; dependencies = ["simpleidn"];
@ -1089,10 +1089,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "02yn2jl0bz6kadx5851545rpqnfqd6gzbk2js9fj318jx9kl7r2m"; sha256 = "1zhids3iqxq8lcslvg49pkg3lyhw4y8ha0q3p0p2grx0dnl2kfi4";
type = "gem"; type = "gem";
}; };
version = "4.1.3"; version = "4.1.5";
}; };
gemoji = { gemoji = {
groups = ["default"]; groups = ["default"];
@ -1120,10 +1120,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "12hyzvy3853qrlcczmaq5p31lv16klgnkz598amia3kphgbdg5rb"; sha256 = "0q86kaw1hcyqbwbp5fbx2rlbv7wdklprf76xvxgsb8qa6dxgyv6f";
type = "gem"; type = "gem";
}; };
version = "4.1.3"; version = "4.1.5";
}; };
git = { git = {
dependencies = ["addressable" "rchardet"]; dependencies = ["addressable" "rchardet"];
@ -1174,10 +1174,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "1vapcxmbyfpgid5blm0m6j3g5cajhpr2317yhvfbpa2mgfwjyj4p"; sha256 = "0plr7159pfy9f5aaxygaz4shzb6y13g83r430583r9ixa6slnll3";
type = "gem"; type = "gem";
}; };
version = "4.1.3"; version = "4.1.5";
}; };
globalid = { globalid = {
dependencies = ["activesupport"]; dependencies = ["activesupport"];
@ -1196,10 +1196,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "1q2mjah6w9lxc6b4ys3rwclqf1fy55x4jjxp7rn2bz6whq768b80"; sha256 = "186fj7c6wz90y7h569qm25hvyarsslj1mkq0fz9mv7iyj64d9czk";
type = "gem"; type = "gem";
}; };
version = "4.1.3"; version = "4.1.5";
}; };
gpgme = { gpgme = {
dependencies = ["mini_portile2"]; dependencies = ["mini_portile2"];
@ -1966,10 +1966,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "1xz5mrp103i95r4wfxny1f5x7h7vgnxv2p9cdkmmdjzrsk23rijs"; sha256 = "0aarly8kl587d100n81cphks5vp2rnkm8dnf69p0dr7k78dasas3";
type = "gem"; type = "gem";
}; };
version = "4.0.0"; version = "4.1.1";
}; };
link-header-parser = { link-header-parser = {
groups = ["default"]; groups = ["default"];
@ -2019,10 +2019,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "1mi4ia13fisc97fzd8xcd9wkjdki7zfbmdn1xkdzplicir68gyp8"; sha256 = "1p744kjpb5zk2ihklbykzii77alycjc04vpnm2ch2f3cp65imlj3";
type = "gem"; type = "gem";
}; };
version = "2.20.0"; version = "2.21.3";
}; };
mab = { mab = {
groups = ["default"]; groups = ["default"];
@ -2153,10 +2153,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "1af4yarhbbx62f7qsmgg5fynrik0s36wjy3difkawy536xg343mp"; sha256 = "0z7f38iq37h376n9xbl4gajdrnwzq284c9v1py4imw3gri2d5cj6";
type = "gem"; type = "gem";
}; };
version = "2.8.1"; version = "2.8.2";
}; };
minima = { minima = {
dependencies = ["jekyll" "jekyll-feed" "jekyll-seo-tag"]; dependencies = ["jekyll" "jekyll-feed" "jekyll-seo-tag"];
@ -2194,10 +2194,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "172ky0r1jfcm3xyg067pia7k1lhc15vw9svv93max120gcdbrvji"; sha256 = "06n7556vxr3awh92xy1k5bli98bvq4pjm08mnl68ay4fzln7lcsg";
type = "gem"; type = "gem";
}; };
version = "1.7.0"; version = "1.7.1";
}; };
multi_json = { multi_json = {
groups = ["default"]; groups = ["default"];
@ -2361,10 +2361,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "0fnw0z8zl8b5k35g9m5hhc1g4s6ajzjinhyxnqjrx7l7p07fw71v"; sha256 = "10zmnzk0b6v48s9nyrgnidcinn06m52ph3mzzcjh5q7xrzii3mb8";
type = "gem"; type = "gem";
}; };
version = "1.14.3"; version = "1.15.1";
}; };
octokit = { octokit = {
dependencies = ["faraday" "sawyer"]; dependencies = ["faraday" "sawyer"];
@ -2447,10 +2447,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "0i96sa4av0zg85dmwbvjgmhgspbv98a057w5bg20qq1zcr5v31kv"; sha256 = "06g5ajjvm961yhqj4mm0j05sfz8fq0ybqcd5i37cyabm7jxxj4d4";
type = "gem"; type = "gem";
}; };
version = "4.1.3"; version = "4.1.5";
}; };
parallel = { parallel = {
groups = ["default"]; groups = ["default"];
@ -2478,10 +2478,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "0mzy0s4cdqm5nvgyj55idc2pv51k3zlgw6sa7825dcyrk2ihcx0c"; sha256 = "146x3jhipg55q9ig7l0x8sryanz1zfhai2vszmih7wmf8zi043gl";
type = "gem"; type = "gem";
}; };
version = "1.1.0"; version = "1.1.1";
}; };
pastel = { pastel = {
dependencies = ["tty-color"]; dependencies = ["tty-color"];
@ -3006,10 +3006,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "0l46lw5gfj3mcm982wpmx7br4rs466gyislv0hfwcsk8dxhv1zkw"; sha256 = "0013mnzj6ql3v8nif7fm8n2832jnwa46azync6azsg9d4iblrfmy";
type = "gem"; type = "gem";
}; };
version = "1.50.2"; version = "1.51.0";
}; };
rubocop-ast = { rubocop-ast = {
dependencies = ["parser"]; dependencies = ["parser"];
@ -3017,10 +3017,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "0n2gsafg6p7nr1z8i1hkvp2qqkkbg842ba183dnl0h08xd9ms6q5"; sha256 = "0gs8zjigzdqj0kcmmrhvd4zavwr6kz6h9qvrh9m7bhy56f4aqljs";
type = "gem"; type = "gem";
}; };
version = "1.28.0"; version = "1.28.1";
}; };
rubocop-performance = { rubocop-performance = {
dependencies = ["rubocop" "rubocop-ast"]; dependencies = ["rubocop" "rubocop-ast"];
@ -3216,20 +3216,20 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "1wizqirxln8f2d4aihqizfbyzlssnan058zkqh24siynk38567lg"; sha256 = "0n6hiim82lfydzv71lgzmkyacsbm3q5nw7ixavprci5wrl9zwls7";
type = "gem"; type = "gem";
}; };
version = "0.18.0"; version = "0.19.1";
}; };
sequel = { sequel = {
groups = ["default"]; groups = ["default"];
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "1qajss2mc8rw9pxgfjl4mxacnss5xnr603ydms0knmm6cb61vlb4"; sha256 = "0p6z0mdglwynlcz4mnlk1mz8vxsr41id1pf0dfrbgnwpv8zvlika";
type = "gem"; type = "gem";
}; };
version = "5.67.0"; version = "5.68.0";
}; };
sequel_pg = { sequel_pg = {
dependencies = ["pg" "sequel"]; dependencies = ["pg" "sequel"];
@ -3353,10 +3353,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "1i47n6nkyigkyag00yqf9f3nj11bm1lb0ds5nkvkdvm7lxbna5jq"; sha256 = "0h95kr5529qv786mfk8r2jjdsdi6v7v3k3dpz69mrcc9i0vpdd37";
type = "gem"; type = "gem";
}; };
version = "1.6.2"; version = "1.6.3";
}; };
string_inflection = { string_inflection = {
groups = ["default"]; groups = ["default"];
@ -3416,10 +3416,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "07k5wr2ypsmsbyc9d1plhdki4xr7vvggld8r1i49iljkrpx5nbqc"; sha256 = "1jj8lny5hp8gm920k73r6xpb40j5mpiw1dcr8g5id4hxjggkw8by";
type = "gem"; type = "gem";
}; };
version = "0.10.0"; version = "0.10.1";
}; };
terminal-table = { terminal-table = {
groups = ["default"]; groups = ["default"];
@ -3436,10 +3436,10 @@
platforms = []; platforms = [];
source = { source = {
remotes = ["https://rubygems.org"]; remotes = ["https://rubygems.org"];
sha256 = "0inl77jh4ia03jw3iqm5ipr76ghal3hyjrd6r8zqsswwvi9j2xdi"; sha256 = "0k7j2wn14h1pl4smibasw0bp66kg626drxb59z7rzflch99cd4rg";
type = "gem"; type = "gem";
}; };
version = "1.2.1"; version = "1.2.2";
}; };
thrift = { thrift = {
groups = ["default"]; groups = ["default"];