mirror of
https://github.com/NixOS/nixpkgs.git
synced 2026-07-19 15:11:30 +00:00
Merge branch 'master' into r-updates
This commit is contained in:
@@ -41,7 +41,7 @@
|
||||
/lib/meta.nix @alyssais @NixOS/stdenv @llakala
|
||||
/lib/meta-types.nix @infinisil @adisbladis @NixOS/stdenv @llakala
|
||||
/lib/source-types.nix @alyssais @NixOS/stdenv @llakala
|
||||
/lib/systems @alyssais @NixOS/stdenv @llakala
|
||||
/lib/systems @alyssais @NixOS/stdenv
|
||||
## Libraries / Module system
|
||||
/lib/modules.nix @infinisil @roberth @hsjobeki @llakala
|
||||
/lib/types.nix @infinisil @roberth @hsjobeki @llakala
|
||||
@@ -260,7 +260,7 @@ pkgs/development/python-modules/buildcatrust/ @ajs124 @lukegb @mweinelt
|
||||
/pkgs/applications/editors/jetbrains @leona-ya @theCapypara
|
||||
|
||||
# Licenses
|
||||
/lib/licenses @alyssais @emilazy @jopejoe1 @llakala
|
||||
/lib/licenses @alyssais @emilazy @jopejoe1
|
||||
|
||||
# Qt
|
||||
/pkgs/development/libraries/qt-5 @K900 @NickCao @SuperSandro2000
|
||||
|
||||
@@ -395,6 +395,13 @@ module.exports = async ({ github, context, core, dry }) => {
|
||||
pull_number,
|
||||
per_page: 100,
|
||||
})
|
||||
|
||||
// label llm-assisted PRs accordingly
|
||||
const assistedByPattern = /Assisted-by: (?!nix-init)/i
|
||||
evalLabels['llm-assisted'] = prCommits.some((c) =>
|
||||
assistedByPattern.test(c.commit.message),
|
||||
)
|
||||
|
||||
const commitSubjects = prCommits.map(
|
||||
(c) => c.commit.message.split('\n')[0],
|
||||
)
|
||||
|
||||
@@ -143,3 +143,4 @@ lib.extendMkDerivation {
|
||||
});
|
||||
}
|
||||
```
|
||||
:::
|
||||
|
||||
@@ -165,7 +165,7 @@ They are useful for creating files from Nix expressions, and are all implemented
|
||||
Each of these functions will cause a derivation to be produced.
|
||||
When you coerce the result of each of these functions to a string with [string interpolation](https://nixos.org/manual/nix/stable/language/string-interpolation) or [`toString`](https://nixos.org/manual/nix/stable/language/builtins#builtins-toString), it will evaluate to the [store path](https://nixos.org/manual/nix/stable/store/store-path) of this derivation.
|
||||
|
||||
:::: {.note}
|
||||
::: {.note}
|
||||
Some of these functions will put the resulting files within a directory inside the [derivation output](https://nixos.org/manual/nix/stable/language/derivations#attr-outputs).
|
||||
If you need to refer to the resulting files somewhere else in a Nix expression, append their path to the derivation's store path.
|
||||
|
||||
@@ -190,7 +190,7 @@ writeShellScript "evaluate-my-file.sh" ''
|
||||
cat ${my-file}/share/my-file
|
||||
''
|
||||
```
|
||||
::::
|
||||
:::
|
||||
|
||||
### `makeDesktopItem` {#trivial-builder-makeDesktopItem}
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ The recommended way of defining a derivation for a Rocq library, is to use the `
|
||||
* `releaseRev` (optional, defaults to `(v: v)`), provides a default mapping from release names to revision hashes/branch names/tags,
|
||||
* `releaseArtifact` (optional, defaults to `(v: null)`), provides a default mapping from release names to artifact names (only works for github artifact for now),
|
||||
* `displayVersion` (optional), provides a way to alter the computation of `name` from `pname`, by explaining how to display version numbers,
|
||||
* `namePrefix` (optional, defaults to `[ "rocq-core" ]`), provides a way to alter the computation of `name` from `pname`, by explaining which dependencies must occur in `name`,
|
||||
* `namePrefix` (optional, defaults to `[ "rocq" ]`), provides a way to alter the computation of `name` from `pname`, by explaining which dependencies must occur in `name`,
|
||||
* `nativeBuildInputs` (optional), is a list of executables that are required to build the current derivation, in addition to the default ones (namely `which`, `dune` and `ocaml` depending on whether `useDune`, `useDuneifVersion` and `mlPlugin` are set).
|
||||
* `extraNativeBuildInputs` (optional, deprecated), an additional list of derivation to add to `nativeBuildInputs`,
|
||||
* `overrideNativeBuildInputs` (optional) replaces the default list of derivation to which `nativeBuildInputs` and `extraNativeBuildInputs` adds extra elements,
|
||||
|
||||
@@ -46,11 +46,15 @@
|
||||
|
||||
- `mcphost` has been removed, as it was archived upstream and declared unmaintained.
|
||||
|
||||
- `fflogs` has been removed because it was no longer functional. Users should switch to `archon-lite`.
|
||||
|
||||
- `services.mysql` now sets `root@localhost` authentication to `auth_socket` when used with `mysql` or `percona-server`.
|
||||
Existing deployments will also be adjusted if possible. See the [security advisory GHSA-6qxx-6rg8-c4p8](https://github.com/NixOS/nixpkgs/security/advisories/GHSA-6qxx-6rg8-c4p8) for more information.
|
||||
|
||||
- `zerofs` has been updated from `1.x` to `2.x` which is a breaking change. Volumes created by earlier releases are refused at open with a clear error. There is no migration tool; older volumes remain readable and writable by the release that created them.
|
||||
|
||||
- `keycloak.plugins.keycloak-metrics-spi` has been removed. Keycloak exposes Prometheus metrics natively on its management interface; enable them with the `metrics-enabled` setting (and `event-metrics-user-enabled` for login and event counters). See [Gaining insights with metrics](https://www.keycloak.org/observability/configuration-metrics).
|
||||
|
||||
- `alps` has been rewritten upstream, see [upstream repository](https://github.com/migadu/alps) for documentation.
|
||||
|
||||
- `uhttpmock` providing 0.0 ABI was removed. `uhttpmock_1_0` providing 1.0 ABI was renamed to `uhttpmock` and `uhttpmock_1_0` was kept as an alias.
|
||||
@@ -92,6 +96,8 @@
|
||||
|
||||
- `texlive.combine` is deprecated and scheduled for removal in 27.05. Please migrate to `texliveSmall.withPackages` (see [](#sec-language-texlive-user-guide)).
|
||||
|
||||
- `keycloak` was updated to >= 26.7.0 and includes some breaking internal (API) changes. See the [upstream migration guide](https://www.keycloak.org/docs/latest/upgrading/#migrating-to-26-7-0) for more information.
|
||||
|
||||
- `librest` providing 0.7 ABI was removed. `librest_1_0` providing 1.0 ABI was renamed to `librest` and `librest_1_0` was kept as an alias.
|
||||
|
||||
- `pnpm_10` was upgraded to version 10.34.1+, which introduced stricter integrity checks. If you encounter `ERR_PNPM_MISSING_TARBALL_INTEGRITY`, you can fall back to the older `pnpm_10_34_0`.
|
||||
@@ -140,8 +146,7 @@
|
||||
|
||||
### Breaking changes {#sec-nixpkgs-release-26.11-lib-breaking}
|
||||
|
||||
- Create the first release note entry in this section!
|
||||
|
||||
- `fittrackee` 1.0.0 now requires postgres with postgis. The [upgrade guide](https://docs.fittrackee.org/en/upgrading-to-1.0.0.html) has steps to prepare for this upgrade.
|
||||
|
||||
### Deprecations {#sec-nixpkgs-release-26.11-lib-deprecations}
|
||||
|
||||
|
||||
@@ -1,16 +1,16 @@
|
||||
# Platform Support {#chap-platform-support}
|
||||
|
||||
Packages receive varying degrees of support, both in terms of maintainer attention and available computation resources for continuous integration (CI). We have 7 defined tiers denoting how well supported each platform is.
|
||||
Packages receive varying degrees of support, both in terms of maintainer and security team attention and available computation resources for continuous integration (CI). We have 7 defined tiers denoting how well supported each platform is.
|
||||
|
||||
## Tiers {#sec-platform-tiers}
|
||||
|
||||
### Tier 1 {#sec-platform-tier1}
|
||||
|
||||
[Tier 1](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-1) platforms receive the highest level of support where problems can block updates, platform-specific patches are freely applied, and most packages are expected to work.
|
||||
[Tier 1](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-1) platforms receive the highest level of support where problems can block updates, security fixes are treated with urgency, platform-specific patches are freely applied, and most packages are expected to work.
|
||||
|
||||
### Tier 2 {#sec-platform-tier2}
|
||||
|
||||
[Tier 2](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-2) platforms are expected to remain functional with updates, receive platform-specific patches as needed, and have many packages built by Hydra with full ofBorg support.
|
||||
[Tier 2](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-2) platforms are expected to remain functional and secure with updates, receive platform-specific patches as needed, and have many packages built by Hydra with full ofBorg support.
|
||||
|
||||
### Tier 3 {#sec-platform-tier3}
|
||||
|
||||
@@ -22,25 +22,25 @@ Platform Tiers [4 through 7](https://github.com/NixOS/rfcs/blob/master/rfcs/0046
|
||||
|
||||
## Breakdown {#sec-platform-breakdown}
|
||||
|
||||
| Triple | Support Tier | Channel Blockers | Hydra Support | Ofborg Support | Bootstrap Tarballs | Cross Compiling Support |
|
||||
| ------------------------------------- | ------------ | ---------------- | ------------- | -------------- | ------------------ | ----------------------- |
|
||||
| `x86_64-unknown-linux-gnu` | [Tier 1](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-1) | Many | ✔️ | ✔️ | ✔️ | ✔️ |
|
||||
| `aarch64-unknown-linux-gnu` | [Tier 2](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-2) | Some | ✔️ | ✔️ | ✔️ | ✔️ |
|
||||
| `x86_64-unknown-linux-musl` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | Limited | ❌ | ✔️ | ✔️ |
|
||||
| `aarch64-unknown-linux-musl` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | Limited | ❌ | ✔️ | ✔️ |
|
||||
| `x86_64-unknown-unknown-freebsd` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | ❌ | ❌ | ✔️ | ✔️ |
|
||||
| `arm64-apple-darwin` | [Tier 2](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-2) | Some | ✔️ | ✔️ | ✔️ | ❌ |
|
||||
| `i686-unknown-linux-gnu` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | Limited | ❌ | ✔️ | ✔️ |
|
||||
| `riscv32-unknown-linux-gnu` | [Tier 4](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-4) | None | ❌ | ❌ | ❌ | ✔️ |
|
||||
| `riscv64-unknown-linux-gnu` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | ❌ | ❌ | ✔️ | ✔️ |
|
||||
| `loongarch64-unknown-linux-gnu` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | ❌ | ❌ | ✔️ | ✔️ |
|
||||
| `armv6l-unknown-linux-gnueabihf` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | ❌ | ❌ | ✔️ | ✔️ |
|
||||
| `armv6l-unknown-linux-musleabihf` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | ❌ | ❌ | ✔️ | ✔️ |
|
||||
| `armv7l-unknown-linux-gnueabihf` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | ❌ | ❌ | ✔️ | ✔️ |
|
||||
| `armv5tel-unknown-linux-gnueabi` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | ❌ | ❌ | ✔️ | ✔️ |
|
||||
| `mips64el-unknown-linux-gnuabi64` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | ❌ | ❌ | ✔️ | ✔️ |
|
||||
| `mips64el-unknown-linux-gnuabin32` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | ❌ | ❌ | ✔️ | ✔️ |
|
||||
| `mipsel-unknown-linux-gnu` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | ❌ | ❌ | ✔️ | ✔️ |
|
||||
| `powerpc64-unknown-linux-gnuabielfv2` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | ❌ | ❌ | ✔️ | ✔️ |
|
||||
| `powerpc64le-unknown-linux-gnu` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | ❌ | ❌ | ✔️ | ✔️ |
|
||||
| `s390x-unknown-linux-gnu` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | ❌ | ❌ | ✔️ | ✔️ |
|
||||
| Triple | Support Tier | Channel Blockers | Hydra Support | Security Support | Ofborg Support | Bootstrap Tarballs | Cross Compiling Support |
|
||||
|---------------------------------------|------------------------------------------------------------------------------------------------|------------------|---------------|------------------|----------------|--------------------|-------------------------|
|
||||
| `x86_64-unknown-linux-gnu` | [Tier 1](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-1) | Many | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
|
||||
| `aarch64-unknown-linux-gnu` | [Tier 2](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-2) | Some | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ |
|
||||
| `x86_64-unknown-linux-musl` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | Limited | ❌ | ❌ | ✔️ | ✔️ |
|
||||
| `aarch64-unknown-linux-musl` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | Limited | ❌ | ❌ | ✔️ | ✔️ |
|
||||
| `x86_64-unknown-unknown-freebsd` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | ❌ | ❌ | ❌ | ✔️ | ✔️ |
|
||||
| `arm64-apple-darwin` | [Tier 2](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-2) | Some | ✔️ | ✔️ | ✔️ | ✔️ | ❌ |
|
||||
| `i686-unknown-linux-gnu` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | Limited | ❌ | ❌ | ✔️ | ✔️ |
|
||||
| `riscv32-unknown-linux-gnu` | [Tier 4](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-4) | None | ❌ | ❌ | ❌ | ❌ | ✔️ |
|
||||
| `riscv64-unknown-linux-gnu` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | ❌ | ❌ | ❌ | ✔️ | ✔️ |
|
||||
| `loongarch64-unknown-linux-gnu` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | ❌ | ❌ | ❌ | ✔️ | ✔️ |
|
||||
| `armv6l-unknown-linux-gnueabihf` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | ❌ | ❌ | ❌ | ✔️ | ✔️ |
|
||||
| `armv6l-unknown-linux-musleabihf` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | ❌ | ❌ | ❌ | ✔️ | ✔️ |
|
||||
| `armv7l-unknown-linux-gnueabihf` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | ❌ | ❌ | ❌ | ✔️ | ✔️ |
|
||||
| `armv5tel-unknown-linux-gnueabi` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | ❌ | ❌ | ❌ | ✔️ | ✔️ |
|
||||
| `mips64el-unknown-linux-gnuabi64` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | ❌ | ❌ | ❌ | ✔️ | ✔️ |
|
||||
| `mips64el-unknown-linux-gnuabin32` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | ❌ | ❌ | ❌ | ✔️ | ✔️ |
|
||||
| `mipsel-unknown-linux-gnu` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | ❌ | ❌ | ❌ | ✔️ | ✔️ |
|
||||
| `powerpc64-unknown-linux-gnuabielfv2` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | ❌ | ❌ | ❌ | ✔️ | ✔️ |
|
||||
| `powerpc64le-unknown-linux-gnu` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | ❌ | ❌ | ❌ | ✔️ | ✔️ |
|
||||
| `s390x-unknown-linux-gnu` | [Tier 3](https://github.com/NixOS/rfcs/blob/master/rfcs/0046-platform-support-tiers.md#tier-3) | None | ❌ | ❌ | ❌ | ✔️ | ✔️ |
|
||||
|
||||
@@ -1140,7 +1140,7 @@ rec {
|
||||
|
||||
For a function that gives you control over what counts as a leaf, see `mapAttrsRecursiveCond`.
|
||||
|
||||
:::{#map-attrs-recursive-example .example}
|
||||
::: {.example #map-attrs-recursive-example}
|
||||
# Map over leaf attributes
|
||||
|
||||
```nix
|
||||
@@ -1165,7 +1165,7 @@ rec {
|
||||
If the predicate returns false, `mapAttrsRecursiveCond` does not recurse, but instead applies the mapping function.
|
||||
If the predicate returns true, it does recurse, and does not apply the mapping function.
|
||||
|
||||
:::{#map-attrs-recursive-cond-example .example}
|
||||
::: {.example #map-attrs-recursive-cond-example}
|
||||
# Map over an leaf attributes defined by a condition
|
||||
|
||||
Map derivations to their `name` attribute.
|
||||
|
||||
@@ -564,7 +564,7 @@ rec {
|
||||
|
||||
# Examples
|
||||
|
||||
:::{#ex-makeScope .example}
|
||||
:::{.example #ex-makeScope}
|
||||
# Create an interdependent package set on top of `pkgs`
|
||||
|
||||
The functions in `foo.nix` and `bar.nix` can depend on each other, in the sense that `foo.nix` can contain a function that expects `bar` as an attribute in its argument.
|
||||
@@ -593,7 +593,7 @@ rec {
|
||||
```
|
||||
:::
|
||||
|
||||
:::{#ex-makeScope-callPackage .example}
|
||||
:::{.example #ex-makeScope-callPackage}
|
||||
# Using `callPackage` from a scope
|
||||
|
||||
```nix
|
||||
|
||||
@@ -310,6 +310,11 @@ lib.mapAttrs mkLicense (
|
||||
redistributable = true;
|
||||
};
|
||||
|
||||
buddy = {
|
||||
spdxId = "Buddy";
|
||||
fullName = "Buddy License";
|
||||
};
|
||||
|
||||
bzip2 = {
|
||||
spdxId = "bzip2-1.0.6";
|
||||
fullName = "bzip2 and libbzip2 License v1.0.6";
|
||||
@@ -382,6 +387,13 @@ lib.mapAttrs mkLicense (
|
||||
free = false;
|
||||
};
|
||||
|
||||
cc-by-nc-30-igo = {
|
||||
# Currently does not have a spdxID will get one in the future https://github.com/spdx/license-list-XML/issues/2845
|
||||
# spdxId = "CC-BY-NC-3.0-IGO";
|
||||
fullName = "Creative Commons Attribution Non Commercial 3.0 IGO";
|
||||
free = false;
|
||||
};
|
||||
|
||||
cc-by-nc-40 = {
|
||||
spdxId = "CC-BY-NC-4.0";
|
||||
fullName = "Creative Commons Attribution Non Commercial 4.0 International";
|
||||
@@ -926,6 +938,11 @@ lib.mapAttrs mkLicense (
|
||||
free = false;
|
||||
};
|
||||
|
||||
jpl-image = {
|
||||
fullName = "JPL Image Use Policy";
|
||||
spdxId = "JPL-image";
|
||||
};
|
||||
|
||||
knuth = {
|
||||
fullName = "Knuth CTAN License";
|
||||
spdxId = "Knuth-CTAN";
|
||||
@@ -1173,6 +1190,11 @@ lib.mapAttrs mkLicense (
|
||||
fullName = "Nethack General Public License";
|
||||
};
|
||||
|
||||
ngrep = {
|
||||
spdxId = "ngrep";
|
||||
fullName = "ngrep License";
|
||||
};
|
||||
|
||||
nistSoftware = {
|
||||
spdxId = "NIST-Software";
|
||||
fullName = "NIST Software License";
|
||||
@@ -1606,6 +1628,11 @@ lib.mapAttrs mkLicense (
|
||||
url = "https://fedoraproject.org/wiki/Licensing:Wadalab?rd=Licensing/Wadalab";
|
||||
};
|
||||
|
||||
wordnet = {
|
||||
spdxId = "WordNet";
|
||||
fullName = "WordNet License";
|
||||
};
|
||||
|
||||
wtfpl = {
|
||||
spdxId = "WTFPL";
|
||||
fullName = "Do What The F*ck You Want To Public License";
|
||||
|
||||
@@ -90,12 +90,12 @@ rec {
|
||||
`defaultText`
|
||||
: Substitute for documenting the `default`, if evaluating the default value during documentation rendering is not possible.
|
||||
: Can be any nix value that evaluates.
|
||||
: Usage with `lib.literalMD` or `lib.literalExpression` is supported
|
||||
: Usage with `lib.literalMD`, `lib.literalExpression`, or `lib.literalCode` is supported
|
||||
|
||||
`example`
|
||||
: Optional example value used in the manual.
|
||||
: Can be any nix value that evaluates.
|
||||
: Usage with `lib.literalMD` or `lib.literalExpression` is supported
|
||||
: Usage with `lib.literalMD`, `lib.literalExpression`, or `lib.literalCode` is supported
|
||||
|
||||
`description`
|
||||
: Optional string describing the option. This is required if option documentation is generated.
|
||||
|
||||
@@ -1629,12 +1629,6 @@
|
||||
githubId = 382798;
|
||||
name = "amfl";
|
||||
};
|
||||
amiddelk = {
|
||||
email = "amiddelk@gmail.com";
|
||||
github = "amiddelk";
|
||||
githubId = 1358320;
|
||||
name = "Arie Middelkoop";
|
||||
};
|
||||
aminechikhaoui = {
|
||||
email = "amine.chikhaoui91@gmail.com";
|
||||
github = "AmineChikhaoui";
|
||||
@@ -2007,6 +2001,12 @@
|
||||
githubId = 14838767;
|
||||
name = "Jacopo Scannella";
|
||||
};
|
||||
antoineco = {
|
||||
email = "hello@acotten.com";
|
||||
github = "antoineco";
|
||||
githubId = 3299086;
|
||||
name = "Antoine Cotten";
|
||||
};
|
||||
anton-4 = {
|
||||
name = "Anton";
|
||||
github = "Anton-4";
|
||||
@@ -4432,6 +4432,12 @@
|
||||
{ fingerprint = "8916 F727 734E 77AB 437F A33A 19AB 76F5 CEE1 1392"; }
|
||||
];
|
||||
};
|
||||
caguiclajmg = {
|
||||
email = "jmg.caguicla@guarandoo.me";
|
||||
github = "caguiclajmg";
|
||||
githubId = 32662060;
|
||||
name = "John Mark Gabriel Caguicla";
|
||||
};
|
||||
CaiqueFigueiredo = {
|
||||
email = "public@caiquefigueiredo.me";
|
||||
github = "caiquefigueiredo";
|
||||
@@ -5607,6 +5613,11 @@
|
||||
githubId = 5953003;
|
||||
name = "Connor Nelson";
|
||||
};
|
||||
conny = {
|
||||
github = "ConstantConstantin";
|
||||
githubId = 162139822;
|
||||
name = "Constantin-Paul Hertel";
|
||||
};
|
||||
conradmearns = {
|
||||
email = "conradmearns+github@pm.me";
|
||||
github = "ConradMearns";
|
||||
@@ -6252,6 +6263,12 @@
|
||||
github = "darkyzhou";
|
||||
githubId = 7220778;
|
||||
};
|
||||
darshancode2005 = {
|
||||
name = "Darshan Thakare";
|
||||
email = "darshanthakaregsoc2023@gmail.com";
|
||||
github = "DarshanCode2005";
|
||||
githubId = 143271270;
|
||||
};
|
||||
daru-san = {
|
||||
name = "Daru";
|
||||
email = "zadarumaka@proton.me";
|
||||
@@ -6791,6 +6808,13 @@
|
||||
githubId = 77843198;
|
||||
name = "Vasilis Manetas";
|
||||
};
|
||||
Deric-W = {
|
||||
email = "robo-eric@gmx.de";
|
||||
github = "Deric-W";
|
||||
githubId = 42873573;
|
||||
name = "Eric Wolf";
|
||||
keys = [ { fingerprint = "ADAA B6F3 A955 5589 D66C CE61 80D2 DA42 8A4A 537F"; } ];
|
||||
};
|
||||
DerickEddington = {
|
||||
email = "derick.eddington@pm.me";
|
||||
github = "DerickEddington";
|
||||
@@ -9101,6 +9125,12 @@
|
||||
githubId = 41450706;
|
||||
name = "fin-w";
|
||||
};
|
||||
fiona = {
|
||||
email = "mail@fiona.hamburg";
|
||||
github = "Fiona42069";
|
||||
githubId = 260108682;
|
||||
name = "fiona";
|
||||
};
|
||||
fionera = {
|
||||
email = "nix@fionera.de";
|
||||
github = "fionera";
|
||||
@@ -10042,12 +10072,6 @@
|
||||
name = "Will Owens";
|
||||
keys = [ { fingerprint = "8E98 BB01 BFF8 AEA4 E303 FC4C 8074 09C9 2CE2 3033"; } ];
|
||||
};
|
||||
ghuntley = {
|
||||
email = "ghuntley@ghuntley.com";
|
||||
github = "ghuntley";
|
||||
githubId = 127353;
|
||||
name = "Geoffrey Huntley";
|
||||
};
|
||||
gibbert = {
|
||||
email = "gbjgms@gmail.com";
|
||||
github = "zgibberish";
|
||||
@@ -11890,12 +11914,6 @@
|
||||
name = "Silvan Mosberger";
|
||||
keys = [ { fingerprint = "6C2B 55D4 4E04 8266 6B7D DA1A 422E 9EDA E015 7170"; } ];
|
||||
};
|
||||
iniw = {
|
||||
email = "git@vini.cat";
|
||||
github = "iniw";
|
||||
githubId = 30220881;
|
||||
name = "Vinicius Deolindo";
|
||||
};
|
||||
insipx = {
|
||||
email = "github@andrewplaza.dev";
|
||||
github = "insipx";
|
||||
@@ -16406,6 +16424,11 @@
|
||||
githubId = 83420438;
|
||||
name = "Lewis";
|
||||
};
|
||||
lubsch = {
|
||||
github = "lubsch";
|
||||
githubId = 33580245;
|
||||
name = "Benjamin Lohmar";
|
||||
};
|
||||
luc65r = {
|
||||
email = "lucas@ransan.fr";
|
||||
github = "luc65r";
|
||||
@@ -21201,12 +21224,6 @@
|
||||
githubId = 19862;
|
||||
name = "KJ Ørbekk";
|
||||
};
|
||||
orbitz = {
|
||||
email = "mmatalka@gmail.com";
|
||||
github = "orbitz";
|
||||
githubId = 75299;
|
||||
name = "Malcolm Matalka";
|
||||
};
|
||||
orhun = {
|
||||
email = "orhunparmaksiz@gmail.com";
|
||||
github = "orhun";
|
||||
@@ -24404,6 +24421,12 @@
|
||||
githubId = 20300874;
|
||||
name = "Mohammad Rafiq";
|
||||
};
|
||||
rsahwe = {
|
||||
email = "rsahwe@gmx.net";
|
||||
github = "rsahwe";
|
||||
githubId = 201613730;
|
||||
name = "rsahwe";
|
||||
};
|
||||
rseichter = {
|
||||
email = "nixos.org@seichter.de";
|
||||
github = "rseichter";
|
||||
@@ -25962,6 +25985,12 @@
|
||||
name = "Nikolay Korotkiy";
|
||||
keys = [ { fingerprint = "ADF4 C13D 0E36 1240 BD01 9B51 D1DE 6D7F 6936 63A5"; } ];
|
||||
};
|
||||
silicalet = {
|
||||
name = "Mr. why";
|
||||
email = "silicalet@outlook.com";
|
||||
github = "silicalet";
|
||||
githubId = 188071249;
|
||||
};
|
||||
silky = {
|
||||
name = "Noon van der Silk";
|
||||
email = "noonsilk+nixpkgs@gmail.com";
|
||||
@@ -26632,12 +26661,6 @@
|
||||
github = "spreetin";
|
||||
githubId = 7392173;
|
||||
};
|
||||
sprock = {
|
||||
email = "rmason@mun.ca";
|
||||
github = "sprock";
|
||||
githubId = 6391601;
|
||||
name = "Roger Mason";
|
||||
};
|
||||
sputn1ck = {
|
||||
email = "kon@kon.ninja";
|
||||
github = "sputn1ck";
|
||||
@@ -30300,6 +30323,12 @@
|
||||
githubId = 22803888;
|
||||
name = "Lu Hongxu";
|
||||
};
|
||||
wini = {
|
||||
email = "dev@vini.cat";
|
||||
github = "iniw";
|
||||
githubId = 30220881;
|
||||
name = "Vinicius Deolindo";
|
||||
};
|
||||
winpat = {
|
||||
email = "patrickwinter@posteo.ch";
|
||||
github = "winpat";
|
||||
|
||||
@@ -307,7 +307,7 @@ async def commit_changes(
|
||||
commit_message = "{attrPath}: {oldVersion} -> {newVersion}".format(**change)
|
||||
if "commitMessage" in change:
|
||||
commit_message = change["commitMessage"]
|
||||
elif "commitBody" in change:
|
||||
if "commitBody" in change:
|
||||
commit_message = commit_message + "\n\n" + change["commitBody"]
|
||||
await check_subprocess_output(
|
||||
"git",
|
||||
|
||||
@@ -41,5 +41,6 @@ and non-critical by adding `options = [ "nofail" ];`.
|
||||
```{=include=} sections
|
||||
luks-file-systems.section.md
|
||||
sshfs-file-systems.section.md
|
||||
nfs-file-systems.section.md
|
||||
overlayfs.section.md
|
||||
```
|
||||
|
||||
52
nixos/doc/manual/configuration/nfs-file-systems.section.md
Normal file
52
nixos/doc/manual/configuration/nfs-file-systems.section.md
Normal file
@@ -0,0 +1,52 @@
|
||||
# NFS File Systems {#sec-nfs-file-systems}
|
||||
|
||||
[NFS][nfs] (Network File System) allows you to mount directories from remote machines over the network.
|
||||
|
||||
[nfs]: https://en.wikipedia.org/wiki/Network_File_System
|
||||
[nfs-man]: https://man7.org/linux/man-pages/man5/nfs.5.html
|
||||
|
||||
To mount NFS filesystems persistently, use the `fileSystems` option:
|
||||
|
||||
```nix
|
||||
{
|
||||
fileSystems."/mnt/data" = {
|
||||
device = "server.example.com:/export/data";
|
||||
fsType = "nfs";
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
## Automounting {#sec-nfs-automount}
|
||||
|
||||
To have NFS filesystems mounted on-demand instead of at boot, add the `noauto` and `x-systemd.automount` options:
|
||||
|
||||
```nix
|
||||
{
|
||||
fileSystems."/mnt/data" = {
|
||||
device = "server.example.com:/export/data";
|
||||
fsType = "nfs";
|
||||
options = [
|
||||
"noauto"
|
||||
"x-systemd.automount"
|
||||
];
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
## Ad-hoc Mounting {#sec-nfs-adhoc}
|
||||
|
||||
To mount NFS filesystems ad-hoc using the `mount` command, enable NFS and required RPC services:
|
||||
|
||||
```nix
|
||||
{
|
||||
boot.supportedFilesystems = [ "nfs" ];
|
||||
}
|
||||
```
|
||||
|
||||
Then you can mount filesystems manually:
|
||||
|
||||
```shell
|
||||
$ sudo mount -t nfs server.example.com:/export/data /mnt/data
|
||||
```
|
||||
|
||||
For more information on NFS mount options, see the [nfs(5) man page][nfs-man].
|
||||
@@ -619,6 +619,15 @@
|
||||
"sec-luks-file-systems-fido2-systemd": [
|
||||
"index.html#sec-luks-file-systems-fido2-systemd"
|
||||
],
|
||||
"sec-nfs-file-systems": [
|
||||
"index.html#sec-nfs-file-systems"
|
||||
],
|
||||
"sec-nfs-automount": [
|
||||
"index.html#sec-nfs-automount"
|
||||
],
|
||||
"sec-nfs-adhoc": [
|
||||
"index.html#sec-nfs-adhoc"
|
||||
],
|
||||
"sec-sshfs-file-systems": [
|
||||
"index.html#sec-sshfs-file-systems"
|
||||
],
|
||||
|
||||
@@ -142,6 +142,8 @@
|
||||
|
||||
- The `newuidmap` and `newgidmap` security wrappers are now installed with `cap_setuid`/`cap_setgid` file capabilities instead of the setuid-root bit, matching shadow's `--with-fcaps` install mode and other major distributions. Rootless containers (podman, docker-rootless, unprivileged user namespaces) are unaffected. The only behavioural change is that mapping host uid 0 via `/etc/subuid` (which NixOS never configures by default) additionally requires `cap_setfcap`; users who explicitly grant uid 0 in a subuid range can restore the previous behaviour with `security.wrappers.newuidmap.capabilities = lib.mkForce "cap_setuid,cap_setfcap+ep";`.
|
||||
|
||||
- The `authelia` module now uses systemd's `LoadCredential` to load all files defined in `secrets`. As such, these files no longer need to be readable by the authelia user and group: they can for example be set to be only readable by the root user.
|
||||
|
||||
- `zoneminder` has been updated to 1.38.x release. See [upstream release note](https://github.com/ZoneMinder/zoneminder/releases/tag/1.38.0). While database migration should happen automatically, it's recommended that you make a backup of the database before upgrading your system.
|
||||
|
||||
- The latest available version of Nextcloud is v34 (available as `pkgs.nextcloud34`). The installation logic is as follows:
|
||||
|
||||
@@ -1861,6 +1861,7 @@
|
||||
./services/web-servers/nginx/tailscale-auth.nix
|
||||
./services/web-servers/phpfpm/default.nix
|
||||
./services/web-servers/pomerium.nix
|
||||
./services/web-servers/rustfs.nix
|
||||
./services/web-servers/rustus.nix
|
||||
./services/web-servers/send.nix
|
||||
./services/web-servers/stargazer.nix
|
||||
|
||||
@@ -511,7 +511,7 @@ in
|
||||
services.simplesamlphp has been vulnerable and unmaintained in nixpkgs.
|
||||
'')
|
||||
(mkRemovedOptionModule [ "security" "pam" "enableEcryptfs" ] ''
|
||||
security.pam.enableFscrypt was removed since it was unmaintained in nixpkgs.
|
||||
security.pam.enableEcryptfs was removed since it was unmaintained in nixpkgs.
|
||||
'')
|
||||
(mkRemovedOptionModule [ "security" "rngd" ] ''
|
||||
rngd is not necessary for any device that the kernel recognises
|
||||
|
||||
@@ -241,7 +241,7 @@ in
|
||||
{
|
||||
Type = "oneshot";
|
||||
RemainAfterExit = "yes";
|
||||
ExecStartPre = "${pkgs.apparmor-utils}/bin/aa-teardown";
|
||||
ExecStartPre = lib.getExe' pkgs.apparmor-init "aa-teardown";
|
||||
ExecStart = lib.mapAttrsToList (
|
||||
n: p: "${pkgs.apparmor-parser}/bin/apparmor_parser --add ${commonOpts n p}"
|
||||
) enabledPolicies;
|
||||
@@ -262,7 +262,7 @@ in
|
||||
# Optionally kill the processes which are unconfined but now have a profile loaded
|
||||
# (because AppArmor can only start to confine new processes).
|
||||
lib.optional cfg.killUnconfinedConfinables killUnconfinedConfinables;
|
||||
ExecStop = "${pkgs.apparmor-utils}/bin/aa-teardown";
|
||||
ExecStop = lib.getExe' pkgs.apparmor-init "aa-teardown";
|
||||
CacheDirectory = [
|
||||
"apparmor"
|
||||
"apparmor/logprof"
|
||||
|
||||
@@ -40,7 +40,6 @@ in
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment.systemPackages = with pkgs; [
|
||||
seatd
|
||||
sdnotify-wrapper
|
||||
];
|
||||
users.groups.seat = lib.mkIf (cfg.group == "seat") { };
|
||||
|
||||
@@ -55,7 +54,7 @@ in
|
||||
Type = "notify";
|
||||
NotifyAccess = "all";
|
||||
SyslogIdentifier = "seatd";
|
||||
ExecStart = "${pkgs.sdnotify-wrapper}/bin/sdnotify-wrapper ${pkgs.seatd.bin}/bin/seatd -n 1 -u ${cfg.user} -g ${cfg.group} -l ${cfg.logLevel}";
|
||||
ExecStart = "${lib.getExe' pkgs.s6 "s6-notify-socket-from-fd"} ${pkgs.seatd.bin}/bin/seatd -n 1 -u ${cfg.user} -g ${cfg.group} -l ${cfg.logLevel}";
|
||||
RestartSec = 1;
|
||||
Restart = "always";
|
||||
};
|
||||
|
||||
@@ -45,7 +45,9 @@ let
|
||||
pruned;
|
||||
configFile = format.generate "config.yaml" finalSettings;
|
||||
|
||||
extraConfigFiles = lib.imap0 (i: _: "%d/config-${toString i}") cfg.extraConfigFiles;
|
||||
extraConfigFiles = lib.imap0 (
|
||||
i: _: "\${CREDENTIALS_DIRECTORY}/config-${toString i}"
|
||||
) cfg.extraConfigFiles;
|
||||
runtimeConfig = "/run/matrix-authentication-service/config.yaml";
|
||||
in
|
||||
{
|
||||
|
||||
@@ -22,17 +22,23 @@ in
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
environment = {
|
||||
# localectl looks into 00-keyboard.conf
|
||||
etc."X11/xorg.conf.d/00-keyboard.conf".text = ''
|
||||
Section "InputClass"
|
||||
Identifier "Keyboard catchall"
|
||||
MatchIsKeyboard "on"
|
||||
Option "XkbModel" "${xcfg.xkb.model}"
|
||||
Option "XkbLayout" "${xcfg.xkb.layout}"
|
||||
Option "XkbOptions" "${xcfg.xkb.options}"
|
||||
Option "XkbVariant" "${xcfg.xkb.variant}"
|
||||
EndSection
|
||||
'';
|
||||
# systemd-localed looks into 00-keyboard.conf
|
||||
# systemd-localed does not like if Option values are ""
|
||||
etc."X11/xorg.conf.d/00-keyboard.conf".text =
|
||||
let
|
||||
optionLine =
|
||||
name: value: lib.optionalString (value != null && value != "") ''Option "${name}" "${value}"'';
|
||||
in
|
||||
''
|
||||
Section "InputClass"
|
||||
Identifier "Keyboard catchall"
|
||||
MatchIsKeyboard "on"
|
||||
${optionLine "XkbModel" xcfg.xkb.model}
|
||||
${optionLine "XkbLayout" xcfg.xkb.layout}
|
||||
${optionLine "XkbOptions" xcfg.xkb.options}
|
||||
${optionLine "XkbVariant" xcfg.xkb.variant}
|
||||
EndSection
|
||||
'';
|
||||
systemPackages = with pkgs; [
|
||||
nixos-icons # needed for gnome and pantheon about dialog, nixos-manual and maybe more
|
||||
xdg-utils
|
||||
|
||||
@@ -6,17 +6,32 @@
|
||||
}:
|
||||
let
|
||||
cfg = config.services.vnstat;
|
||||
settingsFormat = pkgs.formats.keyValue { };
|
||||
in
|
||||
{
|
||||
options.services.vnstat = {
|
||||
enable = lib.mkEnableOption "update of network usage statistics via vnstatd";
|
||||
package = lib.mkPackageOption pkgs "vnstat" { };
|
||||
settings = lib.mkOption {
|
||||
type = lib.types.submodule { freeformType = settingsFormat.type; };
|
||||
default = { };
|
||||
description = ''
|
||||
Configuration for vnstat. Refer to
|
||||
[https://humdi.net/vnstat/man/vnstat.conf.html]
|
||||
or {manpage}`vnstat.conf(5)` for more information.
|
||||
'';
|
||||
example = {
|
||||
AlwaysAddNewInterfaces = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
environment.systemPackages = [ cfg.package ];
|
||||
|
||||
environment.etc."vnstat.conf".source = settingsFormat.generate "vnstat.conf" cfg.settings;
|
||||
|
||||
users = {
|
||||
groups.vnstatd = { };
|
||||
|
||||
@@ -59,4 +74,8 @@ in
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
meta = {
|
||||
maintainers = with lib.maintainers; [ hmenke ];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -44,7 +44,7 @@ in
|
||||
settings = mkOption {
|
||||
description = ''
|
||||
Headplane configuration options. Generates a YAML config file.
|
||||
See: https://github.com/tale/headplane/blob/main/config.example.yaml
|
||||
See <https://github.com/tale/headplane/blob/main/config.example.yaml>.
|
||||
'';
|
||||
type = types.submodule {
|
||||
options = {
|
||||
@@ -129,6 +129,16 @@ in
|
||||
headscale = mkOption {
|
||||
type = types.submodule {
|
||||
options = {
|
||||
api_key_path = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
description = ''
|
||||
Path to a file containing a Headscale API key.
|
||||
This is required for OIDC authentication aswell for the Headplane agent.
|
||||
'';
|
||||
example = lib.literalExpression "config.sops.secrets.headplane_pre_authkey.path";
|
||||
};
|
||||
|
||||
url = mkOption {
|
||||
type = types.str;
|
||||
default = "http://127.0.0.1:${toString config.services.headscale.port}";
|
||||
@@ -211,15 +221,6 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
pre_authkey_path = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
description = ''
|
||||
Path to a file containing a Headscale pre-auth key for the agent.
|
||||
'';
|
||||
example = lib.literalExpression "config.sops.secrets.headplane_pre_authkey.path";
|
||||
};
|
||||
|
||||
executable_path = mkOption {
|
||||
type = types.path;
|
||||
readOnly = true;
|
||||
@@ -237,20 +238,14 @@ in
|
||||
};
|
||||
|
||||
cache_ttl = mkOption {
|
||||
type = types.nullOr types.int;
|
||||
default = null;
|
||||
type = types.ints.positive;
|
||||
default = 180000;
|
||||
description = ''
|
||||
Deprecated cache TTL for the agent. This option is accepted
|
||||
by Headplane 0.6.2 but has no effect.
|
||||
How long to cache agent information (in milliseconds).
|
||||
If you want data to update faster, reduce the TTL, but this will increase the frequency of requests to Headscale.
|
||||
'';
|
||||
};
|
||||
|
||||
cache_path = mkOption {
|
||||
type = types.path;
|
||||
default = "/var/lib/headplane/agent_cache.json";
|
||||
description = "The path to store the agent's cache.";
|
||||
};
|
||||
|
||||
work_dir = mkOption {
|
||||
type = types.path;
|
||||
default = "/var/lib/headplane/agent";
|
||||
@@ -325,16 +320,6 @@ in
|
||||
example = lib.literalExpression "config.sops.secrets.oidc_client_secret.path";
|
||||
};
|
||||
|
||||
headscale_api_key_path = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
description = ''
|
||||
Path to a file containing the Headscale API key.
|
||||
Required for OIDC authentication.
|
||||
'';
|
||||
example = lib.literalExpression "config.sops.secrets.headscale_api_key.path";
|
||||
};
|
||||
|
||||
disable_api_key_login = mkOption {
|
||||
type = types.bool;
|
||||
default = false;
|
||||
@@ -366,25 +351,6 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
redirect_uri = mkOption {
|
||||
type = types.nullOr types.str;
|
||||
default = null;
|
||||
description = ''
|
||||
Deprecated OIDC redirect URI. Use services.headplane.settings.server.base_url
|
||||
instead; Headplane derives the callback URL from it.
|
||||
'';
|
||||
example = "https://headplane.example.com/admin/oidc/callback";
|
||||
};
|
||||
|
||||
strict_validation = mkOption {
|
||||
type = types.nullOr types.bool;
|
||||
default = null;
|
||||
description = ''
|
||||
Deprecated OIDC validation setting. This option is accepted
|
||||
by Headplane 0.6.2 but has no effect.
|
||||
'';
|
||||
};
|
||||
|
||||
profile_picture_source = mkOption {
|
||||
type = types.enum [
|
||||
"oidc"
|
||||
@@ -429,16 +395,6 @@ in
|
||||
description = "Custom userinfo endpoint URL.";
|
||||
example = "https://provider.example.com/userinfo";
|
||||
};
|
||||
|
||||
user_storage_file = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
description = ''
|
||||
Deprecated path to the pre-0.6.2 JSON user database.
|
||||
Headplane uses this once to migrate users into its internal database.
|
||||
'';
|
||||
example = "/var/lib/headplane/users.json";
|
||||
};
|
||||
};
|
||||
}
|
||||
);
|
||||
@@ -452,33 +408,6 @@ in
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
warnings =
|
||||
lib.optionals (cfg.settings.oidc != null && cfg.settings.oidc.redirect_uri != null) [
|
||||
''
|
||||
services.headplane.settings.oidc.redirect_uri is deprecated by Headplane 0.6.2.
|
||||
Use services.headplane.settings.server.base_url instead; Headplane derives
|
||||
the OIDC callback URL from it.
|
||||
''
|
||||
]
|
||||
++ lib.optionals (cfg.settings.oidc != null && cfg.settings.oidc.strict_validation != null) [
|
||||
''
|
||||
services.headplane.settings.oidc.strict_validation is deprecated and has no effect
|
||||
in Headplane 0.6.2.
|
||||
''
|
||||
]
|
||||
++ lib.optionals (cfg.settings.oidc != null && cfg.settings.oidc.user_storage_file != null) [
|
||||
''
|
||||
services.headplane.settings.oidc.user_storage_file is deprecated. Headplane 0.6.2
|
||||
uses it only to migrate the pre-0.6.2 JSON user database into the internal database.
|
||||
''
|
||||
]
|
||||
++ lib.optionals (agentSettings != null && agentSettings.cache_ttl != null) [
|
||||
''
|
||||
services.headplane.settings.integration.agent.cache_ttl is deprecated and has no
|
||||
effect in Headplane 0.6.2.
|
||||
''
|
||||
];
|
||||
|
||||
assertions = [
|
||||
{
|
||||
assertion = config.services.headscale.enable;
|
||||
@@ -502,26 +431,25 @@ in
|
||||
'';
|
||||
}
|
||||
{
|
||||
assertion = cfg.settings.oidc == null || cfg.settings.oidc.headscale_api_key_path != null;
|
||||
assertion = cfg.settings.oidc == null || cfg.settings.headscale.api_key_path != null;
|
||||
message = ''
|
||||
services.headplane.settings.oidc.headscale_api_key_path must be set
|
||||
when services.headplane.settings.oidc is non-null. Headplane's OIDC
|
||||
flow requires a Headscale API key to mint sessions.
|
||||
services.headplane.settings.headscale.api_key_path must be set
|
||||
when services.headplane.settings.oidc is non-null.
|
||||
Headplane's OIDC flow requires a Headscale API key to mint sessions.
|
||||
'';
|
||||
}
|
||||
{
|
||||
assertion =
|
||||
agentSettings == null || !agentSettings.enabled || agentSettings.pre_authkey_path != null;
|
||||
agentSettings == null || !agentSettings.enabled || cfg.settings.headscale.api_key_path != null;
|
||||
message = ''
|
||||
services.headplane.settings.integration.agent.pre_authkey_path must be set
|
||||
when the agent is enabled.
|
||||
services.headplane.settings.headscale.api_key_path must be set when the agent is enabled.
|
||||
'';
|
||||
}
|
||||
];
|
||||
|
||||
environment = {
|
||||
systemPackages = [ cfg.package ];
|
||||
etc."headplane/config.yaml".source = "${settingsFile}";
|
||||
etc."headplane/config.yaml".source = settingsFile;
|
||||
};
|
||||
|
||||
systemd.services.headplane = {
|
||||
@@ -534,6 +462,7 @@ in
|
||||
config.systemd.services.headscale.name
|
||||
];
|
||||
requires = [ config.systemd.services.headscale.name ];
|
||||
restartTriggers = [ settingsFile ];
|
||||
|
||||
environment = {
|
||||
HEADPLANE_DEBUG_LOG = toString cfg.debug;
|
||||
|
||||
@@ -93,8 +93,8 @@ in
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
|
||||
warnings = mkIf (!config.networking.useNetworkd) [
|
||||
"services.networkd-dispatcher will not execute any scripts unless networking.useNetworkd is enabled."
|
||||
warnings = mkIf (!config.systemd.network.enable) [
|
||||
"services.networkd-dispatcher will not execute any scripts unless networkd is enabled, either via `systemd.network.enable` or via `networking.useNetworkd`."
|
||||
];
|
||||
|
||||
systemd = {
|
||||
|
||||
@@ -232,6 +232,10 @@ in
|
||||
"openssh"
|
||||
"banner"
|
||||
] "Use services.openssh.settings.Banner instead.")
|
||||
(lib.mkRenamedOptionModule
|
||||
[ "services" "openssh" "moduliFile" ]
|
||||
[ "services" "openssh" "settings" "ModuliFile" ]
|
||||
)
|
||||
];
|
||||
|
||||
###### interface
|
||||
@@ -729,6 +733,14 @@ in
|
||||
'';
|
||||
example = "/etc/ssh/banner";
|
||||
};
|
||||
ModuliFile = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
default = "${config.services.openssh.package}/etc/ssh/moduli";
|
||||
defaultText = lib.literalExpression ''"''${config.services.openssh.package}/etc/ssh/moduli"'';
|
||||
description = ''
|
||||
Specifies the {manpage}`moduli(5)` file to use for Diffie-Hellman key exchange.
|
||||
'';
|
||||
};
|
||||
};
|
||||
}
|
||||
);
|
||||
@@ -740,16 +752,6 @@ in
|
||||
description = "Verbatim contents of {file}`sshd_config`.";
|
||||
};
|
||||
|
||||
moduliFile = lib.mkOption {
|
||||
example = "/etc/my-local-ssh-moduli;";
|
||||
type = lib.types.path;
|
||||
description = ''
|
||||
Path to `moduli` file to install in
|
||||
`/etc/ssh/moduli`. If this option is unset, then
|
||||
the `moduli` file shipped with OpenSSH will be used.
|
||||
'';
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
users.users = lib.mkOption {
|
||||
@@ -770,14 +772,12 @@ in
|
||||
};
|
||||
users.groups.sshd = { };
|
||||
|
||||
services.openssh.moduliFile = lib.mkDefault "${cfg.package}/etc/ssh/moduli";
|
||||
services.openssh.sftpServerExecutable = lib.mkDefault "${cfg.package}/libexec/sftp-server";
|
||||
|
||||
environment.etc =
|
||||
authKeysFiles
|
||||
// authPrincipalsFiles
|
||||
// {
|
||||
"ssh/moduli".source = cfg.moduliFile;
|
||||
"ssh/sshd_config".source = sshconf;
|
||||
};
|
||||
|
||||
|
||||
@@ -268,15 +268,6 @@ let
|
||||
};
|
||||
};
|
||||
|
||||
writeOidcJwksConfigFile =
|
||||
oidcIssuerPrivateKeyFile:
|
||||
pkgs.writeText "oidc-jwks.yaml" ''
|
||||
identity_providers:
|
||||
oidc:
|
||||
jwks:
|
||||
- key: {{ secret "${oidcIssuerPrivateKeyFile}" | mindent 10 "|" | msquote }}
|
||||
'';
|
||||
|
||||
# Remove an attribute in a nested set
|
||||
# https://discourse.nixos.org/t/modify-an-attrset-in-nix/29919/5
|
||||
removeAttrByPath =
|
||||
@@ -362,7 +353,12 @@ in
|
||||
execCommand = "${instance.package}/bin/authelia";
|
||||
configFile = format.generate "config.yml" cleanedSettings;
|
||||
oidcJwksConfigFile = lib.optional (instance.secrets.oidcIssuerPrivateKeyFile != null) (
|
||||
writeOidcJwksConfigFile instance.secrets.oidcIssuerPrivateKeyFile
|
||||
pkgs.writeText "oidc-jwks.yaml" ''
|
||||
identity_providers:
|
||||
oidc:
|
||||
jwks:
|
||||
- key: {{ mustEnv "CREDENTIALS_DIRECTORY" | printf "%s/oidcIssuerPrivateKeyFile" | secret | mindent 10 "|" | msquote }}
|
||||
''
|
||||
);
|
||||
configArg = "--config ${
|
||||
builtins.concatStringsSep "," (
|
||||
@@ -373,21 +369,25 @@ in
|
||||
]
|
||||
)
|
||||
}";
|
||||
# Mapping between the Authelia env variables and the secret keys defined in the module
|
||||
envSecretsMap = {
|
||||
AUTHELIA_IDENTITY_VALIDATION_RESET_PASSWORD_JWT_SECRET_FILE = "jwtSecretFile";
|
||||
AUTHELIA_STORAGE_ENCRYPTION_KEY_FILE = "storageEncryptionKeyFile";
|
||||
AUTHELIA_SESSION_SECRET_FILE = "sessionSecretFile";
|
||||
AUTHELIA_IDENTITY_PROVIDERS_OIDC_HMAC_SECRET_FILE = "oidcHmacSecretFile";
|
||||
};
|
||||
nonNullEnvSecretsMap = lib.filterAttrs (_: v: instance.secrets.${v} != null) envSecretsMap;
|
||||
in
|
||||
{
|
||||
description = "Authelia authentication and authorization server";
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
after = [ "network-online.target" ]; # Checks SMTP notifier creds during startup
|
||||
wants = [ "network-online.target" ];
|
||||
environment =
|
||||
(lib.filterAttrs (_: v: v != null) {
|
||||
X_AUTHELIA_CONFIG_FILTERS = lib.mkIf (oidcJwksConfigFile != [ ]) "template";
|
||||
AUTHELIA_IDENTITY_VALIDATION_RESET_PASSWORD_JWT_SECRET_FILE = instance.secrets.jwtSecretFile;
|
||||
AUTHELIA_STORAGE_ENCRYPTION_KEY_FILE = instance.secrets.storageEncryptionKeyFile;
|
||||
AUTHELIA_SESSION_SECRET_FILE = instance.secrets.sessionSecretFile;
|
||||
AUTHELIA_IDENTITY_PROVIDERS_OIDC_HMAC_SECRET_FILE = instance.secrets.oidcHmacSecretFile;
|
||||
})
|
||||
// instance.environmentVariables;
|
||||
environment = {
|
||||
X_AUTHELIA_CONFIG_FILTERS = lib.mkIf (oidcJwksConfigFile != [ ]) "template";
|
||||
}
|
||||
// lib.mapAttrs (_: v: "%d/${v}") nonNullEnvSecretsMap
|
||||
// instance.environmentVariables;
|
||||
|
||||
preStart = "${execCommand} ${configArg} validate-config";
|
||||
serviceConfig = {
|
||||
@@ -399,6 +399,12 @@ in
|
||||
StateDirectory = autheliaName instance.name;
|
||||
StateDirectoryMode = "0700";
|
||||
|
||||
LoadCredential =
|
||||
lib.optional (
|
||||
instance.secrets.oidcIssuerPrivateKeyFile != null
|
||||
) "oidcIssuerPrivateKeyFile:${instance.secrets.oidcIssuerPrivateKeyFile}"
|
||||
++ lib.mapAttrsToList (_: v: "${v}:${instance.secrets.${v}}") nonNullEnvSecretsMap;
|
||||
|
||||
# Security options:
|
||||
AmbientCapabilities = "";
|
||||
CapabilityBoundingSet = "";
|
||||
|
||||
@@ -86,7 +86,7 @@ in
|
||||
The primary motivation for this is an immutable `/etc`, where we cannot
|
||||
write the files directly to `/etc`.
|
||||
|
||||
However this an also serve other use cases, e.g. when `/etc` is on a `tmpfs`.
|
||||
However this can also serve other use cases, e.g. when `/etc` is on a `tmpfs`.
|
||||
'';
|
||||
};
|
||||
|
||||
|
||||
@@ -149,13 +149,6 @@ in
|
||||
|
||||
protocol.encryption.set = allow_incoming,try_outgoing,enable_retry
|
||||
|
||||
# Limits for file handle resources, this is optimized for
|
||||
# an `ulimit` of 1024 (a common default). You MUST leave
|
||||
# a ceiling of handles reserved for rTorrent's internal needs!
|
||||
network.http.max_open.set = 50
|
||||
network.max_open_files.set = 600
|
||||
network.max_open_sockets.set = 3000
|
||||
|
||||
# Memory resource usage (increase if you have a large number of items loaded,
|
||||
# and/or the available resources to spend)
|
||||
pieces.memory.max.set = 1800M
|
||||
@@ -169,15 +162,14 @@ in
|
||||
execute.nothrow = sh, -c, (cat, "echo >", (session.path), "rtorrent.pid", " ", (system.pid))
|
||||
|
||||
# Other operational settings (check & adapt)
|
||||
encoding.add = utf8
|
||||
system.umask.set = 0027
|
||||
system.cwd.set = (cfg.basedir)
|
||||
network.http.dns_cache_timeout.set = 25
|
||||
schedule2 = monitor_diskspace, 15, 60, ((close_low_diskspace, 1000M))
|
||||
schedule = monitor_diskspace, 15, 60, ((close_low_diskspace, 1000M))
|
||||
|
||||
# Watch directories (add more as you like, but use unique schedule names)
|
||||
#schedule2 = watch_start, 10, 10, ((load.start, (cat, (cfg.watch), "start/*.torrent")))
|
||||
#schedule2 = watch_load, 11, 10, ((load.normal, (cat, (cfg.watch), "load/*.torrent")))
|
||||
#schedule = watch_start, 10, 10, ((load.start, (cat, (cfg.watch), "start/*.torrent")))
|
||||
#schedule = watch_load, 11, 10, ((load.normal, (cat, (cfg.watch), "load/*.torrent")))
|
||||
|
||||
# Logging:
|
||||
# Levels = critical error warn notice info debug
|
||||
@@ -218,6 +210,10 @@ in
|
||||
RuntimeDirectory = "rtorrent";
|
||||
RuntimeDirectoryMode = 750;
|
||||
|
||||
# rtorrent derives socket limits from this value since 0.16.15; see table in
|
||||
# https://github.com/rakshasa/rtorrent/wiki/Socket-Manager-and-Resource-Allocation
|
||||
LimitNOFILE = lib.mkDefault 16384;
|
||||
|
||||
CapabilityBoundingSet = [ "" ];
|
||||
LockPersonality = true;
|
||||
NoNewPrivileges = true;
|
||||
|
||||
@@ -169,11 +169,25 @@ in
|
||||
enable = true;
|
||||
virtualHosts."${cfg.virtualHost.domain}".extraConfig = ''
|
||||
root * ${cfg.package}
|
||||
file_server
|
||||
encode zstd gzip
|
||||
|
||||
@immutable path /resources/*
|
||||
header @immutable Cache-Control "public, max-age=31536000, immutable"
|
||||
|
||||
@html not path /resources/*
|
||||
header @html Cache-Control "no-store"
|
||||
|
||||
header {
|
||||
-ETag
|
||||
-Last-Modified
|
||||
}
|
||||
|
||||
handle_path /assets/config.yml {
|
||||
root * ${configFile}
|
||||
file_server
|
||||
}
|
||||
|
||||
file_server
|
||||
'';
|
||||
};
|
||||
};
|
||||
|
||||
@@ -1617,8 +1617,7 @@ in
|
||||
MemoryDenyWriteExecute =
|
||||
!(
|
||||
(builtins.any (mod: (mod.allowMemoryWriteExecute or false)) cfg.package.modules)
|
||||
|| cfg.lua.enable
|
||||
|| (cfg.package == pkgs.openresty)
|
||||
|| (lib.getName cfg.package == "openresty")
|
||||
);
|
||||
RestrictRealtime = true;
|
||||
RestrictSUIDSGID = true;
|
||||
|
||||
151
nixos/modules/services/web-servers/rustfs.nix
Normal file
151
nixos/modules/services/web-servers/rustfs.nix
Normal file
@@ -0,0 +1,151 @@
|
||||
{
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.services.rustfs;
|
||||
in
|
||||
{
|
||||
meta.maintainers = with lib.maintainers; [
|
||||
marcel
|
||||
];
|
||||
|
||||
options.services.rustfs = {
|
||||
enable = lib.mkEnableOption "RustFS Object Storage Server";
|
||||
|
||||
package = lib.mkPackageOption pkgs "rustfs" { };
|
||||
|
||||
user = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "rustfs";
|
||||
description = "The user RustFS should run as.";
|
||||
};
|
||||
|
||||
group = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
default = "rustfs";
|
||||
description = "The group RustFS should run as.";
|
||||
};
|
||||
|
||||
settings = lib.mkOption {
|
||||
default = { };
|
||||
description = ''
|
||||
Options for RustFS configuration. Refer to
|
||||
<https://docs.rustfs.com/installation/linux/single-node-single-disk.html#_5-configure-environment-variables>
|
||||
for details on supported values.
|
||||
'';
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
RUSTFS_CONSOLE_ENABLE = "true";
|
||||
RUSTFS_VOLUMES = "/mnt/rustfs";
|
||||
}
|
||||
'';
|
||||
type = lib.types.submodule {
|
||||
freeformType = lib.types.attrsOf (
|
||||
lib.types.oneOf [
|
||||
lib.types.str
|
||||
lib.types.int
|
||||
]
|
||||
);
|
||||
options = {
|
||||
RUSTFS_VOLUMES = lib.mkOption {
|
||||
type = lib.types.path;
|
||||
default = "/var/lib/rustfs";
|
||||
description = "The directory where RustFS stores it's data.";
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
environmentFile = lib.mkOption {
|
||||
type = lib.types.str;
|
||||
description = "Path to environment file containing secrets like RUSTFS_ACCESS_KEY or RUSTFS_SECRET_KEY.";
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
assertions = [
|
||||
{
|
||||
assertion = !(cfg.settings ? RUSTFS_ACCESS_KEY);
|
||||
message = "RUSTFS_ACCESS_KEY must not be set in services.rustfs.settings. Use environmentFile instead.";
|
||||
}
|
||||
{
|
||||
assertion = !(cfg.settings ? RUSTFS_SECRET_KEY);
|
||||
message = "RUSTFS_SECRET_KEY must not be set in services.rustfs.settings. Use environmentFile instead.";
|
||||
}
|
||||
];
|
||||
|
||||
systemd = {
|
||||
tmpfiles.settings."10-rustfs".${cfg.settings.RUSTFS_VOLUMES}.d = {
|
||||
inherit (cfg) user group;
|
||||
};
|
||||
|
||||
# https://docs.rustfs.com/installation/linux/single-node-single-disk.html#_6-configure-system-service
|
||||
services.rustfs = {
|
||||
description = "RustFS Object Storage Server";
|
||||
documentation = [ "https://rustfs.com/docs/" ];
|
||||
|
||||
after = [ "network-online.target" ];
|
||||
wants = [ "network-online.target" ];
|
||||
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
environment = cfg.settings;
|
||||
|
||||
preStart = ''
|
||||
if [ -z "$RUSTFS_ACCESS_KEY" ] || [ -z "$RUSTFS_SECRET_KEY" ]; then
|
||||
echo "RustFS uses well-known default values for RUSTFS_ACCESS_KEY and RUSTFS_SECRET_KEY,"
|
||||
echo "please configure them using services.rustfs.environmentFile."
|
||||
exit 1
|
||||
fi
|
||||
'';
|
||||
|
||||
serviceConfig = {
|
||||
Type = "notify";
|
||||
NotifyAccess = "main";
|
||||
User = cfg.user;
|
||||
Group = cfg.group;
|
||||
|
||||
EnvironmentFile = cfg.environmentFile;
|
||||
ExecStart = lib.getExe cfg.package;
|
||||
|
||||
LimitNOFILE = 1048576;
|
||||
LimitNPROC = 32768;
|
||||
TasksMax = "infinity";
|
||||
|
||||
Restart = "always";
|
||||
RestartSec = "10s";
|
||||
|
||||
OOMScoreAdjust = "-1000";
|
||||
SendSIGKILL = false;
|
||||
|
||||
TimeoutStartSec = "30s";
|
||||
TimeoutStopSec = "30s";
|
||||
|
||||
NoNewPrivileges = true;
|
||||
|
||||
ProtectHome = true;
|
||||
PrivateTmp = true;
|
||||
PrivateDevices = true;
|
||||
ProtectClock = true;
|
||||
ProtectKernelTunables = true;
|
||||
ProtectKernelModules = true;
|
||||
ProtectControlGroups = true;
|
||||
RestrictSUIDSGID = true;
|
||||
RestrictRealtime = true;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
users = {
|
||||
users.${cfg.user} = {
|
||||
isSystemUser = true;
|
||||
inherit (cfg) group;
|
||||
};
|
||||
groups.${cfg.group} = { };
|
||||
};
|
||||
};
|
||||
}
|
||||
@@ -68,7 +68,7 @@ let
|
||||
|
||||
configFile = pkgs.writeText "plymouthd.conf" ''
|
||||
[Daemon]
|
||||
ShowDelay=0
|
||||
ShowDelay=${toString cfg.showDelay}
|
||||
DeviceTimeout=8
|
||||
Theme=${cfg.theme}
|
||||
${cfg.extraConfig}
|
||||
@@ -166,6 +166,15 @@ in
|
||||
'';
|
||||
};
|
||||
|
||||
showDelay = mkOption {
|
||||
type = types.numbers.nonnegative;
|
||||
default = 0;
|
||||
example = 0.5;
|
||||
description = ''
|
||||
Time (in seconds) to delay the splash screen.
|
||||
'';
|
||||
};
|
||||
|
||||
extraConfig = mkOption {
|
||||
type = types.lines;
|
||||
default = "";
|
||||
|
||||
@@ -396,7 +396,7 @@ in
|
||||
abi <abi/4.0>,
|
||||
include <tunables/global>
|
||||
|
||||
include "/var/lib/incus/security/apparmor/profiles"
|
||||
include if exists "/var/lib/incus/security/apparmor/profiles"
|
||||
'';
|
||||
};
|
||||
includes."abstractions/base" = ''
|
||||
|
||||
@@ -1512,6 +1512,7 @@ in
|
||||
rtkit = runTest ./rtkit.nix;
|
||||
rtorrent = runTest ./rtorrent.nix;
|
||||
rush = runTest ./rush.nix;
|
||||
rustfs = runTest ./rustfs.nix;
|
||||
rustical = runTest ./web-apps/rustical.nix;
|
||||
rustls-libssl = runTest ./rustls-libssl.nix;
|
||||
rxe = runTest ./rxe.nix;
|
||||
@@ -1539,7 +1540,7 @@ in
|
||||
sftpgo = runTest ./sftpgo.nix;
|
||||
sfxr-qt = runTest ./sfxr-qt.nix;
|
||||
sgt-puzzles = runTest ./sgt-puzzles.nix;
|
||||
shadow = runTest ./shadow.nix;
|
||||
shadow = import ./shadow { inherit runTest; };
|
||||
shadowsocks = handleTest ./shadowsocks { };
|
||||
shadps4 = runTest ./shadps4.nix;
|
||||
sharkey = runTest ./web-apps/sharkey.nix;
|
||||
@@ -1684,6 +1685,7 @@ in
|
||||
systemd-journal = runTest ./systemd-journal.nix;
|
||||
systemd-journal-gateway = runTest ./systemd-journal-gateway.nix;
|
||||
systemd-journal-upload = runTest ./systemd-journal-upload.nix;
|
||||
systemd-localed = runTest ./systemd-localed.nix;
|
||||
systemd-lock-handler = runTestOn [ "aarch64-linux" "x86_64-linux" ] ./systemd-lock-handler.nix;
|
||||
systemd-machinectl = runTest ./systemd-machinectl.nix;
|
||||
systemd-misc = runTest ./systemd-misc.nix;
|
||||
@@ -1842,6 +1844,7 @@ in
|
||||
};
|
||||
virtualbox = handleTestOn [ "x86_64-linux" ] ./virtualbox.nix { };
|
||||
vm-variant = handleTest ./vm-variant.nix { };
|
||||
vnstat = runTest ./vnstat.nix;
|
||||
vscode-remote-ssh = handleTestOn [ "x86_64-linux" ] ./vscode-remote-ssh.nix { };
|
||||
vscodium = import ./vscodium.nix { inherit runTest; };
|
||||
vsftpd = runTest ./vsftpd.nix;
|
||||
|
||||
@@ -28,12 +28,10 @@
|
||||
# This is purely for testing purposes!
|
||||
environment.etc."authelia/storageEncryptionKeyFile" = {
|
||||
mode = "0400";
|
||||
user = "authelia-testing";
|
||||
text = "you_must_generate_a_random_string_of_more_than_twenty_chars_and_configure_this";
|
||||
};
|
||||
environment.etc."authelia/jwtSecretFile" = {
|
||||
mode = "0400";
|
||||
user = "authelia-testing";
|
||||
text = "a_very_important_secret";
|
||||
};
|
||||
environment.etc."authelia/users_database.yml" = {
|
||||
|
||||
@@ -38,6 +38,7 @@ let
|
||||
enable = true;
|
||||
settings = {
|
||||
hostname = certs.domain;
|
||||
metrics-enabled = true;
|
||||
};
|
||||
inherit initialAdminPassword;
|
||||
sslCertificate = "${certs.${certs.domain}.cert}";
|
||||
@@ -50,7 +51,6 @@ let
|
||||
};
|
||||
plugins = with config.services.keycloak.package.plugins; [
|
||||
keycloak-discord
|
||||
keycloak-metrics-spi
|
||||
];
|
||||
};
|
||||
environment.systemPackages = with pkgs; [
|
||||
@@ -131,13 +131,7 @@ let
|
||||
| jq -r '"Authorization: bearer " + .access_token' >admin_auth_header
|
||||
""")
|
||||
|
||||
# Register the metrics SPI
|
||||
keycloak.succeed(
|
||||
"""${pkgs.jre}/bin/keytool -import -alias snakeoil -file ${certs.ca.cert} -storepass aaaaaa -keystore cacert.jks -noprompt""",
|
||||
"""KC_OPTS='-Djavax.net.ssl.trustStore=cacert.jks -Djavax.net.ssl.trustStorePassword=aaaaaa' kcadm.sh config credentials --server '${frontendUrl}' --realm master --user admin --password "$(<${adminPasswordFile})" """,
|
||||
"""KC_OPTS='-Djavax.net.ssl.trustStore=cacert.jks -Djavax.net.ssl.trustStorePassword=aaaaaa' kcadm.sh update events/config -s 'eventsEnabled=true' -s 'adminEventsEnabled=true' -s 'eventsListeners+=metrics-listener'""",
|
||||
"""curl -sSf '${frontendUrl}/realms/master/metrics' | grep '^keycloak_admin_event_UPDATE'"""
|
||||
)
|
||||
keycloak.succeed("curl -sSf https://${certs.domain}:9000/metrics | grep '^jvm_'")
|
||||
|
||||
# Publish the realm, including a test OIDC client and user
|
||||
keycloak.succeed(
|
||||
|
||||
@@ -189,11 +189,26 @@ in
|
||||
{ nodes, ... }:
|
||||
let
|
||||
bundle = mkBundle masDomain;
|
||||
|
||||
extraConfig = pkgs.writeText "masExtraConfig.yml" (
|
||||
builtins.toJSON {
|
||||
secrets = {
|
||||
encryption_file = "/var/lib/matrix-authentication-service/encryption";
|
||||
keys = [
|
||||
{
|
||||
kid = "rsa-4096";
|
||||
key_file = "/var/lib/matrix-authentication-service/key_rsa_4096";
|
||||
}
|
||||
];
|
||||
};
|
||||
}
|
||||
);
|
||||
in
|
||||
{
|
||||
services.matrix-authentication-service = {
|
||||
enable = true;
|
||||
createDatabase = true;
|
||||
extraConfigFiles = [ (toString extraConfig) ];
|
||||
settings = {
|
||||
http = {
|
||||
public_base = "https://${masDomain}:8080/";
|
||||
@@ -223,15 +238,7 @@ in
|
||||
secret_file = "/var/lib/matrix-authentication-service/matrix_secret";
|
||||
};
|
||||
database.uri = "postgresql:///matrix-authentication-service?host=/run/postgresql&user=matrix-authentication-service";
|
||||
secrets = {
|
||||
encryption_file = "/var/lib/matrix-authentication-service/encryption";
|
||||
keys = [
|
||||
{
|
||||
kid = "rsa-4096";
|
||||
key_file = "/var/lib/matrix-authentication-service/key_rsa_4096";
|
||||
}
|
||||
];
|
||||
};
|
||||
# secrets is defined in extraConfigFiles
|
||||
policy.data.client_registration.allow_insecure_uris = true;
|
||||
upstream_oauth2.providers = [
|
||||
{
|
||||
|
||||
69
nixos/tests/rustfs.nix
Normal file
69
nixos/tests/rustfs.nix
Normal file
@@ -0,0 +1,69 @@
|
||||
{ pkgs, ... }:
|
||||
|
||||
let
|
||||
accessKey = "BKIKJAA5BMMU2RHO6IBB";
|
||||
secretKey = "V7f1CwQqAcwo80UEIJEjc5gVQUSSx5ohQ9GSrr12";
|
||||
|
||||
rustfsPythonScript =
|
||||
pkgs.writers.writePython3 "rustfs-test" { libraries = with pkgs.python3Packages; [ minio ]; }
|
||||
/* python */ ''
|
||||
import io
|
||||
import os
|
||||
from minio import Minio
|
||||
|
||||
minioClient = Minio(
|
||||
'localhost:9000',
|
||||
access_key='${accessKey}',
|
||||
secret_key='${secretKey}',
|
||||
secure=False
|
||||
)
|
||||
sio = io.BytesIO()
|
||||
sio.write(b'Test from Python')
|
||||
sio.seek(0, os.SEEK_END)
|
||||
sio_len = sio.tell()
|
||||
sio.seek(0)
|
||||
minioClient.put_object(
|
||||
'test-bucket',
|
||||
'test.txt',
|
||||
sio,
|
||||
sio_len,
|
||||
content_type='text/plain'
|
||||
)
|
||||
'';
|
||||
|
||||
in
|
||||
{
|
||||
name = "rustfs";
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [
|
||||
marcel
|
||||
];
|
||||
};
|
||||
|
||||
containers.machine =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
services.rustfs = {
|
||||
enable = true;
|
||||
environmentFile = builtins.toString (
|
||||
pkgs.writeText "rustfs-secrets.env" ''
|
||||
RUSTFS_ACCESS_KEY=${accessKey}
|
||||
RUSTFS_SECRET_KEY=${secretKey}
|
||||
''
|
||||
);
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [ minio-client ];
|
||||
};
|
||||
|
||||
testScript = /* python */ ''
|
||||
machine.wait_for_unit("rustfs.service")
|
||||
|
||||
machine.succeed("mc alias set rustfs http://localhost:9000 ${accessKey} ${secretKey} --api s3v4")
|
||||
machine.succeed("mc mb rustfs/test-bucket")
|
||||
machine.succeed("${rustfsPythonScript}")
|
||||
assert "test-bucket" in machine.succeed("mc ls rustfs")
|
||||
assert "Test from Python" in machine.succeed("mc cat rustfs/test-bucket/test.txt")
|
||||
machine.succeed("mc rb --force rustfs/test-bucket")
|
||||
'';
|
||||
}
|
||||
5
nixos/tests/shadow/default.nix
Normal file
5
nixos/tests/shadow/default.nix
Normal file
@@ -0,0 +1,5 @@
|
||||
{ runTest }:
|
||||
{
|
||||
login = runTest ./login.nix;
|
||||
system = runTest ./system.nix;
|
||||
}
|
||||
147
nixos/tests/shadow/system.nix
Normal file
147
nixos/tests/shadow/system.nix
Normal file
@@ -0,0 +1,147 @@
|
||||
{ pkgs, ... }:
|
||||
let
|
||||
# Create a Python environment for the controller with all necessary test framework dependencies
|
||||
controllerPython = pkgs.python3.withPackages (ps: [
|
||||
ps.flaky
|
||||
ps.jc
|
||||
ps.pytest
|
||||
ps.pytest-mh
|
||||
ps.pytest-ticket
|
||||
]);
|
||||
|
||||
shadowHostName = "shadowhost";
|
||||
in
|
||||
{
|
||||
name = "shadow-system-tests";
|
||||
|
||||
meta.maintainers = with pkgs.lib.maintainers; [ joaosreis ];
|
||||
|
||||
nodes = {
|
||||
# The target host: runs sshd, has shadow and other test dependencies installed, mutable users, and some specific settings to match the expectations of the test suite
|
||||
shadowhost =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
networking.hostName = shadowHostName;
|
||||
services.openssh = {
|
||||
enable = true;
|
||||
settings = {
|
||||
PermitRootLogin = "yes";
|
||||
PasswordAuthentication = false;
|
||||
};
|
||||
};
|
||||
|
||||
users.mutableUsers = true;
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
shadow
|
||||
expect
|
||||
];
|
||||
|
||||
users.defaultUserShell = "/bin/sh";
|
||||
|
||||
security.loginDefs.settings = {
|
||||
PASS_MAX_DAYS = 99999;
|
||||
PASS_MIN_DAYS = 0;
|
||||
PASS_WARN_AGE = 7;
|
||||
USERGROUPS_ENAB = "yes";
|
||||
CREATE_HOME = "yes";
|
||||
UID_MIN = 1001;
|
||||
GID_MIN = 1001;
|
||||
};
|
||||
|
||||
security.pam.services = {
|
||||
newusers.text = ''
|
||||
auth required pam_permit.so
|
||||
account required pam_permit.so
|
||||
password required pam_permit.so
|
||||
session required pam_permit.so
|
||||
'';
|
||||
};
|
||||
|
||||
services.envfs.enable = true;
|
||||
};
|
||||
|
||||
# The controller: runs pytest-mh against the shadow host
|
||||
controller =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
environment.systemPackages = [
|
||||
controllerPython
|
||||
pkgs.openssh
|
||||
];
|
||||
};
|
||||
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
import textwrap
|
||||
|
||||
start_all()
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# 1. Generate an SSH keypair on the controller and authorise it
|
||||
# on the shadow host
|
||||
# ------------------------------------------------------------------
|
||||
controller.succeed("mkdir -p /root/.ssh && chmod 700 /root/.ssh")
|
||||
controller.succeed(
|
||||
"ssh-keygen -t ed25519 -N \'\' -f /root/.ssh/id_ed25519 2>&1"
|
||||
)
|
||||
pub_key = controller.succeed("cat /root/.ssh/id_ed25519.pub").strip()
|
||||
|
||||
# Inject the generated public key into the shadow host at runtime
|
||||
shadowhost.succeed("mkdir -p /root/.ssh && chmod 700 /root/.ssh")
|
||||
shadowhost.succeed(
|
||||
f"echo '{pub_key}' >> /root/.ssh/authorized_keys && "
|
||||
"chmod 600 /root/.ssh/authorized_keys"
|
||||
)
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# 2. Make sure the shadow host has a writable /etc/login.defs,
|
||||
# since the test framework expects to be able to write to it.
|
||||
# ------------------------------------------------------------------
|
||||
shadowhost.succeed(
|
||||
"cp --remove-destination $(readlink -f /etc/login.defs) /etc/login.defs && "
|
||||
"chmod 644 /etc/login.defs"
|
||||
)
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# 3. Copy the upstream test suite onto the controller
|
||||
# ------------------------------------------------------------------
|
||||
controller.succeed(
|
||||
"cp -r ${pkgs.shadow.passthru.testFramework} /root/shadow-tests && "
|
||||
"chmod -R u+w /root/shadow-tests"
|
||||
)
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# 4. Write the mhc.yaml topology config
|
||||
# This tells pytest-mh where the shadow host is and which role
|
||||
# it plays. The hostname must match the NixOS node name.
|
||||
# ------------------------------------------------------------------
|
||||
controller.succeed(textwrap.dedent("""
|
||||
cat > /root/shadow-tests/mhc.yaml << 'EOF'
|
||||
domains:
|
||||
- id: shadow
|
||||
hosts:
|
||||
- hostname: ${shadowHostName}
|
||||
role: shadow
|
||||
ssh:
|
||||
user: root
|
||||
private_key: /root/.ssh/id_ed25519
|
||||
EOF
|
||||
"""))
|
||||
|
||||
|
||||
# ------------------------------------------------------------------
|
||||
# 5. Run the upstream pytest-mh test suite from the controller
|
||||
# ------------------------------------------------------------------
|
||||
shadowhost.wait_for_unit("sshd.service")
|
||||
# gpasswd tests are disabled, since they rely on specific behavior of the gpasswd command that is not applicable to NixOS
|
||||
controller.succeed(
|
||||
"cd /root/shadow-tests && "
|
||||
"${controllerPython}/bin/pytest "
|
||||
"--mh-config=mhc.yaml "
|
||||
"--deselect=tests/test_gpasswd.py "
|
||||
"-v tests/"
|
||||
)
|
||||
'';
|
||||
}
|
||||
23
nixos/tests/systemd-localed.nix
Normal file
23
nixos/tests/systemd-localed.nix
Normal file
@@ -0,0 +1,23 @@
|
||||
{ lib, ... }:
|
||||
{
|
||||
name = "systemd-localed";
|
||||
meta.maintainers = [ lib.maintainers.haansn08 ];
|
||||
|
||||
nodes.machine = { ... }: {
|
||||
# we don't use services.xserver.enable because some window managers like
|
||||
# niri rely on systemd-localed for the keyboard layout:
|
||||
# https://niri-wm.github.io/niri/Configuration%3A-Input.html#layout
|
||||
services.graphical-desktop.enable = true;
|
||||
|
||||
services.xserver.xkb.layout = "jp";
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
machine.start()
|
||||
machine.wait_for_unit("default.target")
|
||||
machine.wait_for_unit("dbus.socket")
|
||||
|
||||
status, stdout = machine.execute("localectl")
|
||||
t.assertIn("X11 Layout: jp", stdout)
|
||||
'';
|
||||
}
|
||||
26
nixos/tests/vnstat.nix
Normal file
26
nixos/tests/vnstat.nix
Normal file
@@ -0,0 +1,26 @@
|
||||
{ lib, ... }:
|
||||
{
|
||||
name = "vnstat";
|
||||
meta.maintainers = with lib.maintainers; [ hmenke ];
|
||||
|
||||
containers.machine = {
|
||||
services.vnstat = {
|
||||
enable = true;
|
||||
settings = {
|
||||
AlwaysAddNewInterfaces = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
start_all()
|
||||
|
||||
machine.wait_for_unit("vnstat.service")
|
||||
|
||||
machine.succeed("vnstat --iflist")
|
||||
machine.fail("vnstat -i dummy0")
|
||||
machine.succeed("ip link add dummy0 type dummy")
|
||||
machine.succeed("ip link set dummy0 up")
|
||||
machine.wait_until_succeeds("vnstat -i dummy0", timeout=10)
|
||||
'';
|
||||
}
|
||||
@@ -26,9 +26,9 @@ let
|
||||
url = "https://edgedl.me.gvt1.com/android/studio/ide-zips/2026.1.2.9/android-studio-quail2-rc2-linux.tar.gz";
|
||||
};
|
||||
latestVersion = {
|
||||
version = "2026.1.3.3"; # "Android Studio Quail 3 | 2026.1.3 Canary 3"
|
||||
sha256Hash = "sha256-C8rbR+0iGNzsr7HtiNiFw++ZG9/t00/c1Ozr9ngssPs=";
|
||||
url = "https://edgedl.me.gvt1.com/android/studio/ide-zips/2026.1.3.3/android-studio-quail3-canary3-linux.tar.gz";
|
||||
version = "2026.1.4.1"; # "Android Studio Quail 4 | 2026.1.4 Canary 1"
|
||||
sha256Hash = "sha256-ynHUoMDsTNgKKRAU948k37ktAIlIm9A+md8KyVBTjl4=";
|
||||
url = "https://edgedl.me.gvt1.com/android/studio/ide-zips/2026.1.4.1/android-studio-quail4-canary1-linux.tar.gz";
|
||||
};
|
||||
in
|
||||
{
|
||||
|
||||
@@ -47,7 +47,6 @@ melpaBuild (finalAttrs: {
|
||||
platforms = [
|
||||
"aarch64-darwin"
|
||||
"aarch64-linux"
|
||||
"x86_64-darwin"
|
||||
"x86_64-linux"
|
||||
"x86_64-windows"
|
||||
];
|
||||
|
||||
@@ -28,10 +28,6 @@ let
|
||||
url = "https://download.jetbrains.com/cpp/CLion-2026.1.4-aarch64.tar.gz";
|
||||
hash = "sha256-I6IKQng4lNtRlQIq08K5bueqgKI/q1awX4EuRnyAnOk=";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
url = "https://download.jetbrains.com/cpp/CLion-2026.1.4.dmg";
|
||||
hash = "sha256-AJt+K1zv4eyjdzubUeFGwB9mqzvOeb3ffA2k0MajPBs=";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
url = "https://download.jetbrains.com/cpp/CLion-2026.1.4-aarch64.dmg";
|
||||
hash = "sha256-i3stX7dyRgSOJkFTMD9/hkw6e2mGNqn13S7X/vJ66RQ=";
|
||||
|
||||
@@ -19,10 +19,6 @@ let
|
||||
url = "https://download.jetbrains.com/datagrip/datagrip-2026.1.3-aarch64.tar.gz";
|
||||
hash = "sha256-G+tinD/+qM5HVR4u2E0cNXtdVsbwgK8/PdZ3ic6hf4M=";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
url = "https://download.jetbrains.com/datagrip/datagrip-2026.1.3.dmg";
|
||||
hash = "sha256-vW2LEonl0D9S0VxbeJX4jRrwhELGBwlOXwiHslvh06E=";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
url = "https://download.jetbrains.com/datagrip/datagrip-2026.1.3-aarch64.dmg";
|
||||
hash = "sha256-Kyt3fYPXzwTVxPFVKd+atiHWb/i7gjGahz1MJ4iXxy8=";
|
||||
|
||||
@@ -21,10 +21,6 @@ let
|
||||
url = "https://download.jetbrains.com/python/dataspell-2026.1.2-aarch64.tar.gz";
|
||||
hash = "sha256-SSmIPF0pDMolxeXL21UaHMbZdtYbChWVxTKZOsPhH+I=";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
url = "https://download.jetbrains.com/python/dataspell-2026.1.2.dmg";
|
||||
hash = "sha256-2qzwzGMYuy1qEuTprxwNa5gOPgCZq2MadSKN8FT8w8c=";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
url = "https://download.jetbrains.com/python/dataspell-2026.1.2-aarch64.dmg";
|
||||
hash = "sha256-MGWufS0nlswdqhACNQWtlXJwfPiYw8wUx7olIxPS15k=";
|
||||
|
||||
@@ -19,10 +19,6 @@ let
|
||||
url = "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-2026.1.3-aarch64.tar.gz";
|
||||
hash = "sha256-CSe04BBo4jS1cIhu4NfZqaSHMaNue2eFUPa+1gOxuoo=";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
url = "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-2026.1.3.dmg";
|
||||
hash = "sha256-WKwIP19y5EKO98JgEm468ofaRp/JO5z8lqNhtpsH4tY=";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
url = "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-2026.1.3-aarch64.dmg";
|
||||
hash = "sha256-AHY/lY0ARkW0VoSgy0t7LLNXA965PLooWBSWxBKBV5M=";
|
||||
|
||||
@@ -19,10 +19,6 @@ let
|
||||
url = "https://download.jetbrains.com/go/goland-2026.1.4-aarch64.tar.gz";
|
||||
hash = "sha256-7s98kY08aKjdRGQLDkffeVhgj1FWurLmTTYmtb5Qx6c=";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
url = "https://download.jetbrains.com/go/goland-2026.1.4.dmg";
|
||||
hash = "sha256-RbvcLpLVyeL4B1DJ2/9Ub/6Cz6fJGXMPCHsJ705GsAo=";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
url = "https://download.jetbrains.com/go/goland-2026.1.4-aarch64.dmg";
|
||||
hash = "sha256-y7mEke0z0MvQs+kMtrmrq7EeAtJUbgo6sGZrOB0MraM=";
|
||||
|
||||
@@ -22,10 +22,6 @@ let
|
||||
url = "https://download.jetbrains.com/idea/ideaIU-2026.1.4-aarch64.tar.gz";
|
||||
hash = "sha256-MDZFuLrUxcCIc0Zhi4QhgKPeU7Pgs9oJ/FxQH1n3gBM=";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
url = "https://download.jetbrains.com/idea/ideaIU-2026.1.4.dmg";
|
||||
hash = "sha256-8K+LiewiINP4S9eqV0kGWtfy2Ff/zvBwX89iX7mYZ78=";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
url = "https://download.jetbrains.com/idea/ideaIU-2026.1.4-aarch64.dmg";
|
||||
hash = "sha256-XIBK/+Lxaz9dX+Lxl7HXsl+Z3Z7GBzSuDxNssb/4A2s=";
|
||||
|
||||
@@ -19,10 +19,6 @@ let
|
||||
url = "https://download.jetbrains.com/mps/2025.3/MPS-2025.3.tar.gz";
|
||||
hash = "sha256-xAI+UrTheCTWHSdoI4YZvhTlrlc121M+OVFkfzd7a3k=";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
url = "https://download.jetbrains.com/mps/2025.3/MPS-2025.3-macos.dmg";
|
||||
hash = "sha256-whYAjKkF79mrknHflZnvOOy2bLosYUguelZDSuPt3uY=";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
url = "https://download.jetbrains.com/mps/2025.3/MPS-2025.3-macos-aarch64.dmg";
|
||||
hash = "sha256-3HnEHOhRRI9IYjBhc5FO7h5j4jBBDtZTVkmO/S1fBEQ=";
|
||||
|
||||
@@ -19,10 +19,6 @@ let
|
||||
url = "https://download.jetbrains.com/webide/PhpStorm-2026.1.4-aarch64.tar.gz";
|
||||
hash = "sha256-T9q3/nxv/AA6y7CHWtOhUibR7bnKN8OZmfN3NWYTsIQ=";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
url = "https://download.jetbrains.com/webide/PhpStorm-2026.1.4.dmg";
|
||||
hash = "sha256-W7EwYu7S3hs1564tXq8H1Uok/Gwx/8QJO4brUGOfFY4=";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
url = "https://download.jetbrains.com/webide/PhpStorm-2026.1.4-aarch64.dmg";
|
||||
hash = "sha256-XGcfEWHHeLugvkT/WlQDsVRN33F46b1PCNhINQitqSY=";
|
||||
|
||||
@@ -20,10 +20,6 @@ let
|
||||
url = "https://download.jetbrains.com/python/pycharm-2026.1.4-aarch64.tar.gz";
|
||||
hash = "sha256-71FbYpN0seJ5k/yZA7aoXgU4W/N1BhjtKl7W7Hic9UE=";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
url = "https://download.jetbrains.com/python/pycharm-2026.1.4.dmg";
|
||||
hash = "sha256-Q5hTcYoNUzmAxwcsXJNS4medQjFKWc/Sgkybt4PQPfg=";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
url = "https://download.jetbrains.com/python/pycharm-2026.1.4-aarch64.dmg";
|
||||
hash = "sha256-qxSgp8r4S0KXjCCTIoAiEZFCn3uBE/0pWLLA6td0Fq0=";
|
||||
|
||||
@@ -31,10 +31,6 @@ let
|
||||
url = "https://download.jetbrains.com/rider/JetBrains.Rider-2026.1.4-aarch64.tar.gz";
|
||||
hash = "sha256-GXmyBrqxUpwK4djjwllvK+pnfktDrDHpLJKoe4D2xFo=";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
url = "https://download.jetbrains.com/rider/JetBrains.Rider-2026.1.4.dmg";
|
||||
hash = "sha256-GfQ5WpKunJ+JhE1VcArm3UxZ5udCbfnS1Kw3D4gZorA=";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
url = "https://download.jetbrains.com/rider/JetBrains.Rider-2026.1.4-aarch64.dmg";
|
||||
hash = "sha256-cfwT22BN1jzKZzrZHMQqYFJPGuRwta/sqoOJOp+PfBE=";
|
||||
|
||||
@@ -19,10 +19,6 @@ let
|
||||
url = "https://download.jetbrains.com/ruby/RubyMine-2026.1.4-aarch64.tar.gz";
|
||||
hash = "sha256-oSu19pkGVWt31vWBdAffSZsu4QzsUznVbUSwDy98nug=";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
url = "https://download.jetbrains.com/ruby/RubyMine-2026.1.4.dmg";
|
||||
hash = "sha256-BLo2weIJK8gQAcMtAiETM7FMdhw9aoFIGh5Yqjv3k7s=";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
url = "https://download.jetbrains.com/ruby/RubyMine-2026.1.4-aarch64.dmg";
|
||||
hash = "sha256-4wEnwcPRtwp0wxePUMiLow6sMxirwndRMdmJL8LBh9k=";
|
||||
|
||||
@@ -25,10 +25,6 @@ let
|
||||
url = "https://download.jetbrains.com/rustrover/RustRover-2026.1.4-aarch64.tar.gz";
|
||||
hash = "sha256-KpF3jCnLKCEeEXkBdB8ZsPPqP9FOVRTwRV/FQLKyh1Q=";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
url = "https://download.jetbrains.com/rustrover/RustRover-2026.1.4.dmg";
|
||||
hash = "sha256-2BwgAD0xF9IxRJh+gW4vLzBW13rFQSzQPbEwdmQGvLU=";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
url = "https://download.jetbrains.com/rustrover/RustRover-2026.1.4-aarch64.dmg";
|
||||
hash = "sha256-Hly4NBv9mg/RMmxCM6m9w5eS/CQ7ycxp7V2VQZwyGQE=";
|
||||
|
||||
@@ -19,10 +19,6 @@ let
|
||||
url = "https://download.jetbrains.com/webstorm/WebStorm-2026.1.4-aarch64.tar.gz";
|
||||
hash = "sha256-f9KenMq1gtldzpBraSBwOb/186WQwh1ps5Ypj5JoOU0=";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
url = "https://download.jetbrains.com/webstorm/WebStorm-2026.1.4.dmg";
|
||||
hash = "sha256-SGdo6WYMCcCBuZUjvURcMTbJUqhZ4MzFlSLg6Zjr84I=";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
url = "https://download.jetbrains.com/webstorm/WebStorm-2026.1.4-aarch64.dmg";
|
||||
hash = "sha256-ZYen6Ew0GYbBAmuGCDACPBsygxZ6sT787o6gqF9DJzw=";
|
||||
|
||||
@@ -78,7 +78,5 @@ Any comments or other manual changes between these markers will be removed when
|
||||
- on `aarch64-linux`:
|
||||
- from source build
|
||||
- see if build (binary or source) works without expat
|
||||
- on `x86_64-darwin`:
|
||||
- from source build
|
||||
- on `aarch64-darwin`:
|
||||
- from source build
|
||||
|
||||
@@ -3,7 +3,7 @@ import os
|
||||
import dataclasses
|
||||
from pathlib import Path
|
||||
|
||||
SUPPORTED_SYSTEMS = ["x86_64-linux", "aarch64-linux", "x86_64-darwin", "aarch64-darwin"]
|
||||
SUPPORTED_SYSTEMS = ["x86_64-linux", "aarch64-linux", "aarch64-darwin"]
|
||||
|
||||
|
||||
def find_nixpkgs(current_path: Path) -> Path:
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
"urls": {
|
||||
"x86_64-linux": "https://download.jetbrains.com/cpp/CLion-{version}.tar.gz",
|
||||
"aarch64-linux": "https://download.jetbrains.com/cpp/CLion-{version}-aarch64.tar.gz",
|
||||
"x86_64-darwin": "https://download.jetbrains.com/cpp/CLion-{version}.dmg",
|
||||
"aarch64-darwin": "https://download.jetbrains.com/cpp/CLion-{version}-aarch64.dmg"
|
||||
}
|
||||
},
|
||||
@@ -13,7 +12,6 @@
|
||||
"urls": {
|
||||
"x86_64-linux": "https://download.jetbrains.com/datagrip/datagrip-{version}.tar.gz",
|
||||
"aarch64-linux": "https://download.jetbrains.com/datagrip/datagrip-{version}-aarch64.tar.gz",
|
||||
"x86_64-darwin": "https://download.jetbrains.com/datagrip/datagrip-{version}.dmg",
|
||||
"aarch64-darwin": "https://download.jetbrains.com/datagrip/datagrip-{version}-aarch64.dmg"
|
||||
}
|
||||
},
|
||||
@@ -22,7 +20,6 @@
|
||||
"urls": {
|
||||
"x86_64-linux": "https://download.jetbrains.com/python/dataspell-{version}.tar.gz",
|
||||
"aarch64-linux": "https://download.jetbrains.com/python/dataspell-{version}-aarch64.tar.gz",
|
||||
"x86_64-darwin": "https://download.jetbrains.com/python/dataspell-{version}.dmg",
|
||||
"aarch64-darwin": "https://download.jetbrains.com/python/dataspell-{version}-aarch64.dmg"
|
||||
}
|
||||
},
|
||||
@@ -31,7 +28,6 @@
|
||||
"urls": {
|
||||
"x86_64-linux": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-{version}.tar.gz",
|
||||
"aarch64-linux": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-{version}-aarch64.tar.gz",
|
||||
"x86_64-darwin": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-{version}.dmg",
|
||||
"aarch64-darwin": "https://download.jetbrains.com/idea/gateway/JetBrainsGateway-{version}-aarch64.dmg"
|
||||
}
|
||||
},
|
||||
@@ -40,7 +36,6 @@
|
||||
"urls": {
|
||||
"x86_64-linux": "https://download.jetbrains.com/go/goland-{version}.tar.gz",
|
||||
"aarch64-linux": "https://download.jetbrains.com/go/goland-{version}-aarch64.tar.gz",
|
||||
"x86_64-darwin": "https://download.jetbrains.com/go/goland-{version}.dmg",
|
||||
"aarch64-darwin": "https://download.jetbrains.com/go/goland-{version}-aarch64.dmg"
|
||||
}
|
||||
},
|
||||
@@ -49,7 +44,6 @@
|
||||
"urls": {
|
||||
"x86_64-linux": "https://download.jetbrains.com/idea/ideaIU-{version}.tar.gz",
|
||||
"aarch64-linux": "https://download.jetbrains.com/idea/ideaIU-{version}-aarch64.tar.gz",
|
||||
"x86_64-darwin": "https://download.jetbrains.com/idea/ideaIU-{version}.dmg",
|
||||
"aarch64-darwin": "https://download.jetbrains.com/idea/ideaIU-{version}-aarch64.dmg"
|
||||
}
|
||||
},
|
||||
@@ -62,7 +56,6 @@
|
||||
"urls": {
|
||||
"x86_64-linux": "https://download.jetbrains.com/mps/{versionMajorMinor}/MPS-{version}.tar.gz",
|
||||
"aarch64-linux": "https://download.jetbrains.com/mps/{versionMajorMinor}/MPS-{version}.tar.gz",
|
||||
"x86_64-darwin": "https://download.jetbrains.com/mps/{versionMajorMinor}/MPS-{version}-macos.dmg",
|
||||
"aarch64-darwin": "https://download.jetbrains.com/mps/{versionMajorMinor}/MPS-{version}-macos-aarch64.dmg"
|
||||
}
|
||||
},
|
||||
@@ -71,7 +64,6 @@
|
||||
"urls": {
|
||||
"x86_64-linux": "https://download.jetbrains.com/webide/PhpStorm-{version}.tar.gz",
|
||||
"aarch64-linux": "https://download.jetbrains.com/webide/PhpStorm-{version}-aarch64.tar.gz",
|
||||
"x86_64-darwin": "https://download.jetbrains.com/webide/PhpStorm-{version}.dmg",
|
||||
"aarch64-darwin": "https://download.jetbrains.com/webide/PhpStorm-{version}-aarch64.dmg"
|
||||
}
|
||||
},
|
||||
@@ -80,7 +72,6 @@
|
||||
"urls": {
|
||||
"x86_64-linux": "https://download.jetbrains.com/python/pycharm-{version}.tar.gz",
|
||||
"aarch64-linux": "https://download.jetbrains.com/python/pycharm-{version}-aarch64.tar.gz",
|
||||
"x86_64-darwin": "https://download.jetbrains.com/python/pycharm-{version}.dmg",
|
||||
"aarch64-darwin": "https://download.jetbrains.com/python/pycharm-{version}-aarch64.dmg"
|
||||
}
|
||||
},
|
||||
@@ -93,7 +84,6 @@
|
||||
"urls": {
|
||||
"x86_64-linux": "https://download.jetbrains.com/rider/JetBrains.Rider-{version}.tar.gz",
|
||||
"aarch64-linux": "https://download.jetbrains.com/rider/JetBrains.Rider-{version}-aarch64.tar.gz",
|
||||
"x86_64-darwin": "https://download.jetbrains.com/rider/JetBrains.Rider-{version}.dmg",
|
||||
"aarch64-darwin": "https://download.jetbrains.com/rider/JetBrains.Rider-{version}-aarch64.dmg"
|
||||
}
|
||||
},
|
||||
@@ -102,7 +92,6 @@
|
||||
"urls": {
|
||||
"x86_64-linux": "https://download.jetbrains.com/ruby/RubyMine-{version}.tar.gz",
|
||||
"aarch64-linux": "https://download.jetbrains.com/ruby/RubyMine-{version}-aarch64.tar.gz",
|
||||
"x86_64-darwin": "https://download.jetbrains.com/ruby/RubyMine-{version}.dmg",
|
||||
"aarch64-darwin": "https://download.jetbrains.com/ruby/RubyMine-{version}-aarch64.dmg"
|
||||
}
|
||||
},
|
||||
@@ -111,7 +100,6 @@
|
||||
"urls": {
|
||||
"x86_64-linux": "https://download.jetbrains.com/rustrover/RustRover-{version}.tar.gz",
|
||||
"aarch64-linux": "https://download.jetbrains.com/rustrover/RustRover-{version}-aarch64.tar.gz",
|
||||
"x86_64-darwin": "https://download.jetbrains.com/rustrover/RustRover-{version}.dmg",
|
||||
"aarch64-darwin": "https://download.jetbrains.com/rustrover/RustRover-{version}-aarch64.dmg"
|
||||
}
|
||||
},
|
||||
@@ -120,7 +108,6 @@
|
||||
"urls": {
|
||||
"x86_64-linux": "https://download.jetbrains.com/webstorm/WebStorm-{version}.tar.gz",
|
||||
"aarch64-linux": "https://download.jetbrains.com/webstorm/WebStorm-{version}-aarch64.tar.gz",
|
||||
"x86_64-darwin": "https://download.jetbrains.com/webstorm/WebStorm-{version}.dmg",
|
||||
"aarch64-darwin": "https://download.jetbrains.com/webstorm/WebStorm-{version}-aarch64.dmg"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
# nix run --impure --expr 'with import <nixpkgs> {}; jupyter-console.withSingleKernel clojupyter.definition'
|
||||
|
||||
# Jupyter notebook:
|
||||
# nix run --impure --expr 'with import <nixpkgs> {}; jupyter.override { definitions.clojure = clojupyter.definition; }'
|
||||
# nix shell --impure --expr 'with import <nixpkgs> {}; [ (jupyter.override { definitions.clojure = clojupyter.definition; }) ]' -c jupyter-notebook
|
||||
|
||||
let
|
||||
cljdeps = import ./deps.nix { inherit pkgs; };
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
# nix run --impure --expr 'with import <nixpkgs> {}; jupyter-console.withSingleKernel octave-kernel.definition'
|
||||
|
||||
# Jupyter notebook:
|
||||
# nix run --impure --expr 'with import <nixpkgs> {}; jupyter.override { definitions.octave = octave-kernel.definition; }'
|
||||
# nix shell --impure --expr 'with import <nixpkgs> {}; [ (jupyter.override { definitions.octave = octave-kernel.definition; }) ]' -c jupyter-notebook
|
||||
|
||||
let
|
||||
kernel = callPackage ./kernel.nix {
|
||||
|
||||
@@ -7,7 +7,7 @@
|
||||
# nix run --impure --expr 'with import <nixpkgs> {}; jupyter-console.withSingleKernel wolfram-for-jupyter-kernel.definition'
|
||||
|
||||
# Jupyter notebook:
|
||||
# nix run --impure --expr 'with import <nixpkgs> {}; jupyter.override { definitions.wolfram = wolfram-for-jupyter-kernel.definition; }'
|
||||
# nix shell --impure --expr 'with import <nixpkgs> {}; [ (jupyter.override { definitions.wolfram = wolfram-for-jupyter-kernel.definition; }) ]' -c jupyter-notebook
|
||||
|
||||
let
|
||||
kernel = callPackage ./kernel.nix { };
|
||||
|
||||
@@ -1610,12 +1610,12 @@ final: prev: {
|
||||
|
||||
base16-nvim = buildVimPlugin {
|
||||
pname = "base16-nvim";
|
||||
version = "0-unstable-2026-06-21";
|
||||
version = "0-unstable-2026-07-15";
|
||||
src = fetchFromGitHub {
|
||||
owner = "RRethy";
|
||||
repo = "base16-nvim";
|
||||
rev = "21233d5fd574439ae1e2f5e4bfbc574214f4ab3d";
|
||||
hash = "sha256-Dizi44p6XYaQlXEL5qnfJFX44nXKIAkZAZvQ5QH11eA=";
|
||||
rev = "fd128e380624c34f12a201690944bf657f861361";
|
||||
hash = "sha256-W5tHY4U87eCAiOerNMAeqcbz1JlMZ6YGqSC0TBhI6t4=";
|
||||
};
|
||||
meta.homepage = "https://github.com/RRethy/base16-nvim/";
|
||||
meta.license = getLicenseFromSpdxId "MIT";
|
||||
@@ -1638,12 +1638,12 @@ final: prev: {
|
||||
|
||||
base46 = buildVimPlugin {
|
||||
pname = "base46";
|
||||
version = "0-unstable-2026-07-09";
|
||||
version = "0-unstable-2026-07-11";
|
||||
src = fetchFromGitHub {
|
||||
owner = "nvchad";
|
||||
repo = "base46";
|
||||
rev = "a972909f1d7ba798b93b56631bc2cd5e96ea40da";
|
||||
hash = "sha256-7WqUWfziecAeGtbKBU6/FESY/pf56bEGKhvnxcm/gNI=";
|
||||
rev = "cbb71c6cb56f53b30ab1a95a6d277f7e0524025b";
|
||||
hash = "sha256-QG9FcdlCKYXzncvDt47RQQGyJ2ARt1N+ec75qtc7gSk=";
|
||||
};
|
||||
meta.homepage = "https://github.com/nvchad/base46/";
|
||||
meta.license = unfree;
|
||||
@@ -1736,12 +1736,12 @@ final: prev: {
|
||||
|
||||
bitbake = buildVimPlugin {
|
||||
pname = "bitbake";
|
||||
version = "6.0.1";
|
||||
version = "6.0.2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "openembedded";
|
||||
repo = "bitbake";
|
||||
tag = "yocto-6.0.1";
|
||||
hash = "sha256-ReX6cGzy6IOfMR1z90U5QWdWLkRqO524zXcp/7xBfBk=";
|
||||
tag = "yocto-6.0.2";
|
||||
hash = "sha256-Jho1X7udSvh413u8ueRqR8z1Q7E2qcotdkzl9azBu7g=";
|
||||
};
|
||||
meta.homepage = "https://github.com/openembedded/bitbake/";
|
||||
meta.license = unfree;
|
||||
@@ -2310,12 +2310,12 @@ final: prev: {
|
||||
|
||||
catppuccin-vim = buildVimPlugin {
|
||||
pname = "catppuccin-vim";
|
||||
version = "0-unstable-2026-06-30";
|
||||
version = "0-unstable-2026-07-15";
|
||||
src = fetchFromGitHub {
|
||||
owner = "catppuccin";
|
||||
repo = "vim";
|
||||
rev = "029e9a878a58eba039e47847a2f17e10acefb3f5";
|
||||
hash = "sha256-gDq7vXIBc2mY8DMl+A6Ps0qPvAIR3NDhCRxBgqMOYCM=";
|
||||
rev = "78c40a773e56d05e1c4e29216c45a483bdd67351";
|
||||
hash = "sha256-xOf5PwhgVWwMGtJt+om9z0MULrMLoO6AmaJ/G/vWGrk=";
|
||||
};
|
||||
meta.homepage = "https://github.com/catppuccin/vim/";
|
||||
meta.license = getLicenseFromSpdxId "MIT";
|
||||
@@ -3484,12 +3484,12 @@ final: prev: {
|
||||
|
||||
coc-nvim = buildVimPlugin {
|
||||
pname = "coc.nvim";
|
||||
version = "0.0.82-unstable-2026-07-07";
|
||||
version = "0.0.82-unstable-2026-07-15";
|
||||
src = fetchFromGitHub {
|
||||
owner = "neoclide";
|
||||
repo = "coc.nvim";
|
||||
rev = "0ff79c0056910e574af2b2aa31aa359065705c4b";
|
||||
hash = "sha256-Pp+qMv4Inc4JsrK59XDS+5CX/F9bEd4Pp4Cb611K+lk=";
|
||||
rev = "d1689a4876305e5fc6691910c8ee6f1eb5da2219";
|
||||
hash = "sha256-6AjcLD8gh3rG3uXj8LjdXr5pbzIKwtu+14ZcCVwXCuI=";
|
||||
};
|
||||
meta.homepage = "https://github.com/neoclide/coc.nvim/";
|
||||
meta.license = unfree;
|
||||
@@ -3568,12 +3568,12 @@ final: prev: {
|
||||
|
||||
codecompanion-nvim = buildVimPlugin {
|
||||
pname = "codecompanion.nvim";
|
||||
version = "19.18.0";
|
||||
version = "19.19.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "olimorris";
|
||||
repo = "codecompanion.nvim";
|
||||
tag = "v19.18.0";
|
||||
hash = "sha256-4O0UuJuuv4gmyxiZlLMG/sKlt84SW2ZooeOlFlK6/7I=";
|
||||
tag = "v19.19.0";
|
||||
hash = "sha256-1ypjttA0T6wnVrqBaiqGtcJnqiyhxeg2EXh7O9nPBpE=";
|
||||
};
|
||||
meta.homepage = "https://github.com/olimorris/codecompanion.nvim/";
|
||||
meta.license = getLicenseFromSpdxId "Apache-2.0";
|
||||
@@ -3652,12 +3652,12 @@ final: prev: {
|
||||
|
||||
cole-nvim = buildVimPlugin {
|
||||
pname = "cole.nvim";
|
||||
version = "0-unstable-2026-05-29";
|
||||
version = "0-unstable-2026-07-14";
|
||||
src = fetchFromGitHub {
|
||||
owner = "thekylehuang";
|
||||
repo = "cole.nvim";
|
||||
rev = "1920cfa31c717e1f73a5a6e5a2c02a44b5faeb5c";
|
||||
hash = "sha256-k153XzTkkBm1qF6iKK8fzmAHIPnoIbXEAxAOQIoAPo0=";
|
||||
rev = "74f6a8e1bbce0d9a845a339d849bca3c0bec7aaa";
|
||||
hash = "sha256-TJxpLhabIl73I9O6Soi9TEd/9Xa7FVfpV7sNrza64oM=";
|
||||
};
|
||||
meta.homepage = "https://github.com/thekylehuang/cole.nvim/";
|
||||
meta.license = getLicenseFromSpdxId "MIT";
|
||||
@@ -3778,12 +3778,12 @@ final: prev: {
|
||||
|
||||
command-t = buildVimPlugin {
|
||||
pname = "command-t";
|
||||
version = "8.1";
|
||||
version = "8.2";
|
||||
src = fetchFromGitHub {
|
||||
owner = "wincent";
|
||||
repo = "command-t";
|
||||
tag = "8.1";
|
||||
hash = "sha256-yp3kqhHQMtUFFPfbqgnrmmclx6r39k3ohen4Ys3s3BU=";
|
||||
tag = "8.2";
|
||||
hash = "sha256-Q2fYHr9GFQvkoyoAOkvxJDArtqMxq7352eSGQNHBFZ8=";
|
||||
};
|
||||
meta.homepage = "https://github.com/wincent/command-t/";
|
||||
meta.license = getLicenseFromSpdxId "BSD-2-Clause";
|
||||
@@ -4185,12 +4185,12 @@ final: prev: {
|
||||
|
||||
coq_nvim = buildVimPlugin {
|
||||
pname = "coq_nvim";
|
||||
version = "0-unstable-2026-07-09";
|
||||
version = "0-unstable-2026-07-12";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ms-jpq";
|
||||
repo = "coq_nvim";
|
||||
rev = "47a2b8157b05433268564672bd2e9667bb287c9d";
|
||||
hash = "sha256-affL0j96Hp+Ffry2KF69dR2hQfLSY2kRYoexvd38r5A=";
|
||||
rev = "0b2b0db07b0426441ece46988d9ab28088f07cd5";
|
||||
hash = "sha256-SjAiNoeAxuu2UFHupUnDtjrPtGqAiFdHoq21Qn35OVA=";
|
||||
};
|
||||
meta.homepage = "https://github.com/ms-jpq/coq_nvim/";
|
||||
meta.license = getLicenseFromSpdxId "GPL-3.0-only";
|
||||
@@ -5433,12 +5433,12 @@ final: prev: {
|
||||
|
||||
easy-dotnet-nvim = buildVimPlugin {
|
||||
pname = "easy-dotnet.nvim";
|
||||
version = "0-unstable-2026-07-03";
|
||||
version = "0-unstable-2026-07-09";
|
||||
src = fetchFromGitHub {
|
||||
owner = "GustavEikaas";
|
||||
repo = "easy-dotnet.nvim";
|
||||
rev = "24a927e168789103137156e980e2635956e90b3c";
|
||||
hash = "sha256-uo3/DBMPv67UOQJscAW6aoc7c5IDJdQta7f8/1kI9dQ=";
|
||||
rev = "26b939e2e013ddfc137a8e6149cda1f0b62303ca";
|
||||
hash = "sha256-M6uNfKiHviaJyItvvAdEplB+pdqF4N5DOwxG2oPYwpg=";
|
||||
};
|
||||
meta.homepage = "https://github.com/GustavEikaas/easy-dotnet.nvim/";
|
||||
meta.license = getLicenseFromSpdxId "MIT";
|
||||
@@ -5995,12 +5995,12 @@ final: prev: {
|
||||
|
||||
flash-nvim = buildVimPlugin {
|
||||
pname = "flash.nvim";
|
||||
version = "2.1.0-unstable-2025-10-28";
|
||||
version = "2.1.0-unstable-2026-07-10";
|
||||
src = fetchFromGitHub {
|
||||
owner = "folke";
|
||||
repo = "flash.nvim";
|
||||
rev = "fcea7ff883235d9024dc41e638f164a450c14ca2";
|
||||
hash = "sha256-pHh0tJd/ynfjriu8xjnKunKVDHkoXii6ZbikdkIwovY=";
|
||||
rev = "b6346946d10d07998efee029fb0f7a593806d0cd";
|
||||
hash = "sha256-1v2+iq4/TnJq37iiGedIKFf6PxlTHQac8RXECZ2HYdM=";
|
||||
};
|
||||
meta.homepage = "https://github.com/folke/flash.nvim/";
|
||||
meta.license = getLicenseFromSpdxId "Apache-2.0";
|
||||
@@ -6737,11 +6737,11 @@ final: prev: {
|
||||
|
||||
gitportal-nvim = buildVimPlugin {
|
||||
pname = "gitportal.nvim";
|
||||
version = "0-unstable-2026-06-26";
|
||||
version = "0-unstable-2026-07-10";
|
||||
src = fetchgit {
|
||||
url = "https://codeberg.org/trevorhauter/gitportal.nvim/";
|
||||
rev = "ee5446aa17738a419e855e2e4c01cb65e378e4cb";
|
||||
hash = "sha256-nt+4FjY+9IEBbUMNk0FpTwNfFu0/3k7DKeops+cGlxk=";
|
||||
rev = "d2efb8d1bf141c77cfa1b5311995912bc36671d0";
|
||||
hash = "sha256-ofRP84DSgrXyNXXZjM82n1AhsfleDU6k7r4+R9sof40=";
|
||||
};
|
||||
meta.homepage = "https://codeberg.org/trevorhauter/gitportal.nvim/";
|
||||
meta.license = getLicenseFromSpdxId "MIT";
|
||||
@@ -8752,12 +8752,12 @@ final: prev: {
|
||||
|
||||
lexima-vim = buildVimPlugin {
|
||||
pname = "lexima.vim";
|
||||
version = "2.1.0-unstable-2025-05-15";
|
||||
version = "2.1.0-unstable-2026-07-11";
|
||||
src = fetchFromGitHub {
|
||||
owner = "cohama";
|
||||
repo = "lexima.vim";
|
||||
rev = "ab621e4756465c9d354fce88cff2bd1aa7887065";
|
||||
hash = "sha256-NtHCfuL2Tq1a4Xevx+xAbnzsKqnPAbU/l7JvK7p0evU=";
|
||||
rev = "9f6942c5e1f0f6fe63bdcdac515f34c484b970f5";
|
||||
hash = "sha256-hU/MmP5Ykb52vCJvlMtQipKe4LGC7d+lH//r8ysDELE=";
|
||||
};
|
||||
meta.homepage = "https://github.com/cohama/lexima.vim/";
|
||||
meta.license = unfree;
|
||||
@@ -9325,12 +9325,12 @@ final: prev: {
|
||||
|
||||
lspsaga-nvim = buildVimPlugin {
|
||||
pname = "lspsaga.nvim";
|
||||
version = "0-unstable-2026-05-14";
|
||||
version = "0-unstable-2026-07-16";
|
||||
src = fetchFromGitHub {
|
||||
owner = "nvimdev";
|
||||
repo = "lspsaga.nvim";
|
||||
rev = "3e33a6a6c5d379f3d4fae77fae6b53b762a0a30f";
|
||||
hash = "sha256-hkXvv5NgW+wnbR7wGtAs+aUDv/4o/T5Mv7rGhk1qR3U=";
|
||||
rev = "cf6fc9473bba1d332eda9887855ea29ed9b37701";
|
||||
hash = "sha256-ggw3U/LXNCDaSmXmHWEV9coOjoDW6v0JvD5BGSvDCaM=";
|
||||
};
|
||||
meta.homepage = "https://github.com/nvimdev/lspsaga.nvim/";
|
||||
meta.license = getLicenseFromSpdxId "MIT";
|
||||
@@ -11034,12 +11034,12 @@ final: prev: {
|
||||
|
||||
neoconf-nvim = buildVimPlugin {
|
||||
pname = "neoconf.nvim";
|
||||
version = "1.4.0-unstable-2026-07-09";
|
||||
version = "1.4.0-unstable-2026-07-16";
|
||||
src = fetchFromGitHub {
|
||||
owner = "folke";
|
||||
repo = "neoconf.nvim";
|
||||
rev = "f6c1c4832932d336feb77befa30074cd1a998f3d";
|
||||
hash = "sha256-1IPVcaU+I2MRz+ATZ9nQafzccEHn9UfmaLkfR1YB2e0=";
|
||||
rev = "50bdc4130d9e30d28d0b209544d49ee472f6bf12";
|
||||
hash = "sha256-hsYouOS+ImmA6HnwqFRq3RMBTsn87oHrnijMqvargU4=";
|
||||
};
|
||||
meta.homepage = "https://github.com/folke/neoconf.nvim/";
|
||||
meta.license = getLicenseFromSpdxId "Apache-2.0";
|
||||
@@ -11118,12 +11118,12 @@ final: prev: {
|
||||
|
||||
neogit = buildVimPlugin {
|
||||
pname = "neogit";
|
||||
version = "3.0.0-unstable-2026-07-09";
|
||||
version = "3.0.0-unstable-2026-07-15";
|
||||
src = fetchFromGitHub {
|
||||
owner = "NeogitOrg";
|
||||
repo = "neogit";
|
||||
rev = "a0847c4bea5a5f92a36e3f3bf7da99d7d685d3ac";
|
||||
hash = "sha256-37iNw57kC+fFk+hEgHKd07+NNDKP2g0YAmLwPYw6NyQ=";
|
||||
rev = "95295edaa26e8e8db5a9bc4119256e602311c6bc";
|
||||
hash = "sha256-hAswp9Ba5xfFfBS+NKjLOoSky+SRrLfd8fdFC46Dq2s=";
|
||||
};
|
||||
meta.homepage = "https://github.com/NeogitOrg/neogit/";
|
||||
meta.license = getLicenseFromSpdxId "MIT";
|
||||
@@ -11611,12 +11611,12 @@ final: prev: {
|
||||
|
||||
neotest-python = buildVimPlugin {
|
||||
pname = "neotest-python";
|
||||
version = "0-unstable-2026-07-03";
|
||||
version = "0-unstable-2026-07-15";
|
||||
src = fetchFromGitHub {
|
||||
owner = "nvim-neotest";
|
||||
repo = "neotest-python";
|
||||
rev = "51c453d57f8d5156671b42ea57fafa2e1c9fb641";
|
||||
hash = "sha256-M0FROtTXMiAmmo83m1WwSQ5px5I6awV4I3/UY+sTYAc=";
|
||||
rev = "1b56ca4ba51c6014f986d6548ee629bdc95589d1";
|
||||
hash = "sha256-9FL0qWTdkeX57ujRvSa9QqO/ZIthlzLSJyKHtNitbSg=";
|
||||
};
|
||||
meta.homepage = "https://github.com/nvim-neotest/neotest-python/";
|
||||
meta.license = getLicenseFromSpdxId "MIT";
|
||||
@@ -11681,12 +11681,12 @@ final: prev: {
|
||||
|
||||
neotest-vitest = buildVimPlugin {
|
||||
pname = "neotest-vitest";
|
||||
version = "0.2.0-unstable-2026-06-29";
|
||||
version = "0.2.0-unstable-2026-07-12";
|
||||
src = fetchFromGitHub {
|
||||
owner = "marilari88";
|
||||
repo = "neotest-vitest";
|
||||
rev = "ab5a73d6ec9d33e807d6c67ce5169c4ca4a5d7f3";
|
||||
hash = "sha256-daeDCN58hMAesXEBhc4gbN2ISGQ0orIUNhL2ApB3E+s=";
|
||||
rev = "c3c69715da4b158069fd4262083e7219a5c14cfb";
|
||||
hash = "sha256-BPERc4+iWEu1UWDXv+MaSUXJR4KNFFAqrPXxyJCSe9I=";
|
||||
};
|
||||
meta.homepage = "https://github.com/marilari88/neotest-vitest/";
|
||||
meta.license = getLicenseFromSpdxId "MIT";
|
||||
@@ -12140,6 +12140,20 @@ final: prev: {
|
||||
meta.hydraPlatforms = [ ];
|
||||
};
|
||||
|
||||
none-ls-extras-nvim = buildVimPlugin {
|
||||
pname = "none-ls-extras.nvim";
|
||||
version = "0-unstable-2026-06-06";
|
||||
src = fetchFromGitHub {
|
||||
owner = "nvimtools";
|
||||
repo = "none-ls-extras.nvim";
|
||||
rev = "27681d797a26f1b4d6119296df42f5204c88a2dc";
|
||||
hash = "sha256-GZLT8X1eLeSkiV5EN1nOkCQg5nwNATURi/KMj90i40I=";
|
||||
};
|
||||
meta.homepage = "https://github.com/nvimtools/none-ls-extras.nvim/";
|
||||
meta.license = getLicenseFromSpdxId "Unlicense";
|
||||
meta.hydraPlatforms = [ ];
|
||||
};
|
||||
|
||||
none-ls-nvim = buildVimPlugin {
|
||||
pname = "none-ls.nvim";
|
||||
version = "0-unstable-2026-06-02";
|
||||
@@ -12254,12 +12268,12 @@ final: prev: {
|
||||
|
||||
nvchad-ui = buildVimPlugin {
|
||||
pname = "nvchad-ui";
|
||||
version = "0-unstable-2026-07-09";
|
||||
version = "0-unstable-2026-07-11";
|
||||
src = fetchFromGitHub {
|
||||
owner = "nvchad";
|
||||
repo = "ui";
|
||||
rev = "5cfd3c8f2c3e6603d52d8f6c0b715743bbb5270d";
|
||||
hash = "sha256-TgBx2alqrazm2JSu4afsZ0tnKWHqpclpBly/0SxYpxs=";
|
||||
rev = "28019401865beffcedc744bb1506d0201b88f2f9";
|
||||
hash = "sha256-QKBDxZzEQKGzHOVJmS9D9i9h2/0HubbgUlAvaA7Erh0=";
|
||||
};
|
||||
meta.homepage = "https://github.com/nvchad/ui/";
|
||||
meta.license = getLicenseFromSpdxId "GPL-3.0-only";
|
||||
@@ -12436,12 +12450,12 @@ final: prev: {
|
||||
|
||||
nvim-colorizer-lua = buildVimPlugin {
|
||||
pname = "nvim-colorizer.lua";
|
||||
version = "0-unstable-2026-05-30";
|
||||
version = "0-unstable-2026-07-14";
|
||||
src = fetchFromGitHub {
|
||||
owner = "catgoose";
|
||||
repo = "nvim-colorizer.lua";
|
||||
rev = "664c0b7cea1de71f8b65dfe951b7996fc3e6ccde";
|
||||
hash = "sha256-qVFQGJMGr0htwZqarhMdh7yG6SSH/rv8yqmp1CsoT3I=";
|
||||
rev = "72a05f62c52241bc7441c820eb53946f92b2e6a4";
|
||||
hash = "sha256-hdnk816SBKWD/Ula4hjQ3o14I3+fBmEengfo72S4+8U=";
|
||||
};
|
||||
meta.homepage = "https://github.com/catgoose/nvim-colorizer.lua/";
|
||||
meta.license = unfree;
|
||||
@@ -12657,12 +12671,12 @@ final: prev: {
|
||||
|
||||
nvim-dap-ui = buildVimPlugin {
|
||||
pname = "nvim-dap-ui";
|
||||
version = "4.0.0-unstable-2026-04-05";
|
||||
version = "4.0.0-unstable-2026-07-14";
|
||||
src = fetchFromGitHub {
|
||||
owner = "rcarriga";
|
||||
repo = "nvim-dap-ui";
|
||||
rev = "1a66cabaa4a4da0be107d5eda6d57242f0fe7e49";
|
||||
hash = "sha256-J/gUD4X//JtC2HB3HBeONivCQdMnXDnZJWd6jFF9+nk=";
|
||||
rev = "cc9dd33aade7f20bae414d0cba163bc60d4d4b43";
|
||||
hash = "sha256-za3/6W1J6aMvNZQq8ANCq+TGHKHJtSxR/C5t3/oL3DI=";
|
||||
};
|
||||
meta.homepage = "https://github.com/rcarriga/nvim-dap-ui/";
|
||||
meta.license = getLicenseFromSpdxId "MIT";
|
||||
@@ -14152,12 +14166,12 @@ final: prev: {
|
||||
|
||||
ocaml-nvim = buildVimPlugin {
|
||||
pname = "ocaml.nvim";
|
||||
version = "1.0.0-unstable-2026-07-03";
|
||||
version = "1.0.0-unstable-2026-07-16";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tarides";
|
||||
repo = "ocaml.nvim";
|
||||
rev = "333647c7d16aa0e28a6d7cf15f2716111bec53af";
|
||||
hash = "sha256-+RUoWuV9YEOsx+jOTa8No5OyoeO6iVUuSsrtHmYKpb4=";
|
||||
rev = "e12ded73f461d392cc2cad579a39733ebe34de61";
|
||||
hash = "sha256-3NiRM02g7BU+MzCybSfsyZdODcPA+RbuNU9QOmmoCxo=";
|
||||
};
|
||||
meta.homepage = "https://github.com/tarides/ocaml.nvim/";
|
||||
meta.license = getLicenseFromSpdxId "MIT";
|
||||
@@ -14194,12 +14208,12 @@ final: prev: {
|
||||
|
||||
octo-nvim = buildVimPlugin {
|
||||
pname = "octo.nvim";
|
||||
version = "0-unstable-2026-06-29";
|
||||
version = "0-unstable-2026-07-09";
|
||||
src = fetchFromGitHub {
|
||||
owner = "pwntester";
|
||||
repo = "octo.nvim";
|
||||
rev = "b9a73e167f851a98d8f29d62658d3640bb8a7314";
|
||||
hash = "sha256-v6vM3ajWF3yI2QA1pSqzo2zsbQohX1kmaI81b1Aqusc=";
|
||||
rev = "8476766529b7c0ee9b7da12b6dbce1b716bb62cd";
|
||||
hash = "sha256-Ahxcp7UCoISeLOhZAkX966lyHk8jiSwWy9SAlUnzJo4=";
|
||||
};
|
||||
meta.homepage = "https://github.com/pwntester/octo.nvim/";
|
||||
meta.license = getLicenseFromSpdxId "MIT";
|
||||
@@ -15737,12 +15751,12 @@ final: prev: {
|
||||
|
||||
roslyn-nvim = buildVimPlugin {
|
||||
pname = "roslyn.nvim";
|
||||
version = "0-unstable-2026-07-08";
|
||||
version = "0-unstable-2026-07-10";
|
||||
src = fetchFromGitHub {
|
||||
owner = "seblyng";
|
||||
repo = "roslyn.nvim";
|
||||
rev = "05ffc134f0b70ce2715c761745f1f78321fcfa9b";
|
||||
hash = "sha256-LLD9Vm3E1Vmp8P5dF1TAzHvRyGxmjpYSOvGksmhtEHc=";
|
||||
rev = "b4954e97e145bd8129b3bbe99809759f6ced2235";
|
||||
hash = "sha256-AuJNxfvNYnqPvihxBn1vADdvwoDNInVbOLS0Pq5q9v8=";
|
||||
};
|
||||
meta.homepage = "https://github.com/seblyng/roslyn.nvim/";
|
||||
meta.license = getLicenseFromSpdxId "MIT";
|
||||
@@ -16086,12 +16100,12 @@ final: prev: {
|
||||
|
||||
seoul256-vim = buildVimPlugin {
|
||||
pname = "seoul256.vim";
|
||||
version = "0-unstable-2026-05-20";
|
||||
version = "0-unstable-2026-07-15";
|
||||
src = fetchFromGitHub {
|
||||
owner = "junegunn";
|
||||
repo = "seoul256.vim";
|
||||
rev = "88997adf362f57c3eadedde6b8c1393fe218c02c";
|
||||
hash = "sha256-Em9vpXJmUyLfBHOLHVQQUGsOuluwyx+J4Q5vU8akyS0=";
|
||||
rev = "0357ff3e44faab66c98bc98dfc89c834e37012da";
|
||||
hash = "sha256-TEu6ybYthrtTd7k2HkQEEH1z2iImU0I6SEclt87oAGQ=";
|
||||
};
|
||||
meta.homepage = "https://github.com/junegunn/seoul256.vim/";
|
||||
meta.license = unfree;
|
||||
@@ -16227,12 +16241,12 @@ final: prev: {
|
||||
|
||||
smart-splits-nvim = buildVimPlugin {
|
||||
pname = "smart-splits.nvim";
|
||||
version = "2.1.0-unstable-2026-07-04";
|
||||
version = "2.1.0-unstable-2026-07-10";
|
||||
src = fetchFromGitHub {
|
||||
owner = "mrjones2014";
|
||||
repo = "smart-splits.nvim";
|
||||
rev = "ebf4d8bbc16570817c0f5275468466b9d00b8d7d";
|
||||
hash = "sha256-mqmD7cZ2B+VuIyW/yv+N8nJquRX31tXw1tz1qvSMmus=";
|
||||
rev = "9493405fb8ee683aa6efd50c529f6296ad8f40ad";
|
||||
hash = "sha256-cMPRVxFMBVRpIcy7kCQyoXzgsIFJJ1cDgAcvOm9FNnI=";
|
||||
};
|
||||
meta.homepage = "https://github.com/mrjones2014/smart-splits.nvim/";
|
||||
meta.license = getLicenseFromSpdxId "MIT";
|
||||
@@ -16506,12 +16520,12 @@ final: prev: {
|
||||
|
||||
spellwarn-nvim = buildVimPlugin {
|
||||
pname = "spellwarn.nvim";
|
||||
version = "0-unstable-2026-03-05";
|
||||
version = "0-unstable-2026-07-13";
|
||||
src = fetchFromGitHub {
|
||||
owner = "ravibrock";
|
||||
repo = "spellwarn.nvim";
|
||||
rev = "c98cfca978791cae3edaced7056bd340debee8fe";
|
||||
hash = "sha256-rLsiBIifNC8zwUNsAJ8AeTlDS9IS/y3XEKfF5FZ2hZI=";
|
||||
rev = "3e818a7da69bfb342e2d84fdef9cb9f639d047d3";
|
||||
hash = "sha256-WHXJaSTB91B0S3YizCJLBriGQDvYQKVK3I8WT97YQEc=";
|
||||
};
|
||||
meta.homepage = "https://github.com/ravibrock/spellwarn.nvim/";
|
||||
meta.license = getLicenseFromSpdxId "MIT";
|
||||
@@ -17926,12 +17940,12 @@ final: prev: {
|
||||
|
||||
tinted-nvim = buildVimPlugin {
|
||||
pname = "tinted-nvim";
|
||||
version = "1.0.0-unstable-2026-06-27";
|
||||
version = "1.0.0-unstable-2026-07-15";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tinted-theming";
|
||||
repo = "tinted-nvim";
|
||||
rev = "f72f46057151de65ece4c280f67db84c63d64c76";
|
||||
hash = "sha256-U9SSaB68n/rDaeyQfRk0SnEwKW7MKG9gUaFG0ivt70A=";
|
||||
rev = "a229fe0efadb4d9bfa92cad16175bb4e93fa70d4";
|
||||
hash = "sha256-a79rQSpPyCH/zbunrW9NxtsnwKVcQiwLzhW/1YNl3a4=";
|
||||
};
|
||||
meta.homepage = "https://github.com/tinted-theming/tinted-nvim/";
|
||||
meta.license = getLicenseFromSpdxId "MIT";
|
||||
@@ -17940,12 +17954,12 @@ final: prev: {
|
||||
|
||||
tinted-vim = buildVimPlugin {
|
||||
pname = "tinted-vim";
|
||||
version = "01-unstable-2026-06-21";
|
||||
version = "01-unstable-2026-07-15";
|
||||
src = fetchFromGitHub {
|
||||
owner = "tinted-theming";
|
||||
repo = "tinted-vim";
|
||||
rev = "65a386074124f211536dc04f7427cbcbd80ee183";
|
||||
hash = "sha256-hRgKzVnFtpAsI4dxmOTdSdi02+VEvTydbdTU+HqyhzI=";
|
||||
rev = "1ee9f7bbb3e5928b84ab0bedaf04f6ad9dafdfb2";
|
||||
hash = "sha256-fwFxfq0Kr/EPdx4r9qTjzvjxkQsNoAD9KvB6kP3NwlE=";
|
||||
};
|
||||
meta.homepage = "https://github.com/tinted-theming/tinted-vim/";
|
||||
meta.license = unfree;
|
||||
@@ -18504,12 +18518,12 @@ final: prev: {
|
||||
|
||||
typst-preview-nvim = buildVimPlugin {
|
||||
pname = "typst-preview.nvim";
|
||||
version = "1.4.2-unstable-2026-03-30";
|
||||
version = "1.5.0";
|
||||
src = fetchFromGitHub {
|
||||
owner = "chomosuke";
|
||||
repo = "typst-preview.nvim";
|
||||
rev = "87db18b8d19c8b0eed399f52e4c527ce5afe4817";
|
||||
hash = "sha256-EUYiHzDWJQM9Guk6ZM5GWE/etB+GHM48myRg/BPtOV0=";
|
||||
tag = "v1.5.0";
|
||||
hash = "sha256-UTugVfydwGTmf5RomQ0R72Yf6fSz8gGeY/fg51qW454=";
|
||||
};
|
||||
meta.homepage = "https://github.com/chomosuke/typst-preview.nvim/";
|
||||
meta.license = getLicenseFromSpdxId "GPL-3.0-only";
|
||||
@@ -18770,12 +18784,12 @@ final: prev: {
|
||||
|
||||
vague-nvim = buildVimPlugin {
|
||||
pname = "vague.nvim";
|
||||
version = "2.1.3";
|
||||
version = "2.1.4";
|
||||
src = fetchFromGitHub {
|
||||
owner = "vague-theme";
|
||||
repo = "vague.nvim";
|
||||
tag = "v2.1.3";
|
||||
hash = "sha256-ULBLMmJQe93N3uOPx6h8wif+38g0OSC7haklfVJyZdA=";
|
||||
tag = "v2.1.4";
|
||||
hash = "sha256-57dHWOUPFIyFdLEs9RDv0cateLRc8XAqT4TmDUSQyV4=";
|
||||
};
|
||||
meta.homepage = "https://github.com/vague-theme/vague.nvim/";
|
||||
meta.license = getLicenseFromSpdxId "MIT";
|
||||
@@ -18826,12 +18840,12 @@ final: prev: {
|
||||
|
||||
vifm-vim = buildVimPlugin {
|
||||
pname = "vifm.vim";
|
||||
version = "0.14-unstable-2026-06-07";
|
||||
version = "0.14-unstable-2026-07-12";
|
||||
src = fetchFromGitHub {
|
||||
owner = "vifm";
|
||||
repo = "vifm.vim";
|
||||
rev = "6bffbab9c448f2814217ea2f7f982ad73b8fa718";
|
||||
hash = "sha256-/8lN8y20+g9pWzBrXgVArgZQq0CfXyLGRVDpweDmguE=";
|
||||
rev = "9102ad4198c4f3adeef4b039c042866eb9345cdd";
|
||||
hash = "sha256-BLI7TEtSfXG1Md8lBnejJ3vUuXh3LJyZH6PJGHMoCuI=";
|
||||
};
|
||||
meta.homepage = "https://github.com/vifm/vifm.vim/";
|
||||
meta.license = unfree;
|
||||
@@ -20814,12 +20828,12 @@ final: prev: {
|
||||
|
||||
vim-flog = buildVimPlugin {
|
||||
pname = "vim-flog";
|
||||
version = "3.0.0-unstable-2025-03-19";
|
||||
version = "3.0.0-unstable-2026-07-12";
|
||||
src = fetchFromGitHub {
|
||||
owner = "rbong";
|
||||
repo = "vim-flog";
|
||||
rev = "665b16ac8915f746bc43c9572b4581a5e9047216";
|
||||
hash = "sha256-x8fUmcuBLEQwZD+m7gEanpPppukRa6NoalNehY/2JuM=";
|
||||
rev = "c8a573b5a829d0a3ed1b72c87dd62d832b665e87";
|
||||
hash = "sha256-BKnp7LKONUT/BRu7kS8Yvmj7xcFgrTWxHtz2wyAhtYg=";
|
||||
};
|
||||
meta.homepage = "https://github.com/rbong/vim-flog/";
|
||||
meta.license = unfree;
|
||||
@@ -21543,12 +21557,12 @@ final: prev: {
|
||||
|
||||
vim-illuminate = buildVimPlugin {
|
||||
pname = "vim-illuminate";
|
||||
version = "0-unstable-2026-07-03";
|
||||
version = "0-unstable-2026-07-11";
|
||||
src = fetchFromGitHub {
|
||||
owner = "RRethy";
|
||||
repo = "vim-illuminate";
|
||||
rev = "8629e6b2dfa8c66677b9d489eb02480cbcfa9599";
|
||||
hash = "sha256-lvcm3OA1jYmwhyD9yLYT829s70jGBgEPEgfenlGSJnY=";
|
||||
rev = "91313e598ca62e110bc71535c49069b66b9883c9";
|
||||
hash = "sha256-3HM1aqFasEWXHaLQbJnax6Spw71TVd23BjsmH8jdTtQ=";
|
||||
};
|
||||
meta.homepage = "https://github.com/RRethy/vim-illuminate/";
|
||||
meta.license = getLicenseFromSpdxId "MIT";
|
||||
@@ -21894,12 +21908,12 @@ final: prev: {
|
||||
|
||||
vim-just = buildVimPlugin {
|
||||
pname = "vim-just";
|
||||
version = "0-unstable-2026-06-12";
|
||||
version = "0-unstable-2026-07-11";
|
||||
src = fetchFromGitHub {
|
||||
owner = "NoahTheDuke";
|
||||
repo = "vim-just";
|
||||
rev = "49f318424ed17fb8d49122daa39820fd6a2880f5";
|
||||
hash = "sha256-r/YS0LFio0BNTCUh0nRrAndUfcJgYio+ADCoqq8NH8U=";
|
||||
rev = "b3301b091c730061a6da1f9fab670eece6af187c";
|
||||
hash = "sha256-ZcrnrD8ZHb76U1SrjEGlDLSr54WbtAyqjeooj8y0tug=";
|
||||
};
|
||||
meta.homepage = "https://github.com/NoahTheDuke/vim-just/";
|
||||
meta.license = getLicenseFromSpdxId "MIT";
|
||||
@@ -22202,12 +22216,12 @@ final: prev: {
|
||||
|
||||
vim-lsp-settings = buildVimPlugin {
|
||||
pname = "vim-lsp-settings";
|
||||
version = "0.0.1-unstable-2026-06-11";
|
||||
version = "0.0.1-unstable-2026-07-11";
|
||||
src = fetchFromGitHub {
|
||||
owner = "mattn";
|
||||
repo = "vim-lsp-settings";
|
||||
rev = "bffb50ffa688e651a3d4ad827c90b887d5c67200";
|
||||
hash = "sha256-4AzLUvDTv8stTk2oKvjXetinK5YGx636TwP9yKdluZs=";
|
||||
rev = "1b1803c4ae35ef8fecaaea1e6580ee700278804f";
|
||||
hash = "sha256-kGQZWrg6tf5j/iHfTIKiQC/JZJRoKbKxMYzfhERvN+8=";
|
||||
};
|
||||
meta.homepage = "https://github.com/mattn/vim-lsp-settings/";
|
||||
meta.license = getLicenseFromSpdxId "MIT";
|
||||
@@ -25098,12 +25112,12 @@ final: prev: {
|
||||
|
||||
vimade = buildVimPlugin {
|
||||
pname = "vimade";
|
||||
version = "2.5.1-unstable-2026-05-17";
|
||||
version = "2.5.1-unstable-2026-07-16";
|
||||
src = fetchFromGitHub {
|
||||
owner = "TaDaa";
|
||||
repo = "vimade";
|
||||
rev = "a5323f4930e3f1f48c0329e50bd218ba61577aaf";
|
||||
hash = "sha256-sBCZ/EEuGoqCBSg3Jh1o05sSuAJNOdortEB7b4sR2Z4=";
|
||||
rev = "3d3d2db7ecd43c0181b20fede11d26f090dbc0d9";
|
||||
hash = "sha256-dR+h9pPglZmpOsrmOUJpwVDcx5m+RqeNMjsoWcGhMsQ=";
|
||||
};
|
||||
meta.homepage = "https://github.com/TaDaa/vimade/";
|
||||
meta.license = getLicenseFromSpdxId "Apache-2.0";
|
||||
@@ -25799,12 +25813,12 @@ final: prev: {
|
||||
|
||||
y9nika-nvim = buildVimPlugin {
|
||||
pname = "y9nika.nvim";
|
||||
version = "0-unstable-2026-05-26";
|
||||
version = "0-unstable-2026-07-11";
|
||||
src = fetchFromGitHub {
|
||||
owner = "y9san9";
|
||||
repo = "y9nika.nvim";
|
||||
rev = "0fc35319498d8e4509601546f4efb423026e53a1";
|
||||
hash = "sha256-0S2+9L1gW6Rbh1lUP+EGJ0AGIUnNAiTlrGAEJrbm7rc=";
|
||||
rev = "18827266802e8e105c724c72a84c2c59beb5d90f";
|
||||
hash = "sha256-CzEqiuag+4RKOCjM4P2qp3ux9LMcRpQNA8t9r8RzXRc=";
|
||||
};
|
||||
meta.homepage = "https://github.com/y9san9/y9nika.nvim/";
|
||||
meta.license = getLicenseFromSpdxId "MIT";
|
||||
@@ -26053,11 +26067,11 @@ final: prev: {
|
||||
|
||||
zig-vim = buildVimPlugin {
|
||||
pname = "zig.vim";
|
||||
version = "0-unstable-2026-07-08";
|
||||
version = "0-unstable-2026-07-12";
|
||||
src = fetchgit {
|
||||
url = "https://codeberg.org/ziglang/zig.vim/";
|
||||
rev = "71f3454efc5cf781aba507f709b921993d096731";
|
||||
hash = "sha256-oiZv49qsZIHfB+OtxCYwC+CzpI1cJnEdyhDMZS3DGO8=";
|
||||
rev = "1ba233de1f93ae7cf5c0903541e6ad422207b089";
|
||||
hash = "sha256-rbzX8wJKczk/dKpjPnNouf/LhpFmN9/zRNzEc0QhHm0=";
|
||||
};
|
||||
meta.homepage = "https://codeberg.org/ziglang/zig.vim/";
|
||||
meta.license = unfree;
|
||||
|
||||
@@ -14,7 +14,6 @@ let
|
||||
codeiumHashes = {
|
||||
x86_64-linux = "sha256-IeNK7UQtOhqC/eQv7MAya4jB1WIGykSR7IgutZatmHM=";
|
||||
aarch64-linux = "sha256-ujTFki/3V79El2WCkG0PJhbaMT0knC9mrS9E7Uv9HD4=";
|
||||
x86_64-darwin = "sha256-r2KloEQsUku9sk8h76kwyQuMTHcq/vwfTSK2dkiXDzE=";
|
||||
aarch64-darwin = "sha256-1jNH0Up8mAahDgvPF6g42LV+RVDVsPqDM54lE2KYY48=";
|
||||
};
|
||||
|
||||
@@ -30,7 +29,6 @@ let
|
||||
{
|
||||
x86_64-linux = "linux_x64";
|
||||
aarch64-linux = "linux_arm";
|
||||
x86_64-darwin = "macos_x64";
|
||||
aarch64-darwin = "macos_arm";
|
||||
}
|
||||
.${system} or throwSystem;
|
||||
|
||||
@@ -3098,6 +3098,10 @@ assertNoAdditions {
|
||||
dependencies = [ self.nui-nvim ];
|
||||
};
|
||||
|
||||
none-ls-extras-nvim = super.none-ls-extras-nvim.overrideAttrs {
|
||||
dependencies = [ self.none-ls-nvim ];
|
||||
};
|
||||
|
||||
none-ls-nvim = super.none-ls-nvim.overrideAttrs {
|
||||
dependencies = [ self.plenary-nvim ];
|
||||
};
|
||||
|
||||
@@ -865,6 +865,7 @@ https://github.com/aktersnurra/no-clown-fiesta.nvim/,,
|
||||
https://github.com/shortcuts/no-neck-pain.nvim/,,
|
||||
https://github.com/kartikp10/noctis.nvim/,,
|
||||
https://github.com/folke/noice.nvim/,,
|
||||
https://github.com/nvimtools/none-ls-extras.nvim/,,
|
||||
https://github.com/nvimtools/none-ls.nvim/,,
|
||||
https://github.com/nordtheme/vim/,,nord-vim
|
||||
https://github.com/shaunsingh/nord.nvim/,,
|
||||
|
||||
@@ -21,26 +21,22 @@ vscode-utils.buildVscodeMarketplaceExtension (finalAttrs: {
|
||||
sources = {
|
||||
"x86_64-linux" = {
|
||||
arch = "linux-x64";
|
||||
hash = "sha256-QxZa6ugaMC7otLQmDZU54Fv3OGMNYO5iyjqjCLDNdbI=";
|
||||
hash = "sha256-pPgl7MTzkBqZ/KatgAme7F6w873GLxZ1ZTYfkXzD4kw=";
|
||||
};
|
||||
"aarch64-linux" = {
|
||||
arch = "linux-arm64";
|
||||
hash = "sha256-lgE5dld8lvt/dyGVNjR1ZiV2qtBu9pMZayNe5dBfHo0=";
|
||||
};
|
||||
"x86_64-darwin" = {
|
||||
arch = "darwin-x64";
|
||||
hash = "sha256-AnqO7aZ3uybYnAHYCi5ppZ/5xOuiTqs+75TflN7bVow=";
|
||||
hash = "sha256-gnaECK1yMNatDn/ZJ6od8wBQYMlJJ/Q49Z+Ur4SxWU8=";
|
||||
};
|
||||
"aarch64-darwin" = {
|
||||
arch = "darwin-arm64";
|
||||
hash = "sha256-KKuUXjfIsngnKrSLTMYNzb6XVZkJszUwIihCGHQJ0gU=";
|
||||
hash = "sha256-g0DEP2f+ooEgYz8TFUYTMoVV83HGR2eK2dL5MWa92F8=";
|
||||
};
|
||||
};
|
||||
in
|
||||
{
|
||||
name = "claude-code";
|
||||
publisher = "anthropic";
|
||||
version = "2.1.207";
|
||||
version = "2.1.212";
|
||||
}
|
||||
// sources.${stdenvNoCC.hostPlatform.system}
|
||||
or (throw "Unsupported system ${stdenvNoCC.hostPlatform.system}");
|
||||
@@ -60,7 +56,6 @@ vscode-utils.buildVscodeMarketplaceExtension (finalAttrs: {
|
||||
platforms = [
|
||||
"x86_64-linux"
|
||||
"aarch64-linux"
|
||||
"x86_64-darwin"
|
||||
"aarch64-darwin"
|
||||
];
|
||||
};
|
||||
|
||||
@@ -14,10 +14,6 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
arch = "linux-x64";
|
||||
hash = "sha256-lhDt8XEF90y4pj8RLUZgfZNmHkV1XlmHsYuT6sGJMRc=";
|
||||
};
|
||||
"x86_64-darwin" = {
|
||||
arch = "darwin-x64";
|
||||
hash = "sha256-SqFRn5FVQ+LcpmYT7/AIdIKTOxbapaKvPi+I360dVW8=";
|
||||
};
|
||||
"aarch64-linux" = {
|
||||
arch = "linux-arm64";
|
||||
hash = "sha256-iuYVCG4YWPFI8o4GmuNjkbXvzJsAre0gSSEWq6CUk2E=";
|
||||
@@ -57,7 +53,6 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
"aarch64-linux"
|
||||
"aarch64-darwin"
|
||||
"x86_64-linux"
|
||||
"x86_64-darwin"
|
||||
];
|
||||
maintainers = [ lib.maintainers.azd325 ];
|
||||
};
|
||||
|
||||
@@ -13,10 +13,6 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
arch = "linux-x64";
|
||||
hash = "sha256-4GiTNT+UPdTth9VDhHTXfqhQ5gM6vfLAaU5Cy3VMTCI=";
|
||||
};
|
||||
"x86_64-darwin" = {
|
||||
arch = "darwin-x64";
|
||||
hash = "sha256-XJfDXWYpxYV5YHIBINqNJdyVho7Xd9OGMu11WE0LENM=";
|
||||
};
|
||||
"aarch64-linux" = {
|
||||
arch = "linux-arm64";
|
||||
hash = "sha256-QngCharrjiDKrY7RgWtKzIJxjXazuRvpuHVUAxknWfA=";
|
||||
@@ -44,7 +40,6 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
maintainers = with lib.maintainers; [ flacks ];
|
||||
platforms = [
|
||||
"x86_64-linux"
|
||||
"x86_64-darwin"
|
||||
"aarch64-darwin"
|
||||
"aarch64-linux"
|
||||
];
|
||||
|
||||
@@ -1174,8 +1174,8 @@ let
|
||||
mktplcRef = {
|
||||
publisher = "DanielSanMedium";
|
||||
name = "dscodegpt";
|
||||
version = "3.23.1";
|
||||
hash = "sha256-B97cImVKnholhZV0ZBru/gpeVSaTHOFfQywwmjk+kq8=";
|
||||
version = "3.24.12";
|
||||
hash = "sha256-2vpFCxF65Y/VfyTHDO0wLAe0+m/lc0+iloEI//FdaQg=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/DanielSanMedium.dscodegpt/changelog";
|
||||
@@ -1226,8 +1226,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "databricks";
|
||||
publisher = "databricks";
|
||||
version = "2.12.1";
|
||||
hash = "sha256-GKm3rZMvU/5Ii01GjUg7rE15TnOtDTh0LwkDVsuSLfY=";
|
||||
version = "2.12.3";
|
||||
hash = "sha256-/hFBw6STQG4zycS44em1DlaQSpKGP4w7YlH+fu/cHlA=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/databricks.databricks/changelog";
|
||||
@@ -1760,8 +1760,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "foam-vscode";
|
||||
publisher = "foam";
|
||||
version = "0.44.1";
|
||||
hash = "sha256-OH4i4cGh/ivHQNAI55FHjM9ZjnhMaJSnsuQUnxub9/g=";
|
||||
version = "0.44.2";
|
||||
hash = "sha256-jz1j8KzD5PDZ+P5V7yLo1BEmcW+q+D2nYKzYEf7Sg2w=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/foam.foam-vscode/changelog";
|
||||
@@ -2015,8 +2015,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "gitlab-workflow";
|
||||
publisher = "gitlab";
|
||||
version = "6.84.2";
|
||||
hash = "sha256-UBoZ6DxT5d7zeTycgmuLomzoVcB7iAnflfxAup6QslI=";
|
||||
version = "6.85.3";
|
||||
hash = "sha256-EsQ+95Wo/5F9mEMQ7X36vBgUWlsz5BCOm+7QrGHuepc=";
|
||||
};
|
||||
meta = {
|
||||
description = "GitLab extension for Visual Studio Code";
|
||||
@@ -2592,8 +2592,8 @@ let
|
||||
mktplcRef = {
|
||||
publisher = "jnoortheen";
|
||||
name = "nix-ide";
|
||||
version = "0.5.9";
|
||||
hash = "sha256-hPOcp6Yksgfu1+In21/gJ3MthV8JUV5WaRpYHvo5GGk=";
|
||||
version = "0.5.10";
|
||||
hash = "sha256-5rNqQRFLryzeIezUiqgvSY8Vz5n48367RHQrFDxpoD8=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/jnoortheen.nix-ide/changelog";
|
||||
@@ -3190,10 +3190,6 @@ let
|
||||
arch = "linux-x64";
|
||||
hash = "sha256-pmA7BNwyHiaU93j61/MyrBV5kH0DlW+7BA6HNlKGnso=";
|
||||
};
|
||||
"x86_64-darwin" = {
|
||||
arch = "darwin-x64";
|
||||
hash = "sha256-E2KRzjIxLFmwArzEKittjejacrCOFFNNzphWw8v5CpE=";
|
||||
};
|
||||
"aarch64-linux" = {
|
||||
arch = "linux-arm64";
|
||||
hash = "sha256-pnQP1OKr3NJgUuXzO1InYqGA49OuMFn2iEf8wpl4PqM=";
|
||||
@@ -3224,7 +3220,6 @@ let
|
||||
maintainers = [ lib.maintainers.magnouvean ];
|
||||
platforms = [
|
||||
"x86_64-linux"
|
||||
"x86_64-darwin"
|
||||
"aarch64-darwin"
|
||||
"aarch64-linux"
|
||||
];
|
||||
@@ -4556,8 +4551,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "svelte-vscode";
|
||||
publisher = "svelte";
|
||||
version = "110.2.1";
|
||||
hash = "sha256-NcidslqM4AVrobOaxW1EBpMoBCTn2Bej86phIVU2psc=";
|
||||
version = "110.3.0";
|
||||
hash = "sha256-vVLnjFOpOmfmkwP0Yz7zONrBgpNDFfFZ0TAAicxdZ64=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://github.com/sveltejs/language-tools/releases";
|
||||
@@ -4831,8 +4826,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "opa";
|
||||
publisher = "tsandall";
|
||||
version = "0.23.0";
|
||||
hash = "sha256-xya4Kxjc/uR4LFTZ5fAVOa0/cyHy8XHZkkapmODyMK4=";
|
||||
version = "0.24.1";
|
||||
hash = "sha256-wNlZM9/2K32W4vYPKzLiBCTqhV+SqgZzXGRxKoHoIaM=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://github.com/open-policy-agent/vscode-opa/blob/master/CHANGELOG.md";
|
||||
@@ -5118,8 +5113,8 @@ let
|
||||
mktplcRef = {
|
||||
name = "vscode-gradle";
|
||||
publisher = "vscjava";
|
||||
version = "3.17.3";
|
||||
hash = "sha256-heFcGOe10r7y23xyFc/nFKk/nsrX4wc5fT9e4GKGhW0=";
|
||||
version = "3.18.0";
|
||||
hash = "sha256-ybMejIJER9HHVh1z+tazgvQ0UIa8eKoJBb7JOLU1Kpw=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -10,10 +10,6 @@ let
|
||||
hash = "sha256-jfjd2V7IJ4GQlz/pXmrY/LlBjQ2qtlsQV4ZRD8RiWTg=";
|
||||
arch = "linux-x64";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
hash = "sha256-aOFoTLVaaMFsdGoWV0OC31/nmOHXUhr2Y8K4SWcNil8=";
|
||||
arch = "darwin-x64";
|
||||
};
|
||||
aarch64-linux = {
|
||||
hash = "sha256-ugluaghNNZ/VrQORVIhc0Fuv3rHo++LO3Uwg2ujmsQc=";
|
||||
arch = "linux-arm64";
|
||||
|
||||
@@ -45,7 +45,6 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
platforms = [
|
||||
"x86_64-linux"
|
||||
"aarch64-linux"
|
||||
"x86_64-darwin"
|
||||
"aarch64-darwin"
|
||||
];
|
||||
};
|
||||
|
||||
@@ -14,10 +14,6 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
arch = "linux-x64";
|
||||
hash = "sha256-uPmJyEq7X6uJzE1M5Xywax1mrnTcg6jOb9MlpKZ0WRk=";
|
||||
};
|
||||
"x86_64-darwin" = {
|
||||
arch = "darwin-x64";
|
||||
hash = "sha256-oEVt3VbRUPD4tfQs0EU7RX6671fCJiMi38wF+76RzZI=";
|
||||
};
|
||||
"aarch64-linux" = {
|
||||
arch = "linux-arm64";
|
||||
hash = "sha256-b46f0f99rjBivewC9jUbAFiKK+DS1XKv+AynUlKHliw=";
|
||||
@@ -52,7 +48,6 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
"aarch64-linux"
|
||||
"aarch64-darwin"
|
||||
"x86_64-linux"
|
||||
"x86_64-darwin"
|
||||
];
|
||||
maintainers = with lib.maintainers; [ xiaoxiangmoe ];
|
||||
};
|
||||
|
||||
@@ -4,8 +4,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "mongodb-vscode";
|
||||
publisher = "mongodb";
|
||||
version = "1.16.0";
|
||||
hash = "sha256-cnKYDrExL3yDJkEofWPglzMa50KDMgKQxsM5zK1RaBs=";
|
||||
version = "1.16.1";
|
||||
hash = "sha256-UIxXrJpH/Ix4Ev6veumcT/9h1SgZgEXHjnwkOH9ch44=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -22,10 +22,6 @@ let
|
||||
arch = "linux-arm64";
|
||||
hash = "sha256-1zz9xrMALIOXzMpArWSwO12WmRE+0ldbIwUFH1G2GQI=";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
arch = "darwin-x64";
|
||||
hash = "sha256-3PoSbp8M2X4bhSQyxvNC7jtNDVNEuEKeYRZQMFOmbtQ=";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
arch = "darwin-arm64";
|
||||
hash = "sha256-F4CsyiX46SpjilJNV+qYps1JAw09pVruLmW+muN9/B4=";
|
||||
@@ -138,7 +134,6 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
platforms = [
|
||||
"x86_64-linux"
|
||||
"aarch64-linux"
|
||||
"x86_64-darwin"
|
||||
"aarch64-darwin"
|
||||
];
|
||||
};
|
||||
|
||||
@@ -24,10 +24,6 @@ let
|
||||
arch = "linux-arm64";
|
||||
hash = "sha256-EV3745OXbwrRmc8P5e13DZbomyJGcYQUF07WflRWU1Q=";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
arch = "darwin-x64";
|
||||
hash = "sha256-i2cALeaSXfwIdfXNeWfND99nFYIiOFwsxbqU7/Effx8=";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
arch = "darwin-arm64";
|
||||
hash = "sha256-KCIkjBmYZPiuFmQ3/aDycARYIHPyDTmMkoGcuG5DQX8=";
|
||||
@@ -159,7 +155,6 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
platforms = [
|
||||
"x86_64-linux"
|
||||
"aarch64-linux"
|
||||
"x86_64-darwin"
|
||||
"aarch64-darwin"
|
||||
];
|
||||
};
|
||||
|
||||
@@ -18,10 +18,6 @@ let
|
||||
hash = "sha256-HQfmDV6rJX6l1pGybe8//2QrTSwE+rlEJOi4/iW69lY=";
|
||||
arch = "linux-x64";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
hash = "sha256-tAZyt2fwB/GOhffY5lhHJTmbXG8UloynPtjoMtWRHok=";
|
||||
arch = "darwin-x64";
|
||||
};
|
||||
aarch64-linux = {
|
||||
hash = "sha256-v7fatW/LMJ8CeSRrE/5b7dLqOrhNhwzUySUxtAMuBUE=";
|
||||
arch = "linux-arm64";
|
||||
|
||||
@@ -16,10 +16,6 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
arch = "linux-x64";
|
||||
hash = "sha256-dZwOBehoYEqaYskvcPB55IKnG1CMToioyUJXlndqorA=";
|
||||
};
|
||||
"x86_64-darwin" = {
|
||||
arch = "darwin-x64";
|
||||
hash = "sha256-b6LobvVngC0TFuWTC9JBQrECkoX7ewLNCpCROkXHk20=";
|
||||
};
|
||||
"aarch64-linux" = {
|
||||
arch = "linux-arm64";
|
||||
hash = "sha256-/EaOfoubfq1ufwB7TTQ2hqmh1ZJiZ1+B6QeYu3MoFPI=";
|
||||
@@ -68,7 +64,6 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
license = lib.licenses.unfree;
|
||||
platforms = [
|
||||
"x86_64-linux"
|
||||
"x86_64-darwin"
|
||||
"aarch64-linux"
|
||||
"aarch64-darwin"
|
||||
];
|
||||
|
||||
@@ -13,10 +13,6 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
arch = "linux-x64";
|
||||
hash = "sha256-cP/oFn19CZ/G3kjdHNZGqXvoDE1qUtg6xrg/2MO14Lo=";
|
||||
};
|
||||
"x86_64-darwin" = {
|
||||
arch = "darwin-x64";
|
||||
hash = "sha256-wtk8SasxXEQ3pCJpVTWR8wcY/bNaIZmImbAtrFWYWOo=";
|
||||
};
|
||||
"aarch64-darwin" = {
|
||||
arch = "darwin-arm64";
|
||||
hash = "sha256-XYdwVoDqK+88ZYUm6APyamFNx6XlYjy0R4CIhSMuRmU=";
|
||||
@@ -42,7 +38,6 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
platforms = [
|
||||
"x86_64-linux"
|
||||
"aarch64-darwin"
|
||||
"x86_64-darwin"
|
||||
];
|
||||
};
|
||||
}
|
||||
|
||||
@@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
mktplcRef = {
|
||||
name = "claude-dev";
|
||||
publisher = "saoudrizwan";
|
||||
version = "3.89.2";
|
||||
hash = "sha256-lDt/xn1PFs0UDg0rOOun8Bl/FTXSjvQ//ETkoHFypAM=";
|
||||
version = "4.0.8";
|
||||
hash = "sha256-qSlz2wXQwpO1Wi9P40hVm+ACZ+VfCiV9LF3lnOkMoXA=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
||||
@@ -15,10 +15,6 @@ vscode-utils.buildVscodeMarketplaceExtension (finalAttrs: {
|
||||
arch = "linux-x64";
|
||||
hash = "sha256-Oz4Buraof4yXIxGeKXIsDkvEQQ0Gzf/b5mdses1nHlo=";
|
||||
};
|
||||
"x86_64-darwin" = {
|
||||
arch = "darwin-x64";
|
||||
hash = "sha256-Iqe4KZXQHenKAypXK/qzG2BCXbk2cZ0i/0xhWhlfQxo=";
|
||||
};
|
||||
"aarch64-darwin" = {
|
||||
arch = "darwin-arm64";
|
||||
hash = "sha256-vMDB5zmdBNt3R5AkeuCYhxzW/rSGwM+wtU5K4v3ZU/U=";
|
||||
|
||||
@@ -20,10 +20,6 @@ let
|
||||
arch = "linux-arm64";
|
||||
hash = "sha256-Z3cRojI4mCCS2t3aLojgImULQOobq5liDwoeHuzKEhY=";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
arch = "darwin-x64";
|
||||
hash = "sha256-Th0cseTJk+CD3BO/99t0VMD7zcF6nxAfmHFhfN8j5sw=";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
arch = "darwin-arm64";
|
||||
hash = "sha256-rHgMl71YCs9ea0nFnx+E2U8isL4zQzIvvE9tgxM7IiA=";
|
||||
@@ -66,7 +62,6 @@ vscode-utils.buildVscodeMarketplaceExtension (finalAttrs: {
|
||||
"aarch64-linux"
|
||||
"aarch64-darwin"
|
||||
"x86_64-linux"
|
||||
"x86_64-darwin"
|
||||
];
|
||||
maintainers = [ ];
|
||||
};
|
||||
|
||||
@@ -10,10 +10,6 @@ let
|
||||
hash = "sha256-DWrKvjWpUYvyqgZCShqwBKw33MHW31cxb4ERV65O+uc=";
|
||||
arch = "linux-x64";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
hash = "sha256-CYDutYtU0+AAn6PYO/EQ/Suv8BNuMtvePpFdKRtiqAs=";
|
||||
arch = "darwin-x64";
|
||||
};
|
||||
aarch64-linux = {
|
||||
hash = "sha256-iFHeZiTubXA/t2Gib9hP42d7yjq/WRyywp+l8VhGfmo=";
|
||||
arch = "linux-arm64";
|
||||
|
||||
@@ -180,7 +180,7 @@ stdenv.mkDerivation {
|
||||
meta = {
|
||||
description = "Native debugger extension for VSCode based on LLDB";
|
||||
homepage = "https://github.com/vadimcn/vscode-lldb";
|
||||
license = [ lib.licenses.mit ];
|
||||
license = lib.licenses.mit;
|
||||
maintainers = [ ];
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
|
||||
@@ -15,10 +15,6 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
arch = "linux-x64";
|
||||
hash = "sha256-htZGjy7ZnQLGZUncokGaGHyLpvPM5jzWUvCdnfN1vbM=";
|
||||
};
|
||||
"x86_64-darwin" = {
|
||||
arch = "darwin-x64";
|
||||
hash = "sha256-OFdrXunh63xBZW/HwDDjj17TTiOLGY1Enb6ARxNc4bI=";
|
||||
};
|
||||
"aarch64-linux" = {
|
||||
arch = "linux-arm64";
|
||||
hash = "sha256-rgeNJbl6G2yKAWYW7NarQwVLmd3oZ4YTOVeCUat6ZqQ=";
|
||||
@@ -56,7 +52,6 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
||||
"aarch64-linux"
|
||||
"aarch64-darwin"
|
||||
"x86_64-linux"
|
||||
"x86_64-darwin"
|
||||
];
|
||||
maintainers = with lib.maintainers; [ sandarukasa ];
|
||||
};
|
||||
|
||||
@@ -8,8 +8,8 @@ vscode-utils.buildVscodeMarketplaceExtension (finalAttrs: {
|
||||
mktplcRef = {
|
||||
publisher = "yoshi47";
|
||||
name = "selection-path-copier";
|
||||
version = "1.5.0";
|
||||
hash = "sha256-ip8dsU8B2vghINPSftvfC5OtM0bjIP0V3JAMt5skmdg=";
|
||||
version = "1.6.0";
|
||||
hash = "sha256-KnV9WariqK3GMjoQARtamxriBkL0Pi9y7+fhfwObCWE=";
|
||||
};
|
||||
meta = {
|
||||
description = "Copy file paths with line numbers, code snippets, and GitHub permalinks in multiple formats";
|
||||
|
||||
@@ -429,7 +429,6 @@ stdenv.mkDerivation (
|
||||
# see https://www.npmjs.com/package/@vscode/ripgrep-universal?activeTab=code
|
||||
ripgrepSystem =
|
||||
{
|
||||
x86_64-darwin = "darwin-x64";
|
||||
aarch64-darwin = "darwin-arm64";
|
||||
armv7l-linux = "linux-arm";
|
||||
aarch64-linux = "linux-arm64";
|
||||
|
||||
@@ -21,8 +21,7 @@ for i in \
|
||||
"aarch64-linux linux-arm64 tar.gz" \
|
||||
"armv7l-linux linux-armhf tar.gz" \
|
||||
"loongarch64-linux linux-loong64 tar.gz" \
|
||||
"aarch64-darwin darwin-arm64 zip" \
|
||||
"x86_64-darwin darwin-x64 zip"; do
|
||||
"aarch64-darwin darwin-arm64 zip"; do
|
||||
set -- $i
|
||||
hash=$(nix --extra-experimental-features nix-command hash convert --hash-algo sha256 --to sri $(nix-prefetch-url "https://github.com/VSCodium/vscodium/releases/download/$latestVersion/VSCodium-$2-$latestVersion.$3"))
|
||||
update-source-version vscodium $latestVersion $hash --system=$1 --ignore-same-version
|
||||
|
||||
@@ -24,7 +24,6 @@ let
|
||||
plat =
|
||||
{
|
||||
x86_64-linux = "linux-x64";
|
||||
x86_64-darwin = "darwin";
|
||||
aarch64-linux = "linux-arm64";
|
||||
aarch64-darwin = "darwin-arm64";
|
||||
armv7l-linux = "linux-armhf";
|
||||
@@ -36,7 +35,6 @@ let
|
||||
hash =
|
||||
{
|
||||
x86_64-linux = "sha256-4G+zZ5HJuvdJXUt9wPWqqCVOfRpgpe5D5sfevAXJYrU=";
|
||||
x86_64-darwin = "sha256-+o+UZwmJMeGyf2n1VZcm0zl4dzuC/0UBV5jyUANKsEQ=";
|
||||
aarch64-linux = "sha256-UEkpGlTV/KZ8Qcw/OBOCNDQHblD7gHHloSzM62FvDnw=";
|
||||
aarch64-darwin = "sha256-IHu9EwW9/oS2FTr/mB7ugMss5Pku3IyslqFYr4riZyk=";
|
||||
armv7l-linux = "sha256-Rfp2H6L7bXXhdxf2yphW9YXDGW1+Ea0nKdyTFS8Y/tU=";
|
||||
@@ -128,7 +126,6 @@ buildVscode {
|
||||
];
|
||||
platforms = [
|
||||
"x86_64-linux"
|
||||
"x86_64-darwin"
|
||||
"aarch64-darwin"
|
||||
"aarch64-linux"
|
||||
"armv7l-linux"
|
||||
|
||||
@@ -15,7 +15,6 @@ let
|
||||
plat =
|
||||
{
|
||||
x86_64-linux = "linux-x64";
|
||||
x86_64-darwin = "darwin-x64";
|
||||
aarch64-linux = "linux-arm64";
|
||||
aarch64-darwin = "darwin-arm64";
|
||||
armv7l-linux = "linux-armhf";
|
||||
@@ -28,7 +27,6 @@ let
|
||||
hash =
|
||||
{
|
||||
x86_64-linux = "sha256-LJsGc11MH6zlcJNfSWjTWPn2Jp9dkjeBPQuCXH1woUM=";
|
||||
x86_64-darwin = "sha256-bC7AfH2eKmmsWIOHifNGKD/kVQCYyuMfU3SUil0DXkM=";
|
||||
aarch64-linux = "sha256-mT5dvw8GOZ0GnZaKRS/TAzQDEEYDOgcj6w6lNLy5kQ0=";
|
||||
aarch64-darwin = "sha256-c8K17XKpRG1ji2mUfoyg2+cRF+qc1KVMYVkaQoUIz7Y=";
|
||||
armv7l-linux = "sha256-91ZHhEUDVoDiRBLwMHVLhzKmb9gWcPBUsVRZVLhCA4M=";
|
||||
@@ -88,7 +86,6 @@ buildVscode rec {
|
||||
mainProgram = "codium";
|
||||
platforms = [
|
||||
"x86_64-linux"
|
||||
"x86_64-darwin"
|
||||
"aarch64-linux"
|
||||
"aarch64-darwin"
|
||||
"armv7l-linux"
|
||||
|
||||
@@ -26,7 +26,7 @@ stdenv.mkDerivation (finalAttrs: {
|
||||
description = "Small and simple terminal editor core that is meant to be extended through a powerful plugin architecture";
|
||||
homepage = "https://your-editor.org/";
|
||||
changelog = "https://github.com/your-editor/yed/blob/${finalAttrs.version}/CHANGELOG.md";
|
||||
license = with lib.licenses; [ mit ];
|
||||
license = lib.licenses.mit;
|
||||
platforms = lib.platforms.unix;
|
||||
mainProgram = "yed";
|
||||
};
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "mednafen-pce-fast";
|
||||
version = "0-unstable-2026-07-03";
|
||||
version = "0-unstable-2026-07-10";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "beetle-pce-fast-libretro";
|
||||
rev = "744a9ffb6120e7531c153aa468f34adb3fab9057";
|
||||
hash = "sha256-n5Mz0a2bIbQEDsX8PZzji58D8L/yFoQVghrMTg7Srd0=";
|
||||
rev = "0bc6c86928343ca4202c5b6ef33fa4387c47fc12";
|
||||
hash = "sha256-TgUueogxf5KZ1S5pt0WiYtoHXWQI81C6QUts1xJClh8=";
|
||||
};
|
||||
|
||||
makefile = "Makefile";
|
||||
|
||||
@@ -20,13 +20,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "dolphin";
|
||||
version = "0-unstable-2026-06-28";
|
||||
version = "0-unstable-2026-07-12";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "dolphin";
|
||||
rev = "894fdda35688f3ac33c680ef6fe17ce965a16bf1";
|
||||
hash = "sha256-Dkvv8EgQjLjyt0muSVF0Cnex/3xUcZXvWTzgUw61Sv0=";
|
||||
rev = "0b766a68cc835775b3216500bb9af2f5d4602b12";
|
||||
hash = "sha256-JaUiDc4/vEWjEXe6H9+i6pft2DTsl5my5wyFmtbjdR0=";
|
||||
fetchSubmodules = true;
|
||||
};
|
||||
|
||||
|
||||
@@ -6,13 +6,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "opera";
|
||||
version = "0-unstable-2026-06-28";
|
||||
version = "0-unstable-2026-07-13";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "opera-libretro";
|
||||
rev = "340f9e9014c292fc47a8844a871a71dafe072b6d";
|
||||
hash = "sha256-geBK8RIlaRcWn4CDzVl3pjK0WOFQcMZl7zFMXE2oZNo=";
|
||||
rev = "1edda8a2a6c6b9ae259d5c7cd7d54dcba9ee7e32";
|
||||
hash = "sha256-dc7xRjFxfSL2q9u1N0QH2j+oPbRGng2Z3U3J484lXiU=";
|
||||
};
|
||||
|
||||
makefile = "Makefile";
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "prboom";
|
||||
version = "0-unstable-2026-07-01";
|
||||
version = "0-unstable-2026-07-07";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "libretro";
|
||||
repo = "libretro-prboom";
|
||||
rev = "141978db577b52cb943641629401776e49ccbbe6";
|
||||
hash = "sha256-USRBq+h2HAoDIdYVd47wGLEnUzJAEOvikuvSNTHpboI=";
|
||||
rev = "31563d6e65faa6b9b7e975754d2062370bba4342";
|
||||
hash = "sha256-eFRzbVTL5ARf650D0ZAEFGNTxjAy1CjBiAhwSQR8vJ4=";
|
||||
};
|
||||
|
||||
makefile = "Makefile";
|
||||
|
||||
@@ -5,13 +5,13 @@
|
||||
}:
|
||||
mkLibretroCore {
|
||||
core = "snes9x";
|
||||
version = "0-unstable-2026-07-05";
|
||||
version = "0-unstable-2026-07-13";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "snes9xgit";
|
||||
repo = "snes9x";
|
||||
rev = "51ef0275df25fc6347d241e3b5325b52b6e96582";
|
||||
hash = "sha256-+f6u8VUHNLI9pb2AFLyEoGQtGzNIkeWS2wvF9PYDIm8=";
|
||||
rev = "b5cc7651f9fc02189cb51b5a43848877db5aec42";
|
||||
hash = "sha256-htwL5m49J+ku7h79Eu4y74LKiHkbL3UE3+LAXE52ZY8=";
|
||||
};
|
||||
|
||||
makefile = "Makefile";
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user