mirror of
https://github.com/NixOS/nixpkgs.git
synced 2025-06-09 19:13:26 +03:00
Compare commits
392 commits
ebd3748a6b
...
6dbd508802
Author | SHA1 | Date | |
---|---|---|---|
![]() |
6dbd508802 | ||
![]() |
21c3235b13 | ||
![]() |
e147acaaad | ||
![]() |
d23143878f | ||
![]() |
4db7e575e6 | ||
![]() |
4be599ad29 | ||
![]() |
3e3afe5174 | ||
![]() |
a6540adec3 | ||
![]() |
9800cc535b | ||
![]() |
c9f4f178dd | ||
![]() |
e77069c4f1 | ||
![]() |
a6dc557dac | ||
![]() |
6f155bc0af | ||
![]() |
d8d5ae4443 | ||
![]() |
748d375bd9 | ||
![]() |
1d2afc0e99 | ||
![]() |
c459c10641 | ||
![]() |
e6f9181ee9 | ||
![]() |
72caf3acb7 | ||
![]() |
2ba6a4f630 | ||
![]() |
dac80a3224 | ||
![]() |
927735a56e | ||
![]() |
caebc39b86 | ||
![]() |
3172e8214a | ||
![]() |
a02164e094 | ||
![]() |
10597363ab | ||
![]() |
fe9d231ab6 | ||
![]() |
3c4d0acfe2 | ||
![]() |
665e4c13be | ||
![]() |
bd23e60931 | ||
![]() |
7243228aef | ||
![]() |
3f1dc43dde | ||
![]() |
11cfe3f84d | ||
![]() |
c45db15d59 | ||
![]() |
e569362598 | ||
![]() |
10606ff13f | ||
![]() |
b943bef615 | ||
![]() |
2772bd1e38 | ||
![]() |
067a39e41a | ||
![]() |
15293a19e7 | ||
![]() |
ba4aba08b3 | ||
![]() |
29b0d553e8 | ||
![]() |
d2efacc2fd | ||
![]() |
f29a5f158b | ||
![]() |
640036c10e | ||
![]() |
703f47030f | ||
![]() |
21391a591d | ||
![]() |
39015087b0 | ||
![]() |
cab37d159e | ||
![]() |
c6729488de | ||
![]() |
d308aa9772 | ||
![]() |
b91b3c8854 | ||
![]() |
c9e79e6d90 | ||
![]() |
668252d1de | ||
![]() |
a367bbb4fb | ||
![]() |
7cd65f04db | ||
![]() |
d159819b37 | ||
![]() |
c2df983c32 | ||
![]() |
be639994fe | ||
![]() |
bf21083aaa | ||
![]() |
9d0f4b82ff | ||
![]() |
d8021655aa | ||
![]() |
2ed6a91d0b | ||
![]() |
37d548a854 | ||
![]() |
38be46557b | ||
![]() |
2745c6cae4 | ||
![]() |
e2847179b2 | ||
![]() |
42b0816136 | ||
![]() |
43a0953528 | ||
![]() |
7940087cdd | ||
![]() |
943d9a6d17 | ||
![]() |
82d0c02bfe | ||
![]() |
8b1db09213 | ||
![]() |
d9214c397b | ||
![]() |
aea50b8d2b | ||
![]() |
d696b6381a | ||
![]() |
2a77f7714f | ||
![]() |
d4ca2c8b43 | ||
![]() |
57c6bf087d | ||
![]() |
c9ae8a1dd1 | ||
![]() |
d313d0e0d3 | ||
![]() |
8eb2c07e2a | ||
![]() |
857c23b52d | ||
![]() |
2b57b7f06a | ||
![]() |
15860e8e0d | ||
![]() |
cb6cff2f86 | ||
![]() |
a2f6ea7977 | ||
![]() |
03246eeb80 | ||
![]() |
ae2870de0b | ||
![]() |
96224a0af9 | ||
![]() |
8dfa992f97 | ||
![]() |
7b36ddd056 | ||
![]() |
b3c8780a17 | ||
![]() |
afcc7caf1e | ||
![]() |
a1292519f0 | ||
![]() |
d2924ae508 | ||
![]() |
65c31ed6c5 | ||
![]() |
ac33783656 | ||
![]() |
b4656359c0 | ||
![]() |
b6a8d0ed37 | ||
![]() |
048d7ffd4c | ||
![]() |
1f15127fdb | ||
![]() |
8e2aa7dae0 | ||
![]() |
86394421cd | ||
![]() |
9019cc426e | ||
![]() |
1da7506394 | ||
![]() |
50b4597bff | ||
![]() |
a1ddc453e4 | ||
![]() |
97e6f9361e | ||
![]() |
8d6c1cfbb4 | ||
![]() |
e03262807c | ||
![]() |
379d141418 | ||
![]() |
20058c63c0 | ||
![]() |
7f3b80155f | ||
![]() |
ae87d463c0 | ||
![]() |
d69b13df8e | ||
![]() |
cbedc5bc02 | ||
![]() |
2a485577f5 | ||
![]() |
85222b24c1 | ||
![]() |
667222f96c | ||
![]() |
4af3ac685d | ||
![]() |
142a07557d | ||
![]() |
5b115ab140 | ||
![]() |
263ef312c2 | ||
![]() |
6d53992b0a | ||
![]() |
1f165e014a | ||
![]() |
bd18ae17b2 | ||
![]() |
1c6586455c | ||
![]() |
f3f3912609 | ||
![]() |
6035388c07 | ||
![]() |
f248d57605 | ||
![]() |
78bb83f7f7 | ||
![]() |
24894ca477 | ||
![]() |
264e9cb928 | ||
![]() |
f4ccda60f5 | ||
![]() |
08160d1d1c | ||
![]() |
872bbf82f7 | ||
![]() |
ba1f2f9d6e | ||
![]() |
a95ff0d2b9 | ||
![]() |
6004e03fa8 | ||
![]() |
ae8daeb5f0 | ||
![]() |
dfa756df12 | ||
![]() |
1867adb235 | ||
![]() |
1e5032d31a | ||
![]() |
ea3943a6a5 | ||
![]() |
1b951d5f0b | ||
![]() |
d6f9c4d2ed | ||
![]() |
4ad7d58513 | ||
![]() |
c80ea7a732 | ||
![]() |
3f8ae669c9 | ||
![]() |
1f8a032588 | ||
![]() |
97376a8512 | ||
![]() |
a685f3ba1e | ||
![]() |
cb742cea3f | ||
![]() |
1f423f1276 | ||
![]() |
669dea4759 | ||
![]() |
c850de6ddc | ||
![]() |
bfc3acf8f3 | ||
![]() |
bab9d01928 | ||
![]() |
367c762439 | ||
![]() |
3f8df124bd | ||
![]() |
5cba3626a0 | ||
![]() |
eb1dd2311f | ||
![]() |
59527f5170 | ||
![]() |
942715cca8 | ||
![]() |
ba171fcce2 | ||
![]() |
364a4d0d44 | ||
![]() |
7b39a05e07 | ||
![]() |
308e77ddac | ||
![]() |
84093de599 | ||
![]() |
e237be9a45 | ||
![]() |
6d9e078ea6 | ||
![]() |
53cbc1a396 | ||
![]() |
0e153293e6 | ||
![]() |
7d88bd4415 | ||
![]() |
6d5dbf6fae | ||
![]() |
07dd7435ee | ||
![]() |
7a56808894 | ||
![]() |
1e6cf3ce4f | ||
![]() |
f485e8390b | ||
![]() |
34aefd5ed3 | ||
![]() |
71c09d9c9a | ||
![]() |
dcce6ae1db | ||
![]() |
d5960b9e03 | ||
![]() |
f811655d3c | ||
![]() |
2a1290b206 | ||
![]() |
e8acefccde | ||
![]() |
7e7cf1ce2f | ||
![]() |
0fb2cd5d83 | ||
![]() |
a969291ab1 | ||
![]() |
d6fea41bd1 | ||
![]() |
7c58a4234d | ||
![]() |
7195a45920 | ||
![]() |
b36d1ebef2 | ||
![]() |
a5df9ceb5f | ||
![]() |
2a247dc60f | ||
![]() |
d6413ba436 | ||
![]() |
4b153aad5d | ||
![]() |
8de0a35cb8 | ||
![]() |
bd062e1a3b | ||
![]() |
b86c8dccd4 | ||
![]() |
afa1d3cadb | ||
![]() |
24d047c6a7 | ||
![]() |
250db240e8 | ||
![]() |
2302f3c9bd | ||
![]() |
d75957a3bb | ||
![]() |
48da8657f7 | ||
![]() |
406c3a3421 | ||
![]() |
fd187d1c2f | ||
![]() |
144b4784fa | ||
![]() |
cf0749d1a0 | ||
![]() |
24b3e369f8 | ||
![]() |
56353fdbc5 | ||
![]() |
c7a62d368d | ||
![]() |
c31d0742c5 | ||
![]() |
1edd461d04 | ||
![]() |
b0afabcc28 | ||
![]() |
cc43028aa6 | ||
![]() |
69407aaed7 | ||
![]() |
a4ff0e3c64 | ||
![]() |
af0a73d45b | ||
![]() |
92e1950eba | ||
![]() |
20eb58b22b | ||
![]() |
94bb902c51 | ||
![]() |
585e6f6de1 | ||
![]() |
d0a93ecbda | ||
![]() |
68b142284d | ||
![]() |
559987a72d | ||
![]() |
dfa2b3813e | ||
![]() |
fffc35b2bb | ||
![]() |
45a2f12478 | ||
![]() |
4e238e4aa8 | ||
![]() |
925fd2a5e1 | ||
![]() |
1ec5ab7f1a | ||
![]() |
65c2df8760 | ||
![]() |
2e501491d6 | ||
![]() |
e2443f7801 | ||
![]() |
8b4e41e5e8 | ||
![]() |
101965187e | ||
![]() |
78aa5d766b | ||
![]() |
458b3d1709 | ||
![]() |
72e9f57328 | ||
![]() |
08d3857923 | ||
![]() |
27c294bd54 | ||
![]() |
e95626ec05 | ||
![]() |
6e25d9885f | ||
![]() |
a1ea6c92fd | ||
![]() |
1619e5a32a | ||
![]() |
90f36a1e98 | ||
![]() |
97568674a3 | ||
![]() |
cf85d813d2 | ||
![]() |
d311c0eaeb | ||
![]() |
18fa2ffd38 | ||
![]() |
9aaef07c4d | ||
![]() |
de9ffff5ea | ||
![]() |
1e73dcda91 | ||
![]() |
24979e200c | ||
![]() |
ef8893744a | ||
![]() |
afdf5811b4 | ||
![]() |
9613b03c32 | ||
![]() |
b91ce21bdb | ||
![]() |
926b5c4e3e | ||
![]() |
eb42260d00 | ||
![]() |
9de5026589 | ||
![]() |
8712db665d | ||
![]() |
7e42236d87 | ||
![]() |
c9519e8299 | ||
![]() |
fc29fe854a | ||
![]() |
042e8accc2 | ||
![]() |
5d647bfcce | ||
![]() |
6f28c8729e | ||
![]() |
f98c76b988 | ||
![]() |
c7c30f47c2 | ||
![]() |
a2ae90d0c7 | ||
![]() |
06847dd80f | ||
![]() |
f81f12278b | ||
![]() |
609a05a994 | ||
![]() |
50318d1775 | ||
![]() |
16ec2ed250 | ||
![]() |
a21e645626 | ||
![]() |
22917c1670 | ||
![]() |
941def2d07 | ||
![]() |
78fdc691d2 | ||
![]() |
909afa8823 | ||
![]() |
b5d0791022 | ||
![]() |
2641ee4e50 | ||
![]() |
01118fbfd4 | ||
![]() |
5d9e81ede1 | ||
![]() |
20be8a92b1 | ||
![]() |
13982535dc | ||
![]() |
7cb01ddd65 | ||
![]() |
ff5ff0f1cb | ||
![]() |
38a446c696 | ||
![]() |
7cbf03f2e1 | ||
![]() |
52e34f99d1 | ||
![]() |
f9162386e9 | ||
![]() |
b3b88065ee | ||
![]() |
5c1955ff14 | ||
![]() |
f13bb84909 | ||
![]() |
1dde4953f1 | ||
![]() |
f7464fcd5c | ||
![]() |
56872245ce | ||
![]() |
ec2b95cf86 | ||
![]() |
8d532014d8 | ||
![]() |
9750d13712 | ||
![]() |
a4f7e10e67 | ||
![]() |
58000825ab | ||
![]() |
0efe0e3771 | ||
![]() |
e7cdaad081 | ||
![]() |
81f4163922 | ||
![]() |
eaf1de36c1 | ||
![]() |
37841184e9 | ||
![]() |
68fb3c059a | ||
![]() |
f7a7614349 | ||
![]() |
39918c58e9 | ||
![]() |
e9e3ad892f | ||
![]() |
6b6a7806b0 | ||
![]() |
dbe80b1e2b | ||
![]() |
273b2638ea | ||
![]() |
9439ec8ec0 | ||
![]() |
f8f584f3a9 | ||
![]() |
ea0eb51409 | ||
![]() |
25936d2e9d | ||
![]() |
ed2cbd0d15 | ||
![]() |
f598182c0b | ||
![]() |
bc69b7dd5d | ||
![]() |
c025fb0d82 | ||
![]() |
ac424fab9a | ||
![]() |
4063560ec7 | ||
![]() |
0944ebab38 | ||
![]() |
8cf7a13f56 | ||
![]() |
96c8709d82 | ||
![]() |
b4ebb630d4 | ||
![]() |
d004e44413 | ||
![]() |
4c3eaa9dae | ||
![]() |
f71ddc3b5a | ||
![]() |
33d0be171f | ||
![]() |
c9d8892370 | ||
![]() |
7a88ea6f89 | ||
![]() |
ce95b2d517 | ||
![]() |
b0c4014634 | ||
![]() |
19c52a36bb | ||
![]() |
0554893842 | ||
![]() |
831133e4d4 | ||
![]() |
07a25d001b | ||
![]() |
e0a01c8277 | ||
![]() |
54d4f60511 | ||
![]() |
541fae181e | ||
![]() |
389f2d938c | ||
![]() |
f56e35aec6 | ||
![]() |
12673a5119 | ||
![]() |
71ecefb828 | ||
![]() |
003e93ccf2 | ||
![]() |
5010d90b09 | ||
![]() |
c811891d24 | ||
![]() |
78ba1b2de1 | ||
![]() |
c3a5170638 | ||
![]() |
6774ccc0a8 | ||
![]() |
7fba5a1d47 | ||
![]() |
8860b04024 | ||
![]() |
193ede2ccf | ||
![]() |
ebd6d1eaa3 | ||
![]() |
6104638321 | ||
![]() |
a8414c8c84 | ||
![]() |
42bf3489df | ||
![]() |
129e9e7f69 | ||
![]() |
1462abddea | ||
![]() |
586abb0c07 | ||
![]() |
e894c5eae5 | ||
![]() |
1a031647f7 | ||
![]() |
f9460c7b56 | ||
![]() |
8487c267b5 | ||
![]() |
f9ceab7267 | ||
![]() |
c73bd2a75c | ||
![]() |
f3422b9f78 | ||
![]() |
d18d7c6bf8 | ||
![]() |
dd00f45c40 | ||
![]() |
e54fd3c32a | ||
![]() |
f194829964 | ||
![]() |
73dd253079 | ||
![]() |
554ede7eef | ||
![]() |
2f51cb1f8f | ||
![]() |
597012fb70 | ||
![]() |
d24d2fc0d9 | ||
![]() |
2844748c4b | ||
![]() |
c4f052c08a | ||
![]() |
3e76f46fb9 | ||
![]() |
1e2df291f1 | ||
![]() |
d3e0b0e297 | ||
![]() |
34cd759670 | ||
![]() |
409d7cdfa9 | ||
![]() |
9ad8aafad2 |
953 changed files with 6781 additions and 4811 deletions
|
@ -1259,6 +1259,13 @@ as many tests should be enabled as possible. Failing tests can still be
|
|||
a good indication that the package is not in a valid state.
|
||||
:::
|
||||
|
||||
::: {.note}
|
||||
We only want to test the functionality of a package. In particular, we are not
|
||||
interested in coverage, formatting, and type checking. If pytest fails with
|
||||
`unrecognized arguments: --cov`, add `pytest-cov-stub` to `nativeCheckInputs`
|
||||
rather than `pytest-cov`.
|
||||
:::
|
||||
|
||||
#### Using pytest {#using-pytest}
|
||||
|
||||
Pytest is the most common test runner for python repositories. A trivial
|
||||
|
|
|
@ -599,6 +599,8 @@ Additional file types can be supported by setting the `unpackCmd` variable (see
|
|||
|
||||
The list of source files or directories to be unpacked or copied. One of these must be set. Note that if you use `srcs`, you should also set `sourceRoot` or `setSourceRoot`.
|
||||
|
||||
These should ideally actually be sources and licensed under a FLOSS license. If you have to use a binary upstream release or package non-free software, make sure you correctly mark your derivation as such in the [`sourceProvenance`](#var-meta-sourceProvenance) and [`license`](#sec-meta-license) fields of the [`meta`](#chap-meta) section.
|
||||
|
||||
##### `sourceRoot` {#var-stdenv-sourceRoot}
|
||||
|
||||
After unpacking all of `src` and `srcs`, if neither of `sourceRoot` and `setSourceRoot` are set, `unpackPhase` of the generic builder checks that the unpacking produced a single directory and moves the current working directory into it.
|
||||
|
|
|
@ -17715,6 +17715,12 @@
|
|||
github = "nikstur";
|
||||
githubId = 61635709;
|
||||
};
|
||||
nilathedragon = {
|
||||
email = "nilathedragon@pm.me";
|
||||
name = "Nila The Dragon";
|
||||
github = "nilathedragon";
|
||||
githubId = 43315617;
|
||||
};
|
||||
nilp0inter = {
|
||||
email = "robertomartinezp@gmail.com";
|
||||
github = "nilp0inter";
|
||||
|
@ -27246,6 +27252,11 @@
|
|||
githubId = 4113027;
|
||||
name = "Jesper Geertsen Jonsson";
|
||||
};
|
||||
yethal = {
|
||||
github = "yethal";
|
||||
githubId = 26117918;
|
||||
name = "Yethal";
|
||||
};
|
||||
yinfeng = {
|
||||
email = "lin.yinfeng@outlook.com";
|
||||
github = "linyinfeng";
|
||||
|
|
|
@ -749,6 +749,15 @@
|
|||
"module-services-davis-basic-usage": [
|
||||
"index.html#module-services-davis-basic-usage"
|
||||
],
|
||||
"module-services-draupnir": [
|
||||
"index.html#module-services-draupnir"
|
||||
],
|
||||
"module-services-draupnir-setup": [
|
||||
"index.html#module-services-draupnir-setup"
|
||||
],
|
||||
"module-services-draupnir-setup-ems": [
|
||||
"index.html#module-services-draupnir-setup-ems"
|
||||
],
|
||||
"module-services-castopod": [
|
||||
"index.html#module-services-castopod"
|
||||
],
|
||||
|
|
|
@ -22,6 +22,8 @@
|
|||
|
||||
- [Broadcast Box](https://github.com/Glimesh/broadcast-box), a WebRTC broadcast server. Available as [services.broadcast-box](options.html#opt-services.broadcast-box.enable).
|
||||
|
||||
- [Draupnir](https://github.com/the-draupnir-project/draupnir), a Matrix moderation bot. Available as [services.draupnir](#opt-services.draupnir.enable).
|
||||
|
||||
- [SuiteNumérique Docs](https://github.com/suitenumerique/docs), a collaborative note taking, wiki and documentation web platform and alternative to Notion or Outline. Available as [services.lasuite-docs](#opt-services.lasuite-docs.enable).
|
||||
|
||||
[dwl](https://codeberg.org/dwl/dwl), a compact, hackable compositor for Wayland based on wlroots. Available as [programs.dwl](#opt-programs.dwl.enable).
|
||||
|
@ -42,5 +44,7 @@
|
|||
|
||||
- `services.clamsmtp` is unmaintained and was removed from Nixpkgs.
|
||||
|
||||
- `services.dnscrypt-proxy2` gains a `package` option to specify dnscrypt-proxy package to use.
|
||||
|
||||
- `amdgpu` kernel driver overdrive mode can now be enabled by setting [hardware.amdgpu.overdrive.enable](#opt-hardware.amdgpu.overdrive.enable) and customized through [hardware.amdgpu.overdrive.ppfeaturemask](#opt-hardware.amdgpu.overdrive.ppfeaturemask).
|
||||
This allows for fine-grained control over the GPU's performance and maybe required by overclocking softwares like Corectrl and Lact. These new options replace old options such as {option}`programs.corectrl.gpuOverclock.enable` and {option}`programs.tuxclocker.enableAMD`.
|
||||
|
|
|
@ -49,6 +49,7 @@ if (-e "/etc/nixos-generate-config.conf") {
|
|||
$rootDir = File::Spec->rel2abs($rootDir); # resolve absolute path
|
||||
}
|
||||
$kernel = $cfg->val("Defaults", "Kernel") // $kernel;
|
||||
$flake = $cfg->val("Defaults", "Flake") // $flake;
|
||||
}
|
||||
|
||||
for (my $n = 0; $n < scalar @ARGV; $n++) {
|
||||
|
|
|
@ -758,6 +758,7 @@
|
|||
./services/matrix/conduit.nix
|
||||
./services/matrix/continuwuity.nix
|
||||
./services/matrix/dendrite.nix
|
||||
./services/matrix/draupnir.nix
|
||||
./services/matrix/hebbot.nix
|
||||
./services/matrix/hookshot.nix
|
||||
./services/matrix/lk-jwt-service.nix
|
||||
|
|
62
nixos/modules/services/matrix/draupnir.md
Normal file
62
nixos/modules/services/matrix/draupnir.md
Normal file
|
@ -0,0 +1,62 @@
|
|||
# Draupnir (Matrix Moderation Bot) {#module-services-draupnir}
|
||||
|
||||
This chapter will show you how to set up your own, self-hosted
|
||||
[Draupnir](https://github.com/the-draupnir-project/Draupnir) instance.
|
||||
|
||||
As an all-in-one moderation tool, it can protect your server from
|
||||
malicious invites, spam messages, and whatever else you don't want.
|
||||
In addition to server-level protection, Draupnir is great for communities
|
||||
wanting to protect their rooms without having to use their personal
|
||||
accounts for moderation.
|
||||
|
||||
The bot by default includes support for bans, redactions, anti-spam,
|
||||
server ACLs, room directory changes, room alias transfers, account
|
||||
deactivation, room shutdown, and more. (This depends on homeserver configuration and implementation.)
|
||||
|
||||
See the [README](https://github.com/the-draupnir-project/draupnir#readme)
|
||||
page and the [Moderator's guide](https://the-draupnir-project.github.io/draupnir-documentation/moderator/setting-up-and-configuring)
|
||||
for additional instructions on how to setup and use Draupnir.
|
||||
|
||||
For [additional settings](#opt-services.draupnir.settings)
|
||||
see [the default configuration](https://github.com/the-draupnir-project/Draupnir/blob/main/config/default.yaml).
|
||||
|
||||
## Draupnir Setup {#module-services-draupnir-setup}
|
||||
|
||||
First create a new unencrypted, private room which will be used as the management room for Draupnir.
|
||||
This is the room in which moderators will interact with Draupnir and where it will log possible errors and debugging information.
|
||||
You'll need to set this room ID or alias in [services.draupnir.settings.managementRoom](#opt-services.draupnir.settings.managementRoom).
|
||||
|
||||
Next, create a new user for Draupnir on your homeserver, if one does not already exist.
|
||||
|
||||
The Draupnir Matrix user expects to be free of any rate limiting.
|
||||
See [Synapse #6286](https://github.com/matrix-org/synapse/issues/6286)
|
||||
for an example on how to achieve this.
|
||||
|
||||
If you want Draupnir to be able to deactivate users, move room aliases, shut down rooms, etc.
|
||||
you'll need to make the Draupnir user a Matrix server admin.
|
||||
|
||||
Now invite the Draupnir user to the management room.
|
||||
Draupnir will automatically try to join this room on startup.
|
||||
|
||||
```nix
|
||||
{
|
||||
services.draupnir = {
|
||||
enable = true;
|
||||
|
||||
settings = {
|
||||
homeserverUrl = "https://matrix.org";
|
||||
managementRoom = "!yyy:example.org";
|
||||
};
|
||||
|
||||
secrets = {
|
||||
accessToken = "/path/to/secret/containing/access-token";
|
||||
};
|
||||
};
|
||||
}
|
||||
```
|
||||
|
||||
### Element Matrix Services (EMS) {#module-services-draupnir-setup-ems}
|
||||
|
||||
If you are using a managed ["Element Matrix Services (EMS)"](https://ems.element.io/)
|
||||
server, you will need to consent to the terms and conditions. Upon startup, an error
|
||||
log entry with a URL to the consent page will be generated.
|
257
nixos/modules/services/matrix/draupnir.nix
Normal file
257
nixos/modules/services/matrix/draupnir.nix
Normal file
|
@ -0,0 +1,257 @@
|
|||
{
|
||||
config,
|
||||
options,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}:
|
||||
|
||||
let
|
||||
cfg = config.services.draupnir;
|
||||
opt = options.services.draupnir;
|
||||
|
||||
format = pkgs.formats.yaml { };
|
||||
configFile = format.generate "draupnir.yaml" cfg.settings;
|
||||
|
||||
inherit (lib)
|
||||
literalExpression
|
||||
mkEnableOption
|
||||
mkOption
|
||||
mkPackageOption
|
||||
mkRemovedOptionModule
|
||||
mkRenamedOptionModule
|
||||
types
|
||||
;
|
||||
in
|
||||
{
|
||||
imports = [
|
||||
# Removed options for those migrating from the Mjolnir module
|
||||
(mkRenamedOptionModule
|
||||
[ "services" "draupnir" "dataPath" ]
|
||||
[ "services" "draupnir" "settings" "dataPath" ]
|
||||
)
|
||||
(mkRenamedOptionModule
|
||||
[ "services" "draupnir" "homeserverUrl" ]
|
||||
[ "services" "draupnir" "settings" "homeserverUrl" ]
|
||||
)
|
||||
(mkRenamedOptionModule
|
||||
[ "services" "draupnir" "managementRoom" ]
|
||||
[ "services" "draupnir" "settings" "managementRoom" ]
|
||||
)
|
||||
(mkRenamedOptionModule
|
||||
[ "services" "draupnir" "accessTokenFile" ]
|
||||
[ "services" "draupnir" "secrets" "accessToken" ]
|
||||
)
|
||||
(mkRemovedOptionModule [ "services" "draupnir" "pantalaimon" ] ''
|
||||
`services.draupnir.pantalaimon.*` has been removed because it depends on the deprecated and vulnerable
|
||||
libolm library for end-to-end encryption and upstream support for Pantalaimon in Draupnir is limited.
|
||||
See <https://the-draupnir-project.github.io/draupnir-documentation/bot/encryption> for details.
|
||||
If you nontheless require E2EE via Pantalaimon, you can configure `services.pantalaimon-headless.instances`
|
||||
yourself and use that with `services.draupnir.settings.pantalaimon` and `services.draupnir.secrets.pantalaimon.password`.
|
||||
'')
|
||||
];
|
||||
|
||||
options.services.draupnir = {
|
||||
enable = mkEnableOption "Draupnir, a moderations bot for Matrix";
|
||||
|
||||
package = mkPackageOption pkgs "draupnir" { };
|
||||
|
||||
settings = mkOption {
|
||||
example = literalExpression ''
|
||||
{
|
||||
homeserverUrl = "https://matrix.org";
|
||||
managementRoom = "#moderators:example.org";
|
||||
|
||||
autojoinOnlyIfManager = true;
|
||||
automaticallyRedactForReasons = [ "spam" "advertising" ];
|
||||
}
|
||||
'';
|
||||
description = ''
|
||||
Free-form settings written to Draupnir's configuration file.
|
||||
See [Draupnir's default configuration](https://github.com/the-draupnir-project/Draupnir/blob/main/config/default.yaml) for available settings.
|
||||
'';
|
||||
default = { };
|
||||
type = types.submodule {
|
||||
freeformType = format.type;
|
||||
options = {
|
||||
homeserverUrl = mkOption {
|
||||
type = types.str;
|
||||
example = "https://matrix.org";
|
||||
description = ''
|
||||
Base URL of the Matrix homeserver that provides the Client-Server API.
|
||||
|
||||
::: {.note}
|
||||
When using Pantalaimon, set this to the Pantalaimon URL and
|
||||
{option}`${opt.settings}.rawHomeserverUrl` to the public URL.
|
||||
:::
|
||||
'';
|
||||
};
|
||||
|
||||
rawHomeserverUrl = mkOption {
|
||||
type = types.str;
|
||||
example = "https://matrix.org";
|
||||
default = cfg.settings.homeserverUrl;
|
||||
defaultText = literalExpression "config.${opt.settings}.homeserverUrl";
|
||||
description = ''
|
||||
Public base URL of the Matrix homeserver that provides the Client-Server API when using the Draupnir's
|
||||
[Report forwarding feature](https://the-draupnir-project.github.io/draupnir-documentation/bot/homeserver-administration#report-forwarding).
|
||||
|
||||
::: {.warning}
|
||||
When using Pantalaimon, do not set this to the Pantalaimon URL!
|
||||
:::
|
||||
'';
|
||||
};
|
||||
|
||||
managementRoom = mkOption {
|
||||
type = types.str;
|
||||
example = "#moderators:example.org";
|
||||
description = ''
|
||||
The room ID or alias where moderators can use the bot's functionality.
|
||||
|
||||
The bot has no access controls, so anyone in this room can use the bot - secure this room!
|
||||
Do not enable end-to-end encryption for this room, unless set up with Pantalaimon.
|
||||
|
||||
::: {.warning}
|
||||
When using a room alias, make sure the alias used is on the local homeserver!
|
||||
This prevents an issue where the control room becomes undefined when the alias can't be resolved.
|
||||
:::
|
||||
'';
|
||||
};
|
||||
|
||||
dataPath = mkOption {
|
||||
type = types.path;
|
||||
readOnly = true;
|
||||
default = "/var/lib/draupnir";
|
||||
description = ''
|
||||
The path Draupnir will store its state/data in.
|
||||
|
||||
::: {.warning}
|
||||
This option is read-only.
|
||||
:::
|
||||
|
||||
::: {.note}
|
||||
If you want to customize where this data is stored, use a bind mount.
|
||||
:::
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
secrets = {
|
||||
accessToken = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
description = ''
|
||||
File containing the access token for Draupnir's Matrix account
|
||||
to be used in place of {option}`${opt.settings}.accessToken`.
|
||||
'';
|
||||
};
|
||||
|
||||
pantalaimon.password = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
description = ''
|
||||
File containing the password for Draupnir's Matrix account when used in
|
||||
conjunction with Pantalaimon to be used in place of
|
||||
{option}`${opt.settings}.pantalaimon.password`.
|
||||
|
||||
::: {.warning}
|
||||
Take note that upstream has limited Pantalaimon and E2EE support:
|
||||
<https://the-draupnir-project.github.io/draupnir-documentation/bot/encryption> and
|
||||
<https://the-draupnir-project.github.io/draupnir-documentation/shared/dogfood#e2ee-support>.
|
||||
:::
|
||||
'';
|
||||
};
|
||||
|
||||
web.synapseHTTPAntispam.authorization = mkOption {
|
||||
type = types.nullOr types.path;
|
||||
default = null;
|
||||
description = ''
|
||||
File containing the secret token when using the Synapse HTTP Antispam module
|
||||
to be used in place of
|
||||
{option}`${opt.settings}.web.synapseHTTPAntispam.authorization`.
|
||||
|
||||
See <https://the-draupnir-project.github.io/draupnir-documentation/bot/synapse-http-antispam> for details.
|
||||
'';
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
config = lib.mkIf cfg.enable {
|
||||
assertions = [
|
||||
{
|
||||
# Removed option for those migrating from the Mjolnir module - mkRemovedOption module does *not* work with submodules.
|
||||
assertion = !(cfg.settings ? protectedRooms);
|
||||
message = "Unset ${opt.settings}.protectedRooms, as it is unsupported on Draupnir. Add these rooms via `!draupnir rooms add` instead.";
|
||||
}
|
||||
];
|
||||
|
||||
systemd.services.draupnir = {
|
||||
description = "Draupnir - a moderation bot for Matrix";
|
||||
wants = [
|
||||
"network-online.target"
|
||||
"matrix-synapse.service"
|
||||
"conduit.service"
|
||||
"dendrite.service"
|
||||
];
|
||||
after = [
|
||||
"network-online.target"
|
||||
"matrix-synapse.service"
|
||||
"conduit.service"
|
||||
"dendrite.service"
|
||||
];
|
||||
wantedBy = [ "multi-user.target" ];
|
||||
|
||||
startLimitIntervalSec = 0;
|
||||
serviceConfig = {
|
||||
ExecStart = toString (
|
||||
[
|
||||
(lib.getExe cfg.package)
|
||||
"--draupnir-config"
|
||||
configFile
|
||||
]
|
||||
++ lib.optionals (cfg.secrets.accessToken != null) [
|
||||
"--access-token-path"
|
||||
"%d/access_token"
|
||||
]
|
||||
++ lib.optionals (cfg.secrets.pantalaimon.password != null) [
|
||||
"--pantalaimon-password-path"
|
||||
"%d/pantalaimon_password"
|
||||
]
|
||||
++ lib.optionals (cfg.secrets.web.synapseHTTPAntispam.authorization != null) [
|
||||
"--http-antispam-authorization-path"
|
||||
"%d/http_antispam_authorization"
|
||||
]
|
||||
);
|
||||
|
||||
WorkingDirectory = "/var/lib/draupnir";
|
||||
StateDirectory = "draupnir";
|
||||
StateDirectoryMode = "0700";
|
||||
ProtectHome = true;
|
||||
PrivateDevices = true;
|
||||
Restart = "on-failure";
|
||||
RestartSec = "5s";
|
||||
DynamicUser = true;
|
||||
LoadCredential =
|
||||
lib.optionals (cfg.secrets.accessToken != null) [
|
||||
"access_token:${cfg.secrets.accessToken}"
|
||||
]
|
||||
++ lib.optionals (cfg.secrets.pantalaimon.password != null) [
|
||||
"pantalaimon_password:${cfg.secrets.pantalaimon.password}"
|
||||
]
|
||||
++ lib.optionals (cfg.secrets.web.synapseHTTPAntispam.authorization != null) [
|
||||
"http_antispam_authorization:${cfg.secrets.web.synapseHTTPAntispam.authorization}"
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
meta = {
|
||||
doc = ./draupnir.md;
|
||||
maintainers = with lib.maintainers; [
|
||||
RorySys
|
||||
emilylange
|
||||
];
|
||||
};
|
||||
}
|
|
@ -4,22 +4,25 @@
|
|||
pkgs,
|
||||
...
|
||||
}:
|
||||
with lib;
|
||||
|
||||
let
|
||||
|
||||
cfg = config.services.dnscrypt-proxy2;
|
||||
|
||||
in
|
||||
|
||||
{
|
||||
options.services.dnscrypt-proxy2 = {
|
||||
enable = mkEnableOption "dnscrypt-proxy2";
|
||||
enable = lib.mkEnableOption "dnscrypt-proxy2";
|
||||
|
||||
settings = mkOption {
|
||||
package = lib.mkPackageOption pkgs "dnscrypt-proxy" { };
|
||||
|
||||
settings = lib.mkOption {
|
||||
description = ''
|
||||
Attrset that is converted and passed as TOML config file.
|
||||
For available params, see: <https://github.com/DNSCrypt/dnscrypt-proxy/blob/${pkgs.dnscrypt-proxy.version}/dnscrypt-proxy/example-dnscrypt-proxy.toml>
|
||||
'';
|
||||
example = literalExpression ''
|
||||
example = lib.literalExpression ''
|
||||
{
|
||||
sources.public-resolvers = {
|
||||
urls = [ "https://download.dnscrypt.info/resolvers-list/v2/public-resolvers.md" ];
|
||||
|
@ -29,27 +32,27 @@ in
|
|||
};
|
||||
}
|
||||
'';
|
||||
type = types.attrs;
|
||||
type = lib.types.attrs;
|
||||
default = { };
|
||||
};
|
||||
|
||||
upstreamDefaults = mkOption {
|
||||
upstreamDefaults = lib.mkOption {
|
||||
description = ''
|
||||
Whether to base the config declared in {option}`services.dnscrypt-proxy2.settings` on the upstream example config (<https://github.com/DNSCrypt/dnscrypt-proxy/blob/master/dnscrypt-proxy/example-dnscrypt-proxy.toml>)
|
||||
|
||||
Disable this if you want to declare your dnscrypt config from scratch.
|
||||
'';
|
||||
type = types.bool;
|
||||
type = lib.types.bool;
|
||||
default = true;
|
||||
};
|
||||
|
||||
configFile = mkOption {
|
||||
configFile = lib.mkOption {
|
||||
description = ''
|
||||
Path to TOML config file. See: <https://github.com/DNSCrypt/dnscrypt-proxy/blob/master/dnscrypt-proxy/example-dnscrypt-proxy.toml>
|
||||
If this option is set, it will override any configuration done in options.services.dnscrypt-proxy2.settings.
|
||||
'';
|
||||
example = "/etc/dnscrypt-proxy/dnscrypt-proxy.toml";
|
||||
type = types.path;
|
||||
type = lib.types.path;
|
||||
default =
|
||||
pkgs.runCommand "dnscrypt-proxy.toml"
|
||||
{
|
||||
|
@ -70,11 +73,11 @@ in
|
|||
}
|
||||
${pkgs.buildPackages.remarshal}/bin/json2toml < config.json > $out
|
||||
'';
|
||||
defaultText = literalMD "TOML file generated from {option}`services.dnscrypt-proxy2.settings`";
|
||||
defaultText = lib.literalMD "TOML file generated from {option}`services.dnscrypt-proxy2.settings`";
|
||||
};
|
||||
};
|
||||
|
||||
config = mkIf cfg.enable {
|
||||
config = lib.mkIf cfg.enable {
|
||||
|
||||
networking.nameservers = lib.mkDefault [ "127.0.0.1" ];
|
||||
|
||||
|
@ -94,7 +97,7 @@ in
|
|||
AmbientCapabilities = "CAP_NET_BIND_SERVICE";
|
||||
CacheDirectory = "dnscrypt-proxy";
|
||||
DynamicUser = true;
|
||||
ExecStart = "${pkgs.dnscrypt-proxy}/bin/dnscrypt-proxy -config ${cfg.configFile}";
|
||||
ExecStart = "${lib.getExe cfg.package} -config ${cfg.configFile}";
|
||||
LockPersonality = true;
|
||||
LogsDirectory = "dnscrypt-proxy";
|
||||
MemoryDenyWriteExecute = true;
|
||||
|
|
|
@ -54,15 +54,10 @@ let
|
|||
++ optional (cfg.provision.extraJsonFile != null) cfg.provision.extraJsonFile
|
||||
++ mapAttrsToList (_: x: x.basicSecretFile) cfg.provision.systems.oauth2
|
||||
);
|
||||
secretDirectories = unique (
|
||||
map builtins.dirOf (
|
||||
[
|
||||
cfg.serverSettings.tls_chain
|
||||
cfg.serverSettings.tls_key
|
||||
]
|
||||
++ optionals cfg.provision.enable provisionSecretFiles
|
||||
)
|
||||
);
|
||||
secretPaths = [
|
||||
cfg.serverSettings.tls_chain
|
||||
cfg.serverSettings.tls_key
|
||||
] ++ optionals cfg.provision.enable provisionSecretFiles;
|
||||
|
||||
# Merge bind mount paths and remove paths where a prefix is already mounted.
|
||||
# This makes sure that if e.g. the tls_chain is in the nix store and /nix/store is already in the mount
|
||||
|
@ -881,7 +876,7 @@ in
|
|||
(
|
||||
defaultServiceConfig
|
||||
// {
|
||||
BindReadOnlyPaths = mergePaths (defaultServiceConfig.BindReadOnlyPaths ++ secretDirectories);
|
||||
BindReadOnlyPaths = mergePaths (defaultServiceConfig.BindReadOnlyPaths ++ secretPaths);
|
||||
}
|
||||
)
|
||||
{
|
||||
|
@ -895,8 +890,6 @@ in
|
|||
|
||||
BindPaths =
|
||||
[
|
||||
# To create the socket
|
||||
"/run/kanidmd:/run/kanidmd"
|
||||
# To store backups
|
||||
cfg.serverSettings.online_backup.path
|
||||
]
|
||||
|
|
|
@ -5,11 +5,31 @@
|
|||
utils,
|
||||
...
|
||||
}@moduleArgs:
|
||||
|
||||
with lib;
|
||||
with utils;
|
||||
|
||||
let
|
||||
inherit (lib)
|
||||
any
|
||||
attrValues
|
||||
concatMapStrings
|
||||
concatMapStringsSep
|
||||
concatStringsSep
|
||||
elem
|
||||
filter
|
||||
flip
|
||||
head
|
||||
literalExpression
|
||||
mkDefault
|
||||
mkEnableOption
|
||||
mkIf
|
||||
mkMerge
|
||||
mkOption
|
||||
optional
|
||||
optionalAttrs
|
||||
optionalString
|
||||
toposort
|
||||
types
|
||||
;
|
||||
inherit (utils) fsBefore;
|
||||
|
||||
# https://wiki.archlinux.org/index.php/fstab#Filepath_spaces
|
||||
escape = string: builtins.replaceStrings [ " " "\t" ] [ "\\040" "\\011" ] string;
|
||||
|
||||
|
@ -61,7 +81,7 @@ let
|
|||
description = "Location of the mounted file system.";
|
||||
};
|
||||
|
||||
stratis.poolUuid = lib.mkOption {
|
||||
stratis.poolUuid = mkOption {
|
||||
type = types.uniq (types.nullOr types.str);
|
||||
description = ''
|
||||
UUID of the stratis pool that the fs is located in
|
||||
|
@ -166,9 +186,7 @@ let
|
|||
|
||||
};
|
||||
|
||||
config.device = lib.mkIf (config.label != null) (
|
||||
lib.mkDefault "/dev/disk/by-label/${escape config.label}"
|
||||
);
|
||||
config.device = mkIf (config.label != null) (mkDefault "/dev/disk/by-label/${escape config.label}");
|
||||
|
||||
config.options =
|
||||
let
|
||||
|
@ -320,7 +338,7 @@ in
|
|||
|
||||
boot.supportedFilesystems = mkOption {
|
||||
default = { };
|
||||
example = lib.literalExpression ''
|
||||
example = literalExpression ''
|
||||
{
|
||||
btrfs = true;
|
||||
zfs = lib.mkForce false;
|
||||
|
@ -471,7 +489,7 @@ in
|
|||
# Filesystems.
|
||||
${makeFstabEntries fileSystems { }}
|
||||
|
||||
${lib.optionalString (config.swapDevices != [ ]) "# Swap devices."}
|
||||
${optionalString (config.swapDevices != [ ]) "# Swap devices."}
|
||||
${flip concatMapStrings config.swapDevices (sw: "${sw.realDevice} none swap ${swapOptions sw}\n")}
|
||||
'';
|
||||
|
||||
|
|
|
@ -409,6 +409,7 @@ in
|
|||
domination = runTest ./domination.nix;
|
||||
dovecot = handleTest ./dovecot.nix { };
|
||||
drawterm = discoverTests (import ./drawterm.nix);
|
||||
draupnir = runTest ./matrix/draupnir.nix;
|
||||
drbd = runTest ./drbd.nix;
|
||||
druid = handleTestOn [ "x86_64-linux" ] ./druid { };
|
||||
drupal = runTest ./drupal.nix;
|
||||
|
@ -1528,7 +1529,6 @@ in
|
|||
zoom-us = runTest ./zoom-us.nix;
|
||||
zram-generator = runTest ./zram-generator.nix;
|
||||
zrepl = runTest ./zrepl.nix;
|
||||
zsh-history = runTest ./zsh-history.nix;
|
||||
zwave-js = runTest ./zwave-js.nix;
|
||||
zwave-js-ui = runTest ./zwave-js-ui.nix;
|
||||
}
|
||||
|
|
150
nixos/tests/matrix/draupnir.nix
Normal file
150
nixos/tests/matrix/draupnir.nix
Normal file
|
@ -0,0 +1,150 @@
|
|||
{
|
||||
lib,
|
||||
...
|
||||
}:
|
||||
|
||||
{
|
||||
name = "draupnir";
|
||||
meta.maintainers = with lib.maintainers; [
|
||||
RorySys
|
||||
emilylange
|
||||
];
|
||||
|
||||
nodes = {
|
||||
homeserver =
|
||||
{ pkgs, ... }:
|
||||
{
|
||||
services.matrix-synapse = {
|
||||
enable = true;
|
||||
log.root.level = "WARNING";
|
||||
settings = {
|
||||
database.name = "sqlite3";
|
||||
registration_shared_secret = "supersecret-registration";
|
||||
|
||||
listeners = [
|
||||
{
|
||||
bind_addresses = [
|
||||
"::"
|
||||
];
|
||||
port = 8008;
|
||||
resources = [
|
||||
{
|
||||
compress = true;
|
||||
names = [ "client" ];
|
||||
}
|
||||
{
|
||||
compress = false;
|
||||
names = [ "federation" ];
|
||||
}
|
||||
];
|
||||
tls = false;
|
||||
type = "http";
|
||||
x_forwarded = false;
|
||||
}
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
specialisation.draupnir = {
|
||||
inheritParentConfig = true;
|
||||
|
||||
configuration.services.draupnir = {
|
||||
enable = true;
|
||||
settings = {
|
||||
homeserverUrl = "http://localhost:8008";
|
||||
managementRoom = "#moderators:homeserver";
|
||||
};
|
||||
secrets = {
|
||||
accessToken = "/tmp/draupnir-access-token";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
environment.systemPackages = with pkgs; [
|
||||
curl
|
||||
jq
|
||||
(writers.writePython3Bin "test_draupnir_in_matrix"
|
||||
{
|
||||
libraries = [ python3Packages.matrix-nio ];
|
||||
flakeIgnore = [ "E501" ];
|
||||
}
|
||||
''
|
||||
import asyncio
|
||||
from nio import AsyncClient, MatrixRoom, RoomMemberEvent, RoomMessageNotice
|
||||
|
||||
|
||||
async def main() -> None:
|
||||
client = AsyncClient("http://localhost:8008", "moderator")
|
||||
|
||||
async def member_callback(room: MatrixRoom, event: RoomMemberEvent) -> None:
|
||||
if event.membership == "join" and event.sender == "@draupnir:homeserver":
|
||||
await client.room_send(
|
||||
room_id=room.room_id,
|
||||
message_type="m.room.message",
|
||||
content={
|
||||
"msgtype": "m.text",
|
||||
"body": "!draupnir status"
|
||||
}
|
||||
)
|
||||
|
||||
async def message_callback(room: MatrixRoom, event: RoomMessageNotice) -> None:
|
||||
print(f"{event.sender}: {event.body}")
|
||||
if event.sender == "@draupnir:homeserver":
|
||||
await client.close()
|
||||
exit(0)
|
||||
|
||||
client.add_event_callback(member_callback, RoomMemberEvent)
|
||||
client.add_event_callback(message_callback, RoomMessageNotice)
|
||||
|
||||
print(await client.login("password"))
|
||||
|
||||
room = await client.room_create(
|
||||
name="Moderators",
|
||||
alias="moderators",
|
||||
invite=["@draupnir:homeserver"],
|
||||
power_level_override={
|
||||
"users": {
|
||||
"@draupnir:homeserver": 100,
|
||||
"@moderator:homeserver": 100,
|
||||
}
|
||||
}
|
||||
)
|
||||
print(room)
|
||||
|
||||
print(await client.join(room.room_id))
|
||||
|
||||
await client.sync_forever(timeout=30000)
|
||||
|
||||
|
||||
asyncio.run(main())
|
||||
''
|
||||
)
|
||||
];
|
||||
};
|
||||
};
|
||||
|
||||
testScript =
|
||||
{ nodes, ... }:
|
||||
''
|
||||
import json
|
||||
|
||||
homeserver.wait_for_unit("matrix-synapse.service")
|
||||
homeserver.wait_until_succeeds("curl --fail -L http://localhost:8008/")
|
||||
|
||||
homeserver.succeed("matrix-synapse-register_new_matrix_user -u draupnir -p password --no-admin")
|
||||
homeserver.succeed("matrix-synapse-register_new_matrix_user -u moderator -p password --no-admin")
|
||||
|
||||
# get draupnir access token
|
||||
payload = json.dumps({ "type": "m.login.password", "user": "draupnir", "password": "password" })
|
||||
homeserver.succeed(
|
||||
f"curl --fail --json '{payload}' http://localhost:8008/_matrix/client/v3/login"
|
||||
+ " | jq -r .access_token"
|
||||
+ " | tee /tmp/draupnir-access-token"
|
||||
)
|
||||
|
||||
homeserver.succeed("${nodes.homeserver.system.build.toplevel}/specialisation/draupnir/bin/switch-to-configuration test")
|
||||
homeserver.wait_for_unit("draupnir.service")
|
||||
|
||||
print(homeserver.succeed("test_draupnir_in_matrix >&2", timeout=60))
|
||||
'';
|
||||
}
|
|
@ -46,5 +46,11 @@
|
|||
machine.succeed("rm -rf /etc/nixos")
|
||||
machine.succeed("nixos-generate-config --flake")
|
||||
machine.succeed("nix-instantiate --parse /etc/nixos/flake.nix /etc/nixos/configuration.nix /etc/nixos/hardware-configuration.nix")
|
||||
|
||||
machine.succeed("mv /etc/nixos /etc/nixos-with-flake-arg")
|
||||
machine.succeed("printf '[Defaults]\nFlake = 1\n' > /etc/nixos-generate-config.conf")
|
||||
machine.succeed("nixos-generate-config")
|
||||
machine.succeed("nix-instantiate --parse /etc/nixos/flake.nix /etc/nixos/configuration.nix /etc/nixos/hardware-configuration.nix")
|
||||
machine.succeed("diff -r /etc/nixos /etc/nixos-with-flake-arg")
|
||||
'';
|
||||
}
|
||||
|
|
|
@ -1,38 +0,0 @@
|
|||
{ pkgs, ... }:
|
||||
{
|
||||
name = "zsh-history";
|
||||
meta = with pkgs.lib.maintainers; {
|
||||
maintainers = [ ];
|
||||
};
|
||||
|
||||
nodes.default =
|
||||
{ ... }:
|
||||
{
|
||||
programs = {
|
||||
zsh.enable = true;
|
||||
};
|
||||
environment.systemPackages = [ pkgs.zsh-history ];
|
||||
programs.zsh.interactiveShellInit = ''
|
||||
source ${pkgs.zsh-history.out}/share/zsh/init.zsh
|
||||
'';
|
||||
users.users.root.shell = "${pkgs.zsh}/bin/zsh";
|
||||
};
|
||||
|
||||
testScript = ''
|
||||
start_all()
|
||||
default.wait_for_unit("multi-user.target")
|
||||
default.wait_until_succeeds("pgrep -f 'agetty.*tty1'")
|
||||
|
||||
# Login
|
||||
default.wait_until_tty_matches("1", "login: ")
|
||||
default.send_chars("root\n")
|
||||
default.wait_until_tty_matches("1", r"\nroot@default\b")
|
||||
|
||||
# Generate some history
|
||||
default.send_chars("echo foobar\n")
|
||||
default.wait_until_tty_matches("1", "foobar")
|
||||
|
||||
# Ensure that command was recorded in history
|
||||
default.succeed("/run/current-system/sw/bin/history list | grep -q foobar")
|
||||
'';
|
||||
}
|
|
@ -7,8 +7,8 @@ buildVscodeMarketplaceExtension {
|
|||
mktplcRef = {
|
||||
name = "vscode-wakatime";
|
||||
publisher = "WakaTime";
|
||||
version = "25.0.3";
|
||||
hash = "sha256-rD2Uzzt8xfkfgM+Y0NLe7lthfxinv1Zatpr56OjfABM=";
|
||||
version = "25.0.4";
|
||||
hash = "sha256-J+H/PShsOGwt0AZExLApXLl86XQdZbE5cPS9v4gOXWc=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
|
|
@ -786,8 +786,8 @@ let
|
|||
mktplcRef = {
|
||||
name = "vscode-tailwindcss";
|
||||
publisher = "bradlc";
|
||||
version = "0.14.19";
|
||||
hash = "sha256-HgrUTrYHJNC8tS8qZza98Tr3T0O0NMb7DgddNf3m7XY=";
|
||||
version = "0.14.20";
|
||||
hash = "sha256-Q45o7UAqyPuSMI02BOyXHzD5eqOJLYcYGnwA+eppEj4=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/bradlc.vscode-tailwindcss/changelog";
|
||||
|
@ -1210,8 +1210,8 @@ let
|
|||
mktplcRef = {
|
||||
publisher = "DanielSanMedium";
|
||||
name = "dscodegpt";
|
||||
version = "3.12.38";
|
||||
hash = "sha256-+9OsFH586I8/P7WzadRHS9tX22/bxOByJB2LDSqp2Nk=";
|
||||
version = "3.12.39";
|
||||
hash = "sha256-CShqaG3P6b9JdAtbqFyGn7RGZX8ov98sYJiBy9RCXnE=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/DanielSanMedium.dscodegpt/changelog";
|
||||
|
@ -1279,8 +1279,8 @@ let
|
|||
mktplcRef = {
|
||||
name = "vscode-markdownlint";
|
||||
publisher = "DavidAnson";
|
||||
version = "0.59.0";
|
||||
hash = "sha256-zbK7kRa9k5xIM7BcwMOT1pRO7637eMUCUzgQwnpBCvI=";
|
||||
version = "0.60.0";
|
||||
hash = "sha256-Buwa63HahT96qhhuvARW7p1u9kbkoEyA9usoh60m3KE=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/DavidAnson.vscode-markdownlint/changelog";
|
||||
|
@ -1643,8 +1643,8 @@ let
|
|||
mktplcRef = {
|
||||
publisher = "editorconfig";
|
||||
name = "editorconfig";
|
||||
version = "0.17.2";
|
||||
hash = "sha256-Xi2+mN6zjIKm0HWxfRAFs2vYkZ10Gv6poR2b2d8XCug=";
|
||||
version = "0.17.4";
|
||||
hash = "sha256-MYPYhSKAxgaZ0UijxU+xiO4HDPLtXGymhN+2YmTev8M=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/EditorConfig.EditorConfig/changelog";
|
||||
|
@ -2129,8 +2129,8 @@ let
|
|||
mktplcRef = {
|
||||
name = "gitlab-workflow";
|
||||
publisher = "gitlab";
|
||||
version = "6.17.0";
|
||||
hash = "sha256-4/wGrHFB7yn7WTJq9igOU6XTOQZ1PGZ6kdMBP/IlZqw=";
|
||||
version = "6.21.0";
|
||||
hash = "sha256-vaOAk4ovQjUcnBtxqMlRstYLvR6uzmqGk3Sx6zV6wvY=";
|
||||
};
|
||||
meta = {
|
||||
description = "GitLab extension for Visual Studio Code";
|
||||
|
@ -2619,8 +2619,8 @@ let
|
|||
mktplcRef = {
|
||||
name = "gruvbox";
|
||||
publisher = "jdinhlife";
|
||||
version = "1.26.0";
|
||||
hash = "sha256-XSDGwJ8zL1y9EZqk2wixMEV5GRjQngs8Pvu9QppWCNI=";
|
||||
version = "1.28.0";
|
||||
hash = "sha256-XwQzbbZU6MfYcT50/0YgQp8UaOeQskEvEQPZXG72lLk=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/jdinhlife.gruvbox/changelog";
|
||||
|
@ -3264,8 +3264,8 @@ let
|
|||
mktplcRef = {
|
||||
publisher = "ms-azuretools";
|
||||
name = "vscode-docker";
|
||||
version = "1.29.6";
|
||||
hash = "sha256-kHQuS6wxp3Gu5WSjWRXXMLwSrv7LBSsnsNu7VY4H/J0=";
|
||||
version = "2.0.0";
|
||||
hash = "sha256-Yxysekp9nC91g7M5oXppOF+Rf4Jf/PD+X3inmdVfVmo=";
|
||||
};
|
||||
meta = {
|
||||
description = "Docker Extension for Visual Studio Code";
|
||||
|
@ -3284,8 +3284,8 @@ let
|
|||
mktplcRef = {
|
||||
name = "vscode-dotnet-runtime";
|
||||
publisher = "ms-dotnettools";
|
||||
version = "2.3.3";
|
||||
hash = "sha256-l+/r0C+BZr8H8qBKenVP3b4qYGR57Lol+Y1Q2XUGl24=";
|
||||
version = "2.3.5";
|
||||
hash = "sha256-Hik1BNhvcCs/IzqSvc2dPu3v6PhCZSqovFH4ODVJMnE=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/ms-dotnettools.vscode-dotnet-runtime/changelog";
|
||||
|
@ -4303,8 +4303,8 @@ let
|
|||
mktplcRef = {
|
||||
publisher = "seatonjiang";
|
||||
name = "gitmoji-vscode";
|
||||
version = "1.2.5";
|
||||
hash = "sha256-lWd7SyYNxoDauMecJq11akTiwEKBeXuR4htDYCbb6n4=";
|
||||
version = "1.3.0";
|
||||
hash = "sha256-vr6UKd+7g6J8XEY57sCqPpLuxNC4KOvf7nddDKaceaU=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/seatonjiang.gitmoji-vscode/changelog";
|
||||
|
@ -4617,8 +4617,8 @@ let
|
|||
mktplcRef = {
|
||||
name = "vscode-stylelint";
|
||||
publisher = "stylelint";
|
||||
version = "1.5.0";
|
||||
hash = "sha256-SHUb7+eL0PWlw/KUidXPvE5+MFsJz1Fi7Csptiw8j4M=";
|
||||
version = "1.5.1";
|
||||
hash = "sha256-Sbp2zy/6PcsMlUPe94spm3JrWxBYHfd7py3f4rb+0G4=";
|
||||
};
|
||||
meta = {
|
||||
description = "Official Stylelint extension for Visual Studio Code";
|
||||
|
@ -4942,8 +4942,8 @@ let
|
|||
mktplcRef = {
|
||||
name = "vscode-testscript";
|
||||
publisher = "twpayne";
|
||||
version = "0.0.5";
|
||||
hash = "sha256-rAkwcEmonZArN7Vls8k5ey+6V1b5bICTJoOSxgtnv+A=";
|
||||
version = "0.0.6";
|
||||
hash = "sha256-y8Esm6nnLf+4FPxy4aZxrTPOxx+zoWm7mUrxZ1dsPyM=";
|
||||
};
|
||||
meta = {
|
||||
description = "Syntax highlighting support for testscript";
|
||||
|
@ -5019,8 +5019,8 @@ let
|
|||
mktplcRef = {
|
||||
name = "vscode-mdx";
|
||||
publisher = "unifiedjs";
|
||||
version = "1.8.14";
|
||||
hash = "sha256-kIQPvmLkqZa3jPxIfJ3LDyIvr5yXQTsO7uzzvFa9EJM=";
|
||||
version = "1.8.15";
|
||||
hash = "sha256-n2aWgvhSaU7TU45yeIUU8OmIMOAVYYB500jxrChPeA4=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/unifiedjs.vscode-mdx/changelog";
|
||||
|
@ -5371,8 +5371,8 @@ let
|
|||
mktplcRef = {
|
||||
name = "gitblame";
|
||||
publisher = "waderyan";
|
||||
version = "11.1.2";
|
||||
sha256 = "sha256-TlvMyFmtJQtpsjbdh3bPiRaMHro0M7gKOgtGc2bQLN4=";
|
||||
version = "11.1.3";
|
||||
sha256 = "sha256-r+fmb382hzxD7frrsNZTJk6uPahO7QBfKTJWA0ObWFI=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/waderyan.gitblame/changelog";
|
||||
|
@ -5643,8 +5643,8 @@ let
|
|||
mktplcRef = {
|
||||
name = "vscode-zig";
|
||||
publisher = "ziglang";
|
||||
version = "0.6.9";
|
||||
hash = "sha256-R18NnnsYVLmCNdGU0plIYn2MKrlSedfJoXH/amxKKaY=";
|
||||
version = "0.6.10";
|
||||
hash = "sha256-Tptl+tJ2ZlnKyswdTjnPJakhiiJn+1XmB82rbk8aO1w=";
|
||||
};
|
||||
meta = {
|
||||
changelog = "https://marketplace.visualstudio.com/items/ziglang.vscode-zig/changelog";
|
||||
|
|
|
@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
|||
mktplcRef = {
|
||||
publisher = "github";
|
||||
name = "copilot-chat";
|
||||
version = "0.27.2";
|
||||
hash = "sha256-nwBDQNs5qrA0TxQZVtuXRiOy0iBNOCFpIim0x2k37YA=";
|
||||
version = "0.27.3";
|
||||
hash = "sha256-b7zvbDzwJcHAp9tn2ibtyeErrH2KNbgqT4Ir7aqLMQg=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
|
|
@ -7,8 +7,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
|||
mktplcRef = {
|
||||
publisher = "github";
|
||||
name = "copilot";
|
||||
version = "1.323.0";
|
||||
hash = "sha256-rTAq6snn3HAARrYbMJYy7aZ5rDucLfFS/t01VPjgXAo=";
|
||||
version = "1.326.0";
|
||||
hash = "sha256-bZ8Cm3bowUCWq4mMv/7rWIBOdw1U6UoH7RODz20/r9U=";
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
|
|
@ -10,8 +10,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
|||
mktplcRef = {
|
||||
publisher = "ms-azuretools";
|
||||
name = "vscode-bicep";
|
||||
version = "0.35.1";
|
||||
hash = "sha256-Ggp3Z3pxPMEDxgzjPYNr830wx+upkBP4YAbKiOivbYs=";
|
||||
version = "0.36.1";
|
||||
hash = "sha256-yrSIHTGHZ1m6fLGrtVlT4UHyWpKuzGKdywBDsMepd4g=";
|
||||
};
|
||||
|
||||
buildInputs = [
|
||||
|
|
|
@ -16,19 +16,19 @@ let
|
|||
{
|
||||
x86_64-linux = {
|
||||
arch = "linux-x64";
|
||||
hash = "sha256-XHx64V8JJl+/kb+kkTowu7mE7ysBRhUQJqicxjbHM3k=";
|
||||
hash = "sha256-bpvaGnl6LQaZazuk/xGHxbNUsEMph0tDAaAOBIuikVQ=";
|
||||
};
|
||||
aarch64-linux = {
|
||||
arch = "linux-arm64";
|
||||
hash = "sha256-Pm3jUARrH8bksiCpYtUvo0UB3Oq67EjJGYLGLV54rl4=";
|
||||
hash = "sha256-yBT5sAZHXX66vuTDo+opPLBnCX09tBQYscW5LaiS3nU=";
|
||||
};
|
||||
x86_64-darwin = {
|
||||
arch = "darwin-x64";
|
||||
hash = "sha256-hgd7tpRn2WP0PL4IOpZLL6Uzw1V9rSqlOTDfgFxwWGk=";
|
||||
hash = "sha256-W7qGN3VbS1BJT+887mSqegKheLimYR59gNj7QOZBvyg=";
|
||||
};
|
||||
aarch64-darwin = {
|
||||
arch = "darwin-arm64";
|
||||
hash = "sha256-PQPxwwHbLXa5+p/SfH4IFu/OBEa/1CKdfaM+HAegiDA=";
|
||||
hash = "sha256-OlsoQsA6qHoIwRRVvMpjyO9BOdR63mRcSFkM9i0nFH0=";
|
||||
};
|
||||
}
|
||||
.${stdenv.hostPlatform.system} or (throw "Unsupported system: ${stdenv.hostPlatform.system}")
|
||||
|
@ -38,7 +38,7 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
|||
mktplcRef = {
|
||||
name = "csdevkit";
|
||||
publisher = "ms-dotnettools";
|
||||
version = "1.19.63";
|
||||
version = "1.20.35";
|
||||
inherit (extInfo) hash arch;
|
||||
};
|
||||
sourceRoot = "extension"; # This has more than one folder.
|
||||
|
|
|
@ -8,8 +8,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
|||
mktplcRef = {
|
||||
publisher = "RooVeterinaryInc";
|
||||
name = "roo-cline";
|
||||
version = "3.18.3";
|
||||
hash = "sha256-kg4kXO7UwDQPXb6CAysaez2v8FPRMbX+f41vE68V0QA=";
|
||||
version = "3.19.3";
|
||||
hash = "sha256-7GZD7oCrkGcG7B/pgXK92hL0QyyodmqyxOcRhTt5LMs=";
|
||||
};
|
||||
|
||||
passthru.updateScript = vscode-extension-update-script { };
|
||||
|
|
|
@ -10,8 +10,8 @@ vscode-utils.buildVscodeMarketplaceExtension {
|
|||
mktplcRef = {
|
||||
name = "sourcery";
|
||||
publisher = "sourcery";
|
||||
version = "1.36.0";
|
||||
hash = "sha256-HbOPoDu0R47US+UtK7i2BLiYgUhnNMD1i6Ibo8h3Auk=";
|
||||
version = "1.37.0";
|
||||
hash = "sha256-ovCxcr1m3GmRu45hr5DG781xkQdANbQYLvV2gFhG4eQ=";
|
||||
};
|
||||
|
||||
nativeBuildInputs = lib.optionals stdenv.hostPlatform.isLinux [ autoPatchelfHook ];
|
||||
|
|
|
@ -74,7 +74,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
meta = {
|
||||
description = "Comic reader for cross-platform reading and managing your digital comic collection";
|
||||
homepage = "http://www.yacreader.com";
|
||||
homepage = "https://www.yacreader.com";
|
||||
license = lib.licenses.gpl3;
|
||||
mainProgram = "YACReader";
|
||||
maintainers = [ ];
|
||||
|
|
|
@ -54,7 +54,7 @@ mkDerivation rec {
|
|||
|
||||
meta = with lib; {
|
||||
description = "WYSIWYM frontend for LaTeX, DocBook";
|
||||
homepage = "http://www.lyx.org";
|
||||
homepage = "https://www.lyx.org";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = [ maintainers.vcunat ];
|
||||
platforms = platforms.linux;
|
||||
|
|
File diff suppressed because it is too large
Load diff
|
@ -36,13 +36,13 @@
|
|||
"vendorHash": "sha256-jK7JuARpoxq7hvq5+vTtUwcYot0YqlOZdtDwq4IqKvk="
|
||||
},
|
||||
"aiven": {
|
||||
"hash": "sha256-XZXyeWSgJ5h+dkxYNqb49BrdlmpbfMIxY7UgP2yAtoI=",
|
||||
"hash": "sha256-XIBaAzQWuKbLIkjSqBS3hVOtXlZzt9AonSgE+qTmU8Q=",
|
||||
"homepage": "https://registry.terraform.io/providers/aiven/aiven",
|
||||
"owner": "aiven",
|
||||
"repo": "terraform-provider-aiven",
|
||||
"rev": "v4.40.0",
|
||||
"rev": "v4.41.0",
|
||||
"spdx": "MIT",
|
||||
"vendorHash": "sha256-T2yIUO8DAuUC5s/bBxgsn99fCjJO1y6TzmPTuhT08FY="
|
||||
"vendorHash": "sha256-lzih59OW98HRfl8ENCdGDeocNZjnWvHjNWmd0djPoEM="
|
||||
},
|
||||
"akamai": {
|
||||
"hash": "sha256-JALEVzmBVmHtCG4B1jNeNdSWb+SGZWDSZgUQ5voMQPg=",
|
||||
|
@ -399,13 +399,13 @@
|
|||
"vendorHash": "sha256-0axKIqF1t4AW1PPi+fHfsFQLRrjhpsloQIZ9clR+8Gc="
|
||||
},
|
||||
"docker": {
|
||||
"hash": "sha256-sPeX1bupACBSmt8ppyxQKyD+FXIPdCBWn8cnOAvNHwQ=",
|
||||
"hash": "sha256-A2XFSVWpEZs6vmJb5i9dDqkIIlwoGLgbFxXUnFKgtMo=",
|
||||
"homepage": "https://registry.terraform.io/providers/kreuzwerker/docker",
|
||||
"owner": "kreuzwerker",
|
||||
"repo": "terraform-provider-docker",
|
||||
"rev": "v3.6.0",
|
||||
"rev": "v3.6.1",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-bQM6bAtTqAzrIqvCnpfxYefiTmTKaJq8okAgOVls5jk="
|
||||
"vendorHash": "sha256-duHOqjy8AthXuDX63GO3myJ9TJmV0Ts1a8OsbSOGZWI="
|
||||
},
|
||||
"doppler": {
|
||||
"hash": "sha256-TPWHqRpvyk1dtSbQySMOecq0AhN2VlSB+2naPIbvMHI=",
|
||||
|
@ -543,13 +543,13 @@
|
|||
"vendorHash": "sha256-fqVBnAivVekV+4tpkl+E6eNA3wi8mhLevJRCs3W7L2g="
|
||||
},
|
||||
"grafana": {
|
||||
"hash": "sha256-Nz+6l/sJog7Snzady4qQCooBwv6IZ+12RkFZ55Hka9w=",
|
||||
"hash": "sha256-nKapC8Pcg/HF/xXP8fOzMQV0NSJarAym6TIb+7l0g+c=",
|
||||
"homepage": "https://registry.terraform.io/providers/grafana/grafana",
|
||||
"owner": "grafana",
|
||||
"repo": "terraform-provider-grafana",
|
||||
"rev": "v3.25.1",
|
||||
"rev": "v3.25.2",
|
||||
"spdx": "MPL-2.0",
|
||||
"vendorHash": "sha256-G5CiuQ0GPsJ7D+wlWQUAktT3DSgb2X7NL66c6U+9APU="
|
||||
"vendorHash": "sha256-QTcWJlwE6s4nEPSg6svzIhsJo9p9rk1gQiSr4qSTfns="
|
||||
},
|
||||
"gridscale": {
|
||||
"hash": "sha256-Ygt3L/dzwycccQZmuwbcaLHp9FBGNHgU19wSNmY8PzQ=",
|
||||
|
|
|
@ -30,18 +30,28 @@ let
|
|||
in
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "mullvad";
|
||||
version = "2025.3";
|
||||
version = "2025.6";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mullvad";
|
||||
repo = "mullvadvpn-app";
|
||||
tag = version;
|
||||
fetchSubmodules = true;
|
||||
hash = "sha256-IpGTqi0gSE2yXXou5fp+CryHfIKx0n3y/V4K2+ZO3k8=";
|
||||
hash = "sha256-WWJcfnp1v1LhEElJQdLx6Gz+bj7MdgbefD6BQ4nihMs=";
|
||||
};
|
||||
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-EJ8yk11H1QB+7CGjJYY5BjBAFTDK4d02/DJOQTVGFho=";
|
||||
cargoHash = "sha256-r6WogC25hpzw2pHa8RQOhr9SWks9RKKatpVHblfs+Nc=";
|
||||
|
||||
cargoBuildFlags = [
|
||||
"-p mullvad-daemon --bin mullvad-daemon"
|
||||
"-p mullvad-cli --bin mullvad"
|
||||
"-p mullvad-setup --bin mullvad-setup"
|
||||
"-p mullvad-problem-report --bin mullvad-problem-report"
|
||||
"-p mullvad-exclude --bin mullvad-exclude"
|
||||
"-p tunnel-obfuscation --bin tunnel-obfuscation"
|
||||
"-p talpid-openvpn-plugin --lib"
|
||||
];
|
||||
|
||||
checkFlags = [
|
||||
"--skip=version_check"
|
||||
|
@ -79,22 +89,14 @@ rustPlatform.buildRustPackage rec {
|
|||
'';
|
||||
|
||||
postFixup =
|
||||
# Place all binaries in the 'mullvad-' namespace, even though these
|
||||
# specific binaries aren't used in the lifetime of the program.
|
||||
# Files necessary for OpenVPN tunnels to work.
|
||||
lib.optionalString enableOpenvpn ''
|
||||
mkdir -p $out/share/mullvad
|
||||
cp dist-assets/ca.crt $out/share/mullvad
|
||||
ln -s ${openvpn-mullvad}/bin/openvpn $out/share/mullvad
|
||||
ln -s ${shadowsocks-rust}/bin/sslocal $out/share/mullvad
|
||||
ln -s $out/lib/libtalpid_openvpn_plugin.so $out/share/mullvad
|
||||
''
|
||||
for bin in relay_list translations-converter tunnel-obfuscation; do
|
||||
mv "$out/bin/$bin" "$out/bin/mullvad-$bin"
|
||||
done
|
||||
''
|
||||
+
|
||||
# Files necessary for OpenVPN tunnels to work.
|
||||
lib.optionalString enableOpenvpn ''
|
||||
mkdir -p $out/share/mullvad
|
||||
cp dist-assets/ca.crt $out/share/mullvad
|
||||
ln -s ${openvpn-mullvad}/bin/openvpn $out/share/mullvad
|
||||
ln -s ${shadowsocks-rust}/bin/sslocal $out/share/mullvad
|
||||
ln -s $out/lib/libtalpid_openvpn_plugin.so $out/share/mullvad
|
||||
''
|
||||
+
|
||||
# Set the directory where Mullvad will look for its resources by default to
|
||||
# `$out/share`, so that we can avoid putting the files in `$out/bin` --
|
||||
|
@ -121,7 +123,7 @@ rustPlatform.buildRustPackage rec {
|
|||
meta = {
|
||||
description = "Mullvad VPN command-line client tools";
|
||||
homepage = "https://github.com/mullvad/mullvadvpn-app";
|
||||
changelog = "https://github.com/mullvad/mullvadvpn-app/blob/2025.2/CHANGELOG.md";
|
||||
changelog = "https://github.com/mullvad/mullvadvpn-app/blob/2025.6/CHANGELOG.md";
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [ cole-h ];
|
||||
mainProgram = "mullvad";
|
||||
|
|
|
@ -72,7 +72,7 @@ callPackage ./generic.nix {
|
|||
);
|
||||
meta = with lib; {
|
||||
description = "Wolfram Mathematica computational software system";
|
||||
homepage = "http://www.wolfram.com/mathematica/";
|
||||
homepage = "https://www.wolfram.com/mathematica/";
|
||||
license = licenses.unfree;
|
||||
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
|
||||
maintainers = with maintainers; [
|
||||
|
|
|
@ -82,7 +82,7 @@ stdenv.mkDerivation rec {
|
|||
];
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://www.tvdr.de/";
|
||||
homepage = "https://www.tvdr.de/";
|
||||
description = "Video Disc Recorder";
|
||||
maintainers = [ maintainers.ck3d ];
|
||||
platforms = platforms.linux;
|
||||
|
|
|
@ -16,7 +16,6 @@
|
|||
libXcursor,
|
||||
libXfixes,
|
||||
libXmu,
|
||||
libIDL,
|
||||
SDL2,
|
||||
libcap,
|
||||
libGL,
|
||||
|
@ -74,9 +73,9 @@ let
|
|||
buildType = "release";
|
||||
# Use maintainers/scripts/update.nix to update the version and all related hashes or
|
||||
# change the hashes in extpack.nix and guest-additions/default.nix as well manually.
|
||||
virtualboxVersion = "7.1.8";
|
||||
virtualboxVersion = "7.1.10";
|
||||
virtualboxSubVersion = "";
|
||||
virtualboxSha256 = "3f7132c55ac6c5f50585bfaa115d29e30b47ccf535cb0a12ff50214ddae2f63d";
|
||||
virtualboxSha256 = "7d60010a4c9102613554b46f61d17b825c30ee59d8be071e52d8aac664ca9869";
|
||||
|
||||
kvmPatchVersion = "20250207";
|
||||
kvmPatchHash = "sha256-GzRLIXhzWL1NLvaGKcWVBCdvay1IxgJUE4koLX1ze7Y=";
|
||||
|
@ -148,7 +147,6 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
libX11
|
||||
libXext
|
||||
libXcursor
|
||||
libIDL
|
||||
libcap
|
||||
glib
|
||||
lvm2
|
||||
|
@ -249,8 +247,8 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
++ optional enableKvm (
|
||||
let
|
||||
patchVboxVersion =
|
||||
# There is no updated patch for 7.1.8 yet, but the older one still applies.
|
||||
if finalAttrs.virtualboxVersion == "7.1.8" then "7.1.6" else finalAttrs.virtualboxVersion;
|
||||
# There is no updated patch for 7.1.10 yet, but the older one still applies.
|
||||
if finalAttrs.virtualboxVersion == "7.1.10" then "7.1.6" else finalAttrs.virtualboxVersion;
|
||||
in
|
||||
fetchpatch {
|
||||
name = "virtualbox-${finalAttrs.virtualboxVersion}-kvm-dev-${finalAttrs.kvmPatchVersion}.patch";
|
||||
|
@ -320,7 +318,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
${optionalString (enableKvm) "--with-kvm"} \
|
||||
${extraConfigureFlags} \
|
||||
--disable-kmods
|
||||
sed -e 's@PKG_CONFIG_PATH=.*@PKG_CONFIG_PATH=${libIDL}/lib/pkgconfig:${glib.dev}/lib/pkgconfig ${libIDL}/bin/libIDL-config-2@' \
|
||||
sed -e 's@PKG_CONFIG_PATH=.*@PKG_CONFIG_PATH=${glib.dev}/lib/pkgconfig@' \
|
||||
-i AutoConfig.kmk
|
||||
sed -e 's@arch/x86/@@' \
|
||||
-i Config.kmk
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
virtualbox,
|
||||
}:
|
||||
let
|
||||
virtualboxExtPackVersion = "7.1.8";
|
||||
virtualboxExtPackVersion = "7.1.10";
|
||||
in
|
||||
fetchurl rec {
|
||||
name = "Oracle_VirtualBox_Extension_Pack-${virtualboxExtPackVersion}.vbox-extpack";
|
||||
|
@ -14,7 +14,7 @@ fetchurl rec {
|
|||
# Thus do not use `nix-prefetch-url` but instead plain old `sha256sum`.
|
||||
# Checksums can also be found at https://www.virtualbox.org/download/hashes/${version}/SHA256SUMS
|
||||
let
|
||||
value = "912586a3a1e9285f9df264f7999e6fffc0b8a42f2e013dd898a86f7ed3975d37";
|
||||
value = "e020755711849fa0ee23d3bc47bc90cb0ea595da7dda804499568a0dc2387989";
|
||||
in
|
||||
assert (builtins.stringLength value) == 64;
|
||||
value;
|
||||
|
|
|
@ -5,7 +5,7 @@
|
|||
}:
|
||||
fetchurl {
|
||||
url = "http://download.virtualbox.org/virtualbox/${virtualboxVersion}/VBoxGuestAdditions_${virtualboxVersion}.iso";
|
||||
sha256 = "0001ed19cc389f04723c9b911338559b9b74bea0d24edf794d8d2ce5b5cb14e0";
|
||||
sha256 = "59c92f7f5fd7e081211e989f5117fc53ad8d8800ad74a01b21e97bb66fe62972";
|
||||
meta = {
|
||||
description = "Guest additions ISO for VirtualBox";
|
||||
longDescription = ''
|
||||
|
|
|
@ -12,9 +12,9 @@
|
|||
libX11,
|
||||
}:
|
||||
let
|
||||
virtualboxVersion = "7.1.8";
|
||||
virtualboxVersion = "7.1.10";
|
||||
virtualboxSubVersion = "";
|
||||
virtualboxSha256 = "3f7132c55ac6c5f50585bfaa115d29e30b47ccf535cb0a12ff50214ddae2f63d";
|
||||
virtualboxSha256 = "7d60010a4c9102613554b46f61d17b825c30ee59d8be071e52d8aac664ca9869";
|
||||
|
||||
virtualBoxNixGuestAdditionsBuilder = callPackage ./builder.nix {
|
||||
inherit virtualboxVersion virtualboxSubVersion virtualboxSha256;
|
||||
|
|
|
@ -23,12 +23,12 @@ stdenvNoCC.mkDerivation rec {
|
|||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Proportional version of the 0xProto font";
|
||||
homepage = "https://github.com/0xType/0xPropo";
|
||||
changelog = "https://github.com/0xType/0xPropo/releases/tag/${version}";
|
||||
license = licenses.ofl;
|
||||
maintainers = with maintainers; [ vinnymeller ];
|
||||
platforms = platforms.all;
|
||||
license = lib.licenses.ofl;
|
||||
maintainers = with lib.maintainers; [ vinnymeller ];
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -29,15 +29,15 @@ stdenvNoCC.mkDerivation rec {
|
|||
runHook postInstall
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Monospaced font based on IBM 3270 terminals";
|
||||
homepage = "https://github.com/rbanffy/3270font";
|
||||
changelog = "https://github.com/rbanffy/3270font/blob/v${version}/CHANGELOG.md";
|
||||
license = [
|
||||
licenses.bsd3
|
||||
licenses.ofl
|
||||
lib.licenses.bsd3
|
||||
lib.licenses.ofl
|
||||
];
|
||||
maintainers = [ ];
|
||||
platforms = platforms.all;
|
||||
maintainers = with lib.maintainers; [ ];
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -18,13 +18,13 @@ stdenv.mkDerivation rec {
|
|||
|
||||
nativeBuildInputs = [ autoreconfHook ];
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Tunnelling for application that don't speak IPv6";
|
||||
mainProgram = "6tunnel";
|
||||
homepage = "https://github.com/wojtekka/6tunnel";
|
||||
changelog = "https://github.com/wojtekka/6tunnel/blob/${version}/ChangeLog";
|
||||
license = licenses.gpl2Only;
|
||||
maintainers = with maintainers; [ Br1ght0ne ];
|
||||
platforms = platforms.unix;
|
||||
license = lib.licenses.gpl2Only;
|
||||
maintainers = with lib.maintainers; [ Br1ght0ne ];
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -33,13 +33,13 @@ stdenv.mkDerivation rec {
|
|||
# but it's better to disable tests than loose ASLR on i686
|
||||
doCheck = !stdenv.hostPlatform.isi686;
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "ATSC A/52 stream decoder";
|
||||
homepage = "https://liba52.sourceforge.io/";
|
||||
changelog = "https://git.adelielinux.org/community/a52dec/-/blob/v${version}/ChangeLog?ref_type=tags";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ wegank ];
|
||||
license = lib.licenses.gpl2Plus;
|
||||
maintainers = with lib.maintainers; [ wegank ];
|
||||
mainProgram = "a52dec";
|
||||
platforms = platforms.unix;
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -25,13 +25,13 @@ buildGoModule rec {
|
|||
# Tests require network access
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Vulnerability remediation scoring system";
|
||||
homepage = "https://github.com/elysium-suite/aeacus";
|
||||
changelog = "https://github.com/elysium-suite/aeacus/releases/tag/v${version}";
|
||||
license = licenses.gpl2Only;
|
||||
maintainers = with maintainers; [ fab ];
|
||||
license = lib.licenses.gpl2Only;
|
||||
maintainers = with lib.maintainers; [ fab ];
|
||||
mainProgram = "aeacus";
|
||||
platforms = platforms.linux;
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -22,12 +22,12 @@ buildGoModule rec {
|
|||
"-X main.Version=${version}"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
homepage = "https://github.com/slok/agebox";
|
||||
changelog = "https://github.com/slok/agebox/releases/tag/v${version}";
|
||||
description = "Age based repository file encryption gitops tool";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ lesuisse ];
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ lesuisse ];
|
||||
mainProgram = "agebox";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -68,14 +68,14 @@ stdenvNoCC.mkDerivation rec {
|
|||
];
|
||||
});
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Android GPU Inspector";
|
||||
homepage = "https://gpuinspector.dev";
|
||||
changelog = "https://github.com/google/agi/releases/tag/v${version}";
|
||||
platforms = [ "x86_64-linux" ];
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ kashw2 ];
|
||||
sourceProvenance = with sourceTypes; [
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ kashw2 ];
|
||||
sourceProvenance = with lib.sourceTypes; [
|
||||
binaryBytecode
|
||||
binaryNativeCode
|
||||
];
|
||||
|
|
|
@ -19,7 +19,7 @@ stdenv.mkDerivation rec {
|
|||
|
||||
enableParallelBuilding = true;
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "ANSI HTML Adapter";
|
||||
mainProgram = "aha";
|
||||
longDescription = ''
|
||||
|
@ -27,11 +27,11 @@ stdenv.mkDerivation rec {
|
|||
'';
|
||||
homepage = "https://github.com/theZiz/aha";
|
||||
changelog = "https://github.com/theZiz/aha/blob/${version}/CHANGELOG";
|
||||
license = with licenses; [
|
||||
license = with lib.licenses; [
|
||||
lgpl2Plus
|
||||
mpl11
|
||||
];
|
||||
maintainers = with maintainers; [ pSub ];
|
||||
platforms = platforms.all;
|
||||
maintainers = with lib.maintainers; [ pSub ];
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -53,12 +53,12 @@ python3.pkgs.buildPythonApplication rec {
|
|||
"ansibledoctor"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Annotation based documentation for your Ansible roles";
|
||||
mainProgram = "ansible-doctor";
|
||||
homepage = "https://github.com/thegeeklab/ansible-doctor";
|
||||
changelog = "https://github.com/thegeeklab/ansible-doctor/releases/tag/v${version}";
|
||||
license = licenses.lgpl3Only;
|
||||
maintainers = with maintainers; [ tboerger ];
|
||||
license = lib.licenses.lgpl3Only;
|
||||
maintainers = with lib.maintainers; [ tboerger ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -34,12 +34,12 @@ buildNpmPackage rec {
|
|||
npmPackFlags = [ "--ignore-scripts" ];
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
changelog = "https://github.com/ansible/ansible-language-server/releases/tag/v${version}";
|
||||
description = "Ansible Language Server";
|
||||
mainProgram = "ansible-language-server";
|
||||
homepage = "https://github.com/ansible/ansible-language-server";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ hexa ];
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ hexa ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -55,12 +55,12 @@ stdenv.mkDerivation rec {
|
|||
mv docs/* $out/share/doc/${pname}
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
homepage = "https://github.com/CycoPH/atasm";
|
||||
description = "Commandline 6502 assembler compatible with Mac/65";
|
||||
license = licenses.gpl2Plus;
|
||||
license = lib.licenses.gpl2Plus;
|
||||
changelog = "https://github.com/CycoPH/atasm/releases/tag/V${version}";
|
||||
maintainers = with maintainers; [ ];
|
||||
platforms = with platforms; unix;
|
||||
maintainers = with lib.maintainers; [ ];
|
||||
platforms = with lib.platforms; unix;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -48,12 +48,12 @@ stdenv.mkDerivation rec {
|
|||
|
||||
doCheck = true;
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Advanced tftp tools";
|
||||
changelog = "https://sourceforge.net/p/atftp/code/ci/v${version}/tree/Changelog";
|
||||
homepage = "https://sourceforge.net/projects/atftp/";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = with maintainers; [ raskin ];
|
||||
platforms = platforms.linux;
|
||||
license = lib.licenses.gpl2Plus;
|
||||
maintainers = with lib.maintainers; [ raskin ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -35,16 +35,16 @@ buildGoModule (finalAttrs: {
|
|||
tests.version = testers.testVersion { package = athens; };
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Go module datastore and proxy";
|
||||
homepage = "https://github.com/gomods/athens";
|
||||
changelog = "https://github.com/gomods/athens/releases/tag/v${version}";
|
||||
license = licenses.mit;
|
||||
changelog = "https://github.com/gomods/athens/releases/tag/v${finalAttrs.version}";
|
||||
license = lib.licenses.mit;
|
||||
mainProgram = "athens";
|
||||
maintainers = with maintainers; [
|
||||
maintainers = with lib.maintainers; [
|
||||
katexochen
|
||||
malt3
|
||||
];
|
||||
platforms = platforms.unix;
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
})
|
||||
|
|
|
@ -40,12 +40,12 @@ buildGoModule {
|
|||
|
||||
passthru.updateScript = nix-update-script { };
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
homepage = "https://github.com/AthanorLabs/atomic-swap";
|
||||
changelog = "https://github.com/AthanorLabs/atomic-swap/releases/tag/v${version}";
|
||||
description = "ETH-XMR atomic swap implementation";
|
||||
license = with licenses; [ lgpl3Only ];
|
||||
maintainers = with maintainers; [
|
||||
license = with lib.licenses; [ lgpl3Only ];
|
||||
maintainers = with lib.maintainers; [
|
||||
happysalada
|
||||
lord-valen
|
||||
];
|
||||
|
|
|
@ -31,12 +31,12 @@ python3.pkgs.buildPythonApplication rec {
|
|||
|
||||
pythonImportsCheck = [ "audiness" ];
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "CLI tool to interact with Nessus";
|
||||
homepage = "https://github.com/audiusGmbH/audiness";
|
||||
changelog = "https://github.com/audiusGmbH/audiness/releases/tag/${version}";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ fab ];
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ fab ];
|
||||
mainProgram = "audiness";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -18,12 +18,12 @@ rustPlatform.buildRustPackage rec {
|
|||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-kIrbHt6aAUgdF4Jx/aUOYpiBj1+pyFLCVak6R+JN2Ug=";
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Ping the host continuously and write results to a file";
|
||||
homepage = "https://github.com/audiusGmbH/audion";
|
||||
changelog = "https://github.com/audiusGmbH/audion/releases/tag/${version}";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ fab ];
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ fab ];
|
||||
mainProgram = "audion";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -47,7 +47,7 @@ stdenv.mkDerivation rec {
|
|||
# One test is failing, see PR #101947
|
||||
doCheck = false;
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "C++ program to generate waveform data and render waveform images from audio files";
|
||||
longDescription = ''
|
||||
audiowaveform is a C++ command-line application that generates waveform data from either MP3, WAV, FLAC, or Ogg Vorbis format audio files.
|
||||
|
@ -55,9 +55,9 @@ stdenv.mkDerivation rec {
|
|||
'';
|
||||
homepage = "https://github.com/bbc/audiowaveform";
|
||||
changelog = "https://github.com/bbc/audiowaveform/blob/${version}/ChangeLog";
|
||||
license = licenses.gpl3Plus;
|
||||
platforms = platforms.all;
|
||||
maintainers = with maintainers; [ edbentley ];
|
||||
license = lib.licenses.gpl3Plus;
|
||||
platforms = lib.platforms.all;
|
||||
maintainers = with lib.maintainers; [ edbentley ];
|
||||
mainProgram = "audiowaveform";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -62,13 +62,13 @@ stdenv.mkDerivation rec {
|
|||
"dev"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Configuration editing tool";
|
||||
license = licenses.lgpl21Only;
|
||||
license = lib.licenses.lgpl21Only;
|
||||
homepage = "https://augeas.net/";
|
||||
changelog = "https://github.com/hercules-team/augeas/releases/tag/release-${version}";
|
||||
mainProgram = "augtool";
|
||||
maintainers = with maintainers; [ offline ];
|
||||
platforms = platforms.unix;
|
||||
maintainers = with lib.maintainers; [ offline ];
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -47,12 +47,12 @@ buildGoModule rec {
|
|||
|
||||
subPackages = [ "cmd/auth0" ];
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Supercharge your developer workflow";
|
||||
homepage = "https://auth0.github.io/auth0-cli";
|
||||
changelog = "https://github.com/auth0/auth0-cli/releases/tag/v${version}";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ matthewcroughan ];
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ matthewcroughan ];
|
||||
mainProgram = "auth0";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -25,14 +25,14 @@ let
|
|||
hash = "sha256-idShMSYIrf3ViG9VFNGNu6TSjBz3Q+GJMMeCzcJwfG4=";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Authentication glue you need";
|
||||
changelog = "https://github.com/goauthentik/authentik/releases/tag/version%2F${version}";
|
||||
homepage = "https://goauthentik.io/";
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux;
|
||||
license = lib.licenses.mit;
|
||||
platforms = lib.platforms.linux;
|
||||
broken = stdenvNoCC.buildPlatform != stdenvNoCC.hostPlatform;
|
||||
maintainers = with maintainers; [
|
||||
maintainers = with lib.maintainers; [
|
||||
jvanbruegge
|
||||
risson
|
||||
];
|
||||
|
|
|
@ -23,12 +23,12 @@
|
|||
pkg-config,
|
||||
poppler,
|
||||
}:
|
||||
stdenv.mkDerivation (finalAttrs: rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "auto-multiple-choice";
|
||||
version = "1.7.0";
|
||||
src = fetchurl {
|
||||
url = "https://download.auto-multiple-choice.net/${pname}_${version}_dist.tar.gz";
|
||||
# before 1.7.0, the URL pattern used "precomp" instead of "dist". ^^^^
|
||||
url = "https://download.auto-multiple-choice.net/auto-multiple-choice_${finalAttrs.version}_dist.tar.gz";
|
||||
# before 1.7.0, the URL pattern used "precomp" instead of "dist".
|
||||
sha256 = "sha256-37kWqgdvZopvNSU6LA/FmY2wfSJz3rRSlaQF2HSbdmA=";
|
||||
};
|
||||
|
||||
|
|
|
@ -36,12 +36,12 @@ python3.pkgs.buildPythonApplication rec {
|
|||
"autobloody"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Tool to automatically exploit Active Directory privilege escalation paths";
|
||||
homepage = "https://github.com/CravateRouge/autobloody";
|
||||
changelog = "https://github.com/CravateRouge/autobloody/releases/tag/v${version}";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ fab ];
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ fab ];
|
||||
mainProgram = "autobloody";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -34,12 +34,12 @@ rustPlatform.buildRustPackage rec {
|
|||
|
||||
passthru.updateScript = ./update.sh;
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Linter and formatter for help you improve copywriting, to correct spaces, punctuations between CJK (Chinese, Japanese, Korean)";
|
||||
mainProgram = "autocorrect";
|
||||
homepage = "https://huacnlee.github.io/autocorrect";
|
||||
changelog = "https://github.com/huacnlee/autocorrect/releases/tag/v${version}";
|
||||
license = licenses.mit;
|
||||
maintainers = [ ];
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -18,13 +18,13 @@ rustPlatform.buildRustPackage rec {
|
|||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-H4bFSqt8hOH6tF2WO1mQqqmbK9U2qlFC+7swz/xj1I8=";
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Automatically update system timezone based on location";
|
||||
homepage = "https://github.com/maxbrunet/automatic-timezoned";
|
||||
changelog = "https://github.com/maxbrunet/automatic-timezoned/blob/v${version}/CHANGELOG.md";
|
||||
license = licenses.gpl3;
|
||||
maintainers = with maintainers; [ maxbrunet ];
|
||||
platforms = platforms.linux;
|
||||
license = lib.licenses.gpl3;
|
||||
maintainers = with lib.maintainers; [ maxbrunet ];
|
||||
platforms = lib.platforms.linux;
|
||||
mainProgram = "automatic-timezoned";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -29,15 +29,15 @@ stdenv.mkDerivation rec {
|
|||
|
||||
strictDeps = true;
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Ayatana Display Indicator Objects";
|
||||
homepage = "https://github.com/AyatanaIndicators/ayatana-ido";
|
||||
changelog = "https://github.com/AyatanaIndicators/ayatana-ido/blob/${version}/ChangeLog";
|
||||
license = [
|
||||
licenses.lgpl3Plus
|
||||
licenses.lgpl21Plus
|
||||
lib.licenses.lgpl3Plus
|
||||
lib.licenses.lgpl21Plus
|
||||
];
|
||||
maintainers = [ maintainers.nickhu ];
|
||||
platforms = platforms.linux;
|
||||
maintainers = [ lib.maintainers.nickhu ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -50,9 +50,9 @@
|
|||
},
|
||||
"aks-preview": {
|
||||
"pname": "aks-preview",
|
||||
"version": "17.0.0b4",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/aks_preview-17.0.0b4-py2.py3-none-any.whl",
|
||||
"hash": "sha256-KZ4j1OvY/ziVZnv1nAnowWD+ujYrOYMxfOmH6krHDjI=",
|
||||
"version": "18.0.0b7",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/aks_preview-18.0.0b7-py2.py3-none-any.whl",
|
||||
"hash": "sha256-5xRE/WGe/PbTavC/b9MrrXMwXVsBoEEog44A8YJu9cY=",
|
||||
"description": "Provides a preview for upcoming AKS features"
|
||||
},
|
||||
"akshybrid": {
|
||||
|
@ -113,9 +113,9 @@
|
|||
},
|
||||
"astronomer": {
|
||||
"pname": "astronomer",
|
||||
"version": "1.0.0",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/astronomer-1.0.0-py3-none-any.whl",
|
||||
"hash": "sha256-tMpBtdnLd67StGLe1KOSrjzols6NnLlKCGcdDLaBds0=",
|
||||
"version": "1.0.1",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/astronomer-1.0.1-py3-none-any.whl",
|
||||
"hash": "sha256-71tmCfbCGCyOIQjP3QvdcpEnHC00tw9MIXqmGfcBCno=",
|
||||
"description": "Microsoft Azure Command-Line Tools Astronomer Extension"
|
||||
},
|
||||
"authV2": {
|
||||
|
@ -183,11 +183,18 @@
|
|||
},
|
||||
"blueprint": {
|
||||
"pname": "blueprint",
|
||||
"version": "0.3.2",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/blueprint-0.3.2-py3-none-any.whl",
|
||||
"hash": "sha256-WNODVEbdk+WFsPa1IKLbZVG4qSfjXiXaR0fUz4pMAJs=",
|
||||
"version": "1.0.0b1",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/blueprint-1.0.0b1-py3-none-any.whl",
|
||||
"hash": "sha256-WVBTayQ3Asbs5Q8sE8d4q68xIJN6i0cZiNHV+8szmlQ=",
|
||||
"description": "Microsoft Azure Command-Line Tools Blueprint Extension"
|
||||
},
|
||||
"carbon": {
|
||||
"pname": "carbon",
|
||||
"version": "1.0.0b1",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/carbon-1.0.0b1-py3-none-any.whl",
|
||||
"hash": "sha256-w+HDLtCIAIhlFTpR4iUMEKPC2vInPWWmMTX0VT9q1lg=",
|
||||
"description": "Microsoft Azure Command-Line Tools Carbon Extension"
|
||||
},
|
||||
"change-analysis": {
|
||||
"pname": "change-analysis",
|
||||
"version": "0.1.0",
|
||||
|
@ -225,9 +232,9 @@
|
|||
},
|
||||
"connectedmachine": {
|
||||
"pname": "connectedmachine",
|
||||
"version": "1.1.1b1",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/connectedmachine-1.1.1b1-py3-none-any.whl",
|
||||
"hash": "sha256-IFX8KBG4QrgEIdsPzhlHQ1/q+0sFgQBlMUeF+wgTzGA=",
|
||||
"version": "2.0.0b1",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/connectedmachine-2.0.0b1-py3-none-any.whl",
|
||||
"hash": "sha256-TNewwps4rNSx/O+GIhdFMsLJC8Z0pxD2VIlGsujOPVs=",
|
||||
"description": "Microsoft Azure Command-Line Tools ConnectedMachine Extension"
|
||||
},
|
||||
"connectedvmware": {
|
||||
|
@ -239,9 +246,9 @@
|
|||
},
|
||||
"cosmosdb-preview": {
|
||||
"pname": "cosmosdb-preview",
|
||||
"version": "1.4.0",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/cosmosdb_preview-1.4.0-py2.py3-none-any.whl",
|
||||
"hash": "sha256-u8wSLjuIyy6aC4tPKou9dSk1nKeb19Tx8JhpUYVGH34=",
|
||||
"version": "1.6.0",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/cosmosdb_preview-1.6.0-py2.py3-none-any.whl",
|
||||
"hash": "sha256-OO8IjVRhGOfsCb/Oot7Dc7PmfNsDmaXiCuG0at8Hb44=",
|
||||
"description": "Microsoft Azure Command-Line Tools Cosmosdb-preview Extension"
|
||||
},
|
||||
"costmanagement": {
|
||||
|
@ -274,9 +281,9 @@
|
|||
},
|
||||
"databox": {
|
||||
"pname": "databox",
|
||||
"version": "1.1.0",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/databox-1.1.0-py3-none-any.whl",
|
||||
"hash": "sha256-e0GmBSHXz2UtTNygUvydLsY3Hz14hOwKdLqafVAB17s=",
|
||||
"version": "1.2.0",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/databox-1.2.0-py3-none-any.whl",
|
||||
"hash": "sha256-bFHiTEUKirHc90iJUkqcPfKRrJlBonekcEMzVeReQfc=",
|
||||
"description": "Microsoft Azure Command-Line Tools Databox Extension"
|
||||
},
|
||||
"databricks": {
|
||||
|
@ -288,16 +295,16 @@
|
|||
},
|
||||
"datadog": {
|
||||
"pname": "datadog",
|
||||
"version": "0.1.1",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/datadog-0.1.1-py3-none-any.whl",
|
||||
"hash": "sha256-mjj9XW0BZG8pnue19o6CrXCIicfQvXLgtraxPlRV6Tc=",
|
||||
"description": "Microsoft Azure Command-Line Tools MicrosoftDatadogClient Extension"
|
||||
"version": "1.0.0",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/datadog-1.0.0-py3-none-any.whl",
|
||||
"hash": "sha256-VCcoKbYC+F8EbEMRzCMBX3a6LvdkkYKfM5OuC7WhUQI=",
|
||||
"description": "Microsoft Azure Command-Line Tools Datadog Extension"
|
||||
},
|
||||
"datafactory": {
|
||||
"pname": "datafactory",
|
||||
"version": "1.0.3",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/datafactory-1.0.3-py3-none-any.whl",
|
||||
"hash": "sha256-ZvQWykXTiKMvuzc4ByUecOIFNH+j6HBWaW7xaTCa6vs=",
|
||||
"version": "1.0.4",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/datafactory-1.0.4-py3-none-any.whl",
|
||||
"hash": "sha256-mn2ogckgs4gnsOUpavOHVsV+zOxXzosTAW98z4W063Y=",
|
||||
"description": "Microsoft Azure Command-Line Tools DataFactoryManagementClient Extension"
|
||||
},
|
||||
"datamigration": {
|
||||
|
@ -386,9 +393,9 @@
|
|||
},
|
||||
"dynatrace": {
|
||||
"pname": "dynatrace",
|
||||
"version": "1.1.0",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/dynatrace-1.1.0-py3-none-any.whl",
|
||||
"hash": "sha256-CR9A2HZCRby5Zn5CLU3TchFMnwCnKggPnI75K0PFGNY=",
|
||||
"version": "1.1.1",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/dynatrace-1.1.1-py3-none-any.whl",
|
||||
"hash": "sha256-uDqTcLrHCSrShT7CMl3GrMWLXjGGqvB2ofaLCrnyhvg=",
|
||||
"description": "Microsoft Azure Command-Line Tools Dynatrace Extension"
|
||||
},
|
||||
"edgeorder": {
|
||||
|
@ -561,9 +568,9 @@
|
|||
},
|
||||
"informatica": {
|
||||
"pname": "informatica",
|
||||
"version": "1.0.0b1",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/informatica-1.0.0b1-py3-none-any.whl",
|
||||
"hash": "sha256-YWaukceOdMAa870erS1igycH4XbqD31dMKXdSF9IJGI=",
|
||||
"version": "1.0.0b2",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/informatica-1.0.0b2-py3-none-any.whl",
|
||||
"hash": "sha256-TGbjP7LsW7SgdBawNYMvFe8kAAdFzbzMCcJp+s0wy0w=",
|
||||
"description": "Microsoft Azure Command-Line Tools Informatica Extension"
|
||||
},
|
||||
"init": {
|
||||
|
@ -589,9 +596,9 @@
|
|||
},
|
||||
"k8s-extension": {
|
||||
"pname": "k8s-extension",
|
||||
"version": "1.6.4",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/k8s_extension-1.6.4-py3-none-any.whl",
|
||||
"hash": "sha256-O11I5IFPdUDFWcMwgucurugl+zHzkvAL5Idj5UCHkwY=",
|
||||
"version": "1.6.5",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/k8s_extension-1.6.5-py3-none-any.whl",
|
||||
"hash": "sha256-MZJr6cLtg9m1TD5aYHw2ynfI1Rin5UvaAS7k0QsmZ7k=",
|
||||
"description": "Microsoft Azure Command-Line Tools K8s-extension Extension"
|
||||
},
|
||||
"k8s-runtime": {
|
||||
|
@ -699,6 +706,13 @@
|
|||
"hash": "sha256-LZVypO1wbfj2JsYgNq0i9GoVsRMnP4/5sGMTo4Cif1Y=",
|
||||
"description": "Microsoft Azure Command-Line Tools MobileNetwork Extension"
|
||||
},
|
||||
"mongo-db": {
|
||||
"pname": "mongo-db",
|
||||
"version": "1.0.0b1",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/mongo_db-1.0.0b1-py3-none-any.whl",
|
||||
"hash": "sha256-z/i+P/kx4MT8XskhqjohRL3Xpne9teLe6jmfCv6iv+0=",
|
||||
"description": "Microsoft Azure Command-Line Tools MongoDb Extension"
|
||||
},
|
||||
"monitor-control-service": {
|
||||
"pname": "monitor-control-service",
|
||||
"version": "1.2.0",
|
||||
|
@ -811,13 +825,6 @@
|
|||
"hash": "sha256-/k47qFwfZZZqBZKR5G6+t8lW8o2isVtUGwSSdltiOZI=",
|
||||
"description": "Microsoft Azure Command-Line Tools PeeringManagementClient Extension"
|
||||
},
|
||||
"pinecone": {
|
||||
"pname": "pinecone",
|
||||
"version": "1.0.0b1",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/pinecone-1.0.0b1-py3-none-any.whl",
|
||||
"hash": "sha256-5WXKpClTweNCLz/wW/PcKLbpFOdJagp1l7FOD3Ou/WM=",
|
||||
"description": "Microsoft Azure Command-Line Tools Pinecone Extension"
|
||||
},
|
||||
"playwright-cli-extension": {
|
||||
"pname": "playwright-cli-extension",
|
||||
"version": "1.0.0b1",
|
||||
|
@ -1084,6 +1091,13 @@
|
|||
"hash": "sha256-LbbCU9Q4YtBqRSUHPWe2Hx00t8iDIWK9Owv//SS5raY=",
|
||||
"description": "Manage virtual WAN, hubs, VPN gateways and VPN sites"
|
||||
},
|
||||
"vme": {
|
||||
"pname": "vme",
|
||||
"version": "1.0.0b1",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/vme-1.0.0b1-py3-none-any.whl",
|
||||
"hash": "sha256-cCAZh8ytxz5sEtyNuV/EqZ9KqOifBXr1W8PBJWctz/8=",
|
||||
"description": "Microsoft Azure Command-Line Tools Vme Extension"
|
||||
},
|
||||
"vmware": {
|
||||
"pname": "vmware",
|
||||
"version": "7.2.0",
|
||||
|
@ -1098,13 +1112,6 @@
|
|||
"hash": "sha256-kIsN8HzvZSF2oPK/D9z1i10W+0kD7jwG9z8Ls5E6XA8=",
|
||||
"description": "Additional commands for Azure AppService"
|
||||
},
|
||||
"weights-and-biases": {
|
||||
"pname": "weights-and-biases",
|
||||
"version": "1.0.0b1",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/weights_and_biases-1.0.0b1-py3-none-any.whl",
|
||||
"hash": "sha256-p961+8YG/7LsyS8b+xfEPq2hZeiwlwqBvnyXnkxoz3o=",
|
||||
"description": "Microsoft Azure Command-Line Tools WeightsAndBiases Extension"
|
||||
},
|
||||
"workloads": {
|
||||
"pname": "workloads",
|
||||
"version": "1.1.0",
|
||||
|
@ -1114,9 +1121,9 @@
|
|||
},
|
||||
"zones": {
|
||||
"pname": "zones",
|
||||
"version": "1.0.0b1",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/zones-1.0.0b1-py3-none-any.whl",
|
||||
"hash": "sha256-/CPMEVqdxeyzt2l3K8+eqv5Hs+EWjXJeKdWtD4xxGG0=",
|
||||
"version": "1.0.0b3",
|
||||
"url": "https://azcliprod.blob.core.windows.net/cli-extensions/zones-1.0.0b3-py3-none-any.whl",
|
||||
"hash": "sha256-O9gcKKvWDFmlnZabIioDGNIxqn8XDaE4xeOt3/q+7Rk=",
|
||||
"description": "Microsoft Azure Command-Line Tools Zones Extension"
|
||||
}
|
||||
}
|
||||
|
|
|
@ -156,5 +156,7 @@
|
|||
connection-monitor-preview = throw "The 'connection-monitor-preview' extension for azure-cli was deprecated upstream"; # Added 2024-11-02, https://github.com/Azure/azure-cli-extensions/pull/8194
|
||||
deidservice = throw "The 'deidservice' extension for azure-cli was moved under healthcareapis"; # Added 2024-11-19, https://github.com/Azure/azure-cli-extensions/pull/8224
|
||||
logz = throw "The 'logz' extension for azure-cli was deprecated upstream"; # Added 2024-11-02, https://github.com/Azure/azure-cli-extensions/pull/8459
|
||||
pinecone = throw "The 'pinecone' extension for azure-cli was removed upstream"; # Added 2025-06-03, https://github.com/Azure/azure-cli-extensions/pull/8763
|
||||
spring = throw "The 'spring' extension for azure-cli was deprecated upstream"; # Added 2025-05-07, https://github.com/Azure/azure-cli-extensions/pull/8652
|
||||
weights-and-biases = throw "The 'weights-and-biases' was removed upstream"; # Added 2025-06-03, https://github.com/Azure/azure-cli-extensions/pull/8764
|
||||
}
|
||||
|
|
|
@ -26,14 +26,14 @@
|
|||
}:
|
||||
|
||||
let
|
||||
version = "2.73.0";
|
||||
version = "2.74.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
name = "azure-cli-${version}-src";
|
||||
owner = "Azure";
|
||||
repo = "azure-cli";
|
||||
tag = "azure-cli-${version}";
|
||||
hash = "sha256-MLmTV/tg5fM3XFEMtBLPdvsiUS5Gj8CH/zvdehDoka0=";
|
||||
hash = "sha256-wX1XKC3snnKEQeqlW+btshjdcMR/5m2Z69QtcJe2Opc=";
|
||||
};
|
||||
|
||||
# put packages that needs to be overridden in the py package scope
|
||||
|
@ -168,6 +168,7 @@ py.pkgs.toPythonApplication (
|
|||
azure-keyvault-certificates
|
||||
azure-keyvault-keys
|
||||
azure-keyvault-secrets
|
||||
azure-keyvault-securitydomain
|
||||
azure-mgmt-advisor
|
||||
azure-mgmt-apimanagement
|
||||
azure-mgmt-appconfiguration
|
||||
|
|
|
@ -25,11 +25,11 @@ buildGoModule rec {
|
|||
ln -rs "$out/bin/azure-storage-azcopy" "$out/bin/azcopy"
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "New Azure Storage data transfer utility - AzCopy v10";
|
||||
homepage = "https://github.com/Azure/azure-storage-azcopy";
|
||||
changelog = "https://github.com/Azure/azure-storage-azcopy/releases/tag/v${version}";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ kashw2 ];
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ kashw2 ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -21,6 +21,6 @@ stdenvNoCC.mkDerivation rec {
|
|||
|
||||
meta = {
|
||||
description = "TrueType versions of the Computer Modern and AMS TeX Fonts";
|
||||
homepage = "http://www.ctan.org/tex-archive/fonts/cm/ps-type1/bakoma/ttf/";
|
||||
homepage = "https://www.ctan.org/tex-archive/fonts/cm/ps-type1/bakoma/ttf/";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -25,12 +25,12 @@ stdenv.mkDerivation rec {
|
|||
--replace '\$'{exec_prefix}/'$'{CMAKE_INSTALL_LIBDIR} '$'{CMAKE_INSTALL_FULL_LIBDIR}
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Opensource implementation of both encoder and decoder of the ITU G729 Annex A/B speech codec";
|
||||
homepage = "https://linphone.org/technical-corner/bcg729";
|
||||
changelog = "https://gitlab.linphone.org/BC/public/bcg729/raw/${version}/NEWS";
|
||||
license = licenses.gpl3Plus;
|
||||
maintainers = with maintainers; [ c0bw3b ];
|
||||
platforms = platforms.all;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
maintainers = with lib.maintainers; [ c0bw3b ];
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -9,10 +9,10 @@
|
|||
}:
|
||||
let
|
||||
pname = "beeper";
|
||||
version = "4.0.732";
|
||||
version = "4.0.747";
|
||||
src = fetchurl {
|
||||
url = "https://beeper-desktop.download.beeper.com/builds/Beeper-${version}.AppImage";
|
||||
hash = "sha256-8HcWEMrMpq+QCnkCf7Yn79fADy98KFqL/m1erXtM8XU=";
|
||||
hash = "sha256-eLNxuBCm3vzG/90mZsQCVInGu8lMPrr+/UBAHj+vGJ4=";
|
||||
};
|
||||
appimageContents = appimageTools.extract {
|
||||
inherit pname version src;
|
||||
|
|
|
@ -9,12 +9,12 @@
|
|||
testers,
|
||||
}:
|
||||
|
||||
stdenv.mkDerivation (finalAttrs: rec {
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "besu";
|
||||
version = "24.1.2";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://hyperledger.jfrog.io/artifactory/${pname}-binaries/${pname}/${version}/${pname}-${version}.tar.gz";
|
||||
url = "https://hyperledger.jfrog.io/artifactory/besu-binaries/besu/${finalAttrs.version}/besu-${finalAttrs.version}.tar.gz";
|
||||
sha256 = "sha256-CC24z0+2dSeqDddX5dJUs7SX9QJ8Iyh/nAp0pqdDvwg=";
|
||||
};
|
||||
|
||||
|
@ -26,20 +26,20 @@ stdenv.mkDerivation (finalAttrs: rec {
|
|||
cp -r bin $out/
|
||||
mkdir -p $out/lib
|
||||
cp -r lib $out/
|
||||
wrapProgram $out/bin/${pname} \
|
||||
wrapProgram $out/bin/besu \
|
||||
--set JAVA_HOME "${jre}" \
|
||||
--suffix ${
|
||||
if stdenv.hostPlatform.isDarwin then "DYLD_LIBRARY_PATH" else "LD_LIBRARY_PATH"
|
||||
} : ${lib.makeLibraryPath buildInputs}
|
||||
} : ${lib.makeLibraryPath finalAttrs.buildInputs}
|
||||
'';
|
||||
|
||||
passthru.tests = {
|
||||
version = testers.testVersion {
|
||||
package = finalAttrs.finalPackage;
|
||||
version = "v${version}";
|
||||
version = "v${finalAttrs.version}";
|
||||
};
|
||||
jemalloc =
|
||||
runCommand "${pname}-test-jemalloc"
|
||||
runCommand "besu-test-jemalloc"
|
||||
{
|
||||
nativeBuildInputs = [ finalAttrs.finalPackage ];
|
||||
meta.platforms = with lib.platforms; linux;
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
brightnessctl,
|
||||
power-profiles-daemon,
|
||||
gammastep,
|
||||
libpulseaudio,
|
||||
pulseaudio,
|
||||
desktop-file-utils,
|
||||
wrapGAppsHook3,
|
||||
gobject-introspection,
|
||||
|
@ -19,14 +19,14 @@
|
|||
|
||||
python3Packages.buildPythonApplication rec {
|
||||
pname = "better-control";
|
||||
version = "6.11.9";
|
||||
version = "6.12.1";
|
||||
pyproject = false;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "quantumvoid0";
|
||||
owner = "better-ecosystem";
|
||||
repo = "better-control";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-74ZcHiQLIYzPnk25NAJzxsdVMYs2fiPDOJHUTLY4LuE=";
|
||||
hash = "sha256-Dt+se8eOmF8Nzm+/bnYBSIyX0XHSXV9iCPF82qXhzug=";
|
||||
};
|
||||
|
||||
build-system = with python3Packages; [
|
||||
|
@ -46,7 +46,7 @@ python3Packages.buildPythonApplication rec {
|
|||
|
||||
# Check src/utils/dependencies.py
|
||||
runtimeDeps = [
|
||||
libpulseaudio
|
||||
pulseaudio
|
||||
networkmanager
|
||||
bluez
|
||||
brightnessctl
|
||||
|
@ -95,7 +95,7 @@ python3Packages.buildPythonApplication rec {
|
|||
|
||||
meta = {
|
||||
description = "Simple control panel for linux based on GTK";
|
||||
homepage = "https://github.com/quantumvoid0/better-control";
|
||||
homepage = "https://github.com/better-ecosystem/better-control";
|
||||
license = lib.licenses.gpl3Only;
|
||||
maintainers = with lib.maintainers; [ Rishabh5321 ];
|
||||
platforms = lib.platforms.linux;
|
||||
|
|
|
@ -13,13 +13,13 @@
|
|||
|
||||
buildNpmPackage rec {
|
||||
pname = "bitwarden-cli";
|
||||
version = "2025.4.0";
|
||||
version = "2025.5.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bitwarden";
|
||||
repo = "clients";
|
||||
tag = "cli-v${version}";
|
||||
hash = "sha256-sWphSdxh07GS7GPlNVxK7zoXMTGLjT7qTLfH1nsIiQQ=";
|
||||
hash = "sha256-8jVKwqKhTfhur226SER4sb1i4dY+TjJRYmOY8YtO6CY=";
|
||||
};
|
||||
|
||||
postPatch = ''
|
||||
|
@ -29,7 +29,7 @@ buildNpmPackage rec {
|
|||
|
||||
nodejs = nodejs_20;
|
||||
|
||||
npmDepsHash = "sha256-/BOzDt+wgnWedWfShPkAhaeujBBQTDlZdtiKl3wrOqE=";
|
||||
npmDepsHash = "sha256-0IoBPRGdtkMeTrT5cqZLHB/WrUCONtsJ6YHh0y4K5Ls=";
|
||||
|
||||
nativeBuildInputs = lib.optionals stdenv.hostPlatform.isDarwin [
|
||||
cctools
|
||||
|
@ -98,6 +98,8 @@ buildNpmPackage rec {
|
|||
};
|
||||
|
||||
meta = {
|
||||
# https://github.com/NixOS/nixpkgs/issues/339576
|
||||
broken = stdenv.hostPlatform.isDarwin;
|
||||
changelog = "https://github.com/bitwarden/clients/releases/tag/${src.tag}";
|
||||
description = "Secure and free password manager for all of your devices";
|
||||
homepage = "https://bitwarden.com";
|
||||
|
|
|
@ -61,7 +61,7 @@ python3Packages.buildPythonApplication rec {
|
|||
strictDeps = false;
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://bleachbit.sourceforge.net";
|
||||
homepage = "https://bleachbit.sourceforge.net";
|
||||
description = "Program to clean your computer";
|
||||
longDescription = "BleachBit helps you easily clean your computer to free space and maintain privacy.";
|
||||
license = licenses.gpl3;
|
||||
|
|
|
@ -26,13 +26,13 @@ stdenv.mkDerivation rec {
|
|||
"PREFIX=$(out)"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "BPF based visual packet rate monitor";
|
||||
mainProgram = "bpfmon";
|
||||
homepage = "https://github.com/bbonev/bpfmon";
|
||||
changelog = "https://github.com/bbonev/bpfmon/releases/tag/v${version}";
|
||||
maintainers = with maintainers; [ arezvov ];
|
||||
license = licenses.gpl2Plus;
|
||||
platforms = platforms.linux;
|
||||
maintainers = with lib.maintainers; [ arezvov ];
|
||||
license = lib.licenses.gpl2Plus;
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -75,19 +75,19 @@ stdenv.mkDerivation rec {
|
|||
bpf = nixosTests.bpf;
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "High-level tracing language for Linux eBPF";
|
||||
homepage = "https://github.com/bpftrace/bpftrace";
|
||||
changelog = "https://github.com/bpftrace/bpftrace/releases/tag/v${version}";
|
||||
mainProgram = "bpftrace";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [
|
||||
rvl
|
||||
thoughtpolice
|
||||
martinetd
|
||||
mfrw
|
||||
illustris
|
||||
];
|
||||
platforms = platforms.linux;
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -29,11 +29,11 @@ buildGoModule rec {
|
|||
cp sample-btcd.conf $DIR
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Alternative full node bitcoin implementation written in Go (golang)";
|
||||
homepage = "https://github.com/btcsuite/btcd";
|
||||
changelog = "https://github.com/btcsuite/btcd/releases/tag/v${version}";
|
||||
license = licenses.isc;
|
||||
maintainers = with maintainers; [ _0xB10C ];
|
||||
license = lib.licenses.isc;
|
||||
maintainers = with lib.maintainers; [ _0xB10C ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -30,15 +30,15 @@ buildDotnetModule rec {
|
|||
mv $out/bin/{BTCPayServer,btcpayserver} || :
|
||||
'';
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Self-hosted, open-source cryptocurrency payment processor";
|
||||
homepage = "https://btcpayserver.org";
|
||||
changelog = "https://github.com/btcpayserver/btcpayserver/blob/v${version}/Changelog.md";
|
||||
maintainers = with maintainers; [
|
||||
maintainers = with lib.maintainers; [
|
||||
kcalvinalvin
|
||||
erikarvstedt
|
||||
];
|
||||
license = licenses.mit;
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
license = lib.licenses.mit;
|
||||
platforms = lib.platforms.linux ++ lib.platforms.darwin;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -51,13 +51,13 @@ stdenv.mkDerivation rec {
|
|||
versionCheckProgramArg = "--version";
|
||||
doInstallCheck = true;
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Monitor of resources";
|
||||
homepage = "https://github.com/aristocratos/btop";
|
||||
changelog = "https://github.com/aristocratos/btop/blob/v${version}/CHANGELOG.md";
|
||||
license = licenses.asl20;
|
||||
platforms = platforms.linux ++ platforms.darwin;
|
||||
maintainers = with maintainers; [
|
||||
license = lib.licenses.asl20;
|
||||
platforms = lib.platforms.linux ++ lib.platforms.darwin;
|
||||
maintainers = with lib.maintainers; [
|
||||
khaneliman
|
||||
rmcgibbo
|
||||
];
|
||||
|
|
|
@ -91,13 +91,13 @@ stdenv.mkDerivation rec {
|
|||
rev-prefix = "v";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Utilities for the btrfs filesystem";
|
||||
homepage = "https://btrfs.readthedocs.io/en/latest/";
|
||||
changelog = "https://github.com/kdave/btrfs-progs/raw/v${version}/CHANGES";
|
||||
license = licenses.gpl2Only;
|
||||
license = lib.licenses.gpl2Only;
|
||||
mainProgram = "btrfs";
|
||||
maintainers = with maintainers; [ raskin ];
|
||||
platforms = platforms.linux;
|
||||
maintainers = with lib.maintainers; [ raskin ];
|
||||
platforms = lib.platforms.linux;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -140,16 +140,16 @@ stdenv.mkDerivation {
|
|||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Fast, hermetic, multi-language build system";
|
||||
homepage = "https://buck2.build";
|
||||
changelog = "https://github.com/facebook/buck2/releases/tag/${version}";
|
||||
license = with licenses; [
|
||||
license = with lib.licenses; [
|
||||
asl20 # or
|
||||
mit
|
||||
];
|
||||
mainProgram = "buck2";
|
||||
maintainers = with maintainers; [ thoughtpolice ];
|
||||
maintainers = with lib.maintainers; [ thoughtpolice ];
|
||||
platforms = [
|
||||
"x86_64-linux"
|
||||
"aarch64-linux"
|
||||
|
|
|
@ -120,20 +120,20 @@ stdenvNoCC.mkDerivation rec {
|
|||
done
|
||||
'';
|
||||
};
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
homepage = "https://bun.sh";
|
||||
changelog = "https://bun.sh/blog/bun-v${version}";
|
||||
description = "Incredibly fast JavaScript runtime, bundler, transpiler and package manager – all in one";
|
||||
sourceProvenance = with sourceTypes; [ binaryNativeCode ];
|
||||
sourceProvenance = with lib.sourceTypes; [ binaryNativeCode ];
|
||||
longDescription = ''
|
||||
All in one fast & easy-to-use tool. Instead of 1,000 node_modules for development, you only need bun.
|
||||
'';
|
||||
license = with licenses; [
|
||||
license = with lib.licenses; [
|
||||
mit # bun core
|
||||
lgpl21Only # javascriptcore and webkit
|
||||
];
|
||||
mainProgram = "bun";
|
||||
maintainers = with maintainers; [
|
||||
maintainers = with lib.maintainers; [
|
||||
DAlperin
|
||||
jk
|
||||
thilobillerbeck
|
||||
|
|
|
@ -6,17 +6,17 @@
|
|||
|
||||
rustPlatform.buildRustPackage rec {
|
||||
pname = "cargo-mutants";
|
||||
version = "25.0.1";
|
||||
version = "25.1.0";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "sourcefrog";
|
||||
repo = "cargo-mutants";
|
||||
rev = "v${version}";
|
||||
hash = "sha256-aTGuCkPk1GYUlRXCdNIy94d5zHxUPpNNFN4aapf8s0U=";
|
||||
hash = "sha256-boT8jptZSGTITBQzFBHIcZnQMlRKctCFoGllcZZ0Onw=";
|
||||
};
|
||||
|
||||
useFetchCargoVendor = true;
|
||||
cargoHash = "sha256-Vrh8N29EWIwVgAR6aEQcnkbrs/+llCx+GfiV0WlZOqw=";
|
||||
cargoHash = "sha256-iKK5sZKUSWB5+FfbGXaZndzGT023fU+0f6/g9YRJszA=";
|
||||
|
||||
# too many tests require internet access
|
||||
doCheck = false;
|
||||
|
|
|
@ -93,7 +93,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
'';
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "http://catdvi.sourceforge.net";
|
||||
homepage = "https://catdvi.sourceforge.net";
|
||||
description = "DVI to plain text translator";
|
||||
license = licenses.gpl2Plus;
|
||||
maintainers = [ ];
|
||||
|
|
|
@ -80,7 +80,7 @@ stdenv.mkDerivation {
|
|||
homepage = "https://sr.ht/~bptato/chawan/";
|
||||
license = lib.licenses.publicDomain;
|
||||
platforms = lib.platforms.unix;
|
||||
maintainers = with lib.maintainers; [ jtbx ];
|
||||
maintainers = with lib.maintainers; [ ];
|
||||
mainProgram = "cha";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -25,14 +25,14 @@ with py.pkgs;
|
|||
|
||||
python3.pkgs.buildPythonApplication rec {
|
||||
pname = "checkov";
|
||||
version = "3.2.436";
|
||||
version = "3.2.437";
|
||||
pyproject = true;
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "bridgecrewio";
|
||||
repo = "checkov";
|
||||
tag = version;
|
||||
hash = "sha256-QI7gJjk7TtafSqGJ8vX+bTgajeRjBUHQnNJxhDiVUDI=";
|
||||
hash = "sha256-AXqrqAtwGKdzgPwWEpqScFcsP62tvMpNxVn+K75aHUo=";
|
||||
};
|
||||
|
||||
pythonRelaxDeps = [
|
||||
|
|
|
@ -46,12 +46,12 @@ stdenv.mkDerivation rec {
|
|||
"--with-openssl=${openssl.dev}"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
homepage = "https://github.com/zmartzone/cjose";
|
||||
changelog = "https://github.com/zmartzone/cjose/blob/${version}/CHANGELOG.md";
|
||||
description = "C library for Javascript Object Signing and Encryption. This is a maintained fork of the original project";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ midchildan ];
|
||||
platforms = platforms.all;
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ midchildan ];
|
||||
platforms = lib.platforms.all;
|
||||
};
|
||||
}
|
||||
|
|
9
pkgs/by-name/cl/claude-code/package-lock.json
generated
9
pkgs/by-name/cl/claude-code/package-lock.json
generated
|
@ -1,17 +1,18 @@
|
|||
{
|
||||
"name": "claude-code",
|
||||
"version": "1.0.17",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"dependencies": {
|
||||
"@anthropic-ai/claude-code": "^1.0.11"
|
||||
"@anthropic-ai/claude-code": "^1.0.17"
|
||||
}
|
||||
},
|
||||
"node_modules/@anthropic-ai/claude-code": {
|
||||
"version": "1.0.11",
|
||||
"resolved": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-1.0.11.tgz",
|
||||
"integrity": "sha512-ezYfkSxCiQjReJoBJkayTpzhWRWKmfEy6Ria2TdufBmDR7Kj/iP4IY10M5JOTgB8pw7XfjYpijgnomiFZmVRbg==",
|
||||
"version": "1.0.17",
|
||||
"resolved": "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-1.0.17.tgz",
|
||||
"integrity": "sha512-+MX/pKOKXG2HLSh7WJIgiILdumqRgcORUX0iSQmAfn+UEoHSYSuFWZWuWBpixaa8W4tiTCC06uN4pgzinCU6jw==",
|
||||
"hasInstallScript": true,
|
||||
"license": "SEE LICENSE IN README.md",
|
||||
"bin": {
|
||||
|
|
|
@ -7,16 +7,16 @@
|
|||
|
||||
buildNpmPackage rec {
|
||||
pname = "claude-code";
|
||||
version = "1.0.11";
|
||||
version = "1.0.17";
|
||||
|
||||
nodejs = nodejs_20; # required for sandboxed Nix builds on Darwin
|
||||
|
||||
src = fetchzip {
|
||||
url = "https://registry.npmjs.org/@anthropic-ai/claude-code/-/claude-code-${version}.tgz";
|
||||
hash = "sha256-IXNBNjt4Sh5pR+Cz2uEZcCop9reAmQ7hObohtN0f3Ww=";
|
||||
hash = "sha256-RxbsAehJ4zIt86ppmMB1MPg/XFrGWuumNdQbT+ytg8A=";
|
||||
};
|
||||
|
||||
npmDepsHash = "sha256-p5FQBBlMNcRBYKIkeeETyup5zKr2Rcxu/Jw+kFwQrHA=";
|
||||
npmDepsHash = "sha256-tC0OyJ3t4i/CdqKUGIw5Wd9UiLYJECcbDi/suxim0/A=";
|
||||
|
||||
postPatch = ''
|
||||
cp ${./package-lock.json} package-lock.json
|
||||
|
|
|
@ -7,11 +7,11 @@
|
|||
|
||||
buildGraalvmNativeImage rec {
|
||||
pname = "clj-kondo";
|
||||
version = "2025.04.07";
|
||||
version = "2025.06.05";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/clj-kondo/${pname}/releases/download/v${version}/${pname}-${version}-standalone.jar";
|
||||
sha256 = "sha256-yJyRqQglJUiHotB70zga5NhFquHsKgmwT9sryZHEFRU=";
|
||||
sha256 = "sha256-jmQFiL8MFIuMrHPSxW27E7yZIGf+k8J5nFVXgNGIKoM=";
|
||||
};
|
||||
|
||||
graalvmDrv = graalvmPackages.graalvm-ce;
|
||||
|
|
|
@ -6,18 +6,18 @@
|
|||
|
||||
buildGoModule rec {
|
||||
pname = "cnspec";
|
||||
version = "11.53.2";
|
||||
version = "11.57.2";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mondoohq";
|
||||
repo = "cnspec";
|
||||
tag = "v${version}";
|
||||
hash = "sha256-SYgtdIyqK3T5N6XcpjazdphwALOcReeNswVgR4K6/Pg=";
|
||||
hash = "sha256-cmqOlfoVMHlX5E55Fboo7zBVy+MDZFj3PBS/mvZQw0c=";
|
||||
};
|
||||
|
||||
proxyVendor = true;
|
||||
|
||||
vendorHash = "sha256-sxAyJsVcBrwUX1w3Kr8Z451RINUPTwJPlmY/yeXSofk=";
|
||||
vendorHash = "sha256-uehEZCj/U+xmdLt7E/Tsbog5GT78CcgxO8ZOB9QFqis=";
|
||||
|
||||
subPackages = [ "apps/cnspec" ];
|
||||
|
|
@ -1,29 +0,0 @@
|
|||
{
|
||||
lib,
|
||||
buildGoModule,
|
||||
fetchFromGitHub,
|
||||
}:
|
||||
|
||||
buildGoModule rec {
|
||||
pname = "cordless";
|
||||
version = "2020-11-22";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "Bios-Marcel";
|
||||
repo = "cordless";
|
||||
rev = version;
|
||||
hash = "sha256-nOHLI0N4d8aC7KaWdLezSpVU1DS1fkfW5UO7cVYCbis=";
|
||||
};
|
||||
|
||||
subPackages = [ "." ];
|
||||
|
||||
vendorHash = "sha256-XnwTqd19q+hOJZsfnFExiPDbg4pzV1Z9A6cq/jhcVgU=";
|
||||
|
||||
meta = with lib; {
|
||||
homepage = "https://github.com/Bios-Marcel/cordless";
|
||||
description = "Discord terminal client";
|
||||
mainProgram = "cordless";
|
||||
license = licenses.bsd3;
|
||||
maintainers = with maintainers; [ ];
|
||||
};
|
||||
}
|
|
@ -36,12 +36,12 @@ buildGraalvmNativeImage rec {
|
|||
"-H:ReflectionConfigurationFiles=${build-src}/package/reflection-config.json"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Clojure Query: A Command-line Data Processor for JSON, YAML, EDN, XML and more";
|
||||
homepage = "https://github.com/markus-wa/cq";
|
||||
changelog = "https://github.com/markus-wa/cq/releases/releases/tag/${version}";
|
||||
license = licenses.epl20;
|
||||
maintainers = with maintainers; [ farcaller ];
|
||||
platforms = platforms.unix;
|
||||
license = lib.licenses.epl20;
|
||||
maintainers = with lib.maintainers; [ farcaller ];
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -24,12 +24,12 @@ buildGoModule rec {
|
|||
version = "csvq version ${version}";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "SQL-like query language for CSV";
|
||||
mainProgram = "csvq";
|
||||
homepage = "https://mithrandie.github.io/csvq/";
|
||||
changelog = "https://github.com/mithrandie/csvq/releases/tag/v${version}";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ tomodachi94 ];
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ tomodachi94 ];
|
||||
};
|
||||
}
|
||||
|
|
|
@ -1,208 +0,0 @@
|
|||
From e0cbc1049b9a3a3322cd48d32af148f87d5007c2 Mon Sep 17 00:00:00 2001
|
||||
From: Marcin Serwin <marcin@serwin.dev>
|
||||
Date: Mon, 19 May 2025 22:36:53 +0200
|
||||
Subject: [PATCH] cmake: add pkg-config file generation
|
||||
|
||||
Signed-off-by: Marcin Serwin <marcin@serwin.dev>
|
||||
---
|
||||
CMakeLists.txt | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++
|
||||
libcubeb.pc.in | 12 ++++++++++++
|
||||
2 files changed, 62 insertions(+)
|
||||
create mode 100644 libcubeb.pc.in
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 07618fa..6470837 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -23,6 +23,17 @@ if(NOT CMAKE_BUILD_TYPE)
|
||||
"Choose the type of build, options are: Debug Release RelWithDebInfo MinSizeRel." FORCE)
|
||||
endif()
|
||||
|
||||
+set(private_requires)
|
||||
+set(private_libs)
|
||||
+set(private_libs_flags)
|
||||
+if(UNIX AND NOT APPLE)
|
||||
+ if(BSD OR ANDROID)
|
||||
+ list(APPEND private_libs c++)
|
||||
+ else()
|
||||
+ list(APPEND private_libs stdc++)
|
||||
+ endif()
|
||||
+endif()
|
||||
+
|
||||
set(CMAKE_C_STANDARD 99)
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
@@ -141,6 +152,7 @@ if(NOT BUNDLE_SPEEX)
|
||||
pkg_check_modules(speexdsp IMPORTED_TARGET speexdsp)
|
||||
if(speexdsp_FOUND)
|
||||
add_library(speex ALIAS PkgConfig::speexdsp)
|
||||
+ list(APPEND private_requires speexdsp)
|
||||
endif()
|
||||
endif()
|
||||
endif()
|
||||
@@ -155,6 +167,7 @@ if(NOT TARGET speex)
|
||||
EXPORT=
|
||||
RANDOM_PREFIX=speex
|
||||
)
|
||||
+ list(APPEND private_libs speex)
|
||||
endif()
|
||||
|
||||
# $<BUILD_INTERFACE:> required because of https://gitlab.kitware.com/cmake/cmake/-/issues/15415
|
||||
@@ -166,6 +179,7 @@ include(CheckIncludeFiles)
|
||||
set(THREADS_PREFER_PTHREAD_FLAG ON)
|
||||
find_package(Threads)
|
||||
target_link_libraries(cubeb PRIVATE Threads::Threads)
|
||||
+list(APPEND private_libs ${CMAKE_THREAD_LIBS_INIT})
|
||||
|
||||
if(LAZY_LOAD_LIBS)
|
||||
check_include_files(pulse/pulseaudio.h USE_PULSE)
|
||||
@@ -176,6 +190,7 @@ if(LAZY_LOAD_LIBS)
|
||||
|
||||
if(USE_PULSE OR USE_ALSA OR USE_JACK OR USE_SNDIO OR USE_AAUDIO)
|
||||
target_link_libraries(cubeb PRIVATE ${CMAKE_DL_LIBS})
|
||||
+ list(APPEND private_libs ${CMAKE_DL_LIBS})
|
||||
|
||||
if(ANDROID)
|
||||
target_compile_definitions(cubeb PRIVATE __ANDROID_UNAVAILABLE_SYMBOLS_ARE_WEAK__)
|
||||
@@ -191,6 +206,7 @@ else()
|
||||
set(USE_PULSE ON)
|
||||
target_compile_definitions(cubeb PRIVATE DISABLE_LIBPULSE_DLOPEN)
|
||||
target_link_libraries(cubeb PRIVATE PkgConfig::libpulse)
|
||||
+ list(APPEND private_requires libpulse)
|
||||
endif()
|
||||
|
||||
pkg_check_modules(alsa IMPORTED_TARGET alsa)
|
||||
@@ -198,6 +214,7 @@ else()
|
||||
set(USE_ALSA ON)
|
||||
target_compile_definitions(cubeb PRIVATE DISABLE_LIBASOUND_DLOPEN)
|
||||
target_link_libraries(cubeb PRIVATE PkgConfig::alsa)
|
||||
+ list(APPEND private_requires alsa)
|
||||
endif()
|
||||
|
||||
pkg_check_modules(jack IMPORTED_TARGET jack)
|
||||
@@ -205,18 +222,21 @@ else()
|
||||
set(USE_JACK ON)
|
||||
target_compile_definitions(cubeb PRIVATE DISABLE_LIBJACK_DLOPEN)
|
||||
target_link_libraries(cubeb PRIVATE PkgConfig::jack)
|
||||
+ list(APPEND private_requires jack)
|
||||
endif()
|
||||
|
||||
check_include_files(sndio.h USE_SNDIO)
|
||||
if(USE_SNDIO)
|
||||
target_compile_definitions(cubeb PRIVATE DISABLE_LIBSNDIO_DLOPEN)
|
||||
target_link_libraries(cubeb PRIVATE sndio)
|
||||
+ list(APPEND private_libs sndio)
|
||||
endif()
|
||||
|
||||
check_include_files(aaudio/AAudio.h USE_AAUDIO)
|
||||
if(USE_AAUDIO)
|
||||
target_compile_definitions(cubeb PRIVATE DISABLE_LIBAAUDIO_DLOPEN)
|
||||
target_link_libraries(cubeb PRIVATE aaudio)
|
||||
+ list(APPEND private_libs aaudio)
|
||||
endif()
|
||||
endif()
|
||||
|
||||
@@ -263,6 +283,7 @@ if(USE_AUDIOUNIT)
|
||||
src/cubeb_osx_run_loop.cpp)
|
||||
target_compile_definitions(cubeb PRIVATE USE_AUDIOUNIT)
|
||||
target_link_libraries(cubeb PRIVATE "-framework AudioUnit" "-framework CoreAudio" "-framework CoreServices")
|
||||
+ list(APPEND private_libs_flags "-framework AudioUnit" "-framework CoreAudio" "-framework CoreServices")
|
||||
endif()
|
||||
|
||||
check_include_files(audioclient.h USE_WASAPI)
|
||||
@@ -271,6 +292,7 @@ if(USE_WASAPI)
|
||||
src/cubeb_wasapi.cpp)
|
||||
target_compile_definitions(cubeb PRIVATE USE_WASAPI)
|
||||
target_link_libraries(cubeb PRIVATE avrt ole32 ksuser)
|
||||
+ list(APPEND private_libs avrt ole32 ksuser)
|
||||
endif()
|
||||
|
||||
check_include_files("windows.h;mmsystem.h" USE_WINMM)
|
||||
@@ -279,6 +301,7 @@ if(USE_WINMM)
|
||||
src/cubeb_winmm.c)
|
||||
target_compile_definitions(cubeb PRIVATE USE_WINMM)
|
||||
target_link_libraries(cubeb PRIVATE winmm)
|
||||
+ list(APPEND private_libs winmm)
|
||||
endif()
|
||||
|
||||
check_include_files(SLES/OpenSLES.h USE_OPENSL)
|
||||
@@ -288,6 +311,7 @@ if(USE_OPENSL)
|
||||
src/cubeb-jni.cpp)
|
||||
target_compile_definitions(cubeb PRIVATE USE_OPENSL)
|
||||
target_link_libraries(cubeb PRIVATE OpenSLES)
|
||||
+ list(APPEND private_libs OpenSLES)
|
||||
endif()
|
||||
|
||||
check_include_files(sys/soundcard.h HAVE_SYS_SOUNDCARD_H)
|
||||
@@ -303,6 +327,7 @@ if(HAVE_SYS_SOUNDCARD_H)
|
||||
pkg_check_modules(libbsd-overlay IMPORTED_TARGET libbsd-overlay)
|
||||
if(libbsd-overlay_FOUND)
|
||||
target_link_libraries(cubeb PRIVATE PkgConfig::libbsd-overlay)
|
||||
+ list(APPEND private_requires libbsd-overlay)
|
||||
set(HAVE_STRLCPY true)
|
||||
endif()
|
||||
endif()
|
||||
@@ -320,6 +345,7 @@ if(USE_AUDIOTRACK)
|
||||
src/cubeb_audiotrack.c)
|
||||
target_compile_definitions(cubeb PRIVATE USE_AUDIOTRACK)
|
||||
target_link_libraries(cubeb PRIVATE log)
|
||||
+ list(APPEND private_libs log)
|
||||
endif()
|
||||
|
||||
check_include_files(sys/audioio.h USE_SUN)
|
||||
@@ -335,6 +361,7 @@ if(USE_KAI)
|
||||
src/cubeb_kai.c)
|
||||
target_compile_definitions(cubeb PRIVATE USE_KAI)
|
||||
target_link_libraries(cubeb PRIVATE kai)
|
||||
+ list(APPEND private_libs kai)
|
||||
endif()
|
||||
|
||||
if(USE_PULSE AND USE_PULSE_RUST)
|
||||
@@ -452,3 +479,26 @@ add_custom_target(clang-format-check
|
||||
| xargs -0 ${CLANG_FORMAT_BINARY} -Werror -n
|
||||
COMMENT "Check formatting with clang-format"
|
||||
VERBATIM)
|
||||
+
|
||||
+
|
||||
+list(TRANSFORM private_libs PREPEND "-l")
|
||||
+string(JOIN " " CUBEB_PC_PRIVATE_LIBS ${private_libs} ${private_libs_flags})
|
||||
+
|
||||
+string(JOIN " " CUBEB_PC_PRIVATE_REQUIRES ${private_requires})
|
||||
+
|
||||
+if(IS_ABSOLUTE "${CMAKE_INSTALL_INCLUDEDIR}")
|
||||
+ set(CUBEB_PC_INCLUDEDIR "${CMAKE_INSTALL_INCLUDEDIR}")
|
||||
+else()
|
||||
+ set(CUBEB_PC_INCLUDEDIR "\${prefix}/${CMAKE_INSTALL_INCLUDEDIR}")
|
||||
+endif()
|
||||
+if(IS_ABSOLUTE "${CMAKE_INSTALL_LIBDIR}")
|
||||
+ set(CUBEB_PC_LIBDIR "${CMAKE_INSTALL_LIBDIR}")
|
||||
+else()
|
||||
+ set(CUBEB_PC_LIBDIR "\${prefix}/${CMAKE_INSTALL_LIBDIR}")
|
||||
+endif()
|
||||
+
|
||||
+configure_file(libcubeb.pc.in libcubeb.pc @ONLY)
|
||||
+install(FILES "${CMAKE_CURRENT_BINARY_DIR}/libcubeb.pc"
|
||||
+ DESTINATION ${CMAKE_INSTALL_LIBDIR}/pkgconfig
|
||||
+)
|
||||
+
|
||||
diff --git a/libcubeb.pc.in b/libcubeb.pc.in
|
||||
new file mode 100644
|
||||
index 0000000..2310ae6
|
||||
--- /dev/null
|
||||
+++ b/libcubeb.pc.in
|
||||
@@ -0,0 +1,12 @@
|
||||
+prefix=@CMAKE_INSTALL_PREFIX@
|
||||
+exec_prefix=${prefix}
|
||||
+libdir=@CUBEB_PC_LIBDIR@
|
||||
+includedir=@CUBEB_PC_INCLUDEDIR@
|
||||
+
|
||||
+Name: libcubeb
|
||||
+Description: Cross platform audio library
|
||||
+Version: @PROJECT_VERSION@
|
||||
+Requires.private: @CUBEB_PC_PRIVATE_REQUIRES@
|
||||
+Libs: -L${libdir} -lcubeb
|
||||
+Libs.private: @CUBEB_PC_PRIVATE_LIBS@
|
||||
+Cflags: -I${includedir}
|
||||
--
|
||||
2.49.0
|
||||
|
|
@ -1,31 +0,0 @@
|
|||
From 4f8dff52e99bdd70d07d7cb47d357bb91dc5f1a9 Mon Sep 17 00:00:00 2001
|
||||
From: Marcin Serwin <marcin@serwin.dev>
|
||||
Date: Sat, 24 May 2025 16:20:51 +0200
|
||||
Subject: [PATCH] cmake: don't hardcode "include" as the includedir
|
||||
|
||||
When the default CMAKE_INSTALL_INCLUDEDIR is changed
|
||||
headers are installed to a different location, however, the
|
||||
INTERFACE_INCLUDE_DIRECTORIES in exported cmake configuration still
|
||||
point to <prefix>/include.
|
||||
|
||||
Signed-off-by: Marcin Serwin <marcin@serwin.dev>
|
||||
---
|
||||
CMakeLists.txt | 2 +-
|
||||
1 file changed, 1 insertion(+), 1 deletion(-)
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 07618fa..bdf2212 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -91,7 +91,7 @@ add_library(cubeb
|
||||
src/cubeb_utils.cpp
|
||||
)
|
||||
target_include_directories(cubeb
|
||||
- PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:include>
|
||||
+ PUBLIC $<BUILD_INTERFACE:${CMAKE_CURRENT_SOURCE_DIR}/include> $<INSTALL_INTERFACE:${CMAKE_INSTALL_INCLUDEDIR}>
|
||||
)
|
||||
set_target_properties(cubeb PROPERTIES
|
||||
VERSION ${cubeb_VERSION}
|
||||
--
|
||||
2.49.0
|
||||
|
|
@ -14,8 +14,6 @@
|
|||
|
||||
# passthru.tests
|
||||
testers,
|
||||
pcsx2,
|
||||
duckstation,
|
||||
|
||||
alsaSupport ? !stdenv.hostPlatform.isDarwin,
|
||||
pulseSupport ? !stdenv.hostPlatform.isDarwin,
|
||||
|
@ -26,13 +24,13 @@
|
|||
|
||||
stdenv.mkDerivation (finalAttrs: {
|
||||
pname = "cubeb";
|
||||
version = "0-unstable-2025-04-02";
|
||||
version = "0-unstable-2025-05-29";
|
||||
|
||||
src = fetchFromGitHub {
|
||||
owner = "mozilla";
|
||||
repo = "cubeb";
|
||||
rev = "975a727e5e308a04cfb9ecdf7ddaf1150ea3f733";
|
||||
hash = "sha256-3IP++tdiJUwXR6t5mf/MkPd524K/LYESNMkQ8vy10jo=";
|
||||
rev = "78ee5f0efaaa395e3e1806e8ef85dcb15c7c063d";
|
||||
hash = "sha256-PsBlZQTPiBt8Y3okFOZYhiFn58adxVlaf/hLA0doX0o=";
|
||||
};
|
||||
|
||||
outputs = [
|
||||
|
@ -56,14 +54,6 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
++ lib.optional pulseSupport libpulseaudio
|
||||
++ lib.optional sndioSupport sndio;
|
||||
|
||||
patches = [
|
||||
# https://github.com/mozilla/cubeb/pull/813
|
||||
./0001-cmake-add-pkg-config-file-generation.patch
|
||||
|
||||
# https://github.com/mozilla/cubeb/pull/814
|
||||
./0001-cmake-don-t-hardcode-include-as-the-includedir.patch
|
||||
];
|
||||
|
||||
cmakeFlags = [
|
||||
(lib.cmakeBool "BUILD_SHARED_LIBS" enableShared)
|
||||
(lib.cmakeBool "BUILD_TESTS" false) # tests require an audio server
|
||||
|
@ -76,12 +66,7 @@ stdenv.mkDerivation (finalAttrs: {
|
|||
|
||||
passthru = {
|
||||
updateScript = unstableGitUpdater { hardcodeZeroVersion = true; };
|
||||
|
||||
tests = {
|
||||
# These packages depend on a patched version of cubeb
|
||||
inherit pcsx2 duckstation;
|
||||
pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
|
||||
};
|
||||
tests.pkg-config = testers.testMetaPkgConfig finalAttrs.finalPackage;
|
||||
};
|
||||
|
||||
meta = {
|
||||
|
|
|
@ -34,12 +34,12 @@ python3.pkgs.buildPythonApplication rec {
|
|||
|
||||
pythonImportsCheck = [ "cups_printers" ];
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Tool for interacting with a CUPS server";
|
||||
homepage = "https://github.com/audiusGmbH/cups-printers";
|
||||
changelog = "https://github.com/audiusGmbH/cups-printers/blob/${version}/CHANGELOG.md";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ fab ];
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ fab ];
|
||||
mainProgram = "cups-printers";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -26,12 +26,12 @@ buildGoModule rec {
|
|||
"-w"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Tool to work with CVEs";
|
||||
homepage = "https://github.com/projectdiscovery/cvemap";
|
||||
changelog = "https://github.com/projectdiscovery/cvemap/releases/tag/v${version}";
|
||||
license = licenses.mit;
|
||||
maintainers = with maintainers; [ fab ];
|
||||
license = lib.licenses.mit;
|
||||
maintainers = with lib.maintainers; [ fab ];
|
||||
mainProgram = "cvemap";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -99,12 +99,12 @@ py.pkgs.buildPythonApplication rec {
|
|||
"cwltool"
|
||||
];
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Common Workflow Language reference implementation";
|
||||
homepage = "https://www.commonwl.org";
|
||||
changelog = "https://github.com/common-workflow-language/cwltool/releases/tag/${version}";
|
||||
license = licenses.asl20;
|
||||
maintainers = with maintainers; [ veprbl ];
|
||||
license = lib.licenses.asl20;
|
||||
maintainers = with lib.maintainers; [ veprbl ];
|
||||
mainProgram = "cwltool";
|
||||
};
|
||||
}
|
||||
|
|
|
@ -17,14 +17,14 @@ buildNpmPackage rec {
|
|||
|
||||
npmDepsHash = "sha256-zQ0T/1khnn+CXm/3yc9nANL0ROEEE03U5fV57btEmPg=";
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Commitizen command line utility";
|
||||
homepage = "https://commitizen.github.io/cz-cli";
|
||||
changelog = "https://github.com/commitizen/cz-cli/releases/tag/v${version}";
|
||||
maintainers = with maintainers; [
|
||||
maintainers = with lib.maintainers; [
|
||||
freezeboy
|
||||
natsukium
|
||||
];
|
||||
license = licenses.mit;
|
||||
license = lib.licenses.mit;
|
||||
};
|
||||
}
|
||||
|
|
|
@ -47,13 +47,13 @@ buildGo123Module rec {
|
|||
version = "v${version}";
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "Modern diagram scripting language that turns text to diagrams";
|
||||
mainProgram = "d2";
|
||||
homepage = "https://d2lang.com";
|
||||
changelog = "https://github.com/terrastruct/d2/releases/tag/v${version}";
|
||||
license = licenses.mpl20;
|
||||
maintainers = with maintainers; [
|
||||
license = lib.licenses.mpl20;
|
||||
maintainers = with lib.maintainers; [
|
||||
dit7ya
|
||||
kashw2
|
||||
];
|
||||
|
|
|
@ -69,13 +69,13 @@ stdenv.mkDerivation rec {
|
|||
};
|
||||
};
|
||||
|
||||
meta = with lib; {
|
||||
meta = {
|
||||
description = "GSettings editor for GNOME";
|
||||
mainProgram = "dconf-editor";
|
||||
homepage = "https://apps.gnome.org/DconfEditor/";
|
||||
changelog = "https://gitlab.gnome.org/GNOME/dconf-editor/-/blob/${version}/NEWS?ref_type=tags";
|
||||
license = licenses.gpl3Plus;
|
||||
teams = [ teams.gnome ];
|
||||
platforms = platforms.unix;
|
||||
license = lib.licenses.gpl3Plus;
|
||||
teams = [ lib.teams.gnome ];
|
||||
platforms = lib.platforms.unix;
|
||||
};
|
||||
}
|
||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue