Merge master into haskell-updates

This commit is contained in:
github-actions[bot] 2024-04-05 00:13:01 +00:00 committed by GitHub
commit 64ff7962ee
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
214 changed files with 4213 additions and 2469 deletions

View File

@ -19,7 +19,7 @@ For new packages please briefly describe the package or provide a link to its ho
- [ ] `sandbox = true`
- [ ] Tested, as applicable:
- [NixOS test(s)](https://nixos.org/manual/nixos/unstable/index.html#sec-nixos-tests) (look inside [nixos/tests](https://github.com/NixOS/nixpkgs/blob/master/nixos/tests))
- and/or [package tests](https://nixos.org/manual/nixpkgs/unstable/#sec-package-tests)
- and/or [package tests](https://github.com/NixOS/nixpkgs/blob/master/pkgs/README.md#package-tests)
- or, for functions and "core" functionality, tests in [lib/tests](https://github.com/NixOS/nixpkgs/blob/master/lib/tests) or [pkgs/test](https://github.com/NixOS/nixpkgs/blob/master/pkgs/test)
- made sure NixOS tests are [linked](https://nixos.org/manual/nixpkgs/unstable/#ssec-nixos-tests-linking) to the relevant packages
- [ ] Tested compilation of all packages that depend on this change using `nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD"`. Note: all changes have to be committed, also see [nixpkgs-review usage](https://github.com/Mic92/nixpkgs-review#usage)

View File

@ -24,7 +24,7 @@ jobs:
with:
ref: ${{ github.event.pull_request.head.sha }}
- name: Create backport PRs
uses: korthout/backport-action@e8161d6a0dbfa2651b7daa76cbb75bc7c925bbf3 # v2.4.1
uses: korthout/backport-action@ef20d86abccbac3ee3a73cb2efbdc06344c390e5 # v2.5.0
with:
# Config README: https://github.com/korthout/backport-action#backport-action
copy_labels_pattern: 'severity:\ssecurity'

View File

@ -26,6 +26,6 @@ jobs:
with:
# This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere.
name: nixpkgs-ci
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- name: Building NixOS manual
run: NIX_PATH=nixpkgs=$(pwd) nix-build --option restrict-eval true nixos/release.nix -A manual.x86_64-linux

View File

@ -27,6 +27,6 @@ jobs:
with:
# This cache is for the nixpkgs repo checks and should not be trusted or used elsewhere.
name: nixpkgs-ci
signingKey: '${{ secrets.CACHIX_SIGNING_KEY }}'
authToken: '${{ secrets.CACHIX_AUTH_TOKEN }}'
- name: Building Nixpkgs manual
run: NIX_PATH=nixpkgs=$(pwd) nix-build --option restrict-eval true pkgs/top-level/release.nix -A manual -A manual.tests

View File

@ -157,27 +157,385 @@ Here are security considerations for this scenario:
In more concrete terms, if you use any other hash, the [`--insecure` flag](https://curl.se/docs/manpage.html#-k) will be passed to the underlying call to `curl` when downloading content.
## `fetchurl` and `fetchzip` {#fetchurl}
[]{#fetchurl}
## `fetchurl` {#sec-pkgs-fetchers-fetchurl}
Two basic fetchers are `fetchurl` and `fetchzip`. Both of these have two required arguments, a URL and a hash. The hash is typically `hash`, although many more hash algorithms are supported. Nixpkgs contributors are currently recommended to use `hash`. This hash will be used by Nix to identify your source. A typical usage of `fetchurl` is provided below.
`fetchurl` returns a [fixed-output derivation](https://nixos.org/manual/nix/stable/glossary.html#gloss-fixed-output-derivation) which downloads content from a given URL and stores the unaltered contents within the Nix store.
It uses {manpage}`curl(1)` internally, and allows its behaviour to be modified by specifying a few attributes in the argument to `fetchurl` (see the documentation for attributes `curlOpts`, `curlOptsList`, and `netrcPhase`).
The resulting [store path](https://nixos.org/manual/nix/stable/store/store-path) is determined by the hash given to `fetchurl`, and also the `name` (or `pname` and `version`) values.
If neither `name` nor `pname` and `version` are specified when calling `fetchurl`, it will default to using the [basename](https://nixos.org/manual/nix/stable/language/builtins.html#builtins-baseNameOf) of `url` or the first element of `urls`.
If `pname` and `version` are specified, `fetchurl` will use those values and will ignore `name`, even if it is also specified.
### Inputs {#sec-pkgs-fetchers-fetchurl-inputs}
`fetchurl` requires an attribute set with the following attributes:
`url` (String; _optional_)
: The URL to download from.
:::{.note}
Either `url` or `urls` must be specified, but not both.
:::
All URLs of the format [specified here](https://curl.se/docs/url-syntax.html#rfc-3986-plus) are supported.
_Default value:_ `""`.
`urls` (List of String; _optional_)
: A list of URLs, specifying download locations for the same content.
Each URL will be tried in order until one of them succeeds with some content or all of them fail.
See [](#ex-fetchers-fetchurl-nixpkgs-version-multiple-urls) to understand how this attribute affects the behaviour of `fetchurl`.
:::{.note}
Either `url` or `urls` must be specified, but not both.
:::
_Default value:_ `[]`.
`hash` (String; _optional_)
: Hash of the derivation output of `fetchurl`, following the format for integrity metadata as defined by [SRI](https://www.w3.org/TR/SRI/).
For more information, see [](#chap-pkgs-fetchers-caveats).
:::{.note}
It is recommended that you use the `hash` attribute instead of the other hash-specific attributes that exist for backwards compatibility.
If `hash` is not specified, you must specify `outputHash` and `outputHashAlgo`, or one of `sha512`, `sha256`, or `sha1`.
:::
_Default value:_ `""`.
`outputHash` (String; _optional_)
: Hash of the derivation output of `fetchurl` in the format expected by Nix.
See [the documentation on the Nix manual](https://nixos.org/manual/nix/stable/language/advanced-attributes.html#adv-attr-outputHash) for more information about its format.
:::{.note}
It is recommended that you use the `hash` attribute instead.
If `outputHash` is specified, you must also specify `outputHashAlgo`.
:::
_Default value:_ `""`.
`outputHashAlgo` (String; _optional_)
: Algorithm used to generate the value specified in `outputHash`.
See [the documentation on the Nix manual](https://nixos.org/manual/nix/stable/language/advanced-attributes.html#adv-attr-outputHashAlgo) for more information about the values it supports.
:::{.note}
It is recommended that you use the `hash` attribute instead.
The value specified in `outputHashAlgo` will be ignored if `outputHash` isn't also specified.
:::
_Default value:_ `""`.
`sha1` (String; _optional_)
: SHA-1 hash of the derivation output of `fetchurl` in the format expected by Nix.
See [the documentation on the Nix manual](https://nixos.org/manual/nix/stable/language/advanced-attributes.html#adv-attr-outputHash) for more information about its format.
:::{.note}
It is recommended that you use the `hash` attribute instead.
:::
_Default value:_ `""`.
`sha256` (String; _optional_)
: SHA-256 hash of the derivation output of `fetchurl` in the format expected by Nix.
See [the documentation on the Nix manual](https://nixos.org/manual/nix/stable/language/advanced-attributes.html#adv-attr-outputHash) for more information about its format.
:::{.note}
It is recommended that you use the `hash` attribute instead.
:::
_Default value:_ `""`.
`sha512` (String; _optional_)
: SHA-512 hash of the derivation output of `fetchurl` in the format expected by Nix.
See [the documentation on the Nix manual](https://nixos.org/manual/nix/stable/language/advanced-attributes.html#adv-attr-outputHash) for more information about its format.
:::{.note}
It is recommended that you use the `hash` attribute instead.
:::
_Default value:_ `""`.
`name` (String; _optional_)
: The symbolic name of the downloaded file when saved in the Nix store.
See [the `fetchurl` overview](#sec-pkgs-fetchers-fetchurl) for details on how the name of the file is decided.
_Default value:_ `""`.
`pname` (String; _optional_)
: A base name, which will be combined with `version` to form the symbolic name of the downloaded file when saved in the Nix store.
See [the `fetchurl` overview](#sec-pkgs-fetchers-fetchurl) for details on how the name of the file is decided.
:::{.note}
If `pname` is specified, you must also specify `version`, otherwise `fetchurl` will ignore the value of `pname`.
:::
_Default value:_ `""`.
`version` (String; _optional_)
: A version, which will be combined with `pname` to form the symbolic name of the downloaded file when saved in the Nix store.
See [the `fetchurl` overview](#sec-pkgs-fetchers-fetchurl) for details on how the name of the file is decided.
_Default value:_ `""`.
`recursiveHash` (Boolean; _optional_)
: If set to `true`, will signal to Nix that the hash given to `fetchurl` was calculated using the `"recursive"` mode.
See [the documentation on the Nix manual](https://nixos.org/manual/nix/stable/language/advanced-attributes.html#adv-attr-outputHashMode) for more information about the existing modes.
By default, `fetchurl` uses `"recursive"` mode when the `executable` attribute is set to `true`, so you don't need to specify `recursiveHash` in this case.
_Default value:_ `false`.
`executable` (Boolean; _optional_)
: If `true`, sets the executable bit on the downloaded file.
_Default value_: `false`.
`downloadToTemp` (Boolean; _optional_)
: If `true`, saves the downloaded file to a temporary location instead of the expected Nix store location.
This is useful when used in conjunction with `postFetch` attribute, otherwise `fetchurl` will not produce any meaningful output.
The location of the downloaded file will be set in the `$downloadedFile` variable, which should be used by the script in the `postFetch` attribute.
See [](#ex-fetchers-fetchurl-nixpkgs-version-postfetch) to understand how to work with this attribute.
_Default value:_ `false`.
`postFetch` (String; _optional_)
: Script executed after the file has been downloaded successfully, and before `fetchurl` finishes running.
Useful for post-processing, to check or transform the file in some way.
See [](#ex-fetchers-fetchurl-nixpkgs-version-postfetch) to understand how to work with this attribute.
_Default value:_ `""`.
`netrcPhase` (String or Null; _optional_)
: Script executed to create a {manpage}`netrc(5)` file to be used with {manpage}`curl(1)`.
The script should create the `netrc` file (note that it does not begin with a ".") in the directory it's currently running in (`$PWD`).
The script is executed during the setup done by `fetchurl` before it runs any of its code to download the specified content.
:::{.note}
If specified, `fetchurl` will automatically alter its invocation of {manpage}`curl(1)` to use the `netrc` file, so you don't need to add anything to `curlOpts` or `curlOptsList`.
:::
:::{.caution}
Since `netrcPhase` needs to be specified in your source Nix code, any secrets that you put directly in it will be world-readable by design (both in your source code, and when the derivation gets created in the Nix store).
If you want to avoid this behaviour, see the documentation of `netrcImpureEnvVars` for an alternative way of dealing with these secrets.
:::
_Default value_: `null`.
`netrcImpureEnvVars` (List of String; _optional_)
: If specified, `fetchurl` will add these environment variable names to the list of [impure environment variables](https://nixos.org/manual/nix/stable/language/advanced-attributes.html#adv-attr-impureEnvVars), which will be passed from the environment of the calling user to the builder running the `fetchurl` code.
This is useful when used with `netrcPhase` to hide any secrets that are used in it, because the script in `netrcPhase` only needs to reference the environment variables with the secrets in them instead.
However, note that these are called _impure_ variables for a reason:
the environment that starts the build needs to have these variables declared for everything to work properly, which means that additional setup is required outside what Nix controls.
_Default value:_ `[]`.
`curlOpts` (String; _optional_)
: If specified, this value will be appended to the invocation of {manpage}`curl(1)` when downloading the URL(s) given to `fetchurl`.
Multiple arguments can be separated by spaces normally, but values with whitespaces will be interpreted as multiple arguments (instead of a single value), even if the value is escaped.
See `curlOptsList` for a way to pass values with whitespaces in them.
_Default value:_ `""`.
`curlOptsList` (List of String; _optional_)
: If specified, each element of this list will be passed as an argument to the invocation of {manpage}`curl(1)` when downloading the URL(s) given to `fetchurl`.
This allows passing values that contain spaces, with no escaping needed.
_Default value:_ `[]`.
`showURLs` (Boolean; _optional_)
: If set to `true`, this will stop `fetchurl` from downloading anything at all.
Instead, it will output a list of all the URLs it would've used to download the content (after resolving `mirror://` URLs, for example).
This is useful for debugging.
_Default value:_ `false`.
`meta` (Attribute Set; _optional_)
: Specifies any [meta-attributes](#chap-meta) for the derivation returned by `fetchurl`.
_Default value:_ `{}`.
`passthru` (Attribute Set; _optional_)
: Specifies any extra [passthru](#var-stdenv-passthru) attributes for the derivation returned by `fetchurl`.
Note that `fetchurl` defines [passthru attributes of its own](#ssec-pkgs-fetchers-fetchurl-passthru-outputs).
Attributes specified in `passthru` can override the default attributes returned by `fetchurl`.
_Default value:_ `{}`.
`preferLocalBuild` (Boolean; _optional_)
: This is the same attribute as [defined in the Nix manual](https://nixos.org/manual/nix/stable/language/advanced-attributes.html#adv-attr-preferLocalBuild).
It is `true` by default because making a remote machine download the content just duplicates network traffic (since the local machine might download the results from the derivation anyway), but this could be useful in cases where network access is restricted on local machines.
_Default value:_ `true`.
`nativeBuildInputs` (List of Attribute Set; _optional_)
: Additional packages needed to download the content.
This is useful if you need extra packages for `postFetch` or `netrcPhase`, for example.
Has the same semantics as in [](#var-stdenv-nativeBuildInputs).
See [](#ex-fetchers-fetchurl-nixpkgs-version-postfetch) to understand how this can be used with `postFetch`.
_Default value:_ `[]`.
### Passthru outputs {#ssec-pkgs-fetchers-fetchurl-passthru-outputs}
`fetchurl` also defines its own [`passthru`](#var-stdenv-passthru) attributes:
`url` (String)
: The same `url` attribute passed in the argument to `fetchurl`.
### Examples {#ssec-pkgs-fetchers-fetchurl-examples}
:::{.example #ex-fetchers-fetchurl-nixpkgs-version}
# Using `fetchurl` to download a file
The following package downloads a small file from a URL and shows the most common way to use `fetchurl`:
```nix
{ stdenv, fetchurl }:
stdenv.mkDerivation {
name = "hello";
src = fetchurl {
url = "http://www.example.org/hello.tar.gz";
hash = "sha256-BBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB=";
};
{ fetchurl }:
fetchurl {
url = "https://raw.githubusercontent.com/NixOS/nixpkgs/23.11/.version";
hash = "sha256-BZqI7r0MNP29yGH5+yW2tjU9OOpOCEvwWKrWCv5CQ0I=";
}
```
The main difference between `fetchurl` and `fetchzip` is in how they store the contents. `fetchurl` will store the unaltered contents of the URL within the Nix store. `fetchzip` on the other hand, will decompress the archive for you, making files and directories directly accessible in the future. `fetchzip` can only be used with archives. Despite the name, `fetchzip` is not limited to .zip files and can also be used with any tarball.
After building the package, the file will be downloaded and place into the Nix store:
Additional parameters to `fetchurl`:
- `downloadToTemp`: Defaults to `false`. If `true`, saves the source to `$downloadedFile`, to be used in conjunction with `postFetch`
- `postFetch`: Shell code executed after the file has been fetched successfully. Use it for postprocessing, to check or transform the file.
```shell
$ nix-build
(output removed for clarity)
/nix/store/4g9y3x851wqrvim4zcz5x2v3zivmsq8n-version
$ cat /nix/store/4g9y3x851wqrvim4zcz5x2v3zivmsq8n-version
23.11
```
:::
:::{.example #ex-fetchers-fetchurl-nixpkgs-version-multiple-urls}
# Using `fetchurl` to download a file with multiple possible URLs
The following package adapts [](#ex-fetchers-fetchurl-nixpkgs-version) to use multiple URLs.
The first URL was crafted to intentionally return an error to illustrate how `fetchurl` will try multiple URLs until it finds one that works (or all URLs fail).
```nix
{ fetchurl }:
fetchurl {
urls = [
"https://raw.githubusercontent.com/NixOS/nixpkgs/23.11/does-not-exist"
"https://raw.githubusercontent.com/NixOS/nixpkgs/23.11/.version"
];
hash = "sha256-BZqI7r0MNP29yGH5+yW2tjU9OOpOCEvwWKrWCv5CQ0I=";
}
```
After building the package, both URLs will be used to download the file:
```shell
$ nix-build
(some output removed for clarity)
trying https://raw.githubusercontent.com/NixOS/nixpkgs/23.11/does-not-exist
(some output removed for clarity)
curl: (22) The requested URL returned error: 404
trying https://raw.githubusercontent.com/NixOS/nixpkgs/23.11/.version
(some output removed for clarity)
/nix/store/n9asny31z32q7sdw6a8r1gllrsfy53kl-does-not-exist
$ cat /nix/store/n9asny31z32q7sdw6a8r1gllrsfy53kl-does-not-exist
23.11
```
However, note that the name of the file was derived from the first URL (this is further explained in [the `fetchurl` overview](#sec-pkgs-fetchers-fetchurl)).
To ensure the result will have the same name regardless of which URLs are used, we can modify the package:
```nix
{ fetchurl }:
fetchurl {
name = "nixpkgs-version";
urls = [
"https://raw.githubusercontent.com/NixOS/nixpkgs/23.11/does-not-exist"
"https://raw.githubusercontent.com/NixOS/nixpkgs/23.11/.version"
];
hash = "sha256-BZqI7r0MNP29yGH5+yW2tjU9OOpOCEvwWKrWCv5CQ0I=";
}
```
After building the package, the result will have the name we specified:
```shell
$ nix-build
(output removed for clarity)
/nix/store/zczb6wl3al6jm9sm5h3pr6nqn0i5ji9z-nixpkgs-version
```
:::
:::{.example #ex-fetchers-fetchurl-nixpkgs-version-postfetch}
# Manipulating the content downloaded by `fetchurl`
It might be useful to manipulate the content downloaded by `fetchurl` directly in its derivation.
In this example, we'll adapt [](#ex-fetchers-fetchurl-nixpkgs-version) to append the result of running the `hello` package to the contents we download, purely to illustrate how to manipulate the content.
```nix
{ fetchurl, hello, lib }:
fetchurl {
url = "https://raw.githubusercontent.com/NixOS/nixpkgs/23.11/.version";
nativeBuildInputs = [ hello ];
downloadToTemp = true;
postFetch = ''
${lib.getExe hello} >> $downloadedFile
mv $downloadedFile $out
'';
hash = "sha256-ceooQQYmDx5+0nfg40uU3NNI2yKrixP7HZ/xLZUNv+w=";
}
```
After building the package, the resulting file will have "Hello, world!" appended to it:
```shell
$ nix-build
(output removed for clarity)
/nix/store/ifi6pp7q0ag5h7c5v9h1c1c7bhd10c7f-version
$ cat /nix/store/ifi6pp7q0ag5h7c5v9h1c1c7bhd10c7f-version
23.11
Hello, world!
```
Note that the `hash` specified in the package is different than the hash specified in [](#ex-fetchers-fetchurl-nixpkgs-version), because the contents of the output have changed (even though the actual file that was downloaded is the same).
See [](#chap-pkgs-fetchers-caveats) for more details on how to work with the `hash` attribute when the output changes.
:::
## `fetchzip` {#sec-pkgs-fetchers-fetchzip}
Downloads content from a given URL (which is assumed to be an archive), and decompresses the archive for you, making files and directories directly accessible.
`fetchzip` can only be used with archives.
Despite its name, `fetchzip` is not limited to `.zip` files and can also be used with any tarball.
It has two required arguments, a URL and a hash.
The hash is typically `hash`, although many more hash algorithms are supported.
Nixpkgs contributors are currently recommended to use `hash`.
This hash will be used by Nix to identify your source.
A typical usage of `fetchzip` is provided below.
```nix
{ fetchzip }:
fetchzip {
url = "https://github.com/NixOS/patchelf/releases/download/0.18.0/patchelf-0.18.0.tar.gz";
hash = "sha256-3ABYlME9R8klcpJ7MQpyFEFwHmxDDEzIYBqu/CpDYmg=";
}
```
## `fetchpatch` {#fetchpatch}

View File

@ -0,0 +1,69 @@
# D (Dlang) {#dlang}
Nixpkgs provides multiple D compilers such as `ldc`, `dmd` and `gdc`.
These can be used like any other package during build time.
However, Nixpkgs provides a build helper for compiling packages using the `dub` package manager.
Here's an example:
```nix
{
lib,
buildDubPackage,
fetchFromGitHub,
ncurses,
zlib,
}:
buildDubPackage rec {
pname = "btdu";
version = "0.5.1";
src = fetchFromGitHub {
owner = "CyberShadow";
repo = "btdu";
rev = "v${version}";
hash = "sha256-3sSZq+5UJH02IO0Y1yL3BLHDb4lk8k6awb5ZysBQciE=";
};
# generated by dub-to-nix, see below
dubLock = ./dub-lock.json;
buildInputs = [
ncurses
zlib
];
installPhase = ''
runHook preInstall
install -Dm755 btdu -t $out/bin
runHook postInstall
'';
}
```
Note that you need to define `installPhase` because `dub` doesn't know where files should go in `$out`.
Also note that running `dub test` is disabled by default. You can enable it by setting `doCheck = true`.
## Lockfiles {#dub-lockfiles}
Nixpkgs has its own lockfile format for `dub` dependencies, because `dub`'s official "lockfile" format (`dub.selections.json`) is not hash based.
A lockfile can be generated using the `dub-to-nix` helper package.
* Firstly, install `dub-to-nix` into your shell session by running `nix-shell -p dub-to-nix`
* Then navigate to the root of the source of the program you want to package
* Finally, run `dub-to-nix` and it will print the lockfile to stdout. You could pipe stdout into a text file or just copy the output manually into a file.
## `buildDubPackage` parameters {#builddubpackage-parameters}
The `buildDubPackage` function takes an attrset of parameters that are passed on to `stdenv.mkDerivation`.
The following parameters are specific to `buildDubPackage`:
* `dubLock`: A lockfile generated by `dub-to-nix` from the source of the package. Can be either a path to the file, or an attrset already parsed with `lib.importJSON`.
The latter useful if the package uses `dub` dependencies not already in the lockfile. (e.g. if the package calls `dub run some-dub-package` manually)
* `dubBuildType ? "release"`: The build type to pass to `dub build` as a value for the `--build=` flag.
* `dubFlags ? []`: The flags to pass to `dub build` and `dub test`.
* `dubBuildFlags ? []`: The flags to pass to `dub build`.
* `dubTestFlags ? []`: The flags to pass to `dub test`.
* `compiler ? ldc`: The D compiler to be used by `dub`.

View File

@ -14,6 +14,7 @@ cuda.section.md
cuelang.section.md
dart.section.md
dhall.section.md
dlang.section.md
dotnet.section.md
emscripten.section.md
gnome.section.md

View File

@ -347,6 +347,22 @@ div.appendix div.example {
margin-top: 1.5em;
}
div.book div.example details,
div.appendix div.example details {
padding: 5px;
}
div.book div.example details[open],
div.appendix div.example details[open] {
border: 1px solid #aaa;
border-radius: 4px;
}
div.book div.example details>summary,
div.appendix div.example details>summary {
cursor: pointer;
}
div.book br.example-break,
div.appendix br.example-break {
display: none;
@ -414,3 +430,12 @@ div.appendix .informaltable th,
div.appendix .informaltable td {
padding: 0.5rem;
}
/*
This relies on highlight.js applying certain classes on the prompts.
For more details, see https://highlightjs.readthedocs.io/en/latest/css-classes-reference.html#stylable-scopes
*/
.hljs-meta.prompt_ {
user-select: none;
-webkit-user-select: none;
}

View File

@ -69,7 +69,7 @@ let
hasAttr head isAttrs isBool isInt isList isPath isString length
lessThan listToAttrs pathExists readFile replaceStrings seq
stringLength sub substring tail trace;
inherit (self.trivial) id const pipe concat or and bitAnd bitOr bitXor
inherit (self.trivial) id const pipe concat or and xor bitAnd bitOr bitXor
bitNot boolToString mergeAttrs flip mapNullable inNixShell isFloat min max
importJSON importTOML warn warnIf warnIfNot throwIf throwIfNot checkListOfEnum
info showWarnings nixpkgsVersion version isInOldestRelease

View File

@ -314,12 +314,13 @@ let
else if isInt x then "int"
else "string";
/* deprecated:
/**
# Deprecated
For historical reasons, imap has an index starting at 1.
For historical reasons, imap has an index starting at 1.
But for consistency with the rest of the library we want an index
starting at zero.
But for consistency with the rest of the library we want an index
starting at zero.
*/
imap = imap1;

View File

@ -16,9 +16,8 @@ in
unset = { tristate = null; optional = false; };
freeform = x: { freeform = x; optional = false; };
/*
Common patterns/legacy used in common-config/hardened/config.nix
*/
# Common patterns/legacy used in common-config/hardened/config.nix
whenHelpers = version: {
whenAtLeast = ver: mkIf (versionAtLeast version ver);
whenOlder = ver: mkIf (versionOlder version ver);

View File

@ -27,7 +27,7 @@ let
examples = import ./examples.nix { inherit lib; };
architectures = import ./architectures.nix { inherit lib; };
/*
/**
Elaborated systems contain functions, which means that they don't satisfy
`==` for a lack of reflexivity.
@ -45,10 +45,13 @@ let
let removeFunctions = a: filterAttrs (_: v: !isFunction v) a;
in a: b: removeFunctions a == removeFunctions b;
/* List of all Nix system doubles the nixpkgs flake will expose the package set
for. All systems listed here must be supported by nixpkgs as `localSystem`.
/**
List of all Nix system doubles the nixpkgs flake will expose the package set
for. All systems listed here must be supported by nixpkgs as `localSystem`.
**Warning**: This attribute is considered experimental and is subject to change.
:::{.warning}
This attribute is considered experimental and is subject to change.
:::
*/
flakeExposed = import ./flake-systems.nix { };

View File

@ -1,17 +1,21 @@
/*
Nix evaluation tests for various lib functions.
/**
Nix evaluation tests for various lib functions.
Since these tests are implemented with Nix evaluation, error checking is limited to what `builtins.tryEval` can detect, which is `throw`'s and `abort`'s, without error messages.
If you need to test error messages or more complex evaluations, see ./modules.sh, ./sources.sh or ./filesystem.sh as examples.
Since these tests are implemented with Nix evaluation,
error checking is limited to what `builtins.tryEval` can detect,
which is `throw`'s and `abort`'s, without error messages.
To run these tests:
If you need to test error messages or more complex evaluations, see
`lib/tests/modules.sh`, `lib/tests/sources.sh` or `lib/tests/filesystem.sh` as examples.
[nixpkgs]$ nix-instantiate --eval --strict lib/tests/misc.nix
To run these tests:
If the resulting list is empty, all tests passed.
Alternatively, to run all `lib` tests:
[nixpkgs]$ nix-instantiate --eval --strict lib/tests/misc.nix
[nixpkgs]$ nix-build lib/tests/release.nix
If the resulting list is empty, all tests passed.
Alternatively, to run all `lib` tests:
[nixpkgs]$ nix-build lib/tests/release.nix
*/
let
@ -102,6 +106,7 @@ let
types
updateManyAttrsByPath
versions
xor
;
testingThrow = expr: {
@ -199,10 +204,10 @@ runTests {
};
/*
testOr = {
expr = or true false;
expected = true;
};
testOr = {
expr = or true false;
expected = true;
};
*/
testAnd = {
@ -210,6 +215,21 @@ runTests {
expected = false;
};
testXor = {
expr = [
(xor true false)
(xor true true)
(xor false false)
(xor false true)
];
expected = [
true
false
false
true
];
};
testFix = {
expr = fix (x: {a = if x ? a then "a" else "b";});
expected = {a = "a";};
@ -1297,7 +1317,7 @@ runTests {
'';
};
/* right now only invocation check */
# right now only invocation check
testToJSONSimple =
let val = {
foobar = [ "baz" 1 2 3 ];
@ -1308,7 +1328,7 @@ runTests {
expected = builtins.toJSON val;
};
/* right now only invocation check */
# right now only invocation check
testToYAMLSimple =
let val = {
list = [ { one = 1; } { two = 2; } ];

View File

@ -1,4 +1,4 @@
/*
/**
Simulate a migration from a single-instance `services.foo` to a multi instance
`services.foos.<name>` module, where `name = ""` serves as the legacy /
compatibility instance.
@ -10,7 +10,7 @@
The relevant scenarios are tested in separate files:
- ./doRename-condition-enable.nix
- ./doRename-condition-no-enable.nix
*/
*/
{ config, lib, ... }:
let
inherit (lib) mkOption mkEnableOption types doRename;

View File

@ -199,6 +199,24 @@ in {
*/
and = x: y: x && y;
/**
boolean exclusive or
# Inputs
`x`
: 1\. Function argument
`y`
: 2\. Function argument
*/
# We explicitly invert the arguments purely as a type assertion.
# This is invariant under XOR, so it does not affect the result.
xor = x: y: (!x) != (!y);
/**
bitwise not
*/

View File

@ -328,15 +328,24 @@ rec {
"signedInt${toString bit}" "${toString bit} bit signed integer";
in {
/* An int with a fixed range.
*
* Example:
* (ints.between 0 100).check (-1)
* => false
* (ints.between 0 100).check (101)
* => false
* (ints.between 0 0).check 0
* => true
# TODO: Deduplicate with docs in nixos/doc/manual/development/option-types.section.md
/**
An int with a fixed range.
# Example
:::{.example}
## `lib.types.ints.between` usage example
```nix
(ints.between 0 100).check (-1)
=> false
(ints.between 0 100).check (101)
=> false
(ints.between 0 0).check 0
=> true
```
:::
*/
inherit between;

View File

@ -17193,6 +17193,12 @@
githubId = 2660;
name = "Russell Sim";
};
rutherther = {
name = "Rutherther";
email = "rutherther@proton.me";
github = "rutherther";
githubId = 12197024;
};
ruuda = {
email = "dev+nix@veniogames.com";
github = "ruuda";

View File

@ -40,6 +40,8 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
- A new option `systemd.sysusers.enable` was added. If enabled, users and
groups are created with systemd-sysusers instead of with a custom perl script.
- The default dbus implementation has transitioned to dbus-broker from the classic dbus daemon for better performance and reliability. Users can revert to the classic dbus daemon by setting `services.dbus.implementation = "dbus";`. For detailed deviations, refer to [dbus-broker's deviations page](https://github.com/bus1/dbus-broker/wiki/Deviations).
- A new option `virtualisation.containers.cdi` was added. It contains `static` and `dynamic` attributes (corresponding to `/etc/cdi` and `/run/cdi` respectively) to configure the Container Device Interface (CDI).
- `virtualisation.docker.enableNvidia` and `virtualisation.podman.enableNvidia` options are deprecated. `virtualisation.containers.cdi.dynamic.nvidia.enable` should be used instead. This option will expose GPUs on containers with the `--device` CLI option. This is supported by Docker 25, Podman 3.2.0 and Singularity 4. Any container runtime that supports the CDI specification will take advantage of this feature.
@ -109,6 +111,8 @@ Use `services.pipewire.extraConfig` or `services.pipewire.configPackages` for Pi
- [Anki Sync Server](https://docs.ankiweb.net/sync-server.html), the official sync server built into recent versions of Anki. Available as [services.anki-sync-server](#opt-services.anki-sync-server.enable).
The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been marked deprecated and will be dropped after 24.05 due to lack of maintenance of the anki-sync-server softwares.
- [mautrix-meta](https://github.com/mautrix/meta), a Matrix <-> Facebook and Matrix <-> Instagram hybrid puppeting/relaybot bridge. Available as services.mautrix-meta
- [transfer-sh](https://github.com/dutchcoders/transfer.sh), a tool that supports easy and fast file sharing from the command-line. Available as [services.transfer-sh](#opt-services.transfer-sh.enable).
- [MollySocket](https://github.com/mollyim/mollysocket) which allows getting Signal notifications via UnifiedPush.
@ -137,6 +141,8 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
- [TuxClocker](https://github.com/Lurkki14/tuxclocker), a hardware control and monitoring program. Available as [programs.tuxclocker](#opt-programs.tuxclocker.enable).
- binfmt option for AppImage-run to support running [AppImage](https://appimage.org/)'s seamlessly on NixOS.. Available as [programs.appimage.binfmt](#opt-programs.appimage.binfmt).
- [ALVR](https://github.com/alvr-org/alvr), a VR desktop streamer. Available as [programs.alvr](#opt-programs.alvr.enable)
- [RustDesk](https://rustdesk.com), a full-featured open source remote control alternative for self-hosting and security with minimal configuration. Alternative to TeamViewer.
@ -206,6 +212,9 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
"mysecret"` becomes `services.aria2.rpcSecretFile = "/path/to/secret_file"`
where the file `secret_file` contains the string `mysecret`.
- `openssh`, `openssh_hpn` and `openssh_gssapi` are now compiled without support for the DSA signature algorithm as it is being deprecated upstream. Users still relying on DSA keys should consider upgrading
to another signature algorithm. It is however possible, for the time being, to restore the DSA keys support using `override` to set `dsaKeysSupport = true`.
- `buildGoModule` now throws error when `vendorHash` is not specified. `vendorSha256`, deprecated in Nixpkgs 23.11, is now ignored and is no longer a `vendorHash` alias.
- Invidious has changed its default database username from `kemal` to `invidious`. Setups involving an externally provisioned database (i.e. `services.invidious.database.createLocally == false`) should adjust their configuration accordingly. The old `kemal` user will not be removed automatically even when the database is provisioned automatically.(https://github.com/NixOS/nixpkgs/pull/265857)
@ -400,6 +409,9 @@ The pre-existing [services.ankisyncd](#opt-services.ankisyncd.enable) has been m
The `nimPackages` and `nim2Packages` sets have been removed.
See https://nixos.org/manual/nixpkgs/unstable#nim for more information.
- Programs written in [D](https://dlang.org/) using the `dub` build system and package manager can now be built using `buildDubPackage` utilizing lockfiles provided by the new `dub-to-nix` helper program.
See the [D section](https://nixos.org/manual/nixpkgs/unstable#dlang) in the manual for more information.
- [Portunus](https://github.com/majewsky/portunus) has been updated to major version 2.
This version of Portunus supports strong password hashes, but the legacy hash SHA-256 is also still supported to ensure a smooth migration of existing user accounts.
After upgrading, follow the instructions on the [upstream release notes](https://github.com/majewsky/portunus/releases/tag/v2.0.0) to upgrade all user accounts to strong password hashes.

View File

@ -871,7 +871,6 @@ in {
}
{
assertion = let
xor = a: b: a && !b || b && !a;
isEffectivelySystemUser = user.isSystemUser || (user.uid != null && user.uid < 1000);
in xor isEffectivelySystemUser user.isNormalUser;
message = ''

View File

@ -143,6 +143,7 @@
./programs/adb.nix
./programs/alvr.nix
./programs/appgate-sdp.nix
./programs/appimage.nix
./programs/atop.nix
./programs/ausweisapp.nix
./programs/autojump.nix
@ -651,6 +652,7 @@
./services/matrix/hebbot.nix
./services/matrix/maubot.nix
./services/matrix/mautrix-facebook.nix
./services/matrix/mautrix-meta.nix
./services/matrix/mautrix-telegram.nix
./services/matrix/mautrix-whatsapp.nix
./services/matrix/mjolnir.nix
@ -1155,6 +1157,7 @@
./services/networking/tayga.nix
./services/networking/tcpcrypt.nix
./services/networking/teamspeak3.nix
./services/networking/technitium-dns-server.nix
./services/networking/teleport.nix
./services/networking/tetrd.nix
./services/networking/tftpd.nix

View File

@ -0,0 +1,33 @@
{ lib, config, pkgs, ... }:
let
cfg = config.programs.appimage;
in
{
options.programs.appimage = {
enable = lib.mkEnableOption "appimage-run wrapper script for executing appimages on NixOS";
binfmt = lib.mkEnableOption "binfmt registration to run appimages via appimage-run seamlessly";
package = lib.mkPackageOption pkgs "appimage-run" {
example = ''
pkgs.appimage-run.override {
extraPkgs = pkgs: [ pkgs.ffmpeg pkgs.imagemagick ];
}
'';
};
};
config = lib.mkIf cfg.enable {
boot.binfmt.registrations.appimage = lib.mkIf cfg.binfmt {
wrapInterpreterInShell = false;
interpreter = lib.getExe cfg.package;
recognitionType = "magic";
offset = 0;
mask = ''\xff\xff\xff\xff\x00\x00\x00\x00\xff\xff\xff'';
magicOrExtension = ''\x7fELF....AI\x02'';
};
environment.systemPackages = [ cfg.package ];
};
meta.maintainers = with lib.maintainers; [ jopejoe1 atemu ];
}

View File

@ -163,9 +163,9 @@ in
};
options = mkOption {
type = with types; listOf (enum [ "NOPASSWD" "PASSWD" "NOEXEC" "EXEC" "SETENV" "NOSETENV" "LOG_INPUT" "NOLOG_INPUT" "LOG_OUTPUT" "NOLOG_OUTPUT" ]);
type = with types; listOf (enum [ "NOPASSWD" "PASSWD" "NOEXEC" "EXEC" "SETENV" "NOSETENV" "LOG_INPUT" "NOLOG_INPUT" "LOG_OUTPUT" "NOLOG_OUTPUT" "MAIL" "NOMAIL" "FOLLOW" "NOFLLOW" "INTERCEPT" "NOINTERCEPT"]);
description = mdDoc ''
Options for running the command. Refer to the [sudo manual](https://www.sudo.ws/man/1.7.10/sudoers.man.html).
Options for running the command. Refer to the [sudo manual](https://www.sudo.ws/docs/man/1.9.15/sudoers.man/#Tag_Spec).
'';
default = [];
};

View File

@ -0,0 +1,562 @@
{ config, pkgs, lib, ... }:
let
settingsFormat = pkgs.formats.yaml {};
upperConfig = config;
cfg = config.services.mautrix-meta;
upperCfg = cfg;
fullDataDir = cfg: "/var/lib/${cfg.dataDir}";
settingsFile = cfg: "${fullDataDir cfg}/config.yaml";
settingsFileUnsubstituted = cfg: settingsFormat.generate "mautrix-meta-config.yaml" cfg.settings;
metaName = name: "mautrix-meta-${name}";
enabledInstances = lib.filterAttrs (name: config: config.enable) config.services.mautrix-meta.instances;
registerToSynapseInstances = lib.filterAttrs (name: config: config.enable && config.registerToSynapse) config.services.mautrix-meta.instances;
in {
options = {
services.mautrix-meta = {
package = lib.mkPackageOption pkgs "mautrix-meta" { };
instances = lib.mkOption {
type = lib.types.attrsOf (lib.types.submodule ({ config, name, ... }: {
options = {
enable = lib.mkEnableOption "Mautrix-Meta, a Matrix <-> Facebook and Matrix <-> Instagram hybrid puppeting/relaybot bridge";
dataDir = lib.mkOption {
type = lib.types.str;
default = metaName name;
description = ''
Path to the directory with database, registration, and other data for the bridge service.
This path is relative to `/var/lib`, it cannot start with `../` (it cannot be outside of `/var/lib`).
'';
};
registrationFile = lib.mkOption {
type = lib.types.path;
readOnly = true;
description = ''
Path to the yaml registration file of the appservice.
'';
};
registerToSynapse = lib.mkOption {
type = lib.types.bool;
default = true;
description = ''
Whether to add registration file to `services.matrix-synapse.settings.app_service_config_files` and
make Synapse wait for registration service.
'';
};
settings = lib.mkOption rec {
apply = lib.recursiveUpdate default;
inherit (settingsFormat) type;
default = {
homeserver = {
software = "standard";
domain = "";
address = "";
};
appservice = {
id = "";
database = {
type = "sqlite3-fk-wal";
uri = "file:${fullDataDir config}/mautrix-meta.db?_txlock=immediate";
};
bot = {
username = "";
};
hostname = "localhost";
port = 29319;
address = "http://${config.settings.appservice.hostname}:${toString config.settings.appservice.port}";
};
meta = {
mode = "";
};
bridge = {
# Enable encryption by default to make the bridge more secure
encryption = {
allow = true;
default = true;
require = true;
# Recommended options from mautrix documentation
# for additional security.
delete_keys = {
dont_store_outbound = true;
ratchet_on_decrypt = true;
delete_fully_used_on_decrypt = true;
delete_prev_on_new_session = true;
delete_on_device_delete = true;
periodically_delete_expired = true;
delete_outdated_inbound = true;
};
verification_levels = {
receive = "cross-signed-tofu";
send = "cross-signed-tofu";
share = "cross-signed-tofu";
};
};
permissions = {};
};
logging = {
min_level = "info";
writers = lib.singleton {
type = "stdout";
format = "pretty-colored";
time_format = " ";
};
};
};
defaultText = ''
{
homeserver = {
software = "standard";
address = "https://''${config.settings.homeserver.domain}";
};
appservice = {
database = {
type = "sqlite3-fk-wal";
uri = "file:''${fullDataDir config}/mautrix-meta.db?_txlock=immediate";
};
hostname = "localhost";
port = 29319;
address = "http://''${config.settings.appservice.hostname}:''${toString config.settings.appservice.port}";
};
bridge = {
# Require encryption by default to make the bridge more secure
encryption = {
allow = true;
default = true;
require = true;
# Recommended options from mautrix documentation
# for optimal security.
delete_keys = {
dont_store_outbound = true;
ratchet_on_decrypt = true;
delete_fully_used_on_decrypt = true;
delete_prev_on_new_session = true;
delete_on_device_delete = true;
periodically_delete_expired = true;
delete_outdated_inbound = true;
};
verification_levels = {
receive = "cross-signed-tofu";
send = "cross-signed-tofu";
share = "cross-signed-tofu";
};
};
};
logging = {
min_level = "info";
writers = lib.singleton {
type = "stdout";
format = "pretty-colored";
time_format = " ";
};
};
};
'';
description = ''
{file}`config.yaml` configuration as a Nix attribute set.
Configuration options should match those described in
[example-config.yaml](https://github.com/mautrix/meta/blob/main/example-config.yaml).
Secret tokens should be specified using {option}`environmentFile`
instead
'';
};
environmentFile = lib.mkOption {
type = lib.types.nullOr lib.types.path;
default = null;
description = ''
File containing environment variables to substitute when copying the configuration
out of Nix store to the `services.mautrix-meta.dataDir`.
Can be used for storing the secrets without making them available in the Nix store.
For example, you can set `services.mautrix-meta.settings.appservice.as_token = "$MAUTRIX_META_APPSERVICE_AS_TOKEN"`
and then specify `MAUTRIX_META_APPSERVICE_AS_TOKEN="{token}"` in the environment file.
This value will get substituted into the configuration file as as token.
'';
};
serviceDependencies = lib.mkOption {
type = lib.types.listOf lib.types.str;
default =
[ config.registrationServiceUnit ] ++
(lib.lists.optional upperConfig.services.matrix-synapse.enable upperConfig.services.matrix-synapse.serviceUnit) ++
(lib.lists.optional upperConfig.services.matrix-conduit.enable "matrix-conduit.service") ++
(lib.lists.optional upperConfig.services.dendrite.enable "dendrite.service");
defaultText = ''
[ config.registrationServiceUnit ] ++
(lib.lists.optional upperConfig.services.matrix-synapse.enable upperConfig.services.matrix-synapse.serviceUnit) ++
(lib.lists.optional upperConfig.services.matrix-conduit.enable "matrix-conduit.service") ++
(lib.lists.optional upperConfig.services.dendrite.enable "dendrite.service");
'';
description = ''
List of Systemd services to require and wait for when starting the application service.
'';
};
serviceUnit = lib.mkOption {
type = lib.types.str;
readOnly = true;
description = ''
The systemd unit (a service or a target) for other services to depend on if they
need to be started after matrix-synapse.
This option is useful as the actual parent unit for all matrix-synapse processes
changes when configuring workers.
'';
};
registrationServiceUnit = lib.mkOption {
type = lib.types.str;
readOnly = true;
description = ''
The registration service that generates the registration file.
Systemd unit (a service or a target) for other services to depend on if they
need to be started after mautrix-meta registration service.
This option is useful as the actual parent unit for all matrix-synapse processes
changes when configuring workers.
'';
};
};
config = {
serviceUnit = (metaName name) + ".service";
registrationServiceUnit = (metaName name) + "-registration.service";
registrationFile = (fullDataDir config) + "/meta-registration.yaml";
};
}));
description = ''
Configuration of multiple `mautrix-meta` instances.
`services.mautrix-meta.instances.facebook` and `services.mautrix-meta.instances.instagram`
come preconfigured with meta.mode, appservice.id, bot username, display name and avatar.
'';
example = ''
{
facebook = {
enable = true;
settings = {
homeserver.domain = "example.com";
};
};
instagram = {
enable = true;
settings = {
homeserver.domain = "example.com";
};
};
messenger = {
enable = true;
settings = {
meta.mode = "messenger";
homeserver.domain = "example.com";
appservice = {
id = "messenger";
bot = {
username = "messengerbot";
displayname = "Messenger bridge bot";
avatar = "mxc://maunium.net/ygtkteZsXnGJLJHRchUwYWak";
};
};
};
};
}
'';
};
};
};
config = lib.mkMerge [
(lib.mkIf (enabledInstances != []) {
assertions = lib.mkMerge (lib.attrValues (lib.mapAttrs (name: cfg: [
{
assertion = cfg.settings.homeserver.domain != "" && cfg.settings.homeserver.address != "";
message = ''
The options with information about the homeserver:
`services.mautrix-meta.instances.${name}.settings.homeserver.domain` and
`services.mautrix-meta.instances.${name}.settings.homeserver.address` have to be set.
'';
}
{
assertion = builtins.elem cfg.settings.meta.mode [ "facebook" "facebook-tor" "messenger" "instagram" ];
message = ''
The option `services.mautrix-meta.instances.${name}.settings.meta.mode` has to be set
to one of: facebook, facebook-tor, messenger, instagram.
This configures the mode of the bridge.
'';
}
{
assertion = cfg.settings.bridge.permissions != {};
message = ''
The option `services.mautrix-meta.instances.${name}.settings.bridge.permissions` has to be set.
'';
}
{
assertion = cfg.settings.appservice.id != "";
message = ''
The option `services.mautrix-meta.instances.${name}.settings.appservice.id` has to be set.
'';
}
{
assertion = cfg.settings.appservice.bot.username != "";
message = ''
The option `services.mautrix-meta.instances.${name}.settings.appservice.bot.username` has to be set.
'';
}
]) enabledInstances));
users.users = lib.mapAttrs' (name: cfg: lib.nameValuePair "mautrix-meta-${name}" {
isSystemUser = true;
group = "mautrix-meta";
extraGroups = [ "mautrix-meta-registration" ];
description = "Mautrix-Meta-${name} bridge user";
}) enabledInstances;
users.groups.mautrix-meta = {};
users.groups.mautrix-meta-registration = {
members = lib.lists.optional config.services.matrix-synapse.enable "matrix-synapse";
};
services.matrix-synapse = lib.mkIf (config.services.matrix-synapse.enable) (let
registrationFiles = lib.attrValues
(lib.mapAttrs (name: cfg: cfg.registrationFile) registerToSynapseInstances);
in {
settings.app_service_config_files = registrationFiles;
});
systemd.services = lib.mkMerge [
{
matrix-synapse = lib.mkIf (config.services.matrix-synapse.enable) (let
registrationServices = lib.attrValues
(lib.mapAttrs (name: cfg: cfg.registrationServiceUnit) registerToSynapseInstances);
in {
wants = registrationServices;
after = registrationServices;
});
}
(lib.mapAttrs' (name: cfg: lib.nameValuePair "${metaName name}-registration" {
description = "Mautrix-Meta registration generation service - ${metaName name}";
path = [
pkgs.yq
pkgs.envsubst
upperCfg.package
];
script = ''
# substitute the settings file by environment variables
# in this case read from EnvironmentFile
rm -f '${settingsFile cfg}'
old_umask=$(umask)
umask 0177
envsubst \
-o '${settingsFile cfg}' \
-i '${settingsFileUnsubstituted cfg}'
config_has_tokens=$(yq '.appservice | has("as_token") and has("hs_token")' '${settingsFile cfg}')
registration_already_exists=$([[ -f '${cfg.registrationFile}' ]] && echo "true" || echo "false")
echo "There are tokens in the config: $config_has_tokens"
echo "Registration already existed: $registration_already_exists"
# tokens not configured from config/environment file, and registration file
# is already generated, override tokens in config to make sure they are not lost
if [[ $config_has_tokens == "false" && $registration_already_exists == "true" ]]; then
echo "Copying as_token, hs_token from registration into configuration"
yq -sY '.[0].appservice.as_token = .[1].as_token
| .[0].appservice.hs_token = .[1].hs_token
| .[0]' '${settingsFile cfg}' '${cfg.registrationFile}' \
> '${settingsFile cfg}.tmp'
mv '${settingsFile cfg}.tmp' '${settingsFile cfg}'
fi
# make sure --generate-registration does not affect config.yaml
cp '${settingsFile cfg}' '${settingsFile cfg}.tmp'
echo "Generating registration file"
mautrix-meta \
--generate-registration \
--config='${settingsFile cfg}.tmp' \
--registration='${cfg.registrationFile}'
rm '${settingsFile cfg}.tmp'
# no tokens configured, and new were just generated by generate registration for first time
if [[ $config_has_tokens == "false" && $registration_already_exists == "false" ]]; then
echo "Copying newly generated as_token, hs_token from registration into configuration"
yq -sY '.[0].appservice.as_token = .[1].as_token
| .[0].appservice.hs_token = .[1].hs_token
| .[0]' '${settingsFile cfg}' '${cfg.registrationFile}' \
> '${settingsFile cfg}.tmp'
mv '${settingsFile cfg}.tmp' '${settingsFile cfg}'
fi
# Make sure correct tokens are in the registration file
if [[ $config_has_tokens == "true" || $registration_already_exists == "true" ]]; then
echo "Copying as_token, hs_token from configuration to the registration file"
yq -sY '.[1].as_token = .[0].appservice.as_token
| .[1].hs_token = .[0].appservice.hs_token
| .[1]' '${settingsFile cfg}' '${cfg.registrationFile}' \
> '${cfg.registrationFile}.tmp'
mv '${cfg.registrationFile}.tmp' '${cfg.registrationFile}'
fi
umask $old_umask
chown :mautrix-meta-registration '${cfg.registrationFile}'
chmod 640 '${cfg.registrationFile}'
'';
serviceConfig = {
Type = "oneshot";
UMask = 0027;
User = "mautrix-meta-${name}";
Group = "mautrix-meta";
SystemCallFilter = [ "@system-service" ];
ProtectSystem = "strict";
ProtectHome = true;
ReadWritePaths = fullDataDir cfg;
StateDirectory = cfg.dataDir;
EnvironmentFile = cfg.environmentFile;
};
restartTriggers = [ (settingsFileUnsubstituted cfg) ];
}) enabledInstances)
(lib.mapAttrs' (name: cfg: lib.nameValuePair "${metaName name}" {
description = "Mautrix-Meta bridge - ${metaName name}";
wantedBy = [ "multi-user.target" ];
wants = [ "network-online.target" ] ++ cfg.serviceDependencies;
after = [ "network-online.target" ] ++ cfg.serviceDependencies;
serviceConfig = {
Type = "simple";
User = "mautrix-meta-${name}";
Group = "mautrix-meta";
PrivateUsers = true;
LockPersonality = true;
MemoryDenyWriteExecute = true;
NoNewPrivileges = true;
PrivateDevices = true;
PrivateTmp = true;
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectSystem = "strict";
Restart = "on-failure";
RestartSec = "30s";
RestrictRealtime = true;
RestrictSUIDSGID = true;
SystemCallArchitectures = "native";
SystemCallErrorNumber = "EPERM";
SystemCallFilter = ["@system-service"];
UMask = 0027;
WorkingDirectory = fullDataDir cfg;
ReadWritePaths = fullDataDir cfg;
StateDirectory = cfg.dataDir;
EnvironmentFile = cfg.environmentFile;
ExecStart = lib.escapeShellArgs [
(lib.getExe upperCfg.package)
"--config=${settingsFile cfg}"
];
};
restartTriggers = [ (settingsFileUnsubstituted cfg) ];
}) enabledInstances)
];
})
{
services.mautrix-meta.instances = let
inherit (lib.modules) mkDefault;
in {
instagram = {
settings = {
meta.mode = mkDefault "instagram";
bridge = {
username_template = mkDefault "instagram_{{.}}";
};
appservice = {
id = mkDefault "instagram";
port = mkDefault 29320;
bot = {
username = mkDefault "instagrambot";
displayname = mkDefault "Instagram bridge bot";
avatar = mkDefault "mxc://maunium.net/JxjlbZUlCPULEeHZSwleUXQv";
};
};
};
};
facebook = {
settings = {
meta.mode = mkDefault "facebook";
bridge = {
username_template = mkDefault "facebook_{{.}}";
};
appservice = {
id = mkDefault "facebook";
port = mkDefault 29321;
bot = {
username = mkDefault "facebookbot";
displayname = mkDefault "Facebook bridge bot";
avatar = mkDefault "mxc://maunium.net/ygtkteZsXnGJLJHRchUwYWak";
};
};
};
};
};
}
];
meta.maintainers = with lib.maintainers; [ rutherther ];
}

View File

@ -4,14 +4,13 @@ with lib;
let
cfg = config.services.mbpfan;
verbose = optionalString cfg.verbose "v";
settingsFormat = pkgs.formats.ini {};
settingsFile = settingsFormat.generate "mbpfan.ini" cfg.settings;
format = pkgs.formats.ini {};
cfgfile = format.generate "mbpfan.ini" cfg.settings;
in {
options.services.mbpfan = {
enable = mkEnableOption (lib.mdDoc "mbpfan, fan controller daemon for Apple Macs and MacBooks");
package = mkPackageOption pkgs "mbpfan" { };
package = mkPackageOption pkgs "mbpfan" {};
verbose = mkOption {
type = types.bool;
@ -29,7 +28,7 @@ in {
default = {};
description = lib.mdDoc "INI configuration for Mbpfan.";
type = types.submodule {
freeformType = settingsFormat.type;
freeformType = format.type;
options.general.low_temp = mkOption {
type = types.int;
@ -70,12 +69,12 @@ in {
config = mkIf cfg.enable {
boot.kernelModules = [ "coretemp" "applesmc" ];
environment.systemPackages = [ cfg.package ];
environment.etc."mbpfan.conf".source = settingsFile;
environment.etc."mbpfan.conf".source = cfgfile;
systemd.services.mbpfan = {
description = "A fan manager daemon for MacBook Pro";
wantedBy = [ "sysinit.target" ];
after = [ "syslog.target" "sysinit.target" ];
after = [ "sysinit.target" ];
restartTriggers = [ config.environment.etc."mbpfan.conf".source ];
serviceConfig = {

View File

@ -9,7 +9,6 @@ with lib;
let
cfg = config.services.kea;
xor = x: y: (!x && y) || (x && !y);
format = pkgs.formats.json {};
chooseNotNull = x: y: if x != null then x else y;

View File

@ -0,0 +1,109 @@
{
config,
lib,
pkgs,
...
}:
let
cfg = config.services.technitium-dns-server;
stateDir = "/var/lib/technitium-dns-server";
inherit (lib)
mkEnableOption
mkPackageOption
mkOption
mkIf
types
;
in
{
options.services.technitium-dns-server = {
enable = mkEnableOption "Technitium DNS Server";
package = mkPackageOption pkgs "technitium-dns-server" { };
openFirewall = mkOption {
type = types.bool;
default = false;
description = ''
Whether to open ports in the firewall.
Standard ports are 53 (UDP and TCP, for DNS), 5380 and 53443 (TCP, HTTP and HTTPS for web interface).
Specify different or additional ports in options firewallUDPPorts and firewallTCPPorts if necessary.
'';
};
firewallUDPPorts = mkOption {
type = with types; listOf int;
default = [ 53 ];
description = ''
List of UDP ports to open in firewall.
'';
};
firewallTCPPorts = mkOption {
type = with types; listOf int;
default = [
53
5380 # web interface HTTP
53443 # web interface HTTPS
];
description = ''
List of TCP ports to open in firewall.
You might want to open ports 443 and 853 if you intend to use DNS over HTTPS or DNS over TLS.
'';
};
};
config = mkIf cfg.enable {
systemd.services.technitium-dns-server = {
description = "Technitium DNS Server";
wantedBy = [ "multi-user.target" ];
after = [ "network.target" ];
serviceConfig = {
ExecStart = "${cfg.package}/bin/technitium-dns-server ${stateDir}";
DynamicUser = true;
StateDirectory = "technitium-dns-server";
WorkingDirectory = stateDir;
BindPaths = stateDir;
Restart = "always";
RestartSec = 10;
TimeoutStopSec = 10;
KillSignal = "SIGINT";
# Harden the service
LockPersonality = true;
NoNewPrivileges = true;
PrivateDevices = true;
PrivateMounts = true;
PrivateTmp = true;
ProtectClock = true;
ProtectControlGroups = true;
ProtectHome = true;
ProtectHostname = true;
ProtectKernelLogs = true;
ProtectKernelModules = true;
ProtectKernelTunables = true;
ProtectSystem = "strict";
RemoveIPC = true;
RestrictAddressFamilies = "AF_INET AF_INET6 AF_UNIX AF_NETLINK";
RestrictNamespaces = true;
RestrictRealtime = true;
RestrictSUIDSGID = true;
AmbientCapabilities = [ "CAP_NET_BIND_SERVICE" ];
CapabilityBoundingSet = [ "CAP_NET_BIND_SERVICE" ];
};
};
networking.firewall = mkIf cfg.openFirewall {
allowedUDPPorts = cfg.firewallUDPPorts;
allowedTCPPorts = cfg.firewallTCPPorts;
};
};
meta.maintainers = with lib.maintainers; [ fabianrig ];
}

View File

@ -39,7 +39,7 @@ in
implementation = mkOption {
type = types.enum [ "dbus" "broker" ];
default = "dbus";
default = "broker";
description = lib.mdDoc ''
The implementation to use for the message bus defined by the D-Bus specification.
Can be either the classic dbus daemon or dbus-broker, which aims to provide high
@ -101,6 +101,11 @@ in
users.groups.messagebus.gid = config.ids.gids.messagebus;
# Install dbus for dbus tools even when using dbus-broker
environment.systemPackages = [
pkgs.dbus
];
# You still need the dbus reference implementation installed to use dbus-broker
systemd.packages = [
pkgs.dbus
@ -132,10 +137,6 @@ in
})
(mkIf (cfg.implementation == "dbus") {
environment.systemPackages = [
pkgs.dbus
];
security.wrappers.dbus-daemon-launch-helper = {
source = "${pkgs.dbus}/libexec/dbus-daemon-launch-helper";
owner = "root";

View File

@ -522,6 +522,8 @@ in {
matrix-conduit = handleTest ./matrix/conduit.nix {};
matrix-synapse = handleTest ./matrix/synapse.nix {};
matrix-synapse-workers = handleTest ./matrix/synapse-workers.nix {};
mautrix-meta-postgres = handleTest ./matrix/mautrix-meta-postgres.nix {};
mautrix-meta-sqlite = handleTest ./matrix/mautrix-meta-sqlite.nix {};
mattermost = handleTest ./mattermost.nix {};
mealie = handleTest ./mealie.nix {};
mediamtx = handleTest ./mediamtx.nix {};
@ -916,6 +918,7 @@ in {
tang = handleTest ./tang.nix {};
taskserver = handleTest ./taskserver.nix {};
tayga = handleTest ./tayga.nix {};
technitium-dns-server = handleTest ./technitium-dns-server.nix {};
teeworlds = handleTest ./teeworlds.nix {};
telegraf = handleTest ./telegraf.nix {};
teleport = handleTest ./teleport.nix {};

View File

@ -108,6 +108,12 @@ let
assert "BEGIN PGP PUBLIC KEY BLOCK" in server.succeed("curl http://localhost:3000/api/v1/signing-key.gpg")
api_version = json.loads(server.succeed("curl http://localhost:3000/api/forgejo/v1/version")).get("version")
assert "development" != api_version and "-gitea-" in api_version, (
"/api/forgejo/v1/version should not return 'development' "
+ f"but should contain a gitea compatibility version string. Got '{api_version}' instead."
)
server.succeed(
"curl --fail http://localhost:3000/user/sign_up | grep 'Registration is disabled. "
+ "Please contact your site administrator.'"

View File

@ -31,7 +31,6 @@ let
linux_5_15_hardened
linux_6_1_hardened
linux_6_6_hardened
linux_6_7_hardened
linux_rt_5_4
linux_rt_5_10
linux_rt_5_15

View File

@ -0,0 +1,221 @@
import ../make-test-python.nix ({ pkgs, ... }:
let
homeserverDomain = "server";
homeserverUrl = "http://server:8008";
userName = "alice";
botUserName = "instagrambot";
asToken = "this-is-my-totally-randomly-generated-as-token";
hsToken = "this-is-my-totally-randomly-generated-hs-token";
in
{
name = "mautrix-meta-postgres";
meta.maintainers = pkgs.mautrix-meta.meta.maintainers;
nodes = {
server = { config, pkgs, ... }: {
services.postgresql = {
enable = true;
ensureUsers = [
{
name = "mautrix-meta-instagram";
ensureDBOwnership = true;
}
];
ensureDatabases = [
"mautrix-meta-instagram"
];
};
systemd.services.mautrix-meta-instagram = {
wants = [ "postgres.service" ];
after = [ "postgres.service" ];
};
services.matrix-synapse = {
enable = true;
settings = {
database.name = "sqlite3";
enable_registration = true;
# don't use this in production, always use some form of verification
enable_registration_without_verification = true;
listeners = [ {
# The default but tls=false
bind_addresses = [
"0.0.0.0"
];
port = 8008;
resources = [ {
"compress" = true;
"names" = [ "client" ];
} {
"compress" = false;
"names" = [ "federation" ];
} ];
tls = false;
type = "http";
} ];
};
};
services.mautrix-meta.instances.instagram = {
enable = true;
environmentFile = pkgs.writeText ''my-secrets'' ''
AS_TOKEN=${asToken}
HS_TOKEN=${hsToken}
'';
settings = {
homeserver = {
address = homeserverUrl;
domain = homeserverDomain;
};
appservice = {
port = 8009;
as_token = "$AS_TOKEN";
hs_token = "$HS_TOKEN";
database = {
type = "postgres";
uri = "postgres:///mautrix-meta-instagram?host=/var/run/postgresql";
};
bot.username = botUserName;
};
bridge.permissions."@${userName}:server" = "user";
};
};
networking.firewall.allowedTCPPorts = [ 8008 8009 ];
};
client = { pkgs, ... }: {
environment.systemPackages = [
(pkgs.writers.writePython3Bin "do_test"
{
libraries = [ pkgs.python3Packages.matrix-nio ];
flakeIgnore = [
# We don't live in the dark ages anymore.
# Languages like Python that are whitespace heavy will overrun
# 79 characters..
"E501"
];
} ''
import sys
import functools
import asyncio
from nio import AsyncClient, RoomMessageNotice, RoomCreateResponse, RoomInviteResponse
async def message_callback(matrix: AsyncClient, msg: str, _r, e):
print("Received matrix text message: ", e)
assert msg in e.body
exit(0) # Success!
async def run(homeserver: str):
matrix = AsyncClient(homeserver)
response = await matrix.register("${userName}", "foobar")
print("Matrix register response: ", response)
# Open a DM with the bridge bot
response = await matrix.room_create()
print("Matrix create room response:", response)
assert isinstance(response, RoomCreateResponse)
room_id = response.room_id
response = await matrix.room_invite(room_id, "@${botUserName}:${homeserverDomain}")
assert isinstance(response, RoomInviteResponse)
callback = functools.partial(
message_callback, matrix, "Hello, I'm an Instagram bridge bot."
)
matrix.add_event_callback(callback, RoomMessageNotice)
print("Waiting for matrix message...")
await matrix.sync_forever(timeout=30000)
if __name__ == "__main__":
asyncio.run(run(sys.argv[1]))
''
)
];
};
};
testScript = ''
def extract_token(data):
stdout = data[1]
stdout = stdout.strip()
line = stdout.split('\n')[-1]
return line.split(':')[-1].strip("\" '\n")
def get_token_from(token, file):
data = server.execute(f"cat {file} | grep {token}")
return extract_token(data)
def get_as_token_from(file):
return get_token_from("as_token", file)
def get_hs_token_from(file):
return get_token_from("hs_token", file)
config_yaml = "/var/lib/mautrix-meta-instagram/config.yaml"
registration_yaml = "/var/lib/mautrix-meta-instagram/meta-registration.yaml"
expected_as_token = "${asToken}"
expected_hs_token = "${hsToken}"
start_all()
with subtest("start the server"):
# bridge
server.wait_for_unit("mautrix-meta-instagram.service")
# homeserver
server.wait_for_unit("matrix-synapse.service")
server.wait_for_open_port(8008)
# Bridge only opens the port after it contacts the homeserver
server.wait_for_open_port(8009)
with subtest("ensure messages can be exchanged"):
client.succeed("do_test ${homeserverUrl} >&2")
with subtest("ensure as_token, hs_token match from environment file"):
as_token = get_as_token_from(config_yaml)
hs_token = get_hs_token_from(config_yaml)
as_token_registration = get_as_token_from(registration_yaml)
hs_token_registration = get_hs_token_from(registration_yaml)
assert as_token == expected_as_token, f"as_token in config should match the one specified (is: {as_token}, expected: {expected_as_token})"
assert hs_token == expected_hs_token, f"hs_token in config should match the one specified (is: {hs_token}, expected: {expected_hs_token})"
assert as_token_registration == expected_as_token, f"as_token in registration should match the one specified (is: {as_token_registration}, expected: {expected_as_token})"
assert hs_token_registration == expected_hs_token, f"hs_token in registration should match the one specified (is: {hs_token_registration}, expected: {expected_hs_token})"
with subtest("ensure as_token and hs_token stays same after restart"):
server.systemctl("restart mautrix-meta-instagram")
server.wait_for_open_port(8009)
as_token = get_as_token_from(config_yaml)
hs_token = get_hs_token_from(config_yaml)
as_token_registration = get_as_token_from(registration_yaml)
hs_token_registration = get_hs_token_from(registration_yaml)
assert as_token == expected_as_token, f"as_token in config should match the one specified (is: {as_token}, expected: {expected_as_token})"
assert hs_token == expected_hs_token, f"hs_token in config should match the one specified (is: {hs_token}, expected: {expected_hs_token})"
assert as_token_registration == expected_as_token, f"as_token in registration should match the one specified (is: {as_token_registration}, expected: {expected_as_token})"
assert hs_token_registration == expected_hs_token, f"hs_token in registration should match the one specified (is: {hs_token_registration}, expected: {expected_hs_token})"
'';
})

View File

@ -0,0 +1,247 @@
import ../make-test-python.nix ({ pkgs, ... }:
let
homeserverDomain = "server";
homeserverUrl = "http://server:8008";
username = "alice";
instagramBotUsername = "instagrambot";
facebookBotUsername = "facebookbot";
in
{
name = "mautrix-meta-sqlite";
meta.maintainers = pkgs.mautrix-meta.meta.maintainers;
nodes = {
server = { config, pkgs, ... }: {
services.matrix-synapse = {
enable = true;
settings = {
database.name = "sqlite3";
enable_registration = true;
# don't use this in production, always use some form of verification
enable_registration_without_verification = true;
listeners = [ {
# The default but tls=false
bind_addresses = [
"0.0.0.0"
];
port = 8008;
resources = [ {
"compress" = true;
"names" = [ "client" ];
} {
"compress" = false;
"names" = [ "federation" ];
} ];
tls = false;
type = "http";
} ];
};
};
services.mautrix-meta.instances.facebook = {
enable = true;
settings = {
homeserver = {
address = homeserverUrl;
domain = homeserverDomain;
};
appservice = {
port = 8009;
bot.username = facebookBotUsername;
};
bridge.permissions."@${username}:server" = "user";
};
};
services.mautrix-meta.instances.instagram = {
enable = true;
settings = {
homeserver = {
address = homeserverUrl;
domain = homeserverDomain;
};
appservice = {
port = 8010;
bot.username = instagramBotUsername;
};
bridge.permissions."@${username}:server" = "user";
};
};
networking.firewall.allowedTCPPorts = [ 8008 ];
};
client = { pkgs, ... }: {
environment.systemPackages = [
(pkgs.writers.writePython3Bin "register_user"
{
libraries = [ pkgs.python3Packages.matrix-nio ];
flakeIgnore = [
# We don't live in the dark ages anymore.
# Languages like Python that are whitespace heavy will overrun
# 79 characters..
"E501"
];
} ''
import sys
import asyncio
from nio import AsyncClient
async def run(username: str, homeserver: str):
matrix = AsyncClient(homeserver)
response = await matrix.register(username, "foobar")
print("Matrix register response: ", response)
if __name__ == "__main__":
asyncio.run(run(sys.argv[1], sys.argv[2]))
''
)
(pkgs.writers.writePython3Bin "do_test"
{
libraries = [ pkgs.python3Packages.matrix-nio ];
flakeIgnore = [
# We don't live in the dark ages anymore.
# Languages like Python that are whitespace heavy will overrun
# 79 characters..
"E501"
];
} ''
import sys
import functools
import asyncio
from nio import AsyncClient, RoomMessageNotice, RoomCreateResponse, RoomInviteResponse
async def message_callback(matrix: AsyncClient, msg: str, _r, e):
print("Received matrix text message: ", e)
assert msg in e.body
exit(0) # Success!
async def run(username: str, bot_username: str, homeserver: str):
matrix = AsyncClient(homeserver, f"@{username}:${homeserverDomain}")
response = await matrix.login("foobar")
print("Matrix login response: ", response)
# Open a DM with the bridge bot
response = await matrix.room_create()
print("Matrix create room response:", response)
assert isinstance(response, RoomCreateResponse)
room_id = response.room_id
response = await matrix.room_invite(room_id, f"@{bot_username}:${homeserverDomain}")
assert isinstance(response, RoomInviteResponse)
callback = functools.partial(
message_callback, matrix, "Hello, I'm an Instagram bridge bot."
)
matrix.add_event_callback(callback, RoomMessageNotice)
print("Waiting for matrix message...")
await matrix.sync_forever(timeout=30000)
if __name__ == "__main__":
asyncio.run(run(sys.argv[1], sys.argv[2], sys.argv[3]))
''
)
];
};
};
testScript = ''
def extract_token(data):
stdout = data[1]
stdout = stdout.strip()
line = stdout.split('\n')[-1]
return line.split(':')[-1].strip("\" '\n")
def get_token_from(token, file):
data = server.execute(f"cat {file} | grep {token}")
return extract_token(data)
def get_as_token_from(file):
return get_token_from("as_token", file)
def get_hs_token_from(file):
return get_token_from("hs_token", file)
config_yaml = "/var/lib/mautrix-meta-facebook/config.yaml"
registration_yaml = "/var/lib/mautrix-meta-facebook/meta-registration.yaml"
start_all()
with subtest("wait for bridges and homeserver"):
# bridge
server.wait_for_unit("mautrix-meta-facebook.service")
server.wait_for_unit("mautrix-meta-instagram.service")
# homeserver
server.wait_for_unit("matrix-synapse.service")
server.wait_for_open_port(8008)
# Bridges only open the port after they contact the homeserver
server.wait_for_open_port(8009)
server.wait_for_open_port(8010)
with subtest("register user"):
client.succeed("register_user ${username} ${homeserverUrl} >&2")
with subtest("ensure messages can be exchanged"):
client.succeed("do_test ${username} ${facebookBotUsername} ${homeserverUrl} >&2")
client.succeed("do_test ${username} ${instagramBotUsername} ${homeserverUrl} >&2")
with subtest("ensure as_token and hs_token stays same after restart"):
generated_as_token_facebook = get_as_token_from(config_yaml)
generated_hs_token_facebook = get_hs_token_from(config_yaml)
generated_as_token_facebook_registration = get_as_token_from(registration_yaml)
generated_hs_token_facebook_registration = get_hs_token_from(registration_yaml)
# Indirectly checks the as token is not set to something like empty string or "null"
assert len(generated_as_token_facebook) > 20, f"as_token ({generated_as_token_facebook}) is too short, something went wrong"
assert len(generated_hs_token_facebook) > 20, f"hs_token ({generated_hs_token_facebook}) is too short, something went wrong"
assert generated_as_token_facebook == generated_as_token_facebook_registration, f"as_token should be the same in registration ({generated_as_token_facebook_registration}) and configuration ({generated_as_token_facebook}) files"
assert generated_hs_token_facebook == generated_hs_token_facebook_registration, f"hs_token should be the same in registration ({generated_hs_token_facebook_registration}) and configuration ({generated_hs_token_facebook}) files"
server.systemctl("restart mautrix-meta-facebook")
server.systemctl("restart mautrix-meta-instagram")
server.wait_for_open_port(8009)
server.wait_for_open_port(8010)
new_as_token_facebook = get_as_token_from(config_yaml)
new_hs_token_facebook = get_hs_token_from(config_yaml)
assert generated_as_token_facebook == new_as_token_facebook, f"as_token should stay the same after restart inside the configuration file (is: {new_as_token_facebook}, was: {generated_as_token_facebook})"
assert generated_hs_token_facebook == new_hs_token_facebook, f"hs_token should stay the same after restart inside the configuration file (is: {new_hs_token_facebook}, was: {generated_hs_token_facebook})"
new_as_token_facebook = get_as_token_from(registration_yaml)
new_hs_token_facebook = get_hs_token_from(registration_yaml)
assert generated_as_token_facebook == new_as_token_facebook, f"as_token should stay the same after restart inside the registration file (is: {new_as_token_facebook}, was: {generated_as_token_facebook})"
assert generated_hs_token_facebook == new_hs_token_facebook, f"hs_token should stay the same after restart inside the registration file (is: {new_hs_token_facebook}, was: {generated_hs_token_facebook})"
with subtest("ensure messages can be exchanged after restart"):
client.succeed("do_test ${username} ${instagramBotUsername} ${homeserverUrl} >&2")
client.succeed("do_test ${username} ${facebookBotUsername} ${homeserverUrl} >&2")
'';
})

View File

@ -1,6 +1,6 @@
import ../make-test-python.nix ({ lib, ... }: let
peer1-ip = "531:c350:28c1:dfde:ea6d:77d1:a60b:7209";
peer2-ip = "49f:3942:3a55:d100:4c78:c558:c4f:695b";
peer1-ip = "538:f40f:1c51:9bd9:9569:d3f6:d0a1:b2df";
peer2-ip = "5b6:6776:fee0:c1f3:db00:b6a8:d013:d38f";
in
{
name = "mycelium";

View File

@ -0,0 +1,21 @@
import ./make-test-python.nix ({pkgs, lib, ...}:
{
name = "technitium-dns-server";
nodes = {
machine = {pkgs, ...}: {
services.technitium-dns-server = {
enable = true;
openFirewall = true;
};
};
};
testScript = ''
start_all()
machine.wait_for_unit("technitium-dns-server.service")
machine.wait_for_open_port(53)
'';
meta.maintainers = with lib.maintainers; [ fabianrig ];
})

View File

@ -27,14 +27,14 @@
stdenv.mkDerivation rec {
pname = "furnace";
version = "0.6.1";
version = "0.6.2";
src = fetchFromGitHub {
owner = "tildearrow";
repo = "furnace";
rev = "v${version}";
fetchSubmodules = true;
hash = "sha256-QUOZGUyZp20ls7rtDK+cmg3Smbd+hl1m9aMhHQmMMbY=";
hash = "sha256-Pv9Sx+bdoy8uV5o9i1rUSuokwQVA8EPYFkZXM8Fynmk=";
};
postPatch = lib.optionalString stdenv.hostPlatform.isLinux ''

View File

@ -16,13 +16,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "mympd";
version = "14.1.0";
version = "14.1.1";
src = fetchFromGitHub {
owner = "jcorporation";
repo = "myMPD";
rev = "v${finalAttrs.version}";
sha256 = "sha256-yNB5WQi3M4cYogtxx/vLi2xJog2keyFrJIMlx663DLo=";
sha256 = "sha256-qGKTQAEwkv5Bz09GzmUHWnQ/DzmiexOY/dTkFyCtH/M=";
};
nativeBuildInputs = [

View File

@ -16,13 +16,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "sidplayfp";
version = "2.6.2";
version = "2.7.0";
src = fetchFromGitHub {
owner = "libsidplayfp";
repo = "sidplayfp";
rev = "v${finalAttrs.version}";
hash = "sha256-bAd4fq5tlBYfYuIG/02MCbEwjjVBZFJbZJNT13voInw=";
hash = "sha256-bIX9BByUdScbS0NCrUjF5PTHG9T6hrPGjD5XM0eQgfA=";
};
strictDeps = true;

View File

@ -2,7 +2,7 @@
let
pname = "erigon";
version = "2.59.2";
version = "2.59.3";
in
buildGoModule {
inherit pname version;
@ -11,7 +11,7 @@ buildGoModule {
owner = "ledgerwatch";
repo = pname;
rev = "v${version}";
hash = "sha256-gSoaPoyPyryC1yzYaafnPXKpMNzI9fw9Yd0nKzziAKw=";
hash = "sha256-pkcT9KFX4rz6WXUm9cG+6x9k+jGmLPGgl/4VnS7TNVE=";
fetchSubmodules = true;
};

View File

@ -14,12 +14,12 @@ let
sha256Hash = "sha256-ACZCdXKEnJy7DJTW+XGOoIvDRdzP47NytUEAqV//mbU=";
};
betaVersion = {
version = "2023.3.1.14"; # "Android Studio Jellyfish | 2023.3.1.1 Beta 1"
sha256Hash = "sha256-2p/WwH6yPAMwUSJ5NrWvJBZG395eS9UgApFr/CB1fUo=";
version = "2023.3.1.15"; # "Android Studio Jellyfish | 2023.3.1.1 Beta 2"
sha256Hash = "sha256-ImXHda8Xbayuk+OMZVtAFsGNnaqm2PvI3lko2gUpIeU=";
};
latestVersion = {
version = "2023.3.2.2"; # "Android Studio Koala | 2023.3.2 Canary 2"
sha256Hash = "sha256-KrCNkKFyOUE2q2b1wjvmn3E5IedAp1kFKII+70i1Wwk=";
version = "2024.1.1.1"; # "Android Studio Koala | 2024.1.1 Canary 3"
sha256Hash = "sha256-QNAudFlM+1QAZg+EYgiIknllai4N1wj55ZnkUWho7ps=";
};
in {
# Attributes are named by their corresponding release channels

View File

@ -48,7 +48,7 @@
"new": "sqlite-lua"
},
"vim-fsharp": {
"date": "2024-04-02",
"date": "2024-04-03",
"new": "zarchive-vim-fsharp"
},
"vim-jade": {

View File

@ -305,12 +305,12 @@ final: prev:
SchemaStore-nvim = buildVimPlugin {
pname = "SchemaStore.nvim";
version = "2024-04-01";
version = "2024-04-03";
src = fetchFromGitHub {
owner = "b0o";
repo = "SchemaStore.nvim";
rev = "f0ca13e2634f08f127e086909d18a9387a47e760";
sha256 = "1hihsm0lspdf84sq3v0n9ildgdgs5syci42iilpmcrall80p4b28";
rev = "32e3a9654693f513a2cbb76ba99cbc9947b1352d";
sha256 = "1sazs3a8zzbjy6g83fm1kqah8cc3x3pihbzqplmllrw2nbc29qxk";
};
meta.homepage = "https://github.com/b0o/SchemaStore.nvim/";
};
@ -1363,12 +1363,12 @@ final: prev:
chadtree = buildVimPlugin {
pname = "chadtree";
version = "2024-03-11";
version = "2024-04-03";
src = fetchFromGitHub {
owner = "ms-jpq";
repo = "chadtree";
rev = "d2afbb28ed1b6de119fe7c1d4fe248da0819b4d8";
sha256 = "0gmjs4ms7nxmfd4wyw082mqqgj82309x75yi8rxvnaqyksn70bas";
rev = "f085e2363ed170b3d90a95e614954395a0a541c0";
sha256 = "01cfzcm2f6vr67w2l4f80iqmp74l827mmzcfjgcxjc68a70y2y8f";
};
meta.homepage = "https://github.com/ms-jpq/chadtree/";
};
@ -1423,12 +1423,12 @@ final: prev:
citruszest-nvim = buildVimPlugin {
pname = "citruszest.nvim";
version = "2024-02-13";
version = "2024-04-03";
src = fetchFromGitHub {
owner = "zootedb0t";
repo = "citruszest.nvim";
rev = "60e6cec400cd857ffd69d582794c3ce5571c0049";
sha256 = "0mbs4v35v6xwi44dh8isgp66n6x10q6jkvj3ygvpqanwff6bp89s";
rev = "b30d441088d579d22e773f4cb28550fb9a65a604";
sha256 = "03j3n1rjmvylllhhpp6qz5v6n3h1hb12bsp186jvamb3wqky48la";
};
meta.homepage = "https://github.com/zootedb0t/citruszest.nvim/";
};
@ -2102,7 +2102,7 @@ final: prev:
rev = "c3d089186ccead26eba01023502f3eeadd7a92d2";
sha256 = "sha256-jWNoKzY0x5GPFP7JsQi4nqgg1YFJV4DqxwJRqsg6KaQ=";
};
meta.homepage = "https://github.com/chrisgrieser/cmp_yanky";
meta.homepage = "https://github.com/chrisgrieser/cmp_yanky/";
};
cobalt2-nvim = buildVimPlugin {
@ -2612,12 +2612,12 @@ final: prev:
coq_nvim = buildVimPlugin {
pname = "coq_nvim";
version = "2024-03-22";
version = "2024-04-03";
src = fetchFromGitHub {
owner = "ms-jpq";
repo = "coq_nvim";
rev = "c6f4505074674c5d7fdd3afbbd6164323fe20fd7";
sha256 = "1d31a6w0rd0dv003yim7chlz1limdg8w91kimv97q8gh6l43sxh0";
rev = "c7fc9a764f91d7152c6a435de730eb436aeeed49";
sha256 = "0ljpylgxir8sbcxh9qmvwm1vpabs2l4s3im81yfcyj1164hwsk84";
};
meta.homepage = "https://github.com/ms-jpq/coq_nvim/";
};
@ -2744,12 +2744,12 @@ final: prev:
cyberdream-nvim = buildVimPlugin {
pname = "cyberdream.nvim";
version = "2024-03-26";
version = "2024-04-03";
src = fetchFromGitHub {
owner = "scottmckendry";
repo = "cyberdream.nvim";
rev = "184554643fa02460b2429d4adfb8a7e6ddc89476";
sha256 = "0hhiy9rmxba46qjymrqap5sra1rc3haj28ff9y6k2qp2v6xi9lf7";
rev = "10bae2c37bc76e812af769687acb88b11283d38b";
sha256 = "1w7k5x8da0a3ifw0hgs5wcph5kixx52jd0zqqdf7v76ci3158g95";
};
meta.homepage = "https://github.com/scottmckendry/cyberdream.nvim/";
};
@ -2780,24 +2780,24 @@ final: prev:
dashboard-nvim = buildVimPlugin {
pname = "dashboard-nvim";
version = "2024-03-26";
version = "2024-04-03";
src = fetchFromGitHub {
owner = "nvimdev";
repo = "dashboard-nvim";
rev = "39f308a0b845b8da46f83c8a2d69f0191d4b7a8f";
sha256 = "0wllb3d9lla4f7ygipzv27dxsfbz08q2318wjycmm1ylzxkmg0ha";
rev = "7c0c09d55118a2afeb8874e885f87ae80d8ff452";
sha256 = "0ipn3cbivi04hn1qixxp8cd4kxfsjnkd3a8hz5j3bpn4x74c6qxk";
};
meta.homepage = "https://github.com/nvimdev/dashboard-nvim/";
};
debugprint-nvim = buildVimPlugin {
pname = "debugprint.nvim";
version = "2024-04-01";
version = "2024-04-03";
src = fetchFromGitHub {
owner = "andrewferrier";
repo = "debugprint.nvim";
rev = "58c472289ed710c477370d432851d2af84d9002a";
sha256 = "1agsclhl15d14g241irask7sr2k8vpdljziz1zl8j5kkz0zqjg9n";
rev = "ff44034c8f52feb252bd88311f91b8c9b9abe0f0";
sha256 = "1gxfimxg422bgz631nrdxwmmvx1l40vy3qjwawnp0jgi0b32nlfv";
};
meta.homepage = "https://github.com/andrewferrier/debugprint.nvim/";
};
@ -3383,12 +3383,12 @@ final: prev:
efmls-configs-nvim = buildVimPlugin {
pname = "efmls-configs-nvim";
version = "2024-02-11";
version = "2024-04-02";
src = fetchFromGitHub {
owner = "creativenull";
repo = "efmls-configs-nvim";
rev = "a61c52d325835e24dc14ffb7748a32b8f087ae32";
sha256 = "0y145z35y5x1frnaw1s9nlap1sjm3gk0fzcgwp0xskmfhcm8b55r";
rev = "479505abe49a554c0d31104a2fee730188240944";
sha256 = "1qgwxxwdqk6nqdaka11p5cpyms1d2h5yqcgq3wfcy8f2j94hpbxg";
};
meta.homepage = "https://github.com/creativenull/efmls-configs-nvim/";
};
@ -3685,12 +3685,12 @@ final: prev:
flatten-nvim = buildVimPlugin {
pname = "flatten.nvim";
version = "2024-01-26";
version = "2024-04-03";
src = fetchFromGitHub {
owner = "willothy";
repo = "flatten.nvim";
rev = "92c59ae6200e6b04aff167577ebb8a9035a6d2b3";
sha256 = "18sq9bh5l60nfxhc1glgn6nc35089hvp9vgkqp5s5ridnibf77z4";
rev = "e420e531d2ab24aebcf7b3c9fca28e6c5c34964d";
sha256 = "0cakkw66sw6g5s0cj5smdbfbd022rs2xgkfc56krkbyqh0midawr";
};
meta.homepage = "https://github.com/willothy/flatten.nvim/";
};
@ -4093,12 +4093,12 @@ final: prev:
gitsigns-nvim = buildNeovimPlugin {
pname = "gitsigns.nvim";
version = "2024-04-01";
version = "2024-04-03";
src = fetchFromGitHub {
owner = "lewis6991";
repo = "gitsigns.nvim";
rev = "070875f9e4eb81eb20cb60996cd1d9086d94b05e";
sha256 = "03hr98kcy9vh6qbibhbc54laf5ph0p3rrdyx5j434z2hxsjh4sad";
rev = "b45ff86f5618d1421a88c12d4feb286b80a1e2d3";
sha256 = "0wdz87n5k1wh0c9kzvrqf163nr33iwyvys2j355ql082qwlywhdq";
};
meta.homepage = "https://github.com/lewis6991/gitsigns.nvim/";
};
@ -4751,12 +4751,12 @@ final: prev:
inc-rename-nvim = buildVimPlugin {
pname = "inc-rename.nvim";
version = "2024-03-30";
version = "2024-04-02";
src = fetchFromGitHub {
owner = "smjonas";
repo = "inc-rename.nvim";
rev = "0f853910da9bb2a09d0ef2454db55935f554f16f";
sha256 = "1ynvh1wjvjnzbhssmlwvkw8zwpcrkv71c8wmwdh67fjpfimak84g";
rev = "5e03e986625961d1fac296d1bf332a6510c3add6";
sha256 = "0zcii0ypqv66xmy4w964kry4zij87fx9mckxifck0xy1y79ncp7r";
};
meta.homepage = "https://github.com/smjonas/inc-rename.nvim/";
};
@ -4919,12 +4919,12 @@ final: prev:
iron-nvim = buildVimPlugin {
pname = "iron.nvim";
version = "2024-03-31";
version = "2024-04-02";
src = fetchFromGitHub {
owner = "Vigemus";
repo = "iron.nvim";
rev = "0bedb945f4d9f10f36096deda62824bc48e1ec43";
sha256 = "0hgvnbrw3di2snh93qja5cgq5i4igm7asbn5b87dwrwmbn233z5c";
rev = "f6f199e3d353fc5761e2feda63b569a98897c66b";
sha256 = "1bwqval3lr12cqivfmmvxdi6da07000xbsn2ygiz4ym1a0a9jg5v";
};
meta.homepage = "https://github.com/Vigemus/iron.nvim/";
};
@ -5448,12 +5448,12 @@ final: prev:
litee-calltree-nvim = buildVimPlugin {
pname = "litee-calltree.nvim";
version = "2023-11-11";
version = "2024-04-02";
src = fetchFromGitHub {
owner = "ldelossa";
repo = "litee-calltree.nvim";
rev = "14b66cc6ff76deb67259db99196c0da5a6c75ca2";
sha256 = "0ynnn2rknyzyjn796lig32n1jycapg6q4zrpzllxlvqyhyhxsjf5";
rev = "3908f52f2e69438cdeca32771d449f8ef3ee3bcc";
sha256 = "1x1100r11k0g0nkc6a2l1hsjciav5df6k9qv8bxj051wkwawzg0g";
};
meta.homepage = "https://github.com/ldelossa/litee-calltree.nvim/";
};
@ -5520,12 +5520,12 @@ final: prev:
lsp-format-nvim = buildVimPlugin {
pname = "lsp-format.nvim";
version = "2024-01-24";
version = "2024-04-03";
src = fetchFromGitHub {
owner = "lukas-reineke";
repo = "lsp-format.nvim";
rev = "5e18095a637ec969b86c72266872219ad2f4586e";
sha256 = "0lls2pa86lyfzwmipm6rxpbv7qgyx1mlgzg7rjr44y2rkv4m62fl";
rev = "3612642b0e2eb85015838df5dcfbacb61f15db98";
sha256 = "1pizkn16ma7yfsy19g06f6l6zkqwsjkmzybqhhhp18xbbyj7m8cc";
};
meta.homepage = "https://github.com/lukas-reineke/lsp-format.nvim/";
};
@ -5580,12 +5580,12 @@ final: prev:
lsp-zero-nvim = buildVimPlugin {
pname = "lsp-zero.nvim";
version = "2024-03-30";
version = "2024-04-03";
src = fetchFromGitHub {
owner = "VonHeikemen";
repo = "lsp-zero.nvim";
rev = "8d96bcd4450a83a528a013ec5bf7dafa5f3d36c4";
sha256 = "05dsypsgas3ab155iza21ghf0i27sbxfk494xjg3qgiyy887a0g9";
rev = "74441a6309cf12232da52520e210387dc95412f8";
sha256 = "0q96939hfqn29svgqrj1cskmxiax5h05yz8lxqmhn9cvpkzm5s4k";
};
meta.homepage = "https://github.com/VonHeikemen/lsp-zero.nvim/";
};
@ -5699,12 +5699,12 @@ final: prev:
luasnip = buildNeovimPlugin {
pname = "luasnip";
version = "2024-04-01";
version = "2024-04-02";
src = fetchFromGitHub {
owner = "l3mon4d3";
repo = "luasnip";
rev = "79cc25c39878401d4e8b6ec42fcf14639426bafc";
sha256 = "02bwj0z6fqim8v0giksjamr7415x8j95ihvyqd0zdfan2a3wqjv7";
rev = "825a61bad1d60d917a7962d73cf3c683f4e0407e";
sha256 = "002ksxnplfmvwclm1713x2m25zd8dkjm6bhfxv56r24i174h3dfb";
fetchSubmodules = true;
};
meta.homepage = "https://github.com/l3mon4d3/luasnip/";
@ -5952,12 +5952,12 @@ final: prev:
mini-nvim = buildVimPlugin {
pname = "mini.nvim";
version = "2024-03-31";
version = "2024-04-02";
src = fetchFromGitHub {
owner = "echasnovski";
repo = "mini.nvim";
rev = "efa0eb3dc97398e0510372f61bcf625127ab7a24";
sha256 = "01dg543rf7mkb93gzgk6s2n69l26vafsf9dw2zp9y3k2880is6sk";
rev = "5d841fcca666bc27ca777807a63381ce2cf6e2f9";
sha256 = "0sg82lbzf1s7qkmvc4sdpw25nms61xgdym2pqk8szmm400jk74n1";
};
meta.homepage = "https://github.com/echasnovski/mini.nvim/";
};
@ -6528,12 +6528,12 @@ final: prev:
neorg = buildVimPlugin {
pname = "neorg";
version = "2024-04-01";
version = "2024-04-03";
src = fetchFromGitHub {
owner = "nvim-neorg";
repo = "neorg";
rev = "27f338f9f6bfad03de7c623173c9cfd24d7e7803";
sha256 = "05bd7p25dzjah4w4szfh1r2iivl4vc1byq5is3mbmkph13gy4vc7";
rev = "89f9a79179e179e9e0d96d6adce14473bed896bc";
sha256 = "1mfq1d6s8npnm35hflz80zxiln7wx1d4m90zpbb4vhv7nap975za";
};
meta.homepage = "https://github.com/nvim-neorg/neorg/";
};
@ -6598,7 +6598,7 @@ final: prev:
meta.homepage = "https://github.com/kassio/neoterm/";
};
neotest = buildVimPlugin {
neotest = buildNeovimPlugin {
pname = "neotest";
version = "2024-03-20";
src = fetchFromGitHub {
@ -6735,12 +6735,12 @@ final: prev:
neotest-java = buildVimPlugin {
pname = "neotest-java";
version = "2024-04-02";
version = "2024-04-03";
src = fetchFromGitHub {
owner = "rcasia";
repo = "neotest-java";
rev = "3a1853d55789b03ef71e1748a69470a0d016afad";
sha256 = "0jhwxw8jrq558fsy7d13jvj7c2gq03972lqx9hgyw1zjgmrjzfg4";
rev = "9af20dbc445f568b5f6b6f3241f07259ee95cfe8";
sha256 = "1v87jb7fm3xgnhzfxbp6wn5dk4m8r0asff4d0ap3zcc4sr771cl5";
};
meta.homepage = "https://github.com/rcasia/neotest-java/";
};
@ -7047,12 +7047,12 @@ final: prev:
night-owl-nvim = buildVimPlugin {
pname = "night-owl.nvim";
version = "2024-03-12";
version = "2024-04-03";
src = fetchFromGitHub {
owner = "oxfist";
repo = "night-owl.nvim";
rev = "7f139517b6d2f05ee6542850b04de004a6b25dce";
sha256 = "1c20y1f0sakbajsmzk0fhv3wqwsni3wxlvsgcgzxbf922rm9ln3x";
rev = "1afa7f158feb79987ca0d017f65558492e6c8a8e";
sha256 = "1gypvdfbg7s3l3j9hlf6n2d22pjq4q54xv48gsg2zvczzg3c77ww";
};
meta.homepage = "https://github.com/oxfist/night-owl.nvim/";
};
@ -7107,12 +7107,12 @@ final: prev:
nlsp-settings-nvim = buildVimPlugin {
pname = "nlsp-settings.nvim";
version = "2024-04-01";
version = "2024-04-03";
src = fetchFromGitHub {
owner = "tamago324";
repo = "nlsp-settings.nvim";
rev = "74596ac22f75d3e20a848eb9aee975504ff7a318";
sha256 = "1gbwj37nkvxvcpvwap68fp4pp2c6nag8ldh9d0fcvs0v2igww2p6";
rev = "5c4e0796937a3d732f8d489188d55312d802050a";
sha256 = "12pvrvcd339y8f0pzx398fn7c4shjmdy68xq7rfq6bg245mnd04j";
};
meta.homepage = "https://github.com/tamago324/nlsp-settings.nvim/";
};
@ -7179,12 +7179,12 @@ final: prev:
none-ls-nvim = buildVimPlugin {
pname = "none-ls.nvim";
version = "2024-04-01";
version = "2024-04-02";
src = fetchFromGitHub {
owner = "nvimtools";
repo = "none-ls.nvim";
rev = "e632688737b6b878e900ac69179a9aae734bb331";
sha256 = "0qry0dn8mmxifq74hy6wp468fwxvpdn07689z9sv5acq6l18b5ci";
rev = "fff481b65d88415933b9574dc0e1947724bcf64a";
sha256 = "0qpnsj7pd7lg9qli3pgwxk8m50k65866mxk1id42n85v558hd9nx";
};
meta.homepage = "https://github.com/nvimtools/none-ls.nvim/";
};
@ -7814,12 +7814,12 @@ final: prev:
nvim-lspconfig = buildVimPlugin {
pname = "nvim-lspconfig";
version = "2024-03-30";
version = "2024-04-03";
src = fetchFromGitHub {
owner = "neovim";
repo = "nvim-lspconfig";
rev = "f4619ab31fc4676001ea05ae8200846e6e7700c7";
sha256 = "0q61jhria23nalapvb9m1qlifc01ir7lq9sjb6iifdqvjwi0ygi8";
rev = "96e5711040df23583591391ce49e556b8cd248d8";
sha256 = "0jlqjhi6x3g8w80mqbnmybh5lmf8cw0lnyywhhdkc5plpzh43j0c";
};
meta.homepage = "https://github.com/neovim/nvim-lspconfig/";
};
@ -7932,6 +7932,18 @@ final: prev:
meta.homepage = "https://github.com/AckslD/nvim-neoclip.lua/";
};
nvim-nio = buildNeovimPlugin {
pname = "nvim-nio";
version = "2024-04-02";
src = fetchFromGitHub {
owner = "nvim-neotest";
repo = "nvim-nio";
rev = "173f285eebb410199273fa178aa517fd2d7edd80";
sha256 = "0favgnfpsak44lzyzyhfavazr2i64l7ysk370xm4wbrb51kjsdkf";
};
meta.homepage = "https://github.com/nvim-neotest/nvim-nio/";
};
nvim-nonicons = buildVimPlugin {
pname = "nvim-nonicons";
version = "2023-02-04";
@ -8174,12 +8186,12 @@ final: prev:
nvim-treesitter = buildVimPlugin {
pname = "nvim-treesitter";
version = "2024-04-02";
version = "2024-04-03";
src = fetchFromGitHub {
owner = "nvim-treesitter";
repo = "nvim-treesitter";
rev = "54cf9180a36299265e217858e6e531245074c3f4";
sha256 = "0bs0qxpnbadz45hj25vr849hxkvjxz9hli8aaad0mkdjx3ncm8sv";
rev = "cc0e29727a9651e27869b7444e835c44fb1e7b4c";
sha256 = "1lnpmbj0nz33dv5b2kf6p39bxknjfcwqc7qsj5rzsxf4ycf73jig";
};
meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter/";
};
@ -8234,12 +8246,12 @@ final: prev:
nvim-treesitter-textobjects = buildVimPlugin {
pname = "nvim-treesitter-textobjects";
version = "2024-03-12";
version = "2024-04-03";
src = fetchFromGitHub {
owner = "nvim-treesitter";
repo = "nvim-treesitter-textobjects";
rev = "d2a4ffc22d9d38d44edb73da007b3cf43451e9b4";
sha256 = "159fcx7kfbgrk8lywfrx7vpdd6pdzphrqv4jwlvmjmzmmnbayhm7";
rev = "acffd3476eb340faef0ec07e48060b817386b973";
sha256 = "1mw5dn52dx1lmh98254hj44c4nlwxaf4j5i9fla9fg1g71rc521k";
};
meta.homepage = "https://github.com/nvim-treesitter/nvim-treesitter-textobjects/";
};
@ -8282,12 +8294,12 @@ final: prev:
nvim-ufo = buildVimPlugin {
pname = "nvim-ufo";
version = "2024-03-23";
version = "2024-04-03";
src = fetchFromGitHub {
owner = "kevinhwang91";
repo = "nvim-ufo";
rev = "458aa4451b98614cfab6b3d7beddc8caff5e3052";
sha256 = "0wf12b87pqlk1d8smcv60ac8f9jgqp5dyggadjx2zqc1n7gp90h5";
rev = "a5390706f510d39951dd581f6d2a972741b3fa26";
sha256 = "0fyc504ay04402gk1vly0lz8fa5yyfmix16zsvl29grw6rpjacvp";
};
meta.homepage = "https://github.com/kevinhwang91/nvim-ufo/";
};
@ -8426,12 +8438,12 @@ final: prev:
octo-nvim = buildVimPlugin {
pname = "octo.nvim";
version = "2024-03-21";
version = "2024-04-03";
src = fetchFromGitHub {
owner = "pwntester";
repo = "octo.nvim";
rev = "27d6fd6ad2f2f59330724d6ea5c751f0c3ec96e6";
sha256 = "0xzkjs1592b98banjpk8xz62bbygaqsmhmylsxancf1p5mkznc9g";
rev = "a511b52fbf040f928a24deb72e17ec465613b442";
sha256 = "0jrcqxjbv24qa9k701l1bxyz20s0wj9jkr8vxx68j3z51idjygqn";
};
meta.homepage = "https://github.com/pwntester/octo.nvim/";
};
@ -8619,12 +8631,12 @@ final: prev:
orgmode = buildVimPlugin {
pname = "orgmode";
version = "2024-04-01";
version = "2024-04-03";
src = fetchFromGitHub {
owner = "nvim-orgmode";
repo = "orgmode";
rev = "dafe43304589086378ecfd5409d138e991ddd034";
sha256 = "00ylaaqhvmr14kxqdqvj0ilwiqc8639p8hmakgvysxb3pn8y2lgp";
rev = "207d12c8683090195d290c46b00f684ec941f20e";
sha256 = "1ff4sxq671iwk3c4qbsj9disdb5iaa0ynhq88slmq045ndbjz2bh";
};
meta.homepage = "https://github.com/nvim-orgmode/orgmode/";
};
@ -10631,12 +10643,12 @@ final: prev:
telescope-vim-bookmarks-nvim = buildVimPlugin {
pname = "telescope-vim-bookmarks.nvim";
version = "2022-07-17";
version = "2024-04-02";
src = fetchFromGitHub {
owner = "tom-anders";
repo = "telescope-vim-bookmarks.nvim";
rev = "92498cbf7c127dea37c3d27117b60dd7ab9baef4";
sha256 = "1nflwz7jji4lr621cifg4mq7a6ld4dvaq3dxg7rr4bahh02w5hb5";
rev = "09a61043496bd9c4240955f7532ff2ae8fe3a905";
sha256 = "0mkn7kbg1319mvfmx4agx2l1vng1lbqayf6b6xs2rvb98fybai74";
};
meta.homepage = "https://github.com/tom-anders/telescope-vim-bookmarks.nvim/";
};
@ -10680,12 +10692,12 @@ final: prev:
telescope-nvim = buildNeovimPlugin {
pname = "telescope.nvim";
version = "2024-03-30";
version = "2024-04-02";
src = fetchFromGitHub {
owner = "nvim-telescope";
repo = "telescope.nvim";
rev = "1bb28df3cfc241b961331f00dcb8d5b45fe3e4f0";
sha256 = "0k5x7cjihq79g4kc8q1qc1mwawbkmq6m661fd67rkv9r9az38yx9";
rev = "4626aaa2bcfdacf55fd6d44b430e2df81b2403ff";
sha256 = "0rzdasr1lavdrxk7kszi0ari3di48zfki70himrc1m2qs89pa6ph";
};
meta.homepage = "https://github.com/nvim-telescope/telescope.nvim/";
};
@ -12445,12 +12457,12 @@ final: prev:
vim-dirvish = buildVimPlugin {
pname = "vim-dirvish";
version = "2024-02-20";
version = "2024-04-03";
src = fetchFromGitHub {
owner = "justinmk";
repo = "vim-dirvish";
rev = "b660af1fa07fe1d44d4eb3ea5242334f6c2766ca";
sha256 = "1h0ypp7fp47dk8sj1xgrm9113cgsvdczmfilbrix5rmm9b0jph2i";
rev = "3851bedb7f191b9a4a5531000b6fc0a8795cc9bb";
sha256 = "1b5fg5d1rvnh9ipl4q1sh4xwgkn55hip303mm13h3ckmcy1cyilk";
};
meta.homepage = "https://github.com/justinmk/vim-dirvish/";
};
@ -12829,12 +12841,12 @@ final: prev:
vim-floaterm = buildVimPlugin {
pname = "vim-floaterm";
version = "2024-02-29";
version = "2024-04-02";
src = fetchFromGitHub {
owner = "voldikss";
repo = "vim-floaterm";
rev = "c0535d758004bcce016839e318cbbe802b92c469";
sha256 = "16ds8cc1qj8q0nkzdy35difq49jhbwhji3hlgksyg4phm8m54zja";
rev = "fe61226f8990bb4d36fa274fdc5f6079535cedeb";
sha256 = "0yy16na6ffjj4kk14ar1gy9zvd9nlz15hnn18s3g92494gipq4q2";
};
meta.homepage = "https://github.com/voldikss/vim-floaterm/";
};
@ -13659,12 +13671,12 @@ final: prev:
vim-just = buildVimPlugin {
pname = "vim-just";
version = "2024-03-23";
version = "2024-04-03";
src = fetchFromGitHub {
owner = "NoahTheDuke";
repo = "vim-just";
rev = "9506b055bcdbb9263cbf9648005a6869ae0df523";
sha256 = "0dj1cj3mjxwr9b9i03h4mx79k6c1byxa6x82405wabr7ks0gyi1j";
rev = "4f6eea3d5ad64236549411bb2e2fd8f1c7926abc";
sha256 = "07g61mvln8sdqfacypap5fdx235bmrlbx713s4n8jpxdp6fwnydr";
};
meta.homepage = "https://github.com/NoahTheDuke/vim-just/";
};
@ -13719,12 +13731,12 @@ final: prev:
vim-lawrencium = buildVimPlugin {
pname = "vim-lawrencium";
version = "2022-01-19";
version = "2024-04-03";
src = fetchFromGitHub {
owner = "ludovicchabant";
repo = "vim-lawrencium";
rev = "cfda83655a3885f410fcf96ea1104ea0431570c3";
sha256 = "0jxk4xc10n6llr4hx67laxkx9rygrk0w6zyfvb2cpzcjranfmxnp";
rev = "756d7544c380a92b6f12e501a0d979cb6f53a90a";
sha256 = "16wzibxqz6jqh4bp43h1hh9kwlnns6zcqd6hdi25zzlfpx5m14q3";
};
meta.homepage = "https://github.com/ludovicchabant/vim-lawrencium/";
};
@ -15629,12 +15641,12 @@ final: prev:
vim-test = buildVimPlugin {
pname = "vim-test";
version = "2024-03-14";
version = "2024-04-03";
src = fetchFromGitHub {
owner = "vim-test";
repo = "vim-test";
rev = "a49c9cade75e97cace5e3ba545ce82d02f689feb";
sha256 = "0mw7jzi5qf4wn4zbm63ddn2xa97fhd38rp68ddnbvj8lqqjjkxam";
rev = "8746ef06631293d7d47a6daccd95b0ed3e135494";
sha256 = "04wp13zpfzvcx7lisjq489m8vh6maynv6lhz7didqr3lawicnvr2";
};
meta.homepage = "https://github.com/vim-test/vim-test/";
};
@ -15953,12 +15965,12 @@ final: prev:
vim-visual-multi = buildVimPlugin {
pname = "vim-visual-multi";
version = "2024-02-22";
version = "2024-04-03";
src = fetchFromGitHub {
owner = "mg979";
repo = "vim-visual-multi";
rev = "fe1ec7e430013b83c8c2dee85ae496251b71e253";
sha256 = "0mvirqq1gmp2270bm92fk3c4d96r2jlkl2s36pm1d00b7vd3vpll";
rev = "e2ff111f123da6cf97f95b96b10eb95854f953c9";
sha256 = "0kg3wwgxv1gclyvdws52chyz1jfgmi4hc2pdg9fmkqpkk0g17r68";
};
meta.homepage = "https://github.com/mg979/vim-visual-multi/";
};
@ -16554,12 +16566,12 @@ final: prev:
wiki-vim = buildVimPlugin {
pname = "wiki.vim";
version = "2024-03-31";
version = "2024-04-02";
src = fetchFromGitHub {
owner = "lervag";
repo = "wiki.vim";
rev = "34750beb0f734c9c8eef5db406904419f4546e87";
sha256 = "00vdp002yw7z5krg679h2gqldngv8yd1irhx1hjjfqc9xpyx37yd";
rev = "34c82a61963988bdf9db3ff426ff313d419f2061";
sha256 = "0qazdn1y0j3pb9qm3f9ydasgkcvishz2km0aw19n1fqyylal0fps";
};
meta.homepage = "https://github.com/lervag/wiki.vim/";
};
@ -16939,12 +16951,12 @@ final: prev:
gbprod-nord = buildVimPlugin {
pname = "gbprod-nord";
version = "2024-03-20";
version = "2024-04-02";
src = fetchFromGitHub {
owner = "gbprod";
repo = "nord.nvim";
rev = "9896e4634b1ba99e7a532a568b3b66e3344ad0df";
sha256 = "1zmvc65rgh6m3jmjflglinzfqj6sz2mrfrg8qkb50zdpzghs39jb";
rev = "a6f4979566e44a69ddc80c9df73e960af1ab1840";
sha256 = "1fykygiq7izp19ylppvsw5v1i1rmy6x6abc5sjlls6wmcgz5dsvn";
};
meta.homepage = "https://github.com/gbprod/nord.nvim/";
};
@ -16963,12 +16975,12 @@ final: prev:
harpoon2 = buildVimPlugin {
pname = "harpoon2";
version = "2024-01-26";
version = "2024-04-02";
src = fetchFromGitHub {
owner = "ThePrimeagen";
repo = "harpoon";
rev = "a38be6e0dd4c6db66997deab71fc4453ace97f9c";
sha256 = "1cmiw4sy5r4h8f2k1m91f2xykasnp66zdibx0l8vk94hw990sg26";
rev = "4ad05be8fe98092f0dec3bc3b47abebb59c3814a";
sha256 = "0ssnlid3bd6qnar1xlg2kkmlgfdabrnkwqhvvw02nr9ms901d9sh";
};
meta.homepage = "https://github.com/ThePrimeagen/harpoon/";
};
@ -17011,12 +17023,12 @@ final: prev:
nvchad-ui = buildVimPlugin {
pname = "nvchad-ui";
version = "2024-03-31";
version = "2024-04-03";
src = fetchFromGitHub {
owner = "nvchad";
repo = "ui";
rev = "af9ab0cd9e193c68c443939fa7e4b8213db5693b";
sha256 = "0q9aip8r5z5cmjsz56z4mddk7vlymrk0lsbi2jam6gx9zzjxh6h9";
rev = "e1af69426b3c4b55c88bd1c81790c1c73b30bfa8";
sha256 = "1rmfjmwm5zckvdyk2pdpi2zgzql9rvy0b2rpsm8z56g98skh3nma";
};
meta.homepage = "https://github.com/nvchad/ui/";
};

View File

@ -348,12 +348,12 @@
};
cuda = buildGrammar {
language = "cuda";
version = "0.0.0+rev=a185502";
version = "0.0.0+rev=4ec5afd";
src = fetchFromGitHub {
owner = "theHamsta";
repo = "tree-sitter-cuda";
rev = "a18550206a205a0b056437652cf4802f377c4a92";
hash = "sha256-7ir4fpRs/7qeWGFxzjYM3Y++LA7fIdcGCZM9vKMJ5tE=";
rev = "4ec5afdf98041d137c25b555958a1f825c7c1272";
hash = "sha256-EA37LJeRHBFBra17UwiUASQYTRBuGKE9HNyUrn8HBNk=";
};
meta.homepage = "https://github.com/theHamsta/tree-sitter-cuda";
};
@ -480,12 +480,12 @@
};
dtd = buildGrammar {
language = "dtd";
version = "0.0.0+rev=24b662e";
version = "0.0.0+rev=2282ad5";
src = fetchFromGitHub {
owner = "tree-sitter-grammars";
repo = "tree-sitter-xml";
rev = "24b662eb61e369757d13c4b5f0624284dc3fe7e8";
hash = "sha256-1S//ZwSCr6HylScgKpgwcnvK0BR4Bz9o4hVxvLmdcgA=";
rev = "2282ad5cb8e815523e70d5c82404620bd9a1494c";
hash = "sha256-CZAVJdT01wXyaDnPxXz6ZhiiDxuvwKCWPGjaWe6FpWk=";
};
location = "dtd";
meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-xml";
@ -647,12 +647,12 @@
};
fish = buildGrammar {
language = "fish";
version = "0.0.0+rev=f917690";
version = "0.0.0+rev=a78aef9";
src = fetchFromGitHub {
owner = "ram02z";
repo = "tree-sitter-fish";
rev = "f9176908c9eb2e11eb684d79e1d00f3b29bd65c9";
hash = "sha256-nPWkKhhG5MvJPOJ5nhm7GXgjnWX71/Ay55rPW+uKu/s=";
rev = "a78aef9abc395c600c38a037ac779afc7e3cc9e0";
hash = "sha256-D7s3ZsHQeGf+pYdbXvi5GMFqbkgajBuqTQwvjnjnrVo=";
};
meta.homepage = "https://github.com/ram02z/tree-sitter-fish";
};
@ -823,12 +823,12 @@
};
glsl = buildGrammar {
language = "glsl";
version = "0.0.0+rev=339fe65";
version = "0.0.0+rev=f704096";
src = fetchFromGitHub {
owner = "theHamsta";
repo = "tree-sitter-glsl";
rev = "339fe659aed7618b822d27120c1ec5b5cd83c61c";
hash = "sha256-n+dakT/9Z6o+ZP0MIAG6Yi98kqrtVvew+nbbpBh7ln4=";
rev = "f7040966a97c6c5a644a230df7fe74623f963d2f";
hash = "sha256-HwaN4T3dpcMpR2Nch3gMh9QGhBThd4RxdW7o5KTzRtI=";
};
meta.homepage = "https://github.com/theHamsta/tree-sitter-glsl";
};
@ -1055,12 +1055,12 @@
};
hlsl = buildGrammar {
language = "hlsl";
version = "0.0.0+rev=2c2732d";
version = "0.0.0+rev=ef428a3";
src = fetchFromGitHub {
owner = "theHamsta";
repo = "tree-sitter-hlsl";
rev = "2c2732db3ac55028af9456f89ab12683e02822bf";
hash = "sha256-7UD61tLBwVHiUlo5dqZ55k+TiRzrJRuvieggJgKO98I=";
rev = "ef428a36b2faa20450ee979a618f802228b38318";
hash = "sha256-/G5c7Fr7Z23FR7n5oh90QHObicDjx8Ppslp8T6sr1wg=";
};
meta.homepage = "https://github.com/theHamsta/tree-sitter-hlsl";
};
@ -1496,24 +1496,24 @@
};
markdown = buildGrammar {
language = "markdown";
version = "0.0.0+rev=4401749";
version = "0.0.0+rev=7fe453b";
src = fetchFromGitHub {
owner = "MDeiml";
repo = "tree-sitter-markdown";
rev = "44017499c51cb6431635ed51d5080e1fd05c2c21";
hash = "sha256-Z68efDuV5QAGZFvDKPf/i6FHaBge2tIc0ElmvKdwM9k=";
rev = "7fe453beacecf02c86f7736439f238f5bb8b5c9b";
hash = "sha256-Ai8w5fVtN6NofEGG3VQNd8pNPVijYw6nDzrhedKMOe4=";
};
location = "tree-sitter-markdown";
meta.homepage = "https://github.com/MDeiml/tree-sitter-markdown";
};
markdown_inline = buildGrammar {
language = "markdown_inline";
version = "0.0.0+rev=4401749";
version = "0.0.0+rev=7fe453b";
src = fetchFromGitHub {
owner = "MDeiml";
repo = "tree-sitter-markdown";
rev = "44017499c51cb6431635ed51d5080e1fd05c2c21";
hash = "sha256-Z68efDuV5QAGZFvDKPf/i6FHaBge2tIc0ElmvKdwM9k=";
rev = "7fe453beacecf02c86f7736439f238f5bb8b5c9b";
hash = "sha256-Ai8w5fVtN6NofEGG3VQNd8pNPVijYw6nDzrhedKMOe4=";
};
location = "tree-sitter-markdown-inline";
meta.homepage = "https://github.com/MDeiml/tree-sitter-markdown";
@ -2287,12 +2287,12 @@
};
slang = buildGrammar {
language = "slang";
version = "0.0.0+rev=6015bdc";
version = "0.0.0+rev=13fdd89";
src = fetchFromGitHub {
owner = "theHamsta";
repo = "tree-sitter-slang";
rev = "6015bdc81e5e447a2bb8b342da27048a031b2713";
hash = "sha256-fQXx/ue7LNCdreAhgpKi159dbhyMjxvQKM1P6J+Xa8k=";
rev = "13fdd899bfa62527cc39887abd74ec24cd626dec";
hash = "sha256-YImk9t0zrOSBornem2rTzqhl/FUWqh955bjjOWkcfHY=";
};
meta.homepage = "https://github.com/theHamsta/tree-sitter-slang";
};
@ -2342,12 +2342,12 @@
};
solidity = buildGrammar {
language = "solidity";
version = "0.0.0+rev=b239a95";
version = "0.0.0+rev=a8ed2f5";
src = fetchFromGitHub {
owner = "JoranHonig";
repo = "tree-sitter-solidity";
rev = "b239a95f94cfcc6e7b3e961bc73a28d55e214f02";
hash = "sha256-b+LthCf+g19sjKeNgXZmUV0RNi94O3u0WmXfgKRpaE0=";
rev = "a8ed2f5d600fed77f8ed3084d1479998c649bca1";
hash = "sha256-aSQnJR/r4H086Um4TV4mjnCSg+2Y7KFn2Rwo/lP2nfg=";
};
meta.homepage = "https://github.com/JoranHonig/tree-sitter-solidity";
};
@ -2577,12 +2577,12 @@
};
templ = buildGrammar {
language = "templ";
version = "0.0.0+rev=592faa3";
version = "0.0.0+rev=db66241";
src = fetchFromGitHub {
owner = "vrischmann";
repo = "tree-sitter-templ";
rev = "592faa3186ef857c92e4bd1c31d73c07a4a334db";
hash = "sha256-XX1+P8ibo8REYYZQaC47lneg/roralo+YiRwFNnARsQ=";
rev = "db662414ccd6f7c78b1e834e7abe11c224b04759";
hash = "sha256-DPVVdzAU3xGa1TpndlwPZr11zi1ToYkvqWDJeddfDYs=";
};
meta.homepage = "https://github.com/vrischmann/tree-sitter-templ";
};
@ -2633,12 +2633,12 @@
};
tlaplus = buildGrammar {
language = "tlaplus";
version = "0.0.0+rev=496322c";
version = "0.0.0+rev=439dad0";
src = fetchFromGitHub {
owner = "tlaplus-community";
repo = "tree-sitter-tlaplus";
rev = "496322c1f78647ae0cc1ec96e7b2523656d34846";
hash = "sha256-QG8FPwdTJ+AQE4uoujJxRlaeagqX+jQyBdytDflFX20=";
rev = "439dad01355e4db335fe9cd12eb177b4f2563dd6";
hash = "sha256-d2CPUjqMOu9xc+wjw2uGk2UmkR9OzoYFchbK+IMH7YA=";
};
meta.homepage = "https://github.com/tlaplus-community/tree-sitter-tlaplus";
};
@ -2924,12 +2924,12 @@
};
wing = buildGrammar {
language = "wing";
version = "0.0.0+rev=5151f4a";
version = "0.0.0+rev=0cdff2b";
src = fetchFromGitHub {
owner = "winglang";
repo = "wing";
rev = "5151f4a33d81ff68f94ff451a3404c581705eb96";
hash = "sha256-OFOp2ldpYizhUfW6ArThvWAp8nepG+rCrIbrjU9p2hQ=";
rev = "0cdff2bc50e3664049905e952746cadf4ac62f15";
hash = "sha256-ocHNpn7EKDdoBsanBf8XPhqZYM0wna9a+tDxy4gIO3o=";
};
location = "libs/tree-sitter-wing";
generate = true;
@ -2948,24 +2948,24 @@
};
xml = buildGrammar {
language = "xml";
version = "0.0.0+rev=24b662e";
version = "0.0.0+rev=2282ad5";
src = fetchFromGitHub {
owner = "tree-sitter-grammars";
repo = "tree-sitter-xml";
rev = "24b662eb61e369757d13c4b5f0624284dc3fe7e8";
hash = "sha256-1S//ZwSCr6HylScgKpgwcnvK0BR4Bz9o4hVxvLmdcgA=";
rev = "2282ad5cb8e815523e70d5c82404620bd9a1494c";
hash = "sha256-CZAVJdT01wXyaDnPxXz6ZhiiDxuvwKCWPGjaWe6FpWk=";
};
location = "xml";
meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-xml";
};
yaml = buildGrammar {
language = "yaml";
version = "0.0.0+rev=10c6c7a";
version = "0.0.0+rev=c9ee63b";
src = fetchFromGitHub {
owner = "tree-sitter-grammars";
repo = "tree-sitter-yaml";
rev = "10c6c7a69dde767ad229e1510e0c1c7aacd8c83a";
hash = "sha256-vAH7uB5Mcm3AsH9Y6jEb/IAzpNtLP5DL5Rd5ED0qpOc=";
rev = "c9ee63b15c92656a89f7007f38a98f21c3eca81d";
hash = "sha256-2MWTBUoaf+F/TJU+CWJ22JAoyq63XKxy1wJPxcZFePc=";
};
meta.homepage = "https://github.com/tree-sitter-grammars/tree-sitter-yaml";
};

View File

@ -962,7 +962,7 @@
};
neotest = super.neotest.overrideAttrs {
dependencies = with self; [ plenary-nvim ];
dependencies = with self; [ nvim-nio plenary-nvim ];
};
neotest-gradle = super.neotest-gradle.overrideAttrs {

View File

@ -667,6 +667,7 @@ https://github.com/gpanders/nvim-moonwalk/,,
https://github.com/SmiteshP/nvim-navbuddy/,,
https://github.com/smiteshp/nvim-navic/,HEAD,
https://github.com/AckslD/nvim-neoclip.lua/,,
https://github.com/nvim-neotest/nvim-nio/,HEAD,
https://github.com/yamatsum/nvim-nonicons/,,
https://github.com/rcarriga/nvim-notify/,,
https://github.com/LhKipp/nvim-nu/,HEAD,

View File

@ -3129,6 +3129,21 @@ let
};
};
ms-vscode.test-adapter-converter = buildVscodeMarketplaceExtension {
mktplcRef = {
name = "test-adapter-converter";
publisher = "ms-vscode";
version = "0.1.9";
sha256 = "sha256-M53jhAVawk2yCeSrLkWrUit3xbDc0zgCK2snbK+BaSs=";
};
meta = {
description = "A Visual Studio Code extension that converts from the Test Explorer UI API into native VS Code testing";
downloadPage = "https://marketplace.visualstudio.com/items?itemName=ms-vscode.test-adapter-converter";
homepage = "https://github.com/microsoft/vscode-test-adapter-converter";
license = lib.licenses.mit;
};
};
ms-vscode.theme-tomorrowkit = buildVscodeMarketplaceExtension {
mktplcRef = {
name = "Theme-TomorrowKit";
@ -4245,8 +4260,8 @@ let
mktplcRef = {
name = "shellcheck";
publisher = "timonwong";
version = "0.26.3";
sha256 = "GlyOLc2VrRnA50MkaG83qa0yLUyJYwueqEO+ZeAStYs=";
version = "0.37.0";
sha256 = "1d0blynn6c2hz4y9fk7b5wsa3x168gxyycr5d05zqp0rx520m5wc";
};
nativeBuildInputs = [ jq moreutils ];
postInstall = ''
@ -4254,7 +4269,11 @@ let
jq '.contributes.configuration.properties."shellcheck.executablePath".default = "${shellcheck}/bin/shellcheck"' package.json | sponge package.json
'';
meta = {
description = "Integrates ShellCheck into VS Code, a linter for Shell scripts";
downloadPage = "https://marketplace.visualstudio.com/items?itemName=timonwong.shellcheck";
homepage = "https://github.com/vscode-shellcheck/vscode-shellcheck";
license = lib.licenses.mit;
maintainers = [ lib.maintainers.raroh73 ];
};
};

View File

@ -49,9 +49,9 @@ stdenv.mkDerivation rec {
})
];
buildInputs = [ neon libusb1 openssl udev avahi freeipmi libmodbus i2c-tools net-snmp gd ];
buildInputs = [ neon libusb1 openssl udev avahi freeipmi libmodbus libtool i2c-tools net-snmp gd ];
nativeBuildInputs = [ autoreconfHook libtool pkg-config makeWrapper ];
nativeBuildInputs = [ autoreconfHook pkg-config makeWrapper ];
configureFlags =
[ "--with-all"

View File

@ -7,16 +7,16 @@
buildGoModule rec {
pname = "typioca";
version = "2.10.0";
version = "2.11.2";
src = fetchFromGitHub {
owner = "bloznelis";
repo = "typioca";
rev = version;
hash = "sha256-D6I1r+8cvUerqXR2VyBL33lapWAs5Cl5yvYOsmUBnHo=";
hash = "sha256-LpQHdqvqAj3gqyvsD58Jhu4GkeJ/R7EjKo7YG7/mmJk=";
};
vendorHash = "sha256-j/nyAHNwUoNkcdNJqcaUuhQk5a2VHQw/XgYIoTR9ctQ=";
vendorHash = "sha256-lpeceY6ErcxCGKrwVuW19ofsXyfXsJgKGThWKswRTis=";
ldflags = [
"-s"

View File

@ -15,9 +15,9 @@
version = "2024-02-19";
};
};
hash = "sha256-b72MiRv4uxolKE92tK224FvyA56NM3FcCjijkc9m3ro=";
hash_deb_amd64 = "sha256-JsEJw8aEptesRiCtIrfHRQu1xq27TzHSmUr+dsvnV7o=";
version = "123.0.6312.86";
hash = "sha256-C17TPDVFW3+cHO1tcEghjI6H59TVPm9hdCrF2s5NI68=";
hash_deb_amd64 = "sha256-zmnBi4UBx52fQKHHJuUaCMuDJl7ntQzhG6h/yH7YPNU=";
version = "123.0.6312.105";
};
ungoogled-chromium = {
deps = {
@ -28,12 +28,12 @@
version = "2024-02-19";
};
ungoogled-patches = {
hash = "sha256-ET/fAQCpCx1wadA52mcEA3lBlIZPIK/DX2r2vhGf79o=";
rev = "123.0.6312.86-1";
hash = "sha256-81SoZBOAAV0cAVzz3yOzBstRW3vWjmkFoFNjYdPnme4=";
rev = "123.0.6312.105-1";
};
};
hash = "sha256-b72MiRv4uxolKE92tK224FvyA56NM3FcCjijkc9m3ro=";
hash_deb_amd64 = "sha256-JsEJw8aEptesRiCtIrfHRQu1xq27TzHSmUr+dsvnV7o=";
version = "123.0.6312.86";
hash = "sha256-C17TPDVFW3+cHO1tcEghjI6H59TVPm9hdCrF2s5NI68=";
hash_deb_amd64 = "sha256-zmnBi4UBx52fQKHHJuUaCMuDJl7ntQzhG6h/yH7YPNU=";
version = "123.0.6312.105";
};
}

View File

@ -27,29 +27,29 @@
"vendorHash": "sha256-jK7JuARpoxq7hvq5+vTtUwcYot0YqlOZdtDwq4IqKvk="
},
"aiven": {
"hash": "sha256-ap2UuJojGx7+OZB2RmIZlHbawZi4lqa1iGUr2NLSPGk=",
"hash": "sha256-6FcHqSXszJZkIX9wytkNU8+rKgBu34k2Xnfq6fcqkHs=",
"homepage": "https://registry.terraform.io/providers/aiven/aiven",
"owner": "aiven",
"repo": "terraform-provider-aiven",
"rev": "v4.14.0",
"rev": "v4.15.0",
"spdx": "MIT",
"vendorHash": "sha256-PSErY3yFDTjtK+FVlJEEBfZAz1BybjiPK7nDulrrbdY="
"vendorHash": "sha256-SNpsdbNvgLOS8pSSvz58xThTqzCOOPZMggJb7HetzAw="
},
"akamai": {
"hash": "sha256-j1UTi4ygixwSfu9Wp//JzKe58xSV/tZM3kRo1ikBo3Y=",
"hash": "sha256-WOLEKdY8GbvAREbWQqAdITGVb4erHmIMp9GT2CsKvTk=",
"homepage": "https://registry.terraform.io/providers/akamai/akamai",
"owner": "akamai",
"repo": "terraform-provider-akamai",
"rev": "v5.6.0",
"rev": "v6.0.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-/gW1vxaDaUMpm0QSghd/Glo3S/XVa5t9x3QrIs4Bqyk="
"vendorHash": "sha256-g3U0w+gvrOzS8W3Cu+wpOlWo8JHUlBpxRkDDl6wzcXM="
},
"alicloud": {
"hash": "sha256-Zi4oymePLOW6NgEE8aHlEo7rStz2GPNFSSUl9LUr7OU=",
"hash": "sha256-+3MgqAMcDfwhVW3zGSsjLfVWmVNWyrjtUqB9KYzdYRk=",
"homepage": "https://registry.terraform.io/providers/aliyun/alicloud",
"owner": "aliyun",
"repo": "terraform-provider-alicloud",
"rev": "v1.219.0",
"rev": "v1.220.1",
"spdx": "MPL-2.0",
"vendorHash": null
},
@ -72,20 +72,20 @@
"vendorHash": "sha256-buKYDNVCIcSDLCrCL4ZAKNQ7HqkH3+/7RHjyyR4dLmU="
},
"argocd": {
"hash": "sha256-nJrXbeI/07LlKngEkAnqPG6CiOLFTFugmZMVl2FEvIo=",
"hash": "sha256-dHIvMFz5XIxxBvBFsEw8lqi6yVoYM9E4tLIoTY+mdiQ=",
"homepage": "https://registry.terraform.io/providers/oboukili/argocd",
"owner": "oboukili",
"repo": "terraform-provider-argocd",
"rev": "v6.0.3",
"rev": "v6.1.1",
"spdx": "MPL-2.0",
"vendorHash": "sha256-q9PO9tMbaXTs3nBLElwU05GcDZMZqNmLVVGDmiSRSfo="
"vendorHash": "sha256-yyTU+D4zMDcJPZ9j7a2ZuPjGBCHvED5R0rvevCEaoAI="
},
"artifactory": {
"hash": "sha256-udgRoN1YoVaJpNS6MkZAThcuWGOL9Jc3lf3NAKS9WH8=",
"hash": "sha256-qlmAOc4wSxQ9Xnr4zBB98OSFW4HB7w7yStsUNfsylsE=",
"homepage": "https://registry.terraform.io/providers/jfrog/artifactory",
"owner": "jfrog",
"repo": "terraform-provider-artifactory",
"rev": "v10.4.0",
"rev": "v10.4.3",
"spdx": "Apache-2.0",
"vendorHash": "sha256-P5L2Q8t9TxJnu5cjOwEKek1KNKAw78fqZoOSAo6AvzQ="
},
@ -117,13 +117,13 @@
"vendorHash": null
},
"aws": {
"hash": "sha256-+daAkFF6nSTe6yxOdW58BRzBYI4tUMhNoG6vnG1cXTA=",
"hash": "sha256-YykNKCDFPQCtES2vAbCbqbHbkx1EmVM0bTEylr84bqs=",
"homepage": "https://registry.terraform.io/providers/hashicorp/aws",
"owner": "hashicorp",
"repo": "terraform-provider-aws",
"rev": "v5.41.0",
"rev": "v5.43.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-JmMp9AqjWZGVvCsCCTYl3o4BT9yxzA3A16ESrpciCLE="
"vendorHash": "sha256-2KQEX1QwPrN32gFMKF7QPnisLdBC/bn74wX1f8uiC+0="
},
"azuread": {
"hash": "sha256-lumXl3orK5Jq5+qnRfiIA94NjK2bCjd3LhRzHmW1h8I=",
@ -135,11 +135,11 @@
"vendorHash": null
},
"azurerm": {
"hash": "sha256-5uA+P29yLCXyOB+98Nx9dPNKONmgDAkMEb8cNRB4MW8=",
"hash": "sha256-kJ6snlePBGRqE8mS95ROzskz+b4cnPLz/OO1Vk+i56Q=",
"homepage": "https://registry.terraform.io/providers/hashicorp/azurerm",
"owner": "hashicorp",
"repo": "terraform-provider-azurerm",
"rev": "v3.96.0",
"rev": "v3.97.1",
"spdx": "MPL-2.0",
"vendorHash": null
},
@ -154,20 +154,20 @@
},
"baiducloud": {
"deleteVendor": true,
"hash": "sha256-ymTKRxbFUT99qxAS8lb4QAAWXX7yopPo8Ac93mpGEHo=",
"hash": "sha256-qLjAHoBnb6//QYxYZyN13RxWOuEjxwSOiPyfR1qMtro=",
"homepage": "https://registry.terraform.io/providers/baidubce/baiducloud",
"owner": "baidubce",
"repo": "terraform-provider-baiducloud",
"rev": "v1.19.39",
"rev": "v1.19.40",
"spdx": "MPL-2.0",
"vendorHash": "sha256-puTQKvIvyBRgdZZTZCXEAdc8HYNgtoSmzjpqHCIEAKk="
"vendorHash": "sha256-hd64VJOkl+BtMXR+VcGam8ycKdfuwmaj67cBxx6rS8w="
},
"bigip": {
"hash": "sha256-GrHd9plKhe7BdCBgsnTv+CM82F7oDPWamtXxOpiwKPE=",
"hash": "sha256-cGFlVcu8G7xpiHk1dhgLIkZHc6srOn/eLyQk9xETpnI=",
"homepage": "https://registry.terraform.io/providers/F5Networks/bigip",
"owner": "F5Networks",
"repo": "terraform-provider-bigip",
"rev": "v1.21.0",
"rev": "v1.22.0",
"spdx": "MPL-2.0",
"vendorHash": null
},
@ -190,13 +190,13 @@
"vendorHash": "sha256-/dOiXO2aPkuZaFiwv/6AXJdIADgx8T7eOwvJfBBoqg8="
},
"buildkite": {
"hash": "sha256-zhltbz9mlHVJI4R8RSS6UyyfeopgK62BJzQfl3VtIfE=",
"hash": "sha256-DIquKLQB27deYYG3vMlhBoO/EZ5WK04zAR7qPrRQ38k=",
"homepage": "https://registry.terraform.io/providers/buildkite/buildkite",
"owner": "buildkite",
"repo": "terraform-provider-buildkite",
"rev": "v1.5.2",
"rev": "v1.6.0",
"spdx": "MIT",
"vendorHash": "sha256-LKATx/5jjQCyaOUDFQNka3tWMH5DbEKNhrfYlyzDPKc="
"vendorHash": "sha256-1HYJ1k3ZK9rK/cDOXnJz556qqBkyikRxCBbOeJhl3Ks="
},
"checkly": {
"hash": "sha256-Wxw87/9BG/bTDGqgKdle6WF38oDoHkrc0HIKjJlaQOQ=",
@ -226,13 +226,13 @@
"vendorHash": "sha256-cI3brJwN+7FTceOMwR0HMbZCNHhwvm31OXqjAEvrzrs="
},
"cloudflare": {
"hash": "sha256-veqaQQaZz05lom2X03+bav2JBVv/enBCA1lcyKmAlZk=",
"hash": "sha256-p4jRSFNalEzIs8k1QZBVSUERmdK0qVYdk4oUoQRtQww=",
"homepage": "https://registry.terraform.io/providers/cloudflare/cloudflare",
"owner": "cloudflare",
"repo": "terraform-provider-cloudflare",
"rev": "v4.26.0",
"rev": "v4.29.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-8MvwvBDUs0OVptgtbg/tAEEBgD9Tk5mWKnnW4p0Rk20="
"vendorHash": "sha256-HgTjVtC5Z7/3b86fFHTcZE4vUukWtBdWFdwgWGQW9ZQ="
},
"cloudfoundry": {
"hash": "sha256-1nYncJLVU/f9WD6Quh9IieIXgixPzbPk4zbtI1zmf9g=",
@ -364,11 +364,11 @@
"vendorHash": "sha256-XxltOTtCgmJ9wZX8Yw39HkwVVZb58kZjAH7jfKPhjKM="
},
"doppler": {
"hash": "sha256-FJS1lPYieTWI/AX7pBbFmGtJw5kPD7MCZp+LWWIsnus=",
"hash": "sha256-PfqFf3V+zH4SPvciLNnB9KWCVm8M94q8rzedUuXABAg=",
"homepage": "https://registry.terraform.io/providers/DopplerHQ/doppler",
"owner": "DopplerHQ",
"repo": "terraform-provider-doppler",
"rev": "v1.6.2",
"rev": "v1.7.0",
"spdx": "Apache-2.0",
"vendorHash": "sha256-qJ1mOuMyJ/f2/yCns7qY8zUt2lgDuBgzN0w1HCKBk7E="
},
@ -382,20 +382,20 @@
"vendorHash": "sha256-oVTanZpCWs05HwyIKW2ajiBPz1HXOFzBAt5Us+EtTRw="
},
"equinix": {
"hash": "sha256-LF9S0jqMeXSci6uAFW+3C7IA9PGmSUgFrVG13/i0hZc=",
"hash": "sha256-Wtt4vkHcDBTzObfpOSdH4RAfoT/1+B58PytJ1NSkyQk=",
"homepage": "https://registry.terraform.io/providers/equinix/equinix",
"owner": "equinix",
"repo": "terraform-provider-equinix",
"rev": "v1.33.0",
"rev": "v1.34.0",
"spdx": "MIT",
"vendorHash": "sha256-TC1vPWe1rFofz0SdKpV9qAmknLROQH2MglPDrA62nO0="
"vendorHash": "sha256-9+cytMN5VK0nwLiR58lzE+UzlvqI677/rOxzd8D5k30="
},
"exoscale": {
"hash": "sha256-t1yZmayoZkDImcIr+VkNhQRzlfteGuvgcjSDOmmCF5I=",
"hash": "sha256-0PsMSEbMoeuoa17AZvzbSOoY48IeQ4CPGWknkc0tDQQ=",
"homepage": "https://registry.terraform.io/providers/exoscale/exoscale",
"owner": "exoscale",
"repo": "terraform-provider-exoscale",
"rev": "v0.56.0",
"rev": "v0.57.0",
"spdx": "MPL-2.0",
"vendorHash": null
},
@ -446,40 +446,40 @@
"vendorHash": "sha256-EiTWJ4bw8IwsRTD9Lt28Up2DXH0oVneO2IaO8VqWtkw="
},
"github": {
"hash": "sha256-0tnqXynYPct9HAZdhJ42bzJbcsC5QVz4bOszEO+tjSc=",
"hash": "sha256-K3/taXnlIroiWQYyZB2LElAcF5fQm2aaEp3OXqKCJ+E=",
"homepage": "https://registry.terraform.io/providers/integrations/github",
"owner": "integrations",
"repo": "terraform-provider-github",
"rev": "v6.2.0",
"rev": "v6.2.1",
"spdx": "MIT",
"vendorHash": null
},
"gitlab": {
"hash": "sha256-RphUUJOMx9p1fTys68C+bWxgS8zjrWLe4VgMXwKa8SE=",
"hash": "sha256-WquY33Dx5E+OgnAMZ6dhgwrixhHhAYRUa4l6TuzGzmw=",
"homepage": "https://registry.terraform.io/providers/gitlabhq/gitlab",
"owner": "gitlabhq",
"repo": "terraform-provider-gitlab",
"rev": "v16.9.1",
"rev": "v16.10.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-mr4ZEQobsFBRU/RUV4joqsWQTuAaSioB1GO09wQJy7M="
"vendorHash": "sha256-7hIThIq3uU803aK+paR5KdTdfVmSZu7Spf9UepaVgvc="
},
"google": {
"hash": "sha256-CbOy5kExsXHQTMteNpqnr0SHsQIjKSiJuwJD9Wcy5Ag=",
"hash": "sha256-LV3/4X/4jA+mZrkbzmYqiQDOVkH3zie2YCc6M9voJpA=",
"homepage": "https://registry.terraform.io/providers/hashicorp/google",
"owner": "hashicorp",
"repo": "terraform-provider-google",
"rev": "v5.21.0",
"rev": "v5.23.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-VL03n3rEMccHuYmFMgoX01hzpEA7WHIyxa8GnfVLLSo="
"vendorHash": "sha256-SUYBSggBAl63plYz1kf+BBL6yPKbHAG8cjJE1JquSQ4="
},
"google-beta": {
"hash": "sha256-fn4JrTU/TX8jJ6vYxzWYFpGFmgSDEt6txOF/jsX2BcU=",
"hash": "sha256-0eiMpPuia7M9IPhKHBWXiBXH3LenUonsbs2QdP4V1e4=",
"homepage": "https://registry.terraform.io/providers/hashicorp/google-beta",
"owner": "hashicorp",
"repo": "terraform-provider-google-beta",
"rev": "v5.21.0",
"rev": "v5.23.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-bUJJNnnmF7PXwXUomE5uuk21rpHsy7W5ESkj0DDiY04="
"vendorHash": "sha256-y9m+rOuQWSooeZBMuM1irx0CtdHtOqmhKv7+f8GNO6g="
},
"googleworkspace": {
"hash": "sha256-dedYnsKHizxJZibuvJOMbJoux0W6zgKaK5fxIofKqCY=",
@ -491,20 +491,20 @@
"vendorHash": "sha256-fqVBnAivVekV+4tpkl+E6eNA3wi8mhLevJRCs3W7L2g="
},
"grafana": {
"hash": "sha256-8YE+bi44c55hDH+NlEsuocT1d6PugF/QfwvOTD693YE=",
"hash": "sha256-7Hv0jAYnTh8B2xpxIlMdQL3mVANSRYRyG5OTHZLp4wA=",
"homepage": "https://registry.terraform.io/providers/grafana/grafana",
"owner": "grafana",
"repo": "terraform-provider-grafana",
"rev": "v2.14.2",
"rev": "v2.14.3",
"spdx": "MPL-2.0",
"vendorHash": "sha256-HVPCLtE1DVM5Rq/myNoJwFrSQVG6utX0LOmR7yklRu8="
"vendorHash": "sha256-NAUFTk868XhzLu5boP09JeZbMs1exqOmHkFa9MUJFns="
},
"gridscale": {
"hash": "sha256-5gidBMUfJ4DPKuRx/pF5Rlff7DPkIXBJ7qzCIy6bZm8=",
"hash": "sha256-gytjUn1xy8HTgItYrxrhm80qrbrjdDQvEcGLZ49VC+0=",
"homepage": "https://registry.terraform.io/providers/gridscale/gridscale",
"owner": "gridscale",
"repo": "terraform-provider-gridscale",
"rev": "v1.23.2",
"rev": "v1.24.0",
"spdx": "MPL-2.0",
"vendorHash": null
},
@ -564,11 +564,11 @@
"vendorHash": "sha256-GDeuiT3PV92t3CsD60CAmN8ED9j8UzDbRlk59SSCVCM="
},
"huaweicloud": {
"hash": "sha256-vOaLOGLp+V+IYYa56rpiv1yx89incw796cTUgUXHtdM=",
"hash": "sha256-yYMI1UuOU/DbGYqReI//zhBmlD96KYot7h987k4Cl6o=",
"homepage": "https://registry.terraform.io/providers/huaweicloud/huaweicloud",
"owner": "huaweicloud",
"repo": "terraform-provider-huaweicloud",
"rev": "v1.62.1",
"rev": "v1.63.0",
"spdx": "MPL-2.0",
"vendorHash": null
},
@ -591,13 +591,13 @@
"vendorHash": null
},
"ibm": {
"hash": "sha256-dYH6D5VKh2wNh8L4SyXELy1zL+fORLeOgXG92XDg4GY=",
"hash": "sha256-5esd44JgaarCJK38QyYv+fxMz0+zzivMZD8rqyqrdbo=",
"homepage": "https://registry.terraform.io/providers/IBM-Cloud/ibm",
"owner": "IBM-Cloud",
"repo": "terraform-provider-ibm",
"rev": "v1.63.0",
"rev": "v1.64.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-SlUzByF0tke5YtMflOzpYfguZlNe8qeqJqvxCh/TVoY="
"vendorHash": "sha256-YFxD7hvKTXdaQ/+/Oiws/i6TipbFaAQ0Ah1arGK7JUo="
},
"icinga2": {
"hash": "sha256-Y/Oq0aTzP+oSKPhHiHY9Leal4HJJm7TNDpcdqkUsCmk=",
@ -636,13 +636,13 @@
"vendorHash": "sha256-NEGjgtrn6ZowqSF6NAK1NnSjYVUvfWuH/4R5ZPdTZSs="
},
"kafka": {
"hash": "sha256-BS15vAQeWAYPaF7i4xpFPv7Ni+tF4LFu8k/woVvQNF4=",
"hash": "sha256-bkZfgA/PgLWC3YXrIgoF2YRgOFQhoT+Seeifg1GvVFY=",
"homepage": "https://registry.terraform.io/providers/Mongey/kafka",
"owner": "Mongey",
"repo": "terraform-provider-kafka",
"rev": "v0.7.0",
"rev": "v0.7.1",
"spdx": "MIT",
"vendorHash": "sha256-H35qqnWovPgf1t9DlxnPhDg2uWEKTWR3KcLtDum/Qc4="
"vendorHash": "sha256-Adfz3r3xWY7a4u9/m6a1rvQYGq+E8Q5pAuS/uMgZRQM="
},
"kafka-connect": {
"hash": "sha256-PiSVfzNPEXAgONb/eaVAN4yPudn5glcHL0BLqE5PWsw=",
@ -681,13 +681,13 @@
"vendorHash": "sha256-mVC3Uf+4zWM7lXHXOfVI+okXI8gP1W5VyZyH+qVNX7o="
},
"launchdarkly": {
"hash": "sha256-IuoFMp0NViuwwgOlfvoReodPhOJR0+YyJDI/vjN52jQ=",
"hash": "sha256-C+RGrw+XAaAekKkwvf5gtoiXghSJuByUJvyKgUt/DSE=",
"homepage": "https://registry.terraform.io/providers/launchdarkly/launchdarkly",
"owner": "launchdarkly",
"repo": "terraform-provider-launchdarkly",
"rev": "v2.18.1",
"rev": "v2.18.2",
"spdx": "MPL-2.0",
"vendorHash": "sha256-JbrecA5pNIifikBHwqFL72hRfRFHHl29mFKE4nDdbkY="
"vendorHash": "sha256-NCyEU30hw1aWB7T8sM3lrJEUtPdWlbCGdWDaRgjeJdM="
},
"libvirt": {
"hash": "sha256-yGlNBbixrQxjh7zgZoK3YXpUmr1vrLiLZhKpXvQULYg=",
@ -699,13 +699,13 @@
"vendorHash": "sha256-K/PH8DAi6Wj+isPx9xefQcLPKnrimfItZFSPfktTias="
},
"linode": {
"hash": "sha256-rk1fUC+++pXmYVL1IgR5rT77pere+j51n9kdzaDWKgc=",
"hash": "sha256-BZoMNx0a+dXMpY/YaYKEL3dQonGELlNzDVtOq7Z4Yfk=",
"homepage": "https://registry.terraform.io/providers/linode/linode",
"owner": "linode",
"repo": "terraform-provider-linode",
"rev": "v2.17.0",
"rev": "v2.18.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-8vmorWsrZLJo3lKN74Bt+V8xKPOe389FZ2SjvxYfvtI="
"vendorHash": "sha256-1okvZTEycuGymzcKtUNrxZpiPVoc2ykMxMUbq8mgEOw="
},
"linuxbox": {
"hash": "sha256-MzasMVtXO7ZeZ+qEx2Z+7881fOIA0SFzSvXVHeEROtg=",
@ -744,13 +744,13 @@
"vendorHash": "sha256-yUXxq8NTOv8ZmWp0WiIID2cRU6AZiItIs99uGZpt9dc="
},
"matchbox": {
"hash": "sha256-vWhdStfwReeD1PHTihBoj4GoKnP85nzNzIV/Tjfcz1M=",
"hash": "sha256-B1PxdbqXrB1ioB5utI4LI6rkhwHmaAiYkSxRAcjJnAA=",
"homepage": "https://registry.terraform.io/providers/poseidon/matchbox",
"owner": "poseidon",
"repo": "terraform-provider-matchbox",
"rev": "v0.5.2",
"rev": "v0.5.4",
"spdx": "Apache-2.0",
"vendorHash": "sha256-coARdDQVs38dVdUH/fsoGVlwh3wYr3aTxKp/FpUzhis="
"vendorHash": "sha256-L1wufPa7LPPyOPTL+jFQgiWzJoJYS+fCdw3N0KZqKtc="
},
"metal": {
"hash": "sha256-1HTSDVMk2VhoYRLInrBK3bDuYU0SwyhBV1p5A2tlU/I=",
@ -762,13 +762,13 @@
"vendorHash": "sha256-QxbZv6YMa5/I4bTeQBNdmG3EKtLEmstnH7HMiZzFJrI="
},
"migadu": {
"hash": "sha256-jLOXQmsAAG78eNAlpo6Ge5fdhUHeGevVm079H1gE5/s=",
"hash": "sha256-qP862jjbYks+6DR5eGzVlCvYyfupejqaxD2CgwSZxdQ=",
"homepage": "https://registry.terraform.io/providers/metio/migadu",
"owner": "metio",
"repo": "terraform-provider-migadu",
"rev": "2024.3.21",
"rev": "2024.4.4",
"spdx": "0BSD",
"vendorHash": "sha256-ecoy0nJPuBsoVkYXNkrURgmDiaZEplkD1Zv4TEMuyU0="
"vendorHash": "sha256-r5fOj6YsW8ggoEbfyLvJDmD9P8WQ1J5K7ztg/NYm6y4="
},
"minio": {
"hash": "sha256-dgMK61jFXnOvE11FIoIJfFN1zb+N9HrFZ/WtQqwktbw=",
@ -780,13 +780,13 @@
"vendorHash": "sha256-Uxexx5sK6D+EEEPWLnWFE0HPG1RKUsYnSJ/1bV9JBkw="
},
"mongodbatlas": {
"hash": "sha256-1IHiwMvME+kTbOSBNHBpDifzORf4li8WUxvtMu2uQiI=",
"hash": "sha256-xdPR0wyDEsyJCzRcGuDNhD4K+19KhZXsGxygoDadfvY=",
"homepage": "https://registry.terraform.io/providers/mongodb/mongodbatlas",
"owner": "mongodb",
"repo": "terraform-provider-mongodbatlas",
"rev": "v1.15.2",
"rev": "v1.15.3",
"spdx": "MPL-2.0",
"vendorHash": "sha256-fVDjhXRbYt845ZhFY85lCpXubKINBeMZg0U3K5RbnDk="
"vendorHash": "sha256-1cbmarVuMIkLuEBo2+O14wHqV0hbT/Jxh0sWRvfnDoE="
},
"namecheap": {
"hash": "sha256-g3i7jZBOl2umsyRk1z7Radv8a9Ry6oQ8oorv3YbY7Xo=",
@ -807,13 +807,13 @@
"vendorHash": null
},
"newrelic": {
"hash": "sha256-4/MFR8AJanto5OuY0J3Yce3zI62D5bx2UklrTccpvP0=",
"hash": "sha256-npQn5eN3dGXy7bgVXpobn1HyVemrdxD5sASubbpY7qs=",
"homepage": "https://registry.terraform.io/providers/newrelic/newrelic",
"owner": "newrelic",
"repo": "terraform-provider-newrelic",
"rev": "v3.32.0",
"rev": "v3.34.1",
"spdx": "MPL-2.0",
"vendorHash": "sha256-QluXNbTBc/EXCO3PmnBOSwSERK3t5NhCS4Jnz5hU97k="
"vendorHash": "sha256-Riutsej7+FISe0wFH9lGghyR5D6Jv3WbP3a33pqVBzU="
},
"nomad": {
"hash": "sha256-+S78qH7xMvJEGvgTRlxADNZI24PNgqCj1xgmIl4Oif4=",
@ -825,13 +825,13 @@
"vendorHash": "sha256-f/L9ZkirFIb+Yu2H4wz9wCb65NCC0TsmEnZPCI4Z6gw="
},
"ns1": {
"hash": "sha256-qk+JfmWjaK29KqUVN2K01AEU+zJAQGeJhsnu3BBNHqI=",
"hash": "sha256-ZGqHIzK7tv7WeKHE8w11lOfDeWZqhi/88DOHcDaYHNg=",
"homepage": "https://registry.terraform.io/providers/ns1-terraform/ns1",
"owner": "ns1-terraform",
"repo": "terraform-provider-ns1",
"rev": "v2.2.0",
"rev": "v2.2.1",
"spdx": "MPL-2.0",
"vendorHash": "sha256-Fh4RP2Yu3EWD/I8r3I2nEkyQBZdM5SmdX+IcK5B8cb0="
"vendorHash": "sha256-mOxhYVsq/yl1BqMyRWmLM/YrncMTlqiUo4GdAObH3ZU="
},
"null": {
"hash": "sha256-KOwJXGvMc9Xgq4Kbr72aW6RDwzldUrU1C3aDxpKO3qE=",
@ -853,11 +853,11 @@
"vendorHash": "sha256-LRIfxQGwG988HE5fftGl6JmBG7tTknvmgpm4Fu1NbWI="
},
"oci": {
"hash": "sha256-V3A22EUSmVjglnytaxRL2CCG5DtzKl0J+Xalk96z99o=",
"hash": "sha256-dGFpk83154mQlH2iM52mo+208MAU4BYBOOBH529QmRI=",
"homepage": "https://registry.terraform.io/providers/oracle/oci",
"owner": "oracle",
"repo": "terraform-provider-oci",
"rev": "v5.34.0",
"rev": "v5.36.0",
"spdx": "MPL-2.0",
"vendorHash": null
},
@ -898,13 +898,13 @@
"vendorHash": "sha256-WHsYDcvLE1i+wCHGNF6eE8yVpPbP5SLG7ZK1AL7xMXI="
},
"opentelekomcloud": {
"hash": "sha256-rifK2xVnzYQZnDzF4glkpA4w1/rbvuxkas8npJRXqvM=",
"hash": "sha256-wRKwrxZbT2z71gVE+O8bLjZmRGsZDhdn4raShedV4kc=",
"homepage": "https://registry.terraform.io/providers/opentelekomcloud/opentelekomcloud",
"owner": "opentelekomcloud",
"repo": "terraform-provider-opentelekomcloud",
"rev": "v1.36.4",
"rev": "v1.36.5",
"spdx": "MPL-2.0",
"vendorHash": "sha256-4kO4pl1Ssj+lCmImiJQq59J/6rpfuYt/NBDBxJopQdE="
"vendorHash": "sha256-Xlba/lceTt1DPtHZxeIQqbscl+pZl7hw6xJXleXd0r0="
},
"opsgenie": {
"hash": "sha256-ZssKhfwFrzCjvlebEmKAHWBInN5daVqxbmVFoA92dv8=",
@ -925,11 +925,11 @@
"vendorHash": null
},
"pagerduty": {
"hash": "sha256-D1tYsPiozT9FdTL+DKDkjxAByXueyKwBkka3P9xDJLc=",
"hash": "sha256-joR7uucMEBbQIuec29m+t3w5W/omgzexg70+Sh2MeBY=",
"homepage": "https://registry.terraform.io/providers/PagerDuty/pagerduty",
"owner": "PagerDuty",
"repo": "terraform-provider-pagerduty",
"rev": "v3.10.0",
"rev": "v3.11.0",
"spdx": "MPL-2.0",
"vendorHash": null
},
@ -970,13 +970,13 @@
"vendorHash": null
},
"project": {
"hash": "sha256-eXieWiwDzTkOVvrjjnG8i8ke7mMTjluq5zEtiZqfiOA=",
"hash": "sha256-U3hm1BqqePffuLBg+U4hgzcZpk+VCLhE5GsnRRYKT30=",
"homepage": "https://registry.terraform.io/providers/jfrog/project",
"owner": "jfrog",
"repo": "terraform-provider-project",
"rev": "v1.5.1",
"rev": "v1.5.2",
"spdx": "Apache-2.0",
"vendorHash": "sha256-bJ6+i7fZ6PsUcwjwJKiMC10I44bojIifI7eWUhdT1Bw="
"vendorHash": "sha256-2gVJpNRIEO/mTBg3m5CoxpeC2U09hnV9bPi5537f1Mk="
},
"proxmox": {
"hash": "sha256-ikXLLNoAjrnGGGI3fHTKFXm8YwqNazE/U39JTjOBsW4=",
@ -1033,13 +1033,13 @@
"vendorHash": null
},
"scaleway": {
"hash": "sha256-3K1BGar+D45nCSQNodJYTp+kP0EdoBzQTOEJ3PQa3t8=",
"hash": "sha256-TRmBSATsynbvRg9TC6kYPbzV3Y2X9Kr/3FjyMe7Kj6c=",
"homepage": "https://registry.terraform.io/providers/scaleway/scaleway",
"owner": "scaleway",
"repo": "terraform-provider-scaleway",
"rev": "v2.38.2",
"rev": "v2.38.3",
"spdx": "MPL-2.0",
"vendorHash": "sha256-5otz+3S1o3V+V1SZaFP611AwyCvoPCxCwR2SE3DEw5o="
"vendorHash": "sha256-hUueCEaNuTQFD17eyne7LMUr5dXdycLFJ7/d9AJh3F4="
},
"secret": {
"hash": "sha256-MmAnA/4SAPqLY/gYcJSTnEttQTsDd2kEdkQjQj6Bb+A=",
@ -1051,13 +1051,13 @@
"vendorHash": null
},
"selectel": {
"hash": "sha256-p9XH9/sIVyY2f957/8KI91y5GCn1/MEGY+QBsArvYJA=",
"hash": "sha256-HgHgZEo6fKxunbE5W8LUVukvmGpEc0bqbpO/ZcdwmTE=",
"homepage": "https://registry.terraform.io/providers/selectel/selectel",
"owner": "selectel",
"repo": "terraform-provider-selectel",
"rev": "v4.0.2",
"rev": "v4.1.1",
"spdx": "MPL-2.0",
"vendorHash": "sha256-FjJosTjFRJnBW22IB9UHfZe9KWrT1h12InyUl0q7a28="
"vendorHash": "sha256-VT9A7x7CAKJjuCXLI42s6WDy/XSME0UYLU6k1YcreU0="
},
"sentry": {
"hash": "sha256-sUXOH0cbD5Zf3e4KHLUYM8vu2knJdfIWZ+fq9HMfJ54=",
@ -1123,13 +1123,13 @@
"vendorHash": "sha256-8W1PK4T98iK1N6EB6AVjvr1P9Ja51+kSOmYAEosxrh8="
},
"spotinst": {
"hash": "sha256-3/dMhB5SRc1pEsoflaMcNmPn3MjEUZ95aruqwD/Ro0M=",
"hash": "sha256-frnDZx02Kmp2C0djkZYfeZ6WsGc9mFUNmpajsfx8FCI=",
"homepage": "https://registry.terraform.io/providers/spotinst/spotinst",
"owner": "spotinst",
"repo": "terraform-provider-spotinst",
"rev": "v1.165.0",
"rev": "v1.168.1",
"spdx": "MPL-2.0",
"vendorHash": "sha256-aKp9DDUU1cZye24jtFqpxA43KJj8CjXFE/+hl1PBH6c="
"vendorHash": "sha256-pf9FsI11CKANee0dM0djLVF1xwztKVlb0bVAkp/6zbc="
},
"ssh": {
"hash": "sha256-1UN5QJyjCuxs2vQYlSuz2jsu/HgGTxOoWWRcv4qcwow=",
@ -1195,11 +1195,11 @@
"vendorHash": "sha256-2rYaxDDIPH46gXNILnTcHRsChpEd406r4pzWdnHMLNM="
},
"tencentcloud": {
"hash": "sha256-Vk1Jc1zSTKoFlNATlx9i5Pn4EzD/uS+RgmUCooMQVx8=",
"hash": "sha256-nYQVrWpCiDTXJ6BA9dwXkslGF/dvlT+E8WBD7By91Cw=",
"homepage": "https://registry.terraform.io/providers/tencentcloudstack/tencentcloud",
"owner": "tencentcloudstack",
"repo": "terraform-provider-tencentcloud",
"rev": "v1.81.83",
"rev": "v1.81.86",
"spdx": "MPL-2.0",
"vendorHash": null
},
@ -1268,31 +1268,31 @@
"vendorHash": null
},
"utils": {
"hash": "sha256-DW2O1tou+HfOgzSca/SS3tFeo0efGt1ATVs5SmwUvmk=",
"hash": "sha256-LGjH/nQj18v8qjwJEU1CkrauGqSizsTpl80Q5jNIwUE=",
"homepage": "https://registry.terraform.io/providers/cloudposse/utils",
"owner": "cloudposse",
"repo": "terraform-provider-utils",
"rev": "1.18.0",
"rev": "1.19.2",
"spdx": "Apache-2.0",
"vendorHash": "sha256-srhu8iepW/JmPrJ7PuXyk0GEWMwzpNpkny33z7ZdrdM="
"vendorHash": "sha256-QC5EWVSkBDMfLR2f0u0K2LOn6FaHCeFkNJeq8vWQp+o="
},
"vault": {
"hash": "sha256-jwVc1x2+i4V/0mWRg5+Xpk0ONHC1T55Hof9JOUVAo/s=",
"hash": "sha256-Pdh2rudUwOgY292JPPrvxIABHC+/dBYK5iNTaHZ9ed0=",
"homepage": "https://registry.terraform.io/providers/hashicorp/vault",
"owner": "hashicorp",
"repo": "terraform-provider-vault",
"rev": "v4.1.0",
"rev": "v4.2.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-b/1g/1hFbIfzYJ0lQKNzalLkD95LLRgoftuoeDicalE="
},
"vcd": {
"hash": "sha256-TP9COMofx4c2GZ0dQkfopn4iq8ddfV3WwuNjTu6yQnU=",
"hash": "sha256-yywk60Ae1Ch+kuOqoKfAqrOhUAbJVQxA0wJW+CfZ4CY=",
"homepage": "https://registry.terraform.io/providers/vmware/vcd",
"owner": "vmware",
"repo": "terraform-provider-vcd",
"rev": "v3.11.0",
"rev": "v3.12.0",
"spdx": "MPL-2.0",
"vendorHash": "sha256-IqmmlLr+bwfSRJtKbK/fiBdbf2vX61+6h6rZizD1vw8="
"vendorHash": "sha256-53Cj5ooDsg91iiuYzjAt9u9S40g6plcz6lqlnawNFNM="
},
"venafi": {
"hash": "sha256-GkbBD6oDtHy18utI2dsDWmVIUiU8bILg6rsXEX7gfbI=",

View File

@ -5,12 +5,12 @@
, llvm
, pkg-config
, makeWrapper
, elfutils
, file
, hyperscan
, jansson
, libbpf
, libcap_ng
, libelf
, libevent
, libmaxminddb
, libnet
@ -50,10 +50,10 @@ stdenv.mkDerivation rec {
;
buildInputs = [
elfutils
jansson
libbpf
libcap_ng
libelf
libevent
libmagic
libmaxminddb

View File

@ -15,13 +15,13 @@
buildNpmPackage rec {
pname = "jitsi-meet-electron";
version = "2023.11.3";
version = "2024.3.0";
src = fetchFromGitHub {
owner = "jitsi";
repo = "jitsi-meet-electron";
rev = "v${version}";
hash = "sha256-gE5CP0l3SrAHGNS6Hr5/MefTtE86JTmc85CwOmylEpg=";
hash = "sha256-BGN+t9Caw5n/NN1E5Oi/ruMLjoVh0jUlpzYR6vodHbw=";
};
nativeBuildInputs = [
@ -38,7 +38,7 @@ buildNpmPackage rec {
zlib
];
npmDepsHash = "sha256-JZVJcKzG4X7YIUvIRWZsDQnHx+dNqCj6kFm8mZaSH2k=";
npmDepsHash = "sha256-KanG8y+tYzswCCXjSkOlk+p9XKaouP2Z7IhsD5bDtRk=";
makeCacheWritable = true;

View File

@ -63,14 +63,14 @@ let
in
stdenv.mkDerivation rec {
pname = "telegram-desktop";
version = "4.16.0";
version = "4.16.1";
src = fetchFromGitHub {
owner = "telegramdesktop";
repo = "tdesktop";
rev = "v${version}";
fetchSubmodules = true;
hash = "sha256-llrHN/XCMKwAvbyUZ/92OUjAEOPJKPbDfldVChLZo5k=";
hash = "sha256-sb7BpEIjSJS4ntv8s0RSJAj4BhTgHF7fEei5QXl60mA=";
};
patches = [

View File

@ -27,13 +27,13 @@
stdenv.mkDerivation rec {
pname = "planify";
version = "4.5.11";
version = "4.5.12";
src = fetchFromGitHub {
owner = "alainm23";
repo = "planify";
rev = version;
hash = "sha256-LMN+1ORp44uWVqzw1sjiZzx81s9l2msPFM3+sJ7qw8U=";
hash = "sha256-Aj2kvffLl8vEqzirAy45E+jGB9iRp2mSYq0YWJ3nrj8=";
};
nativeBuildInputs = [

View File

@ -10,13 +10,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "lean4";
version = "4.6.1";
version = "4.7.0";
src = fetchFromGitHub {
owner = "leanprover";
repo = "lean4";
rev = "v${finalAttrs.version}";
hash = "sha256-wUqGADwSocg2ciycCxg9qp+vJLJ2otA/5JpTrkFrDoQ=";
hash = "sha256-jHY8BhDotfGcMS0Xzl5iawqCaug3dDEKuD5Y1WcM06I=";
};
postPatch = ''

View File

@ -24,7 +24,7 @@ let
pname = "forgejo-frontend";
inherit (forgejo) src version;
npmDepsHash = "sha256-I7eq9PB2Od7aaji+VrZj05VVCsGtCiXEMy88xrA8Ktg=";
npmDepsHash = "sha256-uMPy4cqMDNZTpF+pk7YibXEJO1zxVfwlCeFzGgJBiU0=";
patches = [
./package-json-npm-build-frontend.patch
@ -39,17 +39,33 @@ let
in
buildGoModule rec {
pname = "forgejo";
version = "1.21.8-0";
version = "1.21.10-0";
src = fetchFromGitea {
domain = "codeberg.org";
owner = "forgejo";
repo = "forgejo";
rev = "v${version}";
hash = "sha256-nufhGsibpPrGWpVg75Z6qdzlc1K+p36mMjlS2MtsuAI=";
hash = "sha256-uCRAT9RiU9S+tP9alNshSQwbUgLmU9wE5HIQ4FPmXVE=";
# Forgejo has multiple different version strings that need to be provided
# via ldflags. main.ForgejoVersion for example is a combination of a
# hardcoded gitea compatibility version string (in the Makefile) and
# git describe and is easiest to get by invoking the Makefile.
# So we do that, store it the src FOD to then extend the ldflags array
# in preConfigure.
# The `echo -e >> Makefile` is temporary and already part of the next
# major release. Furthermore, the ldflags will change next major release
# and need to be updated accordingly.
leaveDotGit = true;
postFetch = ''
cd "$out"
echo -e 'show-version-full:\n\t@echo ''${FORGEJO_VERSION}' >> Makefile
make show-version-full > FULL_VERSION
find "$out" -name .git -print0 | xargs -0 rm -rf
'';
};
vendorHash = "sha256-+1apPnqbIfp2Nu1ieI2DdHo4gndZObmcq/Td+ZtkILM=";
vendorHash = "sha256-pgUSmM2CxYO8DralWoeR2groQxpxo9WtRcToYeaHXGk=";
subPackages = [ "." ];
@ -76,6 +92,10 @@ buildGoModule rec {
"-X 'main.Tags=${lib.concatStringsSep " " tags}'"
];
preConfigure = ''
export ldflags+=" -X code.gitea.io/gitea/routers/api/forgejo/v1.ForgejoVersion=$(cat FULL_VERSION) -X main.ForgejoVersion=$(cat FULL_VERSION)"
'';
preBuild = ''
go run build/merge-forgejo-locales.go
'';

View File

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "gh";
version = "2.46.0";
version = "2.47.0";
src = fetchFromGitHub {
owner = "cli";
repo = "cli";
rev = "v${version}";
hash = "sha256-UvHLOG7/IJOzqFSu9Bbho+ldgvvGCiVjJK0epnYxZF8=";
hash = "sha256-vLnz0VDp8mTYBWPPidqw9SUvkn7S1jMTLN1RQyU9YnE=";
};
vendorHash = "sha256-hZ8YGGrkeqI8079KSQM3E8SISb8lzFo4kQx2G+8HpNM=";
vendorHash = "sha256-5GjU6A2QLDxrTMxaBCOniSX56Undfcu+dhfC5tc16V0=";
nativeBuildInputs = [ installShellFiles ];

View File

@ -2,20 +2,20 @@
rustPlatform.buildRustPackage rec {
pname = "git-absorb";
version = "0.6.12";
version = "0.6.13";
src = fetchFromGitHub {
owner = "tummychow";
repo = "git-absorb";
rev = "refs/tags/${version}";
hash = "sha256-yHCO1v1d0MUakae16fFVvtKG3rVxU/Cii/G6IKzyebA=";
hash = "sha256-k0smjIpy/+y6M5p24Ju4CVJkThzWOgp5kBJuVnCrXiE=";
};
nativeBuildInputs = [ installShellFiles ];
buildInputs = lib.optionals stdenv.isDarwin [ Security ];
cargoHash = "sha256-Bx7gH7jSLizG95JyBtziPBby9mF1Nj3CQexIg6gaiM0=";
cargoHash = "sha256-bRPdtiC9Dwi21g4WtjawQ2AUdizUEX2zPHAnG08D3ac=";
postInstall = ''
installManPage Documentation/git-absorb.1

View File

@ -19,16 +19,16 @@
rustPlatform.buildRustPackage rec {
pname = "jujutsu";
version = "0.15.1";
version = "0.16.0";
src = fetchFromGitHub {
owner = "martinvonz";
repo = "jj";
rev = "v${version}";
hash = "sha256-yppQIffjpyQ2nqhiZbV2pSMQJx8srmHjAk+UClCQfRw=";
hash = "sha256-7bMyboF1JG/roFgo3cusYTi7qd2a6W+u1RJHgoBXNL0=";
};
cargoHash = "sha256-2BmKC8DaOdD/THchImmGqplhDrHQHEMyWORWnE2ygSM=";
cargoHash = "sha256-nPBHIUBm4bQLuj93kE8CUfzA34uUyapVjswz9FFCiTk=";
cargoBuildFlags = [ "--bin" "jj" ]; # don't install the fake editors
useNextest = false; # nextest is the upstream integration framework, but is problematic for test skipping

View File

@ -0,0 +1,7 @@
# Build support for D
Build utilities for the D language can be found in this directory.
### Current maintainers
- @TomaSajt
- @jtbx

View File

@ -0,0 +1,124 @@
{
lib,
stdenv,
fetchurl,
linkFarm,
dub,
ldc,
removeReferencesTo,
}:
# See https://nixos.org/manual/nixpkgs/unstable#dlang for more detailed usage information
{
# A lockfile generated by `dub-to-nix` from the source of the package.
# Can be either a path to the file, or an attrset already parsed with `lib.importJSON`.
dubLock,
# The build type to pass to `dub build` as a value for the `--build=` flag.
dubBuildType ? "release",
# The flags to pass to `dub build` and `dub test`.
dubFlags ? [ ],
# The flags to pass to `dub build`.
dubBuildFlags ? [ ],
# The flags to pass to `dub test`.
dubTestFlags ? [ ],
# The D compiler to be used by `dub`.
compiler ? ldc,
...
}@args:
let
makeDubDep =
{
pname,
version,
sha256,
}:
{
inherit pname version;
src = fetchurl {
name = "dub-${pname}-${version}.zip";
url = "mirror://dub/${pname}/${version}.zip";
inherit sha256;
};
};
lockJson = if lib.isPath dubLock then lib.importJSON dubLock else dubLock;
lockedDeps = lib.mapAttrsToList (
pname: { version, sha256 }: makeDubDep { inherit pname version sha256; }
) lockJson.dependencies;
# a directory with multiple single element registries
# one big directory with all .zip files leads to version parsing errors
# when the name of a package is a prefix of the name of another package
dubRegistryBase = linkFarm "dub-registry-base" (
map (dep: {
name = "${dep.pname}/${dep.pname}-${dep.version}.zip";
path = dep.src;
}) lockedDeps
);
combinedFlags = "--skip-registry=all --compiler=${lib.getExe compiler} ${toString dubFlags}";
combinedBuildFlags = "${combinedFlags} --build=${dubBuildType} ${toString dubBuildFlags}";
combinedTestFlags = "${combinedFlags} ${toString dubTestFlags}";
in
stdenv.mkDerivation (
builtins.removeAttrs args [ "dubLock" ]
// {
strictDeps = args.strictDeps or true;
nativeBuildInputs = args.nativeBuildInputs or [ ] ++ [
dub
compiler
removeReferencesTo
];
configurePhase =
args.configurePhase or ''
runHook preConfigure
export DUB_HOME="$NIX_BUILD_TOP/.dub"
mkdir -p $DUB_HOME
# register dependencies
${lib.concatMapStringsSep "\n" (dep: ''
dub fetch ${dep.pname}@${dep.version} --cache=user --skip-registry=standard --registry=file://${dubRegistryBase}/${dep.pname}
'') lockedDeps}
runHook postConfigure
'';
buildPhase =
args.buildPhase or ''
runHook preBuild
dub build ${combinedBuildFlags}
runHook postBuild
'';
doCheck = args.doCheck or false;
checkPhase =
args.checkPhase or ''
runHook preCheck
dub test ${combinedTestFlags}
runHook postCheck
'';
preFixup = ''
${args.preFixup or ""}
find "$out" -type f -exec remove-references-to -t ${compiler} '{}' +
'';
disallowedReferences = [ compiler ];
meta = {
platforms = dub.meta.platforms;
} // args.meta or { };
}
)

View File

@ -0,0 +1,5 @@
{ callPackage }:
{
buildDubPackage = callPackage ./builddubpackage { };
dub-to-nix = callPackage ./dub-to-nix { };
}

View File

@ -0,0 +1,19 @@
{
lib,
runCommand,
makeWrapper,
python3,
nix,
}:
runCommand "dub-to-nix"
{
nativeBuildInputs = [ makeWrapper ];
buildInputs = [ python3 ];
}
''
install -Dm755 ${./dub-to-nix.py} "$out/bin/dub-to-nix"
patchShebangs "$out/bin/dub-to-nix"
wrapProgram "$out/bin/dub-to-nix" \
--prefix PATH : ${lib.makeBinPath [ nix ]}
''

View File

@ -0,0 +1,39 @@
#!/usr/bin/env python3
import sys
import json
import os
import subprocess
def eprint(text: str):
print(text, file=sys.stderr)
if not os.path.exists("dub.selections.json"):
eprint("The file `dub.selections.json` does not exist in the current working directory")
eprint("run `dub upgrade --annotate` to generate it")
sys.exit(1)
with open("dub.selections.json") as f:
selectionsJson = json.load(f)
versionDict: dict[str, str] = selectionsJson["versions"]
for pname in versionDict:
version = versionDict[pname]
if version.startswith("~"):
eprint(f'Package "{pname}" has a branch-type version "{version}", which doesn\'t point to a fixed version')
eprint("You can resolve it by manually changing the required version to a fixed one inside `dub.selections.json`")
eprint("When packaging, you might need to create a patch for `dub.sdl` or `dub.json` to accept the changed version")
sys.exit(1)
lockedDependenciesDict: dict[str, dict[str, str]] = {}
for pname in versionDict:
version = versionDict[pname]
eprint(f"Fetching {pname}@{version}")
url = f"https://code.dlang.org/packages/{pname}/{version}.zip"
command = ["nix-prefetch-url", "--type", "sha256", url]
sha256 = subprocess.run(command, check=True, text=True, stdout=subprocess.PIPE, stderr=subprocess.DEVNULL).stdout.rstrip()
lockedDependenciesDict[pname] = {"version": version, "sha256": sha256}
print(json.dumps({"dependencies": lockedDependenciesDict}, indent=2))

View File

@ -312,6 +312,11 @@
"https://backpan.perl.org/" # for old releases
];
# D DUB
dub = [
"https://code.dlang.org/packages/"
];
# Haskell Hackage
hackage = [
"https://hackage.haskell.org/package/"

View File

@ -2,7 +2,7 @@
args:
# see the substituteAll in the nixpkgs documentation for usage and constaints
# see the substituteAll in the nixpkgs documentation for usage and constraints
stdenvNoCC.mkDerivation ({
name = if args ? name then args.name else baseNameOf (toString args.src);
builder = ./substitute-all.sh;

View File

@ -6,7 +6,7 @@
telegram-desktop.overrideAttrs (old: rec {
pname = "64gram";
version = "1.1.15";
version = "1.1.16";
src = fetchFromGitHub {
owner = "TDesktop-x64";
@ -14,7 +14,7 @@ telegram-desktop.overrideAttrs (old: rec {
rev = "v${version}";
fetchSubmodules = true;
hash = "sha256-3HLRv8RTyyfnjMF7w+euSOj6SbxlxOuczap5Nlizsvg=";
hash = "sha256-2IuNJleHtlkELcTHDwRT4pcDcDXSqM5YlLPGYiGT2TE=";
};
meta = with lib; {

View File

@ -0,0 +1,74 @@
{ lib
, rustPlatform
, fetchFromGitHub
, pkg-config
, wrapGAppsHook
, atk
, cairo
, gdk-pixbuf
, glib
, gtk3
, pango
, stdenv
, darwin
, wayland
, gtk-layer-shell
, unstableGitUpdater
}:
rustPlatform.buildRustPackage rec {
pname = "anyrun";
version = "0-unstable-2023-12-01";
src = fetchFromGitHub {
owner = "kirottu";
repo = "anyrun";
rev = "e14da6c37337ffa3ee1bc66965d58ef64c1590e5";
hash = "sha256-hI9+KBShsSfvWX7bmRa/1VI20WGat3lDXmbceMZzMS4=";
};
cargoHash = "sha256-apOQc9Z6YANoaeKcbNxBfAv7mmGFB+CagrYRPgC5wLY=";
strictDeps = true;
enableParallelBuilding = true;
doCheck = true;
nativeBuildInputs = [
pkg-config
wrapGAppsHook
];
buildInputs = [
atk
cairo
gdk-pixbuf
glib
gtk3
gtk-layer-shell
pango
] ++ lib.optionals stdenv.isDarwin [
darwin.apple_sdk.frameworks.Security
] ++ lib.optionals stdenv.isLinux [
wayland
];
preFixup = ''
gappsWrapperArgs+=(
--prefix ANYRUN_PLUGINS : $out/lib
)
'';
postInstall = ''
install -Dm444 anyrun/res/style.css examples/config.ron -t $out/share/doc/${pname}/examples/
'';
passthru.updateScript = unstableGitUpdater { };
meta = {
description = "A wayland-native, highly customizable runner";
homepage = "https://github.com/kirottu/anyrun";
license = lib.licenses.gpl3Only;
maintainers = with lib.maintainers; [ eclairevoyant NotAShelf ];
mainProgram = "anyrun";
};
}

View File

@ -0,0 +1,34 @@
{ stdenv
, lib
, fetchFromGitHub
, gnumake
, ncurses
}:
stdenv.mkDerivation (finalAttrs: {
name = "cano";
version = "0-unstable-2024-31-3";
src = fetchFromGitHub {
owner = "CobbCoding1";
repo = "Cano";
rev = "6b3488545b4180f20a7fa892fb0ee719e9298ddc";
hash = "sha256-qFo0szZVGLUf7c7KdEIofcieWZqtM6kQE6D8afrZ+RU=";
};
buildInputs = [ gnumake ncurses ];
hardeningDisable = [ "format" "fortify" ];
installPhase = ''
mkdir -p $out/bin
cp build/cano $out/bin
'';
meta = {
description = "Text Editor Written In C Using ncurses";
homepage = "https://github.com/CobbCoding1/Cano";
license = lib.licenses.asl20;
mainProgram = "Cano";
maintainers = with lib.maintainers; [ sigmanificient ];
platforms = lib.platforms.linux;
};
})

View File

@ -0,0 +1,33 @@
{
lib,
buildGoModule,
fetchFromGitHub,
}:
buildGoModule rec {
pname = "cero";
version = "1.3.0";
src = fetchFromGitHub {
owner = "glebarez";
repo = "cero";
rev = "v${version}";
hash = "sha256-t2u6Q8CatUIQKk146uor367vr85O6KU8Gf8LZFZTESU=";
};
vendorHash = "sha256-VwzjkZLKovmPjvEmANMgZTtkwiM+dyjfTqftvK+muPM=";
ldflags = [
"-s"
"-w"
];
meta = with lib; {
description = "Scrape domain names from SSL certificates of arbitrary hosts";
homepage = "https://github.com/glebarez/cero";
changelog = "https://github.com/glebarez/cero/releases/tag/v${version}";
license = licenses.mit;
maintainers = with maintainers; [ fab ];
mainProgram = "cero";
};
}

View File

@ -18,7 +18,7 @@
stdenv.mkDerivation (finalAttrs: {
pname = "freefilesync";
version = "13.4";
version = "13.5";
src = fetchurl {
url = "https://freefilesync.org/download/FreeFileSync_${finalAttrs.version}_Source.zip";
@ -27,7 +27,7 @@ stdenv.mkDerivation (finalAttrs: {
rm -f $out
tryDownload "$url"
'';
hash = "sha256-0c4HYlah9aHsMMyCz/TjgA59pTce4hogz5n6Xf9Myho=";
hash = "sha256-8At8QobAQR2mQnFjFSPTkEuxmP9M8gINP0qH28J3ynY=";
};
sourceRoot = ".";

View File

@ -10,16 +10,16 @@
rustPlatform.buildRustPackage rec {
pname = "fzf-make";
version = "0.26.0";
version = "0.27.0";
src = fetchFromGitHub {
owner = "kyu08";
repo = "fzf-make";
rev = "v${version}";
hash = "sha256-rmQR1XnNJQnTz9vS+UWPpfFakgkVwNZasjRlNwk4p68=";
hash = "sha256-OgvPUk5q7DB9hakZzCUM2dlXMQzE/CGpg4pMDQCk7k0=";
};
cargoHash = "sha256-QXyibZHqhK6Jhh6Qu73o2o6hABpNWPIxS4tR5IXLNkc=";
cargoHash = "sha256-MTOafmrlaW8WNUqsG2c/WnbG9ZKbq9zdou6buB4Qo/k=";
nativeBuildInputs = [ makeBinaryWrapper ];

View File

@ -0,0 +1,61 @@
{
lib,
stdenv,
buildPackages,
fetchFromGitHub,
rustPlatform,
installShellFiles,
libiconv,
darwin,
nix-update-script,
}:
let
canRunGitGr = stdenv.hostPlatform.emulatorAvailable buildPackages;
gitGr = "${stdenv.hostPlatform.emulator buildPackages} $out/bin/git-gr";
pname = "git-gr";
version = "1.0.3";
in
rustPlatform.buildRustPackage {
inherit pname version;
src = fetchFromGitHub {
owner = "9999years";
repo = pname;
rev = "refs/tags/v${version}";
hash = "sha256-hvK4reFR60q9mw3EdNLav9VMr4H6Zabv1N1D/5AAKuQ=";
};
buildFeatures = [ "clap_mangen" ];
cargoHash = "sha256-efoRiPWugz955MflIS81Nie7Oq5Y4u5CI+/el8fJVl0=";
nativeBuildInputs =
[ installShellFiles ]
++ lib.optionals stdenv.isDarwin [
libiconv
darwin.apple_sdk.frameworks.CoreServices
];
postInstall = lib.optionalString canRunGitGr ''
manpages=$(mktemp -d)
${gitGr} manpages "$manpages"
for manpage in "$manpages"/*; do
installManPage "$manpage"
done
installShellCompletion --cmd git-gr \
--bash <(${gitGr} completions bash) \
--fish <(${gitGr} completions fish) \
--zsh <(${gitGr} completions zsh)
'';
meta = with lib; {
homepage = "https://github.com/9999years/git-gr";
description = "A Gerrit CLI client";
license = [ licenses.mit ];
maintainers = [ maintainers._9999years ];
mainProgram = "git-gr";
};
passthru.updateScript = nix-update-script { };
}

View File

@ -6,16 +6,16 @@
rustPlatform.buildRustPackage rec {
pname = "glas";
version = "0.2.2";
version = "0.2.3";
src = fetchFromGitHub {
owner = "maurobalbi";
repo = "glas";
rev = "v${version}";
sha256 = "sha256-y1sPDCHIfECEhKP6EQs3kDrX/yM+ni0irfPe1c50jJU=";
sha256 = "sha256-jMpFxzosaCedwsJ8URlR3Gd/mnlgSBEfA3oIymmEPFU=";
};
cargoHash = "sha256-h27NqsVOW+LM83xtSAV7cvlRbznGE87aJb2/WeSmfOY=";
cargoHash = "sha256-zESRtefoObpUsu4RfTsqJAyBNylouXffpNK3W/X+w9M=";
doInstallCheck = true;
postInstallCheck = ''

View File

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "go-camo";
version = "2.4.10";
version = "2.4.11";
src = fetchFromGitHub {
owner = "cactus";
repo = pname;
rev = "v${version}";
sha256 = "sha256-cWML306a4mI1O99Mf58reGBNEqot9lG+i3mgU9jVhuk=";
sha256 = "sha256-wgneDCBiHg9M1PtLHFxEXRhK9fBNKPWQwV0fwUFxEgQ=";
};
vendorHash = "sha256-Xj9bPxv3/GarNdNSCiMbZo2/brSkLQ1nlZtFMxlpWT4=";
vendorHash = "sha256-duTW42UL8EtnxUvPr2GXHKcaGQ3d0u2maMzSIOHIxxI=";
ldflags = [ "-s" "-w" "-X=main.ServerVersion=${version}" ];

View File

@ -0,0 +1,70 @@
{
curl,
expat,
fetchFromGitHub,
fuse,
gumbo,
help2man,
lib,
libuuid,
nix-update-script,
pkg-config,
stdenv,
testers,
}:
stdenv.mkDerivation (finalAttrs: {
pname = "httpdirfs";
version = "1.2.5";
src = fetchFromGitHub {
owner = "fangfufu";
repo = "httpdirfs";
rev = "refs/tags/${finalAttrs.version}";
sha256 = "sha256-PUYsT0VDEzerPqwrLJrET4kSsWsQhtnfmLepeaqtA+I=";
};
postPatch = lib.optional stdenv.isDarwin ''
substituteInPlace Makefile --replace-fail '-fanalyzer' '-Xanalyzer'
'';
nativeBuildInputs = [
help2man
pkg-config
];
buildInputs = [
curl
expat
fuse
gumbo
libuuid
];
makeFlags = [ "prefix=${placeholder "out"}" ];
postBuild = ''
make man
'';
passthru = {
# Disabled for Darwin because requires macFUSE installed outside NixOS
tests.version = lib.optionalAttrs stdenv.isLinux (
testers.testVersion {
command = "${lib.getExe finalAttrs.finalPackage} --version";
package = finalAttrs.finalPackage;
}
);
updateScript = nix-update-script { };
};
meta = {
changelog = "https://github.com/fangfufu/httpdirfs/releases/tag/${finalAttrs.version}";
description = "A FUSE filesystem for HTTP directory listings";
homepage = "https://github.com/fangfufu/httpdirfs";
license = lib.licenses.gpl3Only;
mainProgram = "httpdirfs";
maintainers = with lib.maintainers; [ sbruder schnusch anthonyroussel ];
platforms = lib.platforms.unix;
};
})

View File

@ -11,25 +11,25 @@
stdenv.mkDerivation rec {
pname = "incus-ui";
version = "0.6";
version = "0.7";
src = fetchFromGitHub {
owner = "canonical";
repo = "lxd-ui";
rev = "refs/tags/${version}";
hash = "sha256-3Ts6lKyzpMDVATCKD1fFIGTskWzWpQUT9S8cPFnlEOs=";
hash = "sha256-DJLkXZpParmEYHbTpl6KFC9l9y5DqzUTrC0pb2dJXI4=";
};
offlineCache = fetchYarnDeps {
yarnLock = "${src}/yarn.lock";
hash = "sha256-0pyxwMGGqogEe1w3sail8NUDHtxLQZU9Wg8E6rQNy4o=";
hash = "sha256-ckTWE/czzvxbGOF8fsJ3W1sal7+NaHquoSjZSPjkGj4=";
};
zabbly = fetchFromGitHub {
owner = "zabbly";
repo = "incus";
rev = "3eabc1960e99e7e515916e3ea7068a412a8c420b";
hash = "sha256-Kw53Qjurc6WPswB38v6wuRhuuGE34uYxNoAKH4UmTBE=";
rev = "c83023587eb0e3b01c99ba26e63f757ac15c6f9c";
hash = "sha256-cWKp4ALrae6nEBLvWcOM1T+Aca7eHLwsRguH9aSb10Y=";
};
patchPhase = ''

View File

@ -1,6 +1,7 @@
{ lib
, python3
, fetchFromGitHub
{
lib,
python3,
fetchFromGitHub,
}:
python3.pkgs.buildPythonApplication rec {
@ -17,11 +18,13 @@ python3.pkgs.buildPythonApplication rec {
hash = "sha256-skCbt2lDKgSyZdHY3WImbr6CF0icrDPTIXNV1736gKk=";
};
nativeBuildInputs = with python3.pkgs; [
poetry-core
];
pythonRelaxDeps = [ "keyring" ];
propagatedBuildInputs = with python3.pkgs; [
build-system = with python3.pkgs; [ poetry-core ];
nativeBuildInputs = with python3.pkgs; [ pythonRelaxDepsHook ];
dependencies = with python3.pkgs; [
keyring
requests
];
@ -29,9 +32,7 @@ python3.pkgs.buildPythonApplication rec {
# Project has no tests, re-check with next release
doCheck = false;
pythonImportsCheck = [
"koodousfinder"
];
pythonImportsCheck = [ "koodousfinder" ];
meta = with lib; {
description = "Tool to allows users to search for and analyze Android apps";

View File

@ -13,13 +13,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "labwc-tweaks";
version = "unstable-2024-01-04";
version = "unstable-2024-04-02";
src = fetchFromGitHub {
owner = "labwc";
repo = "labwc-tweaks";
rev = "1604f64cc62e4800ee04a6e1c323a48ee8140d83";
hash = "sha256-xFvc+Y03HjSvj846o84Wpk5tEXI49z8xkILSX2oas8A=";
rev = "a1a3cfaefd1908de8752d0d6d6b7170b04ee075c";
hash = "sha256-uvUsoqiQBuNMBQWAxl/tCIvWsEYmZ4dQ31TrznI/XcA=";
};
nativeBuildInputs = [

View File

@ -0,0 +1,29 @@
{ lib, buildGoModule, fetchFromGitHub, olm, config }:
buildGoModule rec {
pname = "mautrix-meta";
version = "0.2.0";
subPackages = [ "." ];
src = fetchFromGitHub {
owner = "mautrix";
repo = "meta";
rev = "v${version}";
hash = "sha256-n0FpEHgnMdg6W5wahIT5HaF9AP/QYlLuUWJS+VrElgg=";
};
buildInputs = [ olm ];
vendorHash = "sha256-GkgIang3/1u0ybznHgK1l84bEiCj6u4qf8G+HgLGr90=";
doCheck = false;
meta = {
homepage = "https://github.com/mautrix/meta";
description = "Matrix <-> Facebook and Mautrix <-> Instagram hybrid puppeting/relaybot bridge";
license = lib.licenses.agpl3Plus;
maintainers = with lib.maintainers; [ rutherther ];
mainProgram = "mautrix-meta";
};
}

View File

@ -11,7 +11,7 @@
}:
python3Packages.buildPythonApplication rec {
pname = "monophony";
version = "2.7.0";
version = "2.8.2";
format = "other";
sourceRoot = "${src.name}/source";
@ -19,7 +19,7 @@ python3Packages.buildPythonApplication rec {
owner = "zehkira";
repo = "monophony";
rev = "v${version}";
hash = "sha256-uOmaTkjlfrct8CPqKcTTTqmURVncPZm4fXZYW+yZUf8=";
hash = "sha256-sCJVcf/VAW5UVMwrpri+PPJjQF0s7f2KpmaytuH0jN4=";
};
pythonPath = with python3Packages; [

View File

@ -146,9 +146,9 @@ checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa"
[[package]]
name = "axum"
version = "0.7.4"
version = "0.7.5"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1236b4b292f6c4d6dc34604bb5120d85c3fe1d1aa596bd5cc52ca054d13e7b9e"
checksum = "3a6c9af12842a67734c9a2e355436e5d03b22383ed60cf13cd0c18fbfe3dcbcf"
dependencies = [
"async-trait",
"axum-core",
@ -170,7 +170,7 @@ dependencies = [
"serde_json",
"serde_path_to_error",
"serde_urlencoded",
"sync_wrapper",
"sync_wrapper 1.0.0",
"tokio",
"tower",
"tower-layer",
@ -192,7 +192,7 @@ dependencies = [
"mime",
"pin-project-lite",
"rustversion",
"sync_wrapper",
"sync_wrapper 0.1.2",
"tower-layer",
"tower-service",
]
@ -236,15 +236,6 @@ version = "2.4.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "ed570934406eb16438a4e976b1b4500774099c13b8cb96eec99f620f05090ddf"
[[package]]
name = "blake2"
version = "0.10.6"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "46502ad458c9a52b69d4d4d32775c788b7a1b85e8bc9d482d92250fc0e3f8efe"
dependencies = [
"digest",
]
[[package]]
name = "blake3"
version = "1.5.1"
@ -258,15 +249,6 @@ dependencies = [
"constant_time_eq",
]
[[package]]
name = "block-buffer"
version = "0.10.4"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71"
dependencies = [
"generic-array",
]
[[package]]
name = "bumpalo"
version = "3.14.0"
@ -469,17 +451,6 @@ dependencies = [
"powerfmt",
]
[[package]]
name = "digest"
version = "0.10.7"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292"
dependencies = [
"block-buffer",
"crypto-common",
"subtle",
]
[[package]]
name = "encoding_rs"
version = "0.8.33"
@ -520,9 +491,9 @@ dependencies = [
[[package]]
name = "etherparse"
version = "0.14.2"
version = "0.14.3"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "24890603eb4b43aa788f02261ce21714449033e3e2ab93692f0ab18480c3c9b1"
checksum = "095ab548cf452be5813424558a18af88f0a620d0f4a3d8793aa09311a3b6fa5f"
dependencies = [
"arrayvec",
]
@ -1074,16 +1045,14 @@ dependencies = [
[[package]]
name = "mycelium"
version = "0.4.5"
version = "0.5.0"
dependencies = [
"aes-gcm",
"axum",
"base64 0.22.0",
"blake2",
"blake3",
"bytes",
"clap",
"digest",
"etherparse",
"faster-hex",
"futures",
@ -1699,9 +1668,9 @@ dependencies = [
[[package]]
name = "serde_json"
version = "1.0.114"
version = "1.0.115"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c5f09b1bd632ef549eaa9f60a1f8de742bdbc698e6cee2095fc84dde5f549ae0"
checksum = "12dc5c46daa8e9fdf4f5e71b6cf9a53f2487da0e86e55808e2d35539666497dd"
dependencies = [
"itoa",
"ryu",
@ -1834,6 +1803,12 @@ version = "0.1.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "2047c6ded9c721764247e62cd3b03c09ffc529b2ba5b10ec482ae507a4a70160"
[[package]]
name = "sync_wrapper"
version = "1.0.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "384595c11a4e2969895cad5a8c4029115f5ab956a9e5ef4de79d11a426e5f20c"
[[package]]
name = "system-configuration"
version = "0.5.1"
@ -1929,9 +1904,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20"
[[package]]
name = "tokio"
version = "1.36.0"
version = "1.37.0"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "61285f6515fa018fb2d1e46eb21223fff441ee8db5d0f1435e8ab4f5cdb80931"
checksum = "1adbebffeca75fcfd058afa480fb6c0b81e165a0323f9c9d39c9697e37c46787"
dependencies = [
"backtrace",
"bytes",

View File

@ -7,13 +7,13 @@
rustPlatform.buildRustPackage rec {
pname = "mycelium";
version = "0.4.5";
version = "0.5.0";
src = fetchFromGitHub {
owner = "threefoldtech";
repo = "mycelium";
rev = "v${version}";
hash = "sha256-AJA1yd7P9zHOIdSOR2bAHgL5NyoyqzgNIEs8ObgD4Mo=";
hash = "sha256-K82LHVXbSMIJQlQ/qUpdCBVlAEZWyMMG2eUt2FzNwRE=";
};
cargoLock = {

View File

@ -6,17 +6,19 @@
python3.pkgs.buildPythonApplication rec {
pname = "prowler";
version = "3.13.0";
version = "3.14.0";
pyproject = true;
src = fetchFromGitHub {
owner = "prowler-cloud";
repo = "prowler";
rev = "refs/tags/${version}";
hash = "sha256-19B6b+xR+f7dIu/6eINsxs7UxuV96QdsNncodC8/N3Q=";
hash = "sha256-hQVrKhBgucuZQ2CZKG6VJMsHUGkWNch9em2dRCbEA+A=";
};
pythonRelaxDeps = [
"azure-mgmt-compute"
"azure-mgmt-network"
"azure-mgmt-security"
"azure-storage-blob"
"boto3"
@ -24,8 +26,8 @@ python3.pkgs.buildPythonApplication rec {
"google-api-python-client"
"jsonschema"
"pydantic"
"slack-sdk"
"pydantic"
"slack-sdk"
];
nativeBuildInputs = with python3.pkgs; [
@ -42,7 +44,9 @@ python3.pkgs.buildPythonApplication rec {
azure-identity
azure-mgmt-applicationinsights
azure-mgmt-authorization
azure-mgmt-compute
azure-mgmt-cosmosdb
azure-mgmt-network
azure-mgmt-rdbms
azure-mgmt-security
azure-mgmt-sql

View File

@ -2,7 +2,7 @@
python3Packages.buildPythonApplication rec {
pname = "pyprland";
version = "2.1.1";
version = "2.1.4";
format = "pyproject";
disabled = python3Packages.pythonOlder "3.10";
@ -11,7 +11,7 @@ python3Packages.buildPythonApplication rec {
owner = "hyprland-community";
repo = "pyprland";
rev = "refs/tags/${version}";
hash = "sha256-S1kNA70kxLK4ZdhJDXp1RhKsGVTS0k9wLxAtndv/iCo=";
hash = "sha256-vko8SY5d537bKnpVeJWM3D4WeYCXAvF6tCzlFjKIZRU=";
};
nativeBuildInputs = with python3Packages; [ poetry-core ];

View File

@ -1,26 +1,38 @@
{ lib, python3Packages, fetchPypi }:
{
lib,
python3,
fetchPypi,
}:
python3Packages.buildPythonPackage rec {
python3.pkgs.buildPythonPackage rec {
pname = "rst2html5";
version = "2.0";
version = "2.0.1";
pyproject = true;
src = fetchPypi {
inherit pname version;
hash = "sha256-Ejjja/fm6wXTf9YtjCYZsNDB8X5oAtyPoUIsYFDuZfc=";
hash = "sha256-MJmYyF+rAo8vywGizNyIbbCvxDmCYueVoC6pxNDzKuk=";
};
buildInputs = with python3Packages; [
build-system = with python3.pkgs; [ poetry-core ];
dependencies = with python3.pkgs; [
beautifulsoup4
docutils
genshi
pygments
];
meta = with lib;{
homepage = "https://rst2html5.readthedocs.io/en/latest/";
# Tests are not shipped as PyPI releases
doCheck = false;
pythonImportsCheck = [ "rst2html5" ];
meta = with lib; {
description = "Converts ReSTructuredText to (X)HTML5";
mainProgram = "rst2html5";
homepage = "https://rst2html5.readthedocs.io/";
license = licenses.mit;
maintainers = with maintainers; [ AndersonTorres ];
mainProgram = "rst2html5";
};
}

View File

@ -0,0 +1,112 @@
{
"dependencies": {
"automem": {
"version": "0.6.9",
"sha256": "05zk8h81ih5jc4n8d7kgr6hv5f923ybf2pdyf2ld3imkx0zb0plr"
},
"cachetools": {
"version": "0.4.1",
"sha256": "1407cb3mm8pqlcljdi60lpz2vhsj6rwzax0j24xggmyhr7ij6gx7"
},
"dcd": {
"version": "0.13.6",
"sha256": "19fnp5hdk2n7z5s57a445a92xd4iadh7lbw14sq1pr4zyks32114"
},
"dfmt": {
"version": "0.14.1",
"sha256": "1czk48dylq05iwi9137hy694c43whiqnmvgc5k7c32bjzzpi5pyq"
},
"diet-complete": {
"version": "0.0.3",
"sha256": "1klzivhzb185m38jvmm957s38mllpa2rkkv8az8ipmwdjj8z6mpv"
},
"dscanner": {
"version": "0.12.2",
"sha256": "12zhby1vj28fsryv7j6xhdiiw8d7dk1d00sarpimfpl77ajmpia8"
},
"dsymbol": {
"version": "0.11.3",
"sha256": "0flnh8b1hc97hlm86ilb0kc194vib5cpqf8abxfbv24czxp6gfv7"
},
"dub": {
"version": "1.26.1",
"sha256": "0sbixp7dpixlp1hwjlmnlh4dwci9f2fadxg42j8ha86rx7ggprqi"
},
"dunit": {
"version": "1.0.16",
"sha256": "0p9g4h5qanbg6281x1068mdl5p7zvqig4zmmi72a2cay6dxnbvxb"
},
"emsi_containers": {
"version": "0.8.0",
"sha256": "032j0rrlnhx0z2xrg9pfhb1darzj4h8qvxhixiw8gwz5izaxq1ny"
},
"eventsystem": {
"version": "1.2.0",
"sha256": "0spg6p8rxihdn473pmwxghbkkzzccamkqxdcqaqf6k06zvjl7qfs"
},
"inifiled": {
"version": "1.3.3",
"sha256": "01hw0lb9n6vwmx6vj5nq2awg54l5pvngqhzxfj2kmg99az84dg6d"
},
"isfreedesktop": {
"version": "0.1.1",
"sha256": "0bnjr9avvhl7s09dnbcdr5437yb18jj26fzvm7j292kvd2i8kzqz"
},
"libddoc": {
"version": "0.7.4",
"sha256": "1cs4nycn0pl30354dccb2akmbcdmz22yq28sn3imvfndmh059szi"
},
"libdparse": {
"version": "0.19.4",
"sha256": "1nyhga4qxkkf1qs3sd07mnyifw81dbz3nwm1vj106kair0d25q0b"
},
"msgpack-d": {
"version": "1.0.1",
"sha256": "1b6v667ymns90n0ssg7bd8fny1ashv5axpa8xf461ghzqnkkh05d"
},
"painlessjson": {
"version": "1.4.0",
"sha256": "0gy71wbssgn7z50gy8fg3mmwk82qp3y17ypl3x10jbc9nczipryi"
},
"painlesstraits": {
"version": "0.3.0",
"sha256": "0li4n0v70x5sgnqv60v5481jqlv22mk338cww4d3z5l0nhng3bvh"
},
"requests": {
"version": "2.1.2",
"sha256": "10332kdsjv30zkayx3vg6lxa701wmdncf0xjxwxkcjpsw7smzs2z"
},
"rm-rf": {
"version": "0.1.0",
"sha256": "0yr2jan7m49y0c6vm8nblvmgqqzw1c19g5m3cb412wwa37k12v5d"
},
"silly": {
"version": "1.1.1",
"sha256": "1l0mpnbz8h3ihjxvk5qwn6p6lwb75g259k7fjqasw0zp0c27bkjb"
},
"standardpaths": {
"version": "0.8.1",
"sha256": "026sy2ywi708s3kx6ca55nkbq1hn3bcj9804bf01dvxnlschmlvc"
},
"stdx-allocator": {
"version": "2.77.5",
"sha256": "1g8382wr49sjyar0jay8j7y2if7h1i87dhapkgxphnizp24d7kaj"
},
"test_allocator": {
"version": "0.3.4",
"sha256": "1xpjz6smxwgm4walrv3xbzi46cddc80q5n4gs7j9gm2yx11sf7gj"
},
"unit-threaded": {
"version": "0.10.8",
"sha256": "1jvmxka6s2zzrxns62jb50p01bgybhbkrkgi9qzq93xldc6jn2i9"
},
"workspace-d": {
"version": "3.7.0",
"sha256": "0alhmb64v7sbm1g9pdsng3fqy941s67lsqxjcf8awg1z7kn3l1hv"
},
"xdgpaths": {
"version": "0.2.5",
"sha256": "09l3bkcldv7ckh3d2cmivvj3cbql96a24g3khlz7zp9f1aabfykl"
}
}
}

View File

@ -0,0 +1,39 @@
{
lib,
buildDubPackage,
fetchFromGitHub,
dtools,
}:
buildDubPackage rec {
pname = "serve-d";
version = "0.7.6";
src = fetchFromGitHub {
owner = "Pure-D";
repo = "serve-d";
rev = "v${version}";
hash = "sha256-h4zsW8phGcI4z0uMCIovM9cJ6hKdk8rLb/Jp4X4dkpk=";
};
nativeBuildInputs = [ dtools ];
dubLock = ./dub-lock.json;
doCheck = true;
installPhase = ''
runHook preInstall
install -Dm755 serve-d -t $out/bin
runHook postInstall
'';
meta = {
changelog = "https://github.com/Pure-D/serve-d/releases/tag/${src.rev}";
description = "D LSP server (dlang language server protocol server)";
homepage = "https://github.com/Pure-D/serve-d";
license = lib.licenses.mit;
mainProgram = "serve-d";
maintainers = with lib.maintainers; [ tomasajt ];
};
}

View File

@ -6,7 +6,7 @@
, stdenv
}:
stdenv.mkDerivation (finalAttrs: {
version = "1.0";
version = "1.1";
pname = "swaymux";
src = fetchFromGitea {
@ -14,7 +14,7 @@ stdenv.mkDerivation (finalAttrs: {
domain = "git.grimmauld.de";
owner = "Grimmauld";
repo = "swaymux";
hash = "sha256-M85pqfYnYeVPTZXKtjg/ks5LUl3u2onG9Nfn8Xs+BSA=";
hash = "sha256-OMJ9wKNuvD1Z9KV7Bp7aIA5gWbBl9PmTdGcGegE0vqM=";
};
buildInputs = [ qt6.qtwayland nlohmann_json qt6.qtbase];

View File

@ -4,6 +4,7 @@
fetchurl,
makeWrapper,
dotnet-sdk_8,
nixosTests,
}:
stdenvNoCC.mkDerivation rec {
pname = "technitium-dns-server";
@ -35,6 +36,10 @@ stdenvNoCC.mkDerivation rec {
runHook postInstall
'';
passthru.tests = {
inherit (nixosTests) technitium-dns-server;
};
meta = {
changelog = "https://github.com/TechnitiumSoftware/DnsServer/blob/master/CHANGELOG.md";
description = "Authorative and Recursive DNS server for Privacy and Security";

View File

@ -2,16 +2,16 @@
buildGoModule rec {
pname = "tenv";
version = "1.3.0";
version = "1.4.0";
src = fetchFromGitHub {
owner = "tofuutils";
repo = "tenv";
rev = "v${version}";
hash = "sha256-v8Llk9TpTXg8yddNfNc3yh476adokdllOPdPGQDcrMs=";
hash = "sha256-QWIwy995Y1QC2GbWxkRVZ3oaRv6+WhHNPeU9CUNCpA8=";
};
vendorHash = "sha256-3R6UW0jCIcHY1weX8PTFU3nEKTS7VbRD0l78tycIXaE=";
vendorHash = "sha256-62bMFzVI6mQLC8TNvwQMEMdkPVjDa6/ElwT/41t4Cqw=";
# Tests disabled for requiring network access to release.hashicorp.com
doCheck = false;

View File

@ -2,13 +2,13 @@
stdenv.mkDerivation (finalAttrs: {
pname = "tippecanoe";
version = "2.52.0";
version = "2.53.0";
src = fetchFromGitHub {
owner = "felt";
repo = "tippecanoe";
rev = finalAttrs.version;
hash = "sha256-EXutd+uaMtvs+fWmDIIzuVC8Q+Eo439TEYiMfo+Inco=";
hash = "sha256-0GBrGLE0owhGTc/+D1W6X+hkpuX2GPu6gXQ7J2pHK9o=";
};
buildInputs = [ sqlite zlib ];

View File

@ -11,16 +11,16 @@
rustPlatform.buildRustPackage rec {
pname = "xiu";
version = "0.12.5";
version = "0.12.6";
src = fetchFromGitHub {
owner = "harlanc";
repo = "xiu";
rev = "v${version}";
hash = "sha256-JST8nxsT+w524VzNeIW38Oct/n7VJ/nvrmgks2Vff30=";
hash = "sha256-53fVb5c9uS92/rPvZDWXxZX42p4cHqumGe6Dw+/hLvk=";
};
cargoHash = "sha256-te60gZdDmbgOF6rLDAnvDx6vUbmCz3pC/wbu/iXgxAw=";
cargoHash = "sha256-ICZQ+UJ4LPNSeT9SjdcCUXgam40hMAOrJmLIwPEfqs4=";
nativeBuildInputs = [
cmake

View File

@ -46,11 +46,11 @@ let
in
stdenv.mkDerivation (finalAttrs: {
pname = "go";
version = "1.21.8";
version = "1.21.9";
src = fetchurl {
url = "https://go.dev/dl/go${finalAttrs.version}.src.tar.gz";
hash = "sha256-3IBs91qH4UFLW0w9y53T6cyY9M/M7EK3r2F9WmWKPEM=";
hash = "sha256-WPDFztRaABK84v96nfA+Eoq8yIGOur5QJ7uSuv4g5CE=";
};
strictDeps = true;

View File

@ -31,13 +31,13 @@ in
stdenv.mkDerivation rec {
pname = "intel-graphics-compiler";
version = "1.0.15985.7";
version = "1.0.16238.4";
src = fetchFromGitHub {
owner = "intel";
repo = "intel-graphics-compiler";
rev = "igc-${version}";
hash = "sha256-NXShD6M5OeKi0+Jszvoos+wjHZ9lWh/LIUFLFq8dzFM=";
hash = "sha256-XgQ2Gk3HDKBpsfomlpRUt8WybEIoHfKlyuWJCwCnmDA=";
};
nativeBuildInputs = [ bison cmake flex (python3.withPackages (ps : with ps; [ mako ])) ];

View File

@ -130,6 +130,7 @@ stdenv.mkDerivation rec {
homepage = "https://github.com/ldc-developers/ldc";
# from https://github.com/ldc-developers/ldc/blob/master/LICENSE
license = with licenses; [ bsd3 boost mit ncsa gpl2Plus ];
mainProgram = "ldc2";
maintainers = with maintainers; [ lionello jtbx ];
platforms = [ "x86_64-linux" "i686-linux" "aarch64-linux" "x86_64-darwin" "aarch64-darwin" ];
};

View File

@ -42,12 +42,9 @@
}:
assert let
int = a: if a then 1 else 0;
xor = a: b: ((builtins.bitXor (int a) (int b)) == 1);
in
assert
lib.assertMsg
(xor
(lib.xor
(gitRelease != null)
(officialRelease != null))
("must specify `gitRelease` or `officialRelease`" +

View File

@ -41,12 +41,9 @@
, monorepoSrc ? null
}:
assert let
int = a: if a then 1 else 0;
xor = a: b: ((builtins.bitXor (int a) (int b)) == 1);
in
assert
lib.assertMsg
(xor
(lib.xor
(gitRelease != null)
(officialRelease != null))
("must specify `gitRelease` or `officialRelease`" +

View File

@ -41,12 +41,9 @@
, monorepoSrc ? null
}:
assert let
int = a: if a then 1 else 0;
xor = a: b: ((builtins.bitXor (int a) (int b)) == 1);
in
assert
lib.assertMsg
(xor
(lib.xor
(gitRelease != null)
(officialRelease != null))
("must specify `gitRelease` or `officialRelease`" +

View File

@ -41,12 +41,9 @@
, monorepoSrc ? null
}:
assert let
int = a: if a then 1 else 0;
xor = a: b: ((builtins.bitXor (int a) (int b)) == 1);
in
assert
lib.assertMsg
(xor
(lib.xor
(gitRelease != null)
(officialRelease != null))
("must specify `gitRelease` or `officialRelease`" +

View File

@ -41,12 +41,9 @@
, monorepoSrc ? null
}:
assert let
int = a: if a then 1 else 0;
xor = a: b: ((builtins.bitXor (int a) (int b)) == 1);
in
assert
lib.assertMsg
(xor
(lib.xor
(gitRelease != null)
(officialRelease != null))
("must specify `gitRelease` or `officialRelease`" +

Some files were not shown because too many files have changed in this diff Show More